diff --git a/.gitattributes b/.gitattributes
index a6344aac8c09253b3b630fb776ae94478aa0275b..e335221ed96726da38fe03a806adde6c5fef7784 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,3 +33,7 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
+ckpts/avs/v1s/nohup.out filter=lfs diff=lfs merge=lfs -text
+ckpts/avs/v2/nohup.out filter=lfs diff=lfs merge=lfs -text
+ckpts/ref-avs/nohup.out filter=lfs diff=lfs merge=lfs -text
+docs/overview.png filter=lfs diff=lfs merge=lfs -text
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..25d04987294c80a6d5f74281e0ceab3068303646
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2025 Yuyuan Liu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 32897cd3e640101ba184f8c4ccd896981de3804a..d0d3340f4bd411c31290ff3f13a3141640d89d02 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,26 @@
----
-license: mit
----
+# AuralSAM2
+> **[CVPRF'26]** [AuralSAM2: Enabling SAM2 Hear
+Through Pyramid Audio-Visual Feature Prompting](#)
+>
+> by Yuyuan Liu, Yuanhong Chen, Chong Wang, Junlin Han, Junde Wu, Can Peng, Jingkun Chen, Yu Tian and Gustavo Carneiro
+>
+
+
+## Installation
+please install the dependencies and dataset based on this [***installation***](./docs/installation.md) document.
+
+## Getting start
+please follow this [***instruction***](./docs/before_start.md) document to reproduce our results.
+
+## Citation
+please consider citing our work in your publications if it helps your research.
+
+```bibtex
+@article{liu2025auralsam2,
+ title={AuralSAM2: Enabling SAM2 Hear Through Pyramid Audio-Visual Feature Prompting},
+ author={Liu, Yuyuan and Chen, Yuanhong and Wang, Chong and Han, Junlin and Wu, Junde and Peng, Can and Chen, Jingkun and Tian, Yu and Carneiro, Gustavo},
+ journal={arXiv preprint arXiv:2506.01015},
+ year={2025}
+}
+```
+
diff --git a/avs.code/v1m.code/configs/__init__.py b/avs.code/v1m.code/configs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/avs.code/v1m.code/configs/auralfuser/architecture.yaml b/avs.code/v1m.code/configs/auralfuser/architecture.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab4c3d06ca42335ce6bfc8064bbd5cfd44c8080a
--- /dev/null
+++ b/avs.code/v1m.code/configs/auralfuser/architecture.yaml
@@ -0,0 +1,30 @@
+# @package _global_
+
+aural_fuser:
+ patch_cfgs:
+ - [4, 4]
+ - [2, 2]
+ - [1, 1]
+ f_depths: [3, 6, 12]
+ block_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
+ one_d_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
diff --git a/avs.code/v1m.code/configs/config.py b/avs.code/v1m.code/configs/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..32ac10a0c17bc93e745852e7c122c6ca195f2e60
--- /dev/null
+++ b/avs.code/v1m.code/configs/config.py
@@ -0,0 +1,85 @@
+import os
+import numpy
+from easydict import EasyDict
+
+# v1m.code package root (parent of this `configs/` directory)
+_CODE_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+_WORKSPACE_ROOT = os.path.dirname(os.path.dirname(_CODE_ROOT))
+
+C = EasyDict()
+config = C
+cfg = C
+
+C.seed = 666
+
+C.audio = EasyDict()
+C.audio.FREEZE_AUDIO_EXTRACTOR = True
+C.audio.PRETRAINED_VGGISH_MODEL_PATH = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'vggish-10086976.pth')
+C.audio.PREPROCESS_AUDIO_TO_LOG_MEL = False
+C.audio.POSTPROCESS_LOG_MEL_WITH_PCA = False
+C.train_vggish = False
+
+"""Root Directory Config"""
+C.repo_name = 'AV'
+C.root_dir = _CODE_ROOT
+
+"""Data Dir and Weight Dir"""
+C.data_root_path = os.path.join(_WORKSPACE_ROOT, 'AVSBench')
+C.data_name = 'v1m'
+
+C.backbone_weight = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'sam_ckpts', 'sam2_hiera_large.pt')
+C.sam_config_path = os.path.join('sam2', 'sam2_hiera_l.yaml')
+
+"""Network Config"""
+C.fix_bias = True
+C.bn_eps = 1e-5
+C.bn_momentum = 0.1
+
+"""Image Config"""
+C.num_classes = 2
+
+C.image_mean = numpy.array([0.485, 0.456, 0.406])
+C.image_std = numpy.array([0.229, 0.224, 0.225])
+
+
+C.image_size = 1024
+C.image_embedding_size = int(C.image_size / 16)
+C.avsbench_size = (224, 224)
+
+C.scale_list = [.5, .75, 1., 1.25, 1.5]
+C.ignore_index = 255
+
+"""Train Config"""
+C.lr = 7.5e-5
+C.batch_size = 8
+C.energy_weight = .05
+
+C.lr_power = 0.9
+C.momentum = 0.9
+C.weight_decay = 0.05
+
+C.num_workers = 4
+
+"""Display Config"""
+C.record_info_iter = 20
+C.display_iter = 50
+
+"""Wandb Config"""
+# Paste your W&B API key here, or set the WANDB_API_KEY environment variable instead.
+C.wandb_key = ""
+
+# Your project [work_space] name
+C.proj_name = "AVS-final-report"
+
+C.experiment_name = "v1s-hiera-l"
+
+
+# False = no wandb logging (see utils/tensorboard.py)
+C.wandb_online = False
+
+"""Save Config"""
+C.saved_dir = os.path.join(_WORKSPACE_ROOT, 'ckpts', C.experiment_name)
+
+import pathlib
+
+pathlib.Path(C.saved_dir).mkdir(parents=True, exist_ok=True)
diff --git a/avs.code/v1m.code/configs/sam2/sam2_hiera_b+.yaml b/avs.code/v1m.code/configs/sam2/sam2_hiera_b+.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..52e0f10732134149f6a994be063d11fd7591c430
--- /dev/null
+++ b/avs.code/v1m.code/configs/sam2/sam2_hiera_b+.yaml
@@ -0,0 +1,114 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 112
+ num_heads: 2
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [896, 448, 224, 112]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
+
diff --git a/avs.code/v1m.code/configs/sam2/sam2_hiera_l.yaml b/avs.code/v1m.code/configs/sam2/sam2_hiera_l.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8478b3d4b8b16d8b22f6555cf7b1f00231d7fd59
--- /dev/null
+++ b/avs.code/v1m.code/configs/sam2/sam2_hiera_l.yaml
@@ -0,0 +1,117 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 144
+ num_heads: 2
+ stages: [2, 6, 36, 4]
+ global_att_blocks: [23, 33, 43]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ window_spec: [8, 4, 16, 8]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [1152, 576, 288, 144]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/avs.code/v1m.code/configs/sam2/sam2_hiera_s.yaml b/avs.code/v1m.code/configs/sam2/sam2_hiera_s.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..26e5d4d39f7b2892396106005c37c7ffe6c83bc2
--- /dev/null
+++ b/avs.code/v1m.code/configs/sam2/sam2_hiera_s.yaml
@@ -0,0 +1,116 @@
+# @package _global_
+
+# Model
+model:
+ _target_: sam2.modeling.sam2_base.SAM2Base
+ image_encoder:
+ _target_: sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 11, 2]
+ global_att_blocks: [7, 10, 13]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/avs.code/v1m.code/configs/sam2/sam2_hiera_t.yaml b/avs.code/v1m.code/configs/sam2/sam2_hiera_t.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..59e605b73c9777b70942538252d27a55ae8a7e1a
--- /dev/null
+++ b/avs.code/v1m.code/configs/sam2/sam2_hiera_t.yaml
@@ -0,0 +1,118 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 7, 2]
+ global_att_blocks: [5, 7, 9]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 224 # 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ # SAM decoder
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: false
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ # HieraT does not currently support compilation, should always be set to False
+ compile_image_encoder: False
diff --git a/avs.code/v1m.code/configs/training/sam2_training_config.yaml b/avs.code/v1m.code/configs/training/sam2_training_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..55771e7232fe88c4ea445958956eca8174c2e872
--- /dev/null
+++ b/avs.code/v1m.code/configs/training/sam2_training_config.yaml
@@ -0,0 +1,62 @@
+# @package _global_
+
+# Video transforms
+
+train_transforms:
+ - _target_: dataloader.sam2_dataset.transforms.ComposeAPI
+ transforms:
+ - _target_: dataloader.sam2_dataset.transforms.RandomHorizontalFlip
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomAffine
+ degrees: 25
+ shear: 20
+ image_interpolation: bilinear
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomResizeAPI
+ sizes: 1024 # ${scratch.resolution}
+ square: true
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: True
+ brightness: 0.1
+ contrast: 0.03
+ saturation: 0.03
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.RandomGrayscale
+ p: 0.05
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: False
+ brightness: 0.1
+ contrast: 0.05
+ saturation: 0.05
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.ToTensorAPI
+ - _target_: dataloader.sam2_dataset.transforms.NormalizeAPI
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+
+loss:
+ all:
+ _target_: loss.training.sam2_training_loss.MultiStepMultiMasksAndIous
+ weight_dict:
+ loss_mask: 20 # 20
+ loss_dice: 1
+ loss_iou: 1
+ loss_class: 1
+ supervise_all_iou: true
+ iou_use_l1_loss: true
+ pred_obj_scores: true
+ focal_gamma_obj_score: 0.0
+ focal_alpha_obj_score: -1.0
+ gpu_num: 4.
+
+# Contrastive loss (ContrastLoss); loaded in main.py / inference.py → hyp_param.contrastive_learning
+contrastive_learning:
+ temperature: 0.10
+ ignore_idx: 255
+ ood_idx: 254
+ max_views: 512
+ proj_dim: 512
+ sample_limits: 128
+ total_limits: 15240
diff --git a/avs.code/v1m.code/dataloader/audio/audio_augmentation.py b/avs.code/v1m.code/dataloader/audio/audio_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..850d1577ea2bca4f8ec209edc201fb54968be928
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/audio/audio_augmentation.py
@@ -0,0 +1,23 @@
+import numpy
+
+
+class Augmentation(object):
+ """Audio pre-step used by training/inference: int16 waveform -> float in [-1, 1].
+
+ The previous audiomentations-based transforms were commented out and never applied;
+ behavior is unchanged: only scaling by 1/32768.
+ """
+
+ def __init__(self, mono=True):
+ self.mono = mono
+
+ def train_aug(self, x_, sr_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def test_process(self, x_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def __call__(self, x, sr, split):
+ return self.train_aug(x, sr) if split == "train" else self.test_process(x)
diff --git a/avs.code/v1m.code/dataloader/audio/audio_dataset.py b/avs.code/v1m.code/dataloader/audio/audio_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c8e8b276e8545aa55ef56295719a0ad2b167106
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/audio/audio_dataset.py
@@ -0,0 +1,38 @@
+import torch
+import numpy
+import os
+from dataloader.audio.preprocess_vgg.vggish_input import waveform_to_examples
+import soundfile
+
+
+class Audio(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split):
+ # temporarily set no augmentation.
+ self.augmentation = augmentation
+ self.directory_path = directory_path
+ self.split = split
+
+ def load_audio_wave(self, file_index, file_index_mix):
+ audio_path = os.path.join(file_index, 'audio.wav')
+ wav_data, sample_rate = soundfile.read(audio_path, dtype='int16')
+ assert wav_data.dtype == numpy.int16, 'Bad sample type: %r' % wav_data.dtype
+
+ if file_index_mix is not None:
+ audio_path2 = os.path.join(file_index_mix, 'audio.wav')
+ wav_data2, _ = soundfile.read(audio_path2, dtype='int16')
+ mix_lambda = numpy.random.beta(10, 10)
+ min_length = min(wav_data.shape[0], wav_data2.shape[0])
+ wav_data = wav_data[:min_length] * mix_lambda + wav_data2[:min_length] * (1-mix_lambda)
+
+ wav_data = self.augmentation(wav_data, sample_rate, self.split)
+ audio_log_mel = torch.cat([waveform_to_examples(wav_data[:, 0], sample_rate, True).detach(),
+ waveform_to_examples(wav_data[:, 1], sample_rate, True).detach()], dim=1)
+
+ # for the vgg preprocess, we will need 5 seconds audio log.
+ if audio_log_mel.shape[0] < 5:
+ audio_log_mel = torch.cat([audio_log_mel,
+ audio_log_mel[-1].unsqueeze(0).repeat(5-audio_log_mel.shape[0], 1, 1, 1)])
+ return audio_log_mel
+
+ def __len__(self):
+ return len(self.audio_list)
diff --git a/avs.code/v1m.code/dataloader/audio/preprocess_vgg/mel_features.py b/avs.code/v1m.code/dataloader/audio/preprocess_vgg/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/audio/preprocess_vgg/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/avs.code/v1m.code/dataloader/audio/preprocess_vgg/vggish_input.py b/avs.code/v1m.code/dataloader/audio/preprocess_vgg/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d58e81bc70a85138980128e033f271998794605
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/audio/preprocess_vgg/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from dataloader.audio.preprocess_vgg import mel_features
+from dataloader.audio.preprocess_vgg import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/avs.code/v1m.code/dataloader/audio/preprocess_vgg/vggish_params.py b/avs.code/v1m.code/dataloader/audio/preprocess_vgg/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/audio/preprocess_vgg/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/avs.code/v1m.code/dataloader/dataset.py b/avs.code/v1m.code/dataloader/dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..066f3639049e8840a67c60078ae7a8d6f38c1fa2
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/dataset.py
@@ -0,0 +1,67 @@
+"""Fused audio-visual dataset for AVSBench-style indexing."""
+import os
+import random
+import PIL.Image
+import numpy
+import torch
+from dataloader.visual.visual_dataset import Visual
+from dataloader.audio.audio_dataset import Audio
+import pandas
+
+
+class AV(torch.utils.data.Dataset):
+ """Pairs video frames + labels from `Visual` with log-mel spectrograms from `Audio` via `metadata.csv`."""
+
+ def __init__(self, split, augmentation, param, root_path='', data_name='find'):
+ self.visual_dataset = Visual(augmentation['visual'], os.path.join(root_path, data_name), split, param.image_size, param.image_embedding_size)
+ self.audio_dataset = Audio(augmentation['audio'], os.path.join(root_path, data_name), split)
+ self.augment = augmentation
+ self.split = split
+ self.file_path = self.organise_files(self.split, root_path, data_name, csv_name_='avss_index/metadata.csv')
+
+ def __getitem__(self, index):
+ mixing_prob = 0. # we omit this option.
+ other_index = random.randint(1, self.__len__()) - 1 if random.random() < mixing_prob and self.split == 'train' else None
+ frame, label, prompts = self.visual_dataset.load_data(self.file_path[index])
+ if other_index is not None:
+ other_frame, other_label, other_prompts = self.visual_dataset.load_data(self.file_path[other_index])
+ frame, label, prompts = self.visual_mix(frame, other_frame, label, other_label, prompts, other_prompts)
+ audio_mel = self.audio_dataset.load_audio_wave(self.file_path[index], self.file_path[other_index])
+ else:
+ audio_mel = self.audio_dataset.load_audio_wave(self.file_path[index], None)
+
+ assert other_index is None if self.split == 'test' else 1, print('no mix in validation.')
+
+ return {'frame': frame, 'label': label, 'spectrogram': audio_mel, 'id': self.file_path[index],
+ 'prompts': prompts}
+
+ def __len__(self):
+ return len(self.file_path)
+
+ @staticmethod
+ def organise_files(split_, root_path_, data_name_, csv_name_):
+ """Read rows from `csv_name_` under `root_path_` matching split and dataset label."""
+ total_files = pandas.read_csv(os.path.join(root_path_, csv_name_))
+ files_info = total_files[(total_files["split"] == split_) & (total_files["label"] == data_name_)]['uid']
+
+ files_path = [os.path.join(root_path_, data_name_, files_name) for files_name in files_info]
+ del total_files, files_info
+ return files_path
+
+ @staticmethod
+ def visual_mix(frame1, frame2, label1, label2, prompts1, prompts2):
+ mix_frame = frame1.clone()
+ mix_label = label1.clone()
+ bbx1, bby1, bbx2, bby2 = 0, 0, mix_label.shape[1] - 1, mix_label.shape[2] - 1
+
+ for i in range(0, mix_frame.shape[0]):
+ label_canvas_foreground = label2[i, bbx1:bbx2, bby1:bby2] > 0.
+ mix_frame[i, :, bbx1:bbx2, bby1:bby2][:, label_canvas_foreground] = (
+ frame2[i, :, bbx1:bbx2, bby1:bby2][:, label_canvas_foreground])
+ mix_label[i, bbx1:bbx2, bby1:bby2][label_canvas_foreground] = (
+ label2[i, bbx1:bbx2, bby1:bby2][label_canvas_foreground])
+
+ return mix_frame, mix_label, prompts1
+
+
+
diff --git a/avs.code/v1m.code/dataloader/sam2_dataset/__init__.py b/avs.code/v1m.code/dataloader/sam2_dataset/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/sam2_dataset/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1m.code/dataloader/sam2_dataset/transforms.py b/avs.code/v1m.code/dataloader/sam2_dataset/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..7731e59ba98a5465493e3a9c4b785eb4d4420ca2
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/sam2_dataset/transforms.py
@@ -0,0 +1,528 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Transforms and data augmentation for both image + bbox.
+"""
+
+import logging
+
+import random
+from typing import Iterable
+
+import torch
+import torchvision.transforms as T
+import torchvision.transforms.functional as F
+import torchvision.transforms.v2.functional as Fv2
+from PIL import Image as PILImage
+# from docutils.nodes import label
+import numpy
+from torchvision.transforms import InterpolationMode
+
+# from utils.data_utils import VideoDatapoint
+
+
+def hflip(frames, labels, index):
+ # print(index)
+ # print(len(frames), frames[index].size, type(frames[index]))
+ # print(len(labels), labels[index].size, type(labels[index]))
+ frames[index] = F.hflip(frames[index])
+ labels[index] = F.hflip(labels[index])
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.hflip(obj.segment)
+
+ return frames, labels
+
+
+def get_size_with_aspect_ratio(image_size, size, max_size=None):
+ w, h = image_size
+ if max_size is not None:
+ min_original_size = float(min((w, h)))
+ max_original_size = float(max((w, h)))
+ if max_original_size / min_original_size * size > max_size:
+ size = max_size * min_original_size / max_original_size
+
+ if (w <= h and w == size) or (h <= w and h == size):
+ return (h, w)
+
+ if w < h:
+ ow = int(round(size))
+ oh = int(round(size * h / w))
+ else:
+ oh = int(round(size))
+ ow = int(round(size * w / h))
+
+ return (oh, ow)
+
+
+def resize(frames, labels, index, size, max_size=None, square=False, v2=False):
+ # size can be min_size (scalar) or (w, h) tuple
+ def get_size(image_size, size, max_size=None):
+ if isinstance(size, (list, tuple)):
+ return size[::-1]
+ else:
+ return get_size_with_aspect_ratio(image_size, size, max_size)
+
+ if square:
+ size = size, size
+ else:
+ raise NotImplementedError
+ # cur_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ # size = get_size(cur_size, size, max_size)
+
+ # old_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ if v2:
+ frames[index].data = Fv2.resize(
+ frames[index].data, size, antialias=True
+ )
+ else:
+ frames[index] = F.resize(frames[index], size)
+ labels[index] = F.resize(labels[index], size)
+ # new_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.resize(obj.segment[None, None], size).squeeze()
+
+ # h, w = size
+ # frames[index].size = (h, w)
+ return frames, labels
+
+
+def pad(frames, index, padding, v2=False):
+ old_h, old_w = frames[index].size
+ h, w = old_h, old_w
+ if len(padding) == 2:
+ # assumes that we only pad on the bottom right corners
+ frames[index].data = F.pad(
+ frames[index].data, (0, 0, padding[0], padding[1])
+ )
+ h += padding[1]
+ w += padding[0]
+ else:
+ # left, top, right, bottom
+ frames[index].data = F.pad(
+ frames[index].data,
+ (padding[0], padding[1], padding[2], padding[3]),
+ )
+ h += padding[1] + padding[3]
+ w += padding[0] + padding[2]
+
+ frames[index].size = (h, w)
+
+ for obj in frames[index].objects:
+ if obj.segment is not None:
+ if v2:
+ if len(padding) == 2:
+ obj.segment = Fv2.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = Fv2.pad(obj.segment, tuple(padding))
+ else:
+ if len(padding) == 2:
+ obj.segment = F.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = F.pad(obj.segment, tuple(padding))
+ return frames
+
+
+class RandomHorizontalFlip:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for i in range(len(frames)):
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+ for i in range(len(frames)):
+ if random.random() < self.p:
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+
+
+class RandomResizeAPI:
+ def __init__(
+ self, sizes, consistent_transform, max_size=None, square=False, v2=False
+ ):
+ if isinstance(sizes, int):
+ sizes = (sizes,)
+ assert isinstance(sizes, Iterable)
+ self.sizes = list(sizes)
+ self.max_size = max_size
+ self.square = square
+ self.consistent_transform = consistent_transform
+ self.v2 = v2
+
+ def __call__(self, frames, labels):
+ if self.consistent_transform:
+ size = random.choice(self.sizes)
+ for i in range(len(frames)):
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+ for i in range(len(frames)):
+ size = random.choice(self.sizes)
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+
+
+class ToTensorAPI:
+ def __init__(self, v2=False):
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ if self.v2:
+ raise NotImplementedError
+ # frames[img_idx] = Fv2.to_tensor(frames[img_idx])
+ else:
+ frames[img_idx] = F.to_tensor(frames[img_idx])
+ labels[img_idx] = torch.tensor(numpy.array(labels[img_idx]), dtype=torch.float)
+ return frames, labels
+
+
+class NormalizeAPI:
+ def __init__(self, mean, std, v2=False):
+ self.mean = mean
+ self.std = std
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ # if self.v2:
+ # img.data = Fv2.convert_image_dtype(img.data, torch.float32)
+ # img.data = Fv2.normalize(img.data, mean=self.mean, std=self.std)
+ # else:
+ frames[img_idx] = F.normalize(frames[img_idx], mean=self.mean, std=self.std)
+
+ return frames, labels
+
+'''
+
+
+
+
+
+
+
+
+'''
+class ComposeAPI:
+ def __init__(self, transforms):
+ self.transforms = transforms
+
+ def __call__(self, frames, labels, **kwargs):
+ for t in self.transforms:
+ frames, labels = t(frames, labels, **kwargs)
+ return frames, labels
+
+ def __repr__(self):
+ format_string = self.__class__.__name__ + "("
+ for t in self.transforms:
+ format_string += "\n"
+ format_string += " {0}".format(t)
+ format_string += "\n)"
+ return format_string
+
+
+class RandomGrayscale:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+ self.Grayscale = T.Grayscale(num_output_channels=3)
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for img_idx in range(len(frames)):
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+ for img_idx in range(len(frames)):
+ if random.random() < self.p:
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+
+
+class ColorJitter:
+ def __init__(self, consistent_transform, brightness, contrast, saturation, hue):
+ self.consistent_transform = consistent_transform
+ self.brightness = (
+ brightness
+ if isinstance(brightness, list)
+ else [max(0, 1 - brightness), 1 + brightness]
+ )
+ self.contrast = (
+ contrast
+ if isinstance(contrast, list)
+ else [max(0, 1 - contrast), 1 + contrast]
+ )
+ self.saturation = (
+ saturation
+ if isinstance(saturation, list)
+ else [max(0, 1 - saturation), 1 + saturation]
+ )
+ self.hue = hue if isinstance(hue, list) or hue is None else ([-hue, hue])
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ # Create a color jitter transformation params
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for img in frames:
+ if not self.consistent_transform:
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for fn_id in fn_idx:
+ if fn_id == 0 and brightness_factor is not None:
+ img = F.adjust_brightness(img, brightness_factor)
+ elif fn_id == 1 and contrast_factor is not None:
+ img = F.adjust_contrast(img, contrast_factor)
+ elif fn_id == 2 and saturation_factor is not None:
+ img = F.adjust_saturation(img, saturation_factor)
+ elif fn_id == 3 and hue_factor is not None:
+ img = F.adjust_hue(img, hue_factor)
+ return frames, labels
+
+
+class RandomAffine:
+ def __init__(
+ self,
+ degrees,
+ consistent_transform,
+ scale=None,
+ translate=None,
+ shear=None,
+ image_mean=(123, 116, 103),
+ label_fill_value=0.,
+ log_warning=True,
+ num_tentatives=1,
+ image_interpolation="bicubic",
+ ):
+ """
+ The mask is required for this transform.
+ if consistent_transform if True, then the same random affine is applied to all frames and masks.
+ """
+ self.degrees = degrees if isinstance(degrees, list) else ([-degrees, degrees])
+ self.scale = scale
+ self.shear = (
+ shear if isinstance(shear, list) else ([-shear, shear] if shear else None)
+ )
+ self.translate = translate
+ self.fill_img = image_mean
+ self.fill_label = label_fill_value
+ self.consistent_transform = consistent_transform
+ self.log_warning = log_warning
+ self.num_tentatives = num_tentatives
+ assert self.num_tentatives >= 1., 'must have at least one if we utilise the augmentation.'
+
+ if image_interpolation == "bicubic":
+ self.image_interpolation = InterpolationMode.BICUBIC
+ elif image_interpolation == "bilinear":
+ self.image_interpolation = InterpolationMode.BILINEAR
+ else:
+ raise NotImplementedError
+
+ def __call__(self, frames, labels, **kwargs):
+ for _tentative in range(self.num_tentatives):
+ res_img, res_labels = self.transform_frames(frames, labels)
+ # if res is not None:
+ return res_img, res_labels
+
+ # raise NotImplementedError
+ # if self.log_warning:
+ # logging.warning(
+ # f"Skip RandomAffine for zero-area mask in first frame after {self.num_tentatives} tentatives"
+ # )
+ # return frames
+
+ def transform_frames(self, frames, labels):
+ _, height, width = F.get_dimensions(frames[0])
+ img_size = [width, height]
+
+ if self.consistent_transform:
+ # Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+
+ for img_idx, img in enumerate(frames):
+ if not self.consistent_transform:
+ # if not consistent we create a new affine params for every frame&mask pair Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+ frames[img_idx] = F.affine(
+ img,
+ *affine_params,
+ interpolation=self.image_interpolation,
+ fill=self.fill_img,
+ )
+ labels[img_idx] = F.affine(
+ labels[img_idx],
+ *affine_params,
+ # default: interpolation='nearest',
+ fill=self.fill_label,
+ )
+ return frames, labels
+
+
+'''
+def random_mosaic_frame(
+ datapoint,
+ index,
+ grid_h,
+ grid_w,
+ target_grid_y,
+ target_grid_x,
+ should_hflip,
+):
+ # Step 1: downsize the images and paste them into a mosaic
+ image_data = datapoint.frames[index].data
+ is_pil = isinstance(image_data, PILImage.Image)
+ if is_pil:
+ H_im = image_data.height
+ W_im = image_data.width
+ image_data_output = PILImage.new("RGB", (W_im, H_im))
+ else:
+ H_im = image_data.size(-2)
+ W_im = image_data.size(-1)
+ image_data_output = torch.zeros_like(image_data)
+
+ downsize_cache = {}
+ for grid_y in range(grid_h):
+ for grid_x in range(grid_w):
+ y_offset_b = grid_y * H_im // grid_h
+ x_offset_b = grid_x * W_im // grid_w
+ y_offset_e = (grid_y + 1) * H_im // grid_h
+ x_offset_e = (grid_x + 1) * W_im // grid_w
+ H_im_downsize = y_offset_e - y_offset_b
+ W_im_downsize = x_offset_e - x_offset_b
+
+ if (H_im_downsize, W_im_downsize) in downsize_cache:
+ image_data_downsize = downsize_cache[(H_im_downsize, W_im_downsize)]
+ else:
+ image_data_downsize = F.resize(
+ image_data,
+ size=(H_im_downsize, W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )
+ downsize_cache[(H_im_downsize, W_im_downsize)] = image_data_downsize
+ if should_hflip[grid_y, grid_x].item():
+ image_data_downsize = F.hflip(image_data_downsize)
+
+ if is_pil:
+ image_data_output.paste(image_data_downsize, (x_offset_b, y_offset_b))
+ else:
+ image_data_output[:, y_offset_b:y_offset_e, x_offset_b:x_offset_e] = (
+ image_data_downsize
+ )
+
+ datapoint.frames[index].data = image_data_output
+
+ # Step 2: downsize the masks and paste them into the target grid of the mosaic
+ for obj in datapoint.frames[index].objects:
+ if obj.segment is None:
+ continue
+ assert obj.segment.shape == (H_im, W_im) and obj.segment.dtype == torch.uint8
+ segment_output = torch.zeros_like(obj.segment)
+
+ target_y_offset_b = target_grid_y * H_im // grid_h
+ target_x_offset_b = target_grid_x * W_im // grid_w
+ target_y_offset_e = (target_grid_y + 1) * H_im // grid_h
+ target_x_offset_e = (target_grid_x + 1) * W_im // grid_w
+ target_H_im_downsize = target_y_offset_e - target_y_offset_b
+ target_W_im_downsize = target_x_offset_e - target_x_offset_b
+
+ segment_downsize = F.resize(
+ obj.segment[None, None],
+ size=(target_H_im_downsize, target_W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )[0, 0]
+ if should_hflip[target_grid_y, target_grid_x].item():
+ segment_downsize = F.hflip(segment_downsize[None, None])[0, 0]
+
+ segment_output[
+ target_y_offset_b:target_y_offset_e, target_x_offset_b:target_x_offset_e
+ ] = segment_downsize
+ obj.segment = segment_output
+
+ return datapoint
+
+
+class RandomMosaicVideoAPI:
+ def __init__(self, prob=0.15, grid_h=2, grid_w=2, use_random_hflip=False):
+ self.prob = prob
+ self.grid_h = grid_h
+ self.grid_w = grid_w
+ self.use_random_hflip = use_random_hflip
+
+ def __call__(self, frames, **kwargs):
+ if random.random() > self.prob:
+ return datapoint
+
+ # select a random location to place the target mask in the mosaic
+ target_grid_y = random.randint(0, self.grid_h - 1)
+ target_grid_x = random.randint(0, self.grid_w - 1)
+ # whether to flip each grid in the mosaic horizontally
+ if self.use_random_hflip:
+ should_hflip = torch.rand(self.grid_h, self.grid_w) < 0.5
+ else:
+ should_hflip = torch.zeros(self.grid_h, self.grid_w, dtype=torch.bool)
+ for i in range(len(datapoint.frames)):
+ datapoint = random_mosaic_frame(
+ datapoint,
+ i,
+ grid_h=self.grid_h,
+ grid_w=self.grid_w,
+ target_grid_y=target_grid_y,
+ target_grid_x=target_grid_x,
+ should_hflip=should_hflip,
+ )
+
+ return datapoint
+'''
\ No newline at end of file
diff --git a/avs.code/v1m.code/dataloader/visual/visual_augmentation.py b/avs.code/v1m.code/dataloader/visual/visual_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d40aed7c8b8c08d50a46db122e1213bd4878afd
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/visual/visual_augmentation.py
@@ -0,0 +1,140 @@
+import random
+
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision.transforms.functional as F
+import torchvision.transforms as transforms
+
+
+class Augmentation(object):
+ def __init__(self, image_mean, image_std, image_width, image_height, scale_list, ignore_index=255):
+ self.image_size = (image_height, image_width)
+ # self.image_norm = (image_mean, image_std)
+ # self.get_crop_pos = transforms.RandomCrop(self.image_size)
+ self.color_jitter = transforms.ColorJitter(brightness=.5, contrast=.5, saturation=.5, hue=.25)
+ self.gaussian_blurring = transforms.GaussianBlur((3, 3))
+ self.scale_list = scale_list
+
+ self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+ self.to_tensor = transforms.ToTensor()
+
+ self.ignore_index = ignore_index
+
+ # self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+
+ # if setup == "avs" or setup == "avss" or setup == "avss_binary":
+ # # AVS
+ # self.scale_list = [.5, .75, 1.]
+ # self.color_jitter = None
+ # else:
+ # # COCO
+ # # self.scale_list = [.75, 1., 1.25, 1.5, 1.75, 2.]
+ # self.scale_list = [0.5,0.75,1.0,1.25,1.5,1.75,2.0]
+
+ # def normalise(self, image):
+ # image = image / 255.0
+ # image = image - self.image_norm[0]
+ # image = image / self.image_norm[1]
+ # return image
+
+ def resize(self, image_, label_, size=None):
+ h_, w_ = self.image_size if size is None else size
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ def random_crop_with_padding(self, image_, label_):
+ w_, h_ = image_.size
+ if min(h_, w_) < min(self.image_size):
+ res_w_ = max(self.image_size[0] - w_, 0)
+ res_h_ = max(self.image_size[1] - h_, 0)
+ image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=(numpy.array(self.image_norm[0]) * 255.).tolist())
+ # image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=self.ignore_index) # if error, define the padding value.
+ label_ = F.pad(label_, [0, 0, res_w_, res_h_], fill=self.ignore_index)
+
+ pos_ = self.get_crop_pos.get_params(image_, self.image_size)
+ image_ = F.crop(image_, *pos_)
+ label_ = F.crop(label_, *pos_)
+
+ return image_, label_
+
+ # @staticmethod
+ def random_scales(self, image_, label_):
+ w_, h_ = image_.size
+ chosen_scale = random.choice(self.scale_list)
+ w_, h_ = int(w_ * chosen_scale), int(h_ * chosen_scale)
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ @staticmethod
+ def random_flip_h(image_, label_):
+ chosen_flip = random.random() > 0.5
+ image_ = F.hflip(image_) if chosen_flip else image_
+ label_ = F.hflip(label_) if chosen_flip else label_
+ return image_, label_
+
+ def augment_entire_clip(self, x_list, y_list):
+ degree_ = float(torch.empty(1).uniform_(float(-25.), float(25.)).item())
+ shear_ = [float(torch.empty(1).uniform_(float(-20.), float(20.)).item()),
+ torch.empty(1).uniform_(float(-20.), float(20.)).item()]
+ dice = random.random()
+ for index, single_x in enumerate(x_list):
+ if dice <= 0.1:
+ single_x = F.rgb_to_grayscale(single_x, num_output_channels=3)
+
+ single_x = F.affine(single_x, angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.BILINEAR, fill=[0., 0., 0.])
+ single_y = F.affine(y_list[index], angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.NEAREST, fill=[0.])
+ x_list[index] = single_x
+ y_list[index] = single_y
+
+ return x_list, y_list
+
+
+
+
+ def train_aug(self, x_, y_):
+ x_, y_ = self.random_flip_h(x_, y_)
+ # # x, y = self.random_scales(x, y)
+ x_, y_ = self.resize(x_, y_)
+
+ if self.color_jitter is not None and random.random() < 0.5:
+ x_ = self.color_jitter(x_)
+ if self.gaussian_blurring is not None and random.random() < 0.5:
+ x_ = self.gaussian_blurring(x_)
+
+ # x, y = self.random_crop_with_padding(x, y)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ # receive pseudo labels.
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def test_process(self, x_, y_):
+ # x = self.to_tensor(x)
+ # y = torch.tensor(numpy.asarray(y)).long()
+
+ # following AVSbench setup, we fix image size (224, 224)
+ x_, y_ = self.resize(x_, y_)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def __call__(self, x, y, split):
+ return self.train_aug(x, y) if split == "train" \
+ else self.test_process(x, y)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/avs.code/v1m.code/dataloader/visual/visual_dataset.py b/avs.code/v1m.code/dataloader/visual/visual_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..74d6965982acd11304d0a4bba31f09fc792fb50e
--- /dev/null
+++ b/avs.code/v1m.code/dataloader/visual/visual_dataset.py
@@ -0,0 +1,127 @@
+import os
+import re
+import PIL.Image
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import pandas
+import torchvision
+
+
+class Visual(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split, image_size, image_embedding_size):
+ self.augment = augmentation
+ self.directory_path = directory_path
+ self.split = split
+ self.image_size = image_size
+ self.embedding_size = image_embedding_size
+
+ def load_data(self, file_prefix):
+ frame_path = os.path.join(file_prefix, 'frames')
+ frame_path = [os.path.join(frame_path, i) for i in os.listdir(frame_path)]
+ label_path = os.path.join(file_prefix, 'labels_rgb')
+ label_path = [os.path.join(label_path, i) for i in os.listdir(label_path)]
+
+ # if self.split == 'train':
+ # label_path += [os.path.join(file_prefix.replace('v1s', 'v1s_sam2_pseudo_labels'), i) for i in
+ # os.listdir(file_prefix.replace('v1s', 'v1s_sam2_pseudo_labels'))]
+
+ frame_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.jpg')[0])))
+ label_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.png')[0])))
+
+ frame = [PIL.Image.open(i) for i in frame_path]
+ label = [PIL.Image.open(i).convert('L') for i in label_path]
+
+ # if self.split == 'train':
+ # label += [PIL.Image.new('L', frame[0].size)] * (len(frame)-len(label))
+
+ label_idx = torch.tensor(list([1] + [0] * 4), dtype=torch.bool)
+ # fulfill the empty page.
+ # we utilise pseudo-labels now.
+ # label_idx = torch.tensor(list([1] + [0] * (len(frame) - len(label))), dtype=torch.bool)
+ # label += [PIL.Image.new('L', frame[0].size)] * (len(frame)-len(label))
+
+ # receive the prompts from the ground truth.
+ # prompts = {"point_coords": torch.nan, "point_labels": torch.nan,
+ # "masks": [None]*len(frame), "box_coords": [None]*len(frame)}
+
+ prompts = {}
+ image_batch = [None]*len(frame)
+ label_batch = [None]*len(frame)
+
+ if self.split == 'train':
+ # frame, label = self.augment.augment_entire_clip(frame, label)
+ frame, label = self.augment(frame, label)
+
+
+ for i in range(len(frame)):
+ if self.split == 'test':
+ curr_frame, curr_label = self.augment(frame[i], label[i], split=self.split)
+ else:
+ curr_frame, curr_label = frame[i], label[i]
+ # if self.split == 'train' and i > 0:
+ # curr_label = curr_label / 255.
+ # curr_label[curr_label > 0.5] = 1
+ # curr_label[curr_label < 0.5] = 0
+ # # curr_label[(0.05 < curr_label) & (curr_label < 0.95)] = 255
+ # # we temporarily make it to be hard mask;
+ # # curr_label = ((curr_label / 255.) - 0.5) * 2
+ # # curr_label[curr_label >= 0.] = 1.
+ # # curr_label[curr_label < 0.] = 0.
+ # else:
+ curr_label[curr_label > 0.] = 1.
+ image_batch[i], label_batch[i] = curr_frame, curr_label
+
+ # image_batch[i], label_batch[i] = self.augment(frame[i], label[i], split=self.split)
+ # note: we simply convert the code to binary mask in v1s, v1m;
+ # to some reason, we failed to load the label in `L' format and had to hardcoding here.
+ # label_batch[i][label_batch[i] > 0.] = 1.
+
+ # prompts['box_coords'][i], prompts['masks'][i] = self.receive_other_prompts(label_batch[i])
+
+ # organise the prompts
+ # prompts.update({'masks': torch.stack(prompts['masks'], dim=0)})
+ # prompts.update({'box_coords': torch.stack(prompts['box_coords'], dim=0)})
+ # prompts.update({'point_labels': torch.stack(prompts['point_labels'], dim=0)})
+ prompts.update({'label_index': label_idx})
+ return torch.stack(image_batch, dim=0), torch.stack(label_batch, dim=0), prompts
+
+ def receive_other_prompts(self, y_):
+ # y_ = torch.zeros_like(y_)
+ if len(torch.unique(y_)) > 1:
+ # foreground point
+ points_foreground = torch.stack(torch.where(y_ > 0)[::-1], dim=0).transpose(1, 0)
+
+ # bbox prompt (left-top corner & right-bottom corner)
+ bbox_one = torch.min(points_foreground[:, 0]), torch.min(points_foreground[:, 1])
+ bbox_fou = torch.max(points_foreground[:, 0]), torch.max(points_foreground[:, 1])
+ bbox_coord = torch.tensor(bbox_one + bbox_fou, dtype=torch.float)
+ bbox_coord = self.transform_coords(bbox_coord, orig_hw=y_.squeeze().shape)
+ # mask prompt
+ low_mask = torchvision.transforms.functional.resize(y_.clone(), [self.embedding_size*4, self.embedding_size*4],
+ torchvision.transforms.InterpolationMode.NEAREST)
+ else:
+ # for the pure background situation.
+ bbox_coord = torch.zeros([4], dtype=torch.float).fill_(float('nan'))
+ low_mask = torch.zeros([1, self.embedding_size*4, self.embedding_size*4], dtype=torch.float).fill_(float('nan'))
+
+ return bbox_coord, low_mask
+
+ # we transfer the coords to SAM's input resolution (1024, 1024).
+ def transform_coords(self, coords: torch.Tensor, orig_hw=None) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the sam2 model.
+ """
+ h, w = orig_hw
+ coords = coords.clone().reshape(-1, 2, 2)
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+ coords = coords * self.image_size # unnormalize coords
+ return coords.reshape(4)
+
+
+
diff --git a/avs.code/v1m.code/inference.py b/avs.code/v1m.code/inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..e71db5eb014fb4347f3d653fc5b9643f1da8d935
--- /dev/null
+++ b/avs.code/v1m.code/inference.py
@@ -0,0 +1,193 @@
+"""Distributed inference on the test set; runs the same three `process` modes as training validation."""
+import os
+import pathlib
+import torch
+import numpy
+import random
+import argparse
+from easydict import EasyDict
+
+# Avoid import failure when configs.config creates saved_dir without write permission.
+_real_mkdir = pathlib.Path.mkdir
+
+
+def _safe_mkdir(self, mode=0o777, parents=False, exist_ok=False):
+ try:
+ return _real_mkdir(self, mode, parents=parents, exist_ok=exist_ok)
+ except PermissionError:
+ pass
+
+
+pathlib.Path.mkdir = _safe_mkdir
+
+
+def seed_it(seed):
+ random.seed(seed)
+ os.environ["PYTHONSEED"] = str(seed)
+ numpy.random.seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.deterministic = True
+ torch.backends.cudnn.benchmark = True
+ torch.backends.cudnn.enabled = True
+ torch.manual_seed(seed)
+
+
+class _DummyTensorboard:
+ """Minimal Tensorboard stub so Trainer.valid runs without wandb logging."""
+
+ def upload_wandb_info(self, info_dict):
+ pass
+
+ def upload_wandb_image(self, *args, **kwargs):
+ pass
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus * 1
+ )
+ seed_it(local_rank + hyp_param.seed)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra `configs`
+ from hydra import compose
+ from omegaconf import OmegaConf
+
+ arch_h = compose(config_name='auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ train_cfg = compose(config_name='training/sam2_training_config.yaml')
+ OmegaConf.resolve(train_cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(train_cfg.contrastive_learning, resolve=True)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda()
+ torch.cuda.set_device(hyp_param.local_rank)
+ ckpt_sd = torch.load(hyp_param.inference_ckpt, map_location="cpu")
+ if not isinstance(ckpt_sd, dict):
+ raise TypeError("Checkpoint must be a state_dict dictionary.")
+ # Same as v1s/v2: full-model ckpt vs train-only aural_fuser ckpt (e.g. keys vgg.*, f_blocks.*).
+ if any(k.startswith("v_model.") or k.startswith("aural_fuser.") for k in ckpt_sd.keys()):
+ av_model.load_state_dict(ckpt_sd, strict=True)
+ else:
+ av_model.aural_fuser.load_state_dict(ckpt_sd, strict=True)
+
+ av_model = torch.nn.parallel.distributed.DistributedDataParallel(av_model, device_ids=[hyp_param.local_rank],
+ find_unused_parameters=False)
+ av_model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(av_model)
+ av_model.eval()
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data import DataLoader, Subset
+ from torch.utils.data.distributed import DistributedSampler
+
+ visual_augmentation = VisualAugmentation(hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index)
+ audio_augmentation = AudioAugmentation(mono=True)
+
+ dataset = AV(split='test', augmentation={"visual": visual_augmentation, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path, data_name=hyp_param.inference_data_name)
+
+ max_batches = getattr(hyp_param, "inference_max_batches", 0) or 0
+ if max_batches > 0:
+ n_samples = min(max_batches * hyp_param.batch_size, len(dataset))
+ dataset = Subset(dataset, range(n_samples))
+
+ sampler = DistributedSampler(dataset, shuffle=False)
+ test_dataloader = DataLoader(dataset, batch_size=hyp_param.batch_size, sampler=sampler,
+ num_workers=hyp_param.num_workers)
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+
+ metrics = {
+ "foreground_iou": ForegroundIoU(),
+ "foreground_f-score": ForegroundFScore(hyp_param.local_rank),
+ }
+ trainer = Trainer(hyp_param, loss=None, tensorboard=_DummyTensorboard(), metrics=metrics)
+
+ # Same three modes as main.py validation: default first mask / iou_select / iou_occ_select
+ runs = [
+ ("", "default (logits[:,0])"),
+ ("iou_select", "iou_select"),
+ ("iou_occ_select", "iou_occ_select"),
+ ]
+ results = []
+ for process, label in runs:
+ fiou, ffscore = trainer.valid(epoch=0, dataloader=test_dataloader, model=av_model, process=process)
+ results.append((label, fiou, ffscore))
+ torch.cuda.empty_cache()
+
+ if hyp_param.local_rank <= 0:
+ print("\n========== inference (same three process flags as training valid) ==========")
+ for label, fiou, ffscore in results:
+ print(" {:32s} f_iou={} f_f-score={}".format(label, fiou, ffscore))
+ print("=======================================================\n")
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Inference: full test set + three process modes')
+
+ parser.add_argument('-n', '--nodes', default=1, type=int, metavar='N')
+
+ parser.add_argument("--local_rank", type=int, default=-1,
+ help='multi-process training for DDP')
+
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+
+ parser.add_argument('--batch_size', default=1, type=int,
+ help='Batch size (match training if needed)')
+
+ parser.add_argument('--epochs', default=80, type=int,
+ help="unused")
+
+ parser.add_argument('--lr', default=1e-5, type=float,
+ help="unused")
+
+ parser.add_argument('--online', action="store_true",
+ help='unused')
+
+ parser.add_argument(
+ '--inference_ckpt', type=str, default=None,
+ help='Trained AuralSAM2 checkpoint (.pth state_dict). '
+ 'SAM2 backbone is loaded from backbone_weight in configs (same path as training: repo_root/ckpts/sam_ckpts/). '
+ 'Default if unset: avs.code/training_details/.../hiera_l.pth',
+ )
+ parser.add_argument('--inference_data_name', type=str, default='v1m',
+ help='AVSBench subset folder label (v1s|v1m|v2); must match training test split')
+ parser.add_argument('--inference_max_batches', type=int, default=0,
+ help='0 = full test; >0 = first N batches only (debug)')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+
+ args = EasyDict({**C, **vars(args)})
+
+ _repo = pathlib.Path(__file__).resolve().parent
+ # Repo root: .../AuralSAM2 (parent of avs.code)
+ _workspace = _repo.parent.parent
+ args.data_root_path = str(_workspace / 'AVSBench')
+ args.backbone_weight = str(_workspace / 'ckpts' / 'sam_ckpts' / 'sam2_hiera_large.pt')
+ args.audio.PRETRAINED_VGGISH_MODEL_PATH = str(_workspace / 'ckpts' / 'vggish-10086976.pth')
+ args.saved_dir = '/tmp/v1m_infer_ckpt'
+ pathlib.Path(args.saved_dir).mkdir(parents=True, exist_ok=True)
+ if args.inference_ckpt is None:
+ args.inference_ckpt = str(
+ _repo.parent / 'training_details' / 'v1m' / 'hiera_l' / 'hiera_l.pth'
+ )
+
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9901'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/avs.code/v1m.code/loss/training/__init__.py b/avs.code/v1m.code/loss/training/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..da8932ea6e0916b9f16cb514f1e64704440d554e
--- /dev/null
+++ b/avs.code/v1m.code/loss/training/__init__.py
@@ -0,0 +1,2 @@
+"""Training loss modules."""
+
diff --git a/avs.code/v1m.code/loss/training/contrastive_learning.py b/avs.code/v1m.code/loss/training/contrastive_learning.py
new file mode 100644
index 0000000000000000000000000000000000000000..41287d26dd05dfe367b41c96375770dc6c8afa94
--- /dev/null
+++ b/avs.code/v1m.code/loss/training/contrastive_learning.py
@@ -0,0 +1,201 @@
+from abc import ABC
+
+import torch
+import torch.nn as nn
+
+
+class ContrastLoss(nn.Module, ABC):
+ def __init__(self, hyp_param):
+ super().__init__()
+ self.param = hyp_param
+ _defaults = {
+ "temperature": 0.10,
+ "ignore_idx": 255,
+ "ood_idx": 254,
+ "max_views": 512,
+ "proj_dim": 512,
+ "sample_limits": 128,
+ "total_limits": 15240,
+ }
+ _raw = getattr(hyp_param, "contrastive_learning", None) or {}
+ _cfg = {**_defaults, **_raw}
+ self.temperature = _cfg["temperature"]
+ self.ignore_idx = _cfg["ignore_idx"]
+ self.ood_idx = _cfg["ood_idx"]
+ self.max_views = _cfg["max_views"]
+ self.proj_dim = _cfg["proj_dim"]
+ self.sample_limits = _cfg["sample_limits"]
+ self.total_limits = _cfg["total_limits"]
+
+ def select_class_wise_samples(self, embeddings, audio_embeddings, predictions, masks, batch_idx):
+ embedding_sample_list = []
+ label_list = []
+ embedding_sample_list_a = []
+ label_list_a = []
+ class_index_list = torch.unique(masks)
+
+ if len(class_index_list) > 1:
+ for class_index in class_index_list[1:]:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(class_index.unsqueeze(0) + batch_idx * 1e3)
+ else:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(torch.zeros([1], device=embeddings.device) + batch_idx * 1e3)
+
+ sample_limits = self.sample_limits
+ embeddings = embeddings.permute(1, 0)
+ for class_index in class_index_list:
+ hard_indices = embeddings[((masks != predictions) & (masks == class_index)).nonzero()]
+ easy_indices = embeddings[((masks == predictions) & (masks == class_index)).nonzero()]
+
+ hard_indices_num, easy_indices_num = hard_indices.shape[0], easy_indices.shape[0]
+ selective_num_hard = min(sample_limits, hard_indices_num)
+ selective_num_easy = min(sample_limits, easy_indices_num)
+
+ if (selective_num_hard + selective_num_easy) < sample_limits * 2:
+ if selective_num_hard > selective_num_easy:
+ selective_num_hard += sample_limits * 2 - selective_num_easy
+ else:
+ selective_num_easy += sample_limits * 2 - selective_num_hard
+
+ hard_chosen_indices = torch.randperm(hard_indices_num)[:selective_num_hard]
+ embedding_sample_list.append(hard_indices[hard_chosen_indices])
+ label_list.append(masks[hard_chosen_indices] + batch_idx * 1e3)
+
+ easy_chosen_indices = torch.randperm(easy_indices_num)[:selective_num_easy]
+ embedding_sample_list.append(easy_indices[easy_chosen_indices])
+ label_list.append(masks[easy_chosen_indices] + batch_idx * 1e3)
+ return embedding_sample_list, label_list, embedding_sample_list_a, label_list_a
+
+ def forward_audio_visual(self, visual_embeddings, audio_embeddings, masks, predictions):
+ masks = masks.flatten(start_dim=1)
+ predictions = predictions.flatten(start_dim=1)
+ visual_embeddings = visual_embeddings.flatten(start_dim=-2)
+
+ visual_embedding_sample_list = []
+ visual_label_list = []
+ audio_embedding_sample_list = []
+ audio_label_list = []
+
+ for frame_idx in range(masks.shape[0]):
+ current_vision_feats = visual_embeddings[frame_idx]
+ current_masks = masks[frame_idx]
+ current_predictions = predictions[frame_idx]
+ current_audio_feats = audio_embeddings[frame_idx]
+ for layer_idx in range(3):
+ (
+ selected_vision_embeddings,
+ selected_vision_labels,
+ selected_audio_embeddings,
+ selected_audio_labels,
+ ) = self.select_class_wise_samples(
+ current_vision_feats[layer_idx],
+ current_audio_feats[layer_idx],
+ current_predictions,
+ current_masks,
+ 0,
+ )
+ visual_embedding_sample_list += selected_vision_embeddings
+ visual_label_list += selected_vision_labels
+ audio_embedding_sample_list += selected_audio_embeddings
+ audio_label_list += selected_audio_labels
+
+ if len(visual_embedding_sample_list) == 0:
+ return 0.0
+
+ visual_embedding_sample_list = torch.cat(visual_embedding_sample_list, dim=0).squeeze()
+ visual_label_list = torch.cat(visual_label_list, dim=0).unsqueeze(-1)
+ audio_embedding_sample_list = torch.cat(audio_embedding_sample_list, dim=0).squeeze()
+ audio_label_list = torch.cat(audio_label_list).unsqueeze(1)
+
+ total_limits = self.total_limits
+ if visual_embedding_sample_list.shape[0] > total_limits:
+ rand_index = torch.randperm(visual_embedding_sample_list.shape[0])[total_limits]
+ visual_embedding_sample_list = visual_embedding_sample_list[:rand_index]
+ visual_label_list = visual_label_list[:rand_index]
+ loss = self.info_nce(
+ visual_embedding_sample_list,
+ visual_label_list,
+ audio_embedding_sample_list,
+ audio_label_list,
+ )
+ return loss
+
+ def forward(self, embeddings, output_dicts, masks):
+ predictions = torch.cat([i["multistep_pred_masks"] for i in output_dicts])
+ predictions = torch.nn.functional.interpolate(
+ predictions,
+ size=(int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ mode="bilinear",
+ align_corners=False,
+ ).squeeze()
+ masks = torch.nn.functional.interpolate(
+ masks.unsqueeze(1),
+ size=(int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ mode="nearest",
+ ).squeeze()
+ visual_embeddings, audio_embeddings = embeddings
+ visual_embeddings = torch.cat(
+ [
+ torch.cat(
+ [
+ visual_embeddings[0][i].unsqueeze(0),
+ visual_embeddings[1][i].unsqueeze(0),
+ visual_embeddings[2][i].unsqueeze(0),
+ ]
+ ).unsqueeze(0)
+ for i in range(masks.shape[0])
+ ]
+ )
+ audio_embeddings = torch.cat(
+ [
+ torch.cat(
+ [
+ audio_embeddings[0][i].unsqueeze(0),
+ audio_embeddings[1][i].unsqueeze(0),
+ audio_embeddings[2][i].unsqueeze(0),
+ ]
+ ).unsqueeze(0)
+ for i in range(masks.shape[0])
+ ]
+ )
+ return self.forward_audio_visual(
+ visual_embeddings, audio_embeddings.squeeze(), masks, predictions
+ )
+
+ @staticmethod
+ def manipulate_cover_mask(a_label, current_mask):
+ a_label = a_label + 1
+ visual_mask = torch.matmul(a_label, torch.transpose(a_label, 0, 1))
+ current_mask[: visual_mask.shape[1], : visual_mask.shape[0]][visual_mask == 1.0] = 0
+ current_mask[: visual_mask.shape[1], : visual_mask.shape[0]][visual_mask == 4.0] = 0
+ return current_mask
+
+ def info_nce(self, anchors_, a_labels_, contras_, c_labels_):
+ c_labels_ = torch.cat([a_labels_, c_labels_])
+ contras_ = torch.cat([anchors_, contras_])
+ mask = torch.eq(a_labels_, torch.transpose(c_labels_, 0, 1)).float()
+
+ anchor_dot_contrast = torch.div(
+ torch.matmul(anchors_, torch.transpose(contras_, 0, 1)),
+ self.temperature,
+ )
+
+ logits_max, _ = torch.max(anchor_dot_contrast, dim=1, keepdim=True)
+ logits = anchor_dot_contrast - logits_max.detach()
+ neg_mask = 1 - mask
+
+ mask = self.manipulate_cover_mask(a_label=a_labels_, current_mask=mask)
+ mask = mask.fill_diagonal_(0.0)
+
+ neg_logits = torch.exp(logits) * neg_mask
+ neg_logits = neg_logits.sum(1, keepdim=True)
+ exp_logits = torch.exp(logits)
+ log_prob = logits - torch.log(exp_logits + neg_logits)
+
+ mask_pos_pairs = mask.sum(1)
+ mask_pos_pairs = torch.where(mask_pos_pairs < 1e-6, 1, mask_pos_pairs)
+ mean_log_prob_pos = (mask * log_prob).sum(1) / mask_pos_pairs
+ assert not torch.isnan(mean_log_prob_pos).any(), print(torch.isnan(log_prob).any())
+ return -mean_log_prob_pos.mean()
+
diff --git a/avs.code/v1m.code/loss/training/sam2_training_loss.py b/avs.code/v1m.code/loss/training/sam2_training_loss.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6ce1b02c0dbbf5d7e771b314a4a537145e28978
--- /dev/null
+++ b/avs.code/v1m.code/loss/training/sam2_training_loss.py
@@ -0,0 +1,220 @@
+from collections import defaultdict
+from typing import Dict, List
+
+import torch
+import torch.distributed
+import torch.nn as nn
+import torch.nn.functional as F
+
+CORE_LOSS_KEY = "core_loss"
+
+
+def dice_loss(inputs, targets, num_objects, loss_on_multimask=False):
+ inputs = inputs.sigmoid()
+ if loss_on_multimask:
+ assert inputs.dim() == 4 and targets.dim() == 4
+ inputs = inputs.flatten(2)
+ targets = targets.flatten(2)
+ numerator = 2 * (inputs * targets).sum(-1)
+ else:
+ inputs = inputs.flatten(1)
+ numerator = 2 * (inputs * targets).sum(1)
+ denominator = inputs.sum(-1) + targets.sum(-1)
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+def sigmoid_focal_loss(
+ inputs,
+ targets,
+ num_objects,
+ alpha: float = 0.25,
+ gamma: float = 2,
+ loss_on_multimask=False,
+):
+ prob = inputs.sigmoid()
+ ce_loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction="none")
+ p_t = prob * targets + (1 - prob) * (1 - targets)
+ loss = ce_loss * ((1 - p_t) ** gamma)
+
+ if alpha >= 0:
+ alpha_t = alpha * targets + (1 - alpha) * (1 - targets)
+ loss = alpha_t * loss
+
+ if loss_on_multimask:
+ assert loss.dim() == 4
+ return loss.flatten(2).mean(-1) / num_objects
+ return loss.mean(1).sum() / num_objects
+
+
+def iou_loss(
+ inputs, targets, pred_ious, num_objects, loss_on_multimask=False, use_l1_loss=False
+):
+ assert inputs.dim() == 4 and targets.dim() == 4
+ pred_mask = inputs.flatten(2) > 0
+ gt_mask = targets.flatten(2) > 0
+ area_i = torch.sum(pred_mask & gt_mask, dim=-1).float()
+ area_u = torch.sum(pred_mask | gt_mask, dim=-1).float()
+ actual_ious = area_i / torch.clamp(area_u, min=1.0)
+
+ if use_l1_loss:
+ loss = F.l1_loss(pred_ious, actual_ious, reduction="none")
+ else:
+ loss = F.mse_loss(pred_ious, actual_ious, reduction="none")
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+class MultiStepMultiMasksAndIous(nn.Module):
+ def __init__(
+ self,
+ weight_dict,
+ focal_alpha=0.25,
+ focal_gamma=2,
+ supervise_all_iou=False,
+ iou_use_l1_loss=False,
+ pred_obj_scores=False,
+ focal_gamma_obj_score=0.0,
+ focal_alpha_obj_score=-1,
+ gpu_num=1,
+ ):
+ super().__init__()
+ self.weight_dict = weight_dict
+ self.focal_alpha = focal_alpha
+ self.focal_gamma = focal_gamma
+ self.world_size = gpu_num
+ assert "loss_mask" in self.weight_dict
+ assert "loss_dice" in self.weight_dict
+ assert "loss_iou" in self.weight_dict
+ if "loss_class" not in self.weight_dict:
+ self.weight_dict["loss_class"] = 0.0
+
+ self.focal_alpha_obj_score = focal_alpha_obj_score
+ self.focal_gamma_obj_score = focal_gamma_obj_score
+ self.supervise_all_iou = supervise_all_iou
+ self.iou_use_l1_loss = iou_use_l1_loss
+ self.pred_obj_scores = pred_obj_scores
+
+ def forward(self, outs_batch: List[Dict], targets_batch: torch.Tensor):
+ assert len(outs_batch) == len(targets_batch)
+ num_objects = torch.tensor(
+ targets_batch.shape[1], device=targets_batch.device, dtype=torch.float
+ )
+ torch.distributed.all_reduce(num_objects)
+ num_objects = torch.clamp(num_objects / self.world_size, min=1).item()
+
+ losses = defaultdict(int)
+ for outs, targets in zip(outs_batch, targets_batch):
+ cur_losses = self._forward(outs, targets, num_objects)
+ for k, v in cur_losses.items():
+ losses[k] += v
+ return losses
+
+ def _forward(self, outputs: Dict, targets: torch.Tensor, num_objects):
+ target_masks = targets.unsqueeze(1).float()
+ assert target_masks.dim() == 4
+
+ src_masks_list = outputs["multistep_pred_multimasks_high_res"]
+ ious_list = outputs["multistep_pred_ious"]
+ object_score_logits_list = outputs["multistep_object_score_logits"]
+ assert len(src_masks_list) == len(ious_list)
+ assert len(object_score_logits_list) == len(ious_list)
+
+ losses = {"loss_mask": 0, "loss_dice": 0, "loss_iou": 0, "loss_class": 0}
+ for src_masks, ious, object_score_logits in zip(
+ src_masks_list, ious_list, object_score_logits_list
+ ):
+ self._update_losses(
+ losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ )
+ losses[CORE_LOSS_KEY] = self.reduce_loss(losses)
+ return losses
+
+ def _update_losses(
+ self, losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ ):
+ target_masks = target_masks.expand_as(src_masks)
+ loss_multimask = sigmoid_focal_loss(
+ src_masks,
+ target_masks,
+ num_objects,
+ alpha=self.focal_alpha,
+ gamma=self.focal_gamma,
+ loss_on_multimask=True,
+ )
+ loss_multidice = dice_loss(
+ src_masks, target_masks, num_objects, loss_on_multimask=True
+ )
+ if not self.pred_obj_scores:
+ loss_class = torch.tensor(
+ 0.0, dtype=loss_multimask.dtype, device=loss_multimask.device
+ )
+ target_obj = torch.ones(
+ loss_multimask.shape[0],
+ 1,
+ dtype=loss_multimask.dtype,
+ device=loss_multimask.device,
+ )
+ else:
+ target_obj = torch.any((target_masks[:, 0] > 0).flatten(1), dim=-1)[
+ ..., None
+ ].float()
+ loss_class = sigmoid_focal_loss(
+ object_score_logits,
+ target_obj,
+ num_objects,
+ alpha=self.focal_alpha_obj_score,
+ gamma=self.focal_gamma_obj_score,
+ )
+
+ loss_multiiou = iou_loss(
+ src_masks,
+ target_masks,
+ ious,
+ num_objects,
+ loss_on_multimask=True,
+ use_l1_loss=self.iou_use_l1_loss,
+ )
+ assert loss_multimask.dim() == 2
+ assert loss_multidice.dim() == 2
+ assert loss_multiiou.dim() == 2
+ if loss_multimask.size(1) > 1:
+ loss_combo = (
+ loss_multimask * self.weight_dict["loss_mask"]
+ + loss_multidice * self.weight_dict["loss_dice"]
+ )
+ best_loss_inds = torch.argmin(loss_combo, dim=-1)
+ batch_inds = torch.arange(loss_combo.size(0), device=loss_combo.device)
+
+ loss_mask = loss_multimask[batch_inds, best_loss_inds].unsqueeze(1)
+ loss_dice = loss_multidice[batch_inds, best_loss_inds].unsqueeze(1)
+ if self.supervise_all_iou:
+ loss_iou = loss_multiiou.mean(dim=-1).unsqueeze(1)
+ else:
+ loss_iou = loss_multiiou[batch_inds, best_loss_inds].unsqueeze(1)
+ else:
+ loss_mask = loss_multimask
+ loss_dice = loss_multidice
+ loss_iou = loss_multiiou
+
+ loss_mask = loss_mask * target_obj
+ loss_dice = loss_dice * target_obj
+ loss_iou = loss_iou * target_obj
+
+ losses["loss_mask"] += loss_mask.sum()
+ losses["loss_dice"] += loss_dice.sum()
+ losses["loss_iou"] += loss_iou.sum()
+ losses["loss_class"] += loss_class
+
+ def reduce_loss(self, losses):
+ reduced_loss = 0.0
+ for loss_key, weight in self.weight_dict.items():
+ if loss_key not in losses:
+ raise ValueError(f"{type(self)} doesn't compute {loss_key}")
+ if weight != 0:
+ reduced_loss += losses[loss_key] * weight
+ return reduced_loss
+
diff --git a/avs.code/v1m.code/main.py b/avs.code/v1m.code/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..afccee524b130beaeb05360bb9c9e5935e73d51e
--- /dev/null
+++ b/avs.code/v1m.code/main.py
@@ -0,0 +1,166 @@
+"""DDP training entry: AV model with SAM2 frozen, AuralFuser trainable, Hydra transforms and loss."""
+import os
+import torch
+import numpy
+import random
+import argparse
+from easydict import EasyDict
+
+
+def seed_it(seed):
+ """Fix RNGs and cuDNN for reproducible runs (rank offsets seed in DDP)."""
+ os.environ["PYTHONSEED"] = str(seed)
+ random.seed(seed)
+ numpy.random.seed(seed)
+ torch.manual_seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.enabled = True
+ torch.backends.cudnn.deterministic = True
+
+ torch.backends.cudnn.benchmark = False
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ # NCCL process group; world size = GPUs on this node
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus * 1
+ )
+ seed_it(local_rank + hyp_param.seed)
+
+ torch.cuda.set_device(hyp_param.local_rank)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra `configs` (initialize_config_module)
+
+ from hydra import compose
+ from hydra.utils import instantiate
+ from omegaconf import OmegaConf
+
+ # Hydra configs under v1m.code/configs (same pattern as training/sam2_training_config.yaml)
+ transform_config_path = 'training/sam2_training_config.yaml'
+
+ if 'hiera_t' in hyp_param.sam_config_path:
+ hyp_param.image_size = 224
+ hyp_param.image_embedding_size = int(hyp_param.image_size / 16)
+ print('\n upload image size to be {}x{} \n'.format(224, 224), flush=True)
+
+ cfg = compose(config_name=transform_config_path)
+ OmegaConf.resolve(cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(cfg.contrastive_learning, resolve=True)
+
+ arch_h = compose(config_name='auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda(hyp_param.local_rank)
+
+ av_model = torch.nn.parallel.distributed.DistributedDataParallel(av_model, device_ids=[hyp_param.local_rank],
+ find_unused_parameters=True)
+
+ # Optimizer: parameter groups from AuralFuser only (train_* vs VGG backbone)
+ from utils.utils import manipulate_params
+ parameter_list = manipulate_params(hyp_param, av_model.module.aural_fuser)
+ optimiser = torch.optim.AdamW(parameter_list, betas=(0.9, 0.999))
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data.distributed import DistributedSampler
+
+ compose_api = instantiate(cfg.train_transforms, _recursive_=True)[0]
+
+ audio_augmentation = AudioAugmentation(mono=True)
+ train_dataset = AV(split='train', augmentation={"visual": compose_api, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path, data_name=hyp_param.data_name)
+
+
+ visual_augmentation = VisualAugmentation(hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index)
+
+ audio_augmentation = AudioAugmentation(mono=True)
+
+ random_sampler = DistributedSampler(train_dataset, shuffle=True)
+ train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=hyp_param.batch_size,
+ sampler=random_sampler,
+ num_workers=hyp_param.num_workers, drop_last=True)
+
+ test_dataset = AV(split='test', augmentation={"visual": visual_augmentation, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path, data_name=hyp_param.data_name)
+
+ order_sampler = DistributedSampler(test_dataset, shuffle=False)
+ test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=1, sampler=order_sampler,
+ num_workers=hyp_param.num_workers)
+
+
+ criterion = instantiate(cfg.loss, _recursive_=True)['all']
+ from utils.tensorboard import Tensorboard
+ tensorboard = Tensorboard(config=hyp_param) if hyp_param.local_rank <= 0 else None
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+ metrics = {"foreground_iou": ForegroundIoU(), "foreground_f-score": ForegroundFScore(0 if hyp_param.local_rank <= 0 else hyp_param.local_rank)}
+
+ trainer = Trainer(hyp_param, loss=criterion, tensorboard=tensorboard, metrics=metrics)
+
+
+ curr_best = 0. # checkpoint when IoU (iou_select mode) improves
+
+ for epoch in range(hyp_param.epochs):
+ av_model.train()
+ av_model.module.freeze_sam_parameters()
+ random_sampler.set_epoch(epoch)
+ trainer.train(epoch=epoch, dataloader=train_dataloader, model=av_model, optimiser=optimiser)
+
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+ av_model.eval()
+ # Three validation modes: default first mask / IoU-selected mask / IoU + objectness gate
+ curr_results1, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='first_index')
+ curr_results, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='iou_select')
+ curr_results3, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='iou_occ_select')
+ if hyp_param.local_rank <= 0 and curr_results > curr_best:
+ curr_best = curr_results
+ torch.save(av_model.module.aural_fuser.state_dict(), os.path.join(hyp_param.saved_dir, str(curr_results) + ".pth"))
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='PyTorch Training')
+ parser.add_argument('-n', '--nodes', default=1, type=int, metavar='N')
+
+ parser.add_argument("--local_rank", type=int, default=-1,
+ help='multi-process training for DDP')
+
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+
+ parser.add_argument('--batch_size', default=1, type=int)
+
+ parser.add_argument('--epochs', default=80, type=int,
+ help="total epochs that used for the training")
+
+ parser.add_argument('--lr', default=1e-4, type=float,
+ help='Default HEAD Learning rate is same as others, '
+ '*Note: in ddp training, lr will automatically times by n_gpu')
+
+ parser.add_argument('--online', action="store_true",
+ help='switch on for visualization; switch off for debug')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+
+ args = EasyDict({**C, **vars(args)})
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9902'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/avs.code/v1m.code/model/audio/torchvggish/mel_features.py b/avs.code/v1m.code/model/audio/torchvggish/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/avs.code/v1m.code/model/audio/torchvggish/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/avs.code/v1m.code/model/audio/torchvggish/vggish.py b/avs.code/v1m.code/model/audio/torchvggish/vggish.py
new file mode 100644
index 0000000000000000000000000000000000000000..f01c22867c713bfd8713eee5665120b92602761d
--- /dev/null
+++ b/avs.code/v1m.code/model/audio/torchvggish/vggish.py
@@ -0,0 +1,193 @@
+import numpy as np
+import torch
+import torch.nn as nn
+from torch import hub
+
+from . import vggish_input, vggish_params
+
+
+class VGG(nn.Module):
+ def __init__(self, features):
+ super(VGG, self).__init__()
+ self.features = features
+ self.embeddings = nn.Sequential(
+ nn.Linear(512 * 4 * 6, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 128),
+ nn.ReLU(True))
+
+ def forward(self, x):
+ x = self.features(x)
+
+ # Transpose the output from features to
+ # remain compatible with vggish embeddings
+ x = torch.transpose(x, 1, 3)
+ x = torch.transpose(x, 1, 2)
+ x = x.contiguous()
+ x = x.view(x.size(0), -1)
+
+ return self.embeddings(x)
+
+
+class Postprocessor(nn.Module):
+ """Post-processes VGGish embeddings. Returns a torch.Tensor instead of a
+ numpy array in order to preserve the gradient.
+
+ "The initial release of AudioSet included 128-D VGGish embeddings for each
+ segment of AudioSet. These released embeddings were produced by applying
+ a PCA transformation (technically, a whitening transform is included as well)
+ and 8-bit quantization to the raw embedding output from VGGish, in order to
+ stay compatible with the YouTube-8M project which provides visual embeddings
+ in the same format for a large set of YouTube videos. This class implements
+ the same PCA (with whitening) and quantization transformations."
+ """
+
+ def __init__(self):
+ """Constructs a postprocessor."""
+ super(Postprocessor, self).__init__()
+ # Create empty matrix, for user's state_dict to load
+ self.pca_eigen_vectors = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, vggish_params.EMBEDDING_SIZE,),
+ dtype=torch.float,
+ )
+ self.pca_means = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, 1), dtype=torch.float
+ )
+
+ self.pca_eigen_vectors = nn.Parameter(self.pca_eigen_vectors, requires_grad=False)
+ self.pca_means = nn.Parameter(self.pca_means, requires_grad=False)
+
+ def postprocess(self, embeddings_batch):
+ """Applies tensor postprocessing to a batch of embeddings.
+
+ Args:
+ embeddings_batch: An tensor of shape [batch_size, embedding_size]
+ containing output from the embedding layer of VGGish.
+
+ Returns:
+ A tensor of the same shape as the input, containing the PCA-transformed,
+ quantized, and clipped version of the input.
+ """
+ assert len(embeddings_batch.shape) == 2, "Expected 2-d batch, got %r" % (
+ embeddings_batch.shape,
+ )
+ assert (
+ embeddings_batch.shape[1] == vggish_params.EMBEDDING_SIZE
+ ), "Bad batch shape: %r" % (embeddings_batch.shape,)
+
+ # Apply PCA.
+ # - Embeddings come in as [batch_size, embedding_size].
+ # - Transpose to [embedding_size, batch_size].
+ # - Subtract pca_means column vector from each column.
+ # - Premultiply by PCA matrix of shape [output_dims, input_dims]
+ # where both are are equal to embedding_size in our case.
+ # - Transpose result back to [batch_size, embedding_size].
+ pca_applied = torch.mm(self.pca_eigen_vectors, (embeddings_batch.t() - self.pca_means)).t()
+
+ # Quantize by:
+ # - clipping to [min, max] range
+ clipped_embeddings = torch.clamp(
+ pca_applied, vggish_params.QUANTIZE_MIN_VAL, vggish_params.QUANTIZE_MAX_VAL
+ )
+ # - convert to 8-bit in range [0.0, 255.0]
+ quantized_embeddings = torch.round(
+ (clipped_embeddings - vggish_params.QUANTIZE_MIN_VAL)
+ * (
+ 255.0
+ / (vggish_params.QUANTIZE_MAX_VAL - vggish_params.QUANTIZE_MIN_VAL)
+ )
+ )
+ return torch.squeeze(quantized_embeddings)
+
+ def forward(self, x):
+ return self.postprocess(x)
+
+
+def make_layers():
+ layers = []
+ in_channels = 1
+ for v in [64, "M", 128, "M", 256, 256, "M", 512, 512, "M"]:
+ if v == "M":
+ layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
+ else:
+ conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1)
+ layers += [conv2d, nn.ReLU(inplace=True)]
+ in_channels = v
+ return nn.Sequential(*layers)
+
+
+def _vgg():
+ return VGG(make_layers())
+
+
+# def _spectrogram():
+# config = dict(
+# sr=16000,
+# n_fft=400,
+# n_mels=64,
+# hop_length=160,
+# window="hann",
+# center=False,
+# pad_mode="reflect",
+# htk=True,
+# fmin=125,
+# fmax=7500,
+# output_format='Magnitude',
+# # device=device,
+# )
+# return Spectrogram.MelSpectrogram(**config)
+
+
+class VGGish(VGG):
+ def __init__(self, cfg, device=None):
+ super().__init__(make_layers())
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_VGGISH_MODEL_PATH)
+ super().load_state_dict(state_dict)
+ print(f'==> Load pretrained VGGish parameters from {cfg.PRETRAINED_VGGISH_MODEL_PATH}')
+
+ if device is None:
+ device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
+ print("device: ", device)
+ self.device = device
+
+ self.preprocess = cfg.PREPROCESS_AUDIO_TO_LOG_MEL
+ self.postprocess = cfg.POSTPROCESS_LOG_MEL_WITH_PCA
+ if self.postprocess:
+ self.pproc = Postprocessor()
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_PCA_PARAMS_PATH)
+ # TODO: Convert the state_dict to torch
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME], dtype=torch.float
+ )
+ state_dict[vggish_params.PCA_MEANS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_MEANS_NAME].reshape(-1, 1), dtype=torch.float
+ )
+ self.pproc.load_state_dict(state_dict)
+ self.to(self.device)
+
+ def forward(self, x):
+ if self.preprocess:
+ print(">>> pre processing...")
+ x = self._preprocess(x)
+ x = x.to(self.device)
+ x = VGG.forward(self, x)
+ if self.postprocess:
+ print(">>> post processing...")
+ x = self._postprocess(x)
+ return x
+
+ def _preprocess(self, x):
+ # if isinstance(x, np.ndarray):
+ # x = vggish_input.waveform_to_examples(x, fs)
+ if isinstance(x, str):
+ x = vggish_input.wavfile_to_examples(x)
+ else:
+ raise AttributeError
+ return x
+
+ def _postprocess(self, x):
+ return self.pproc(x)
diff --git a/avs.code/v1m.code/model/audio/torchvggish/vggish_input.py b/avs.code/v1m.code/model/audio/torchvggish/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..ede228b1fb630180f1f49244355d373fb3300f03
--- /dev/null
+++ b/avs.code/v1m.code/model/audio/torchvggish/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from . import mel_features
+from . import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/avs.code/v1m.code/model/audio/torchvggish/vggish_params.py b/avs.code/v1m.code/model/audio/torchvggish/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/avs.code/v1m.code/model/audio/torchvggish/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/avs.code/v1m.code/model/aural_fuser.py b/avs.code/v1m.code/model/aural_fuser.py
new file mode 100644
index 0000000000000000000000000000000000000000..924810bfcf8bee5e285cab7d54e477daf254b85a
--- /dev/null
+++ b/avs.code/v1m.code/model/aural_fuser.py
@@ -0,0 +1,567 @@
+import math
+
+import torch
+import torch.nn as nn
+from model.audio.torchvggish import vggish
+from timm.models.layers import DropPath, trunc_normal_
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+
+class ProjectionHead(nn.Module):
+ def __init__(self, dim_in, proj_dim=256, norm_act=nn.BatchNorm2d, conv_layer=nn.Conv2d):
+ super().__init__()
+ self.proj = nn.Sequential(
+ conv_layer(dim_in, proj_dim, kernel_size=1),
+ norm_act(proj_dim),
+ conv_layer(proj_dim, proj_dim, kernel_size=1),
+ )
+
+ def forward(self, x):
+ return torch.nn.functional.normalize(self.proj(x), p=2, dim=1)
+
+class AuralFuser(torch.nn.Module):
+ """Fuses VGGish audio with SAM2 FPN maps via patch embeds, fusion blocks, and projection heads."""
+
+ def __init__(self, hyp_param):
+ self.hyp_param = hyp_param
+ super().__init__()
+ self.vgg = vggish.VGGish(self.hyp_param.audio)
+ if not getattr(self.hyp_param, "train_vggish", False):
+ for p in self.vgg.parameters():
+ p.requires_grad = False
+
+ self.position_encoding_func = PositionEmbeddingSine(num_pos_feats=256, normalize=True, scale=None,
+ temperature=10000)
+
+ # Populated in main.py / inference.py via Hydra compose('auralfuser/architecture.yaml') → hyp_param.aural_fuser
+ if not hasattr(self.hyp_param, "aural_fuser") or self.hyp_param.aural_fuser is None:
+ raise ValueError(
+ "hyp_param.aural_fuser is missing; load it with Hydra compose before constructing AuralFuser."
+ )
+ arch_cfg = self.hyp_param.aural_fuser
+
+ _patch_cfgs = [tuple(i) for i in arch_cfg["patch_cfgs"]]
+ _f_depths = arch_cfg["f_depths"]
+ _block_kw = dict(arch_cfg["block_kw"])
+ _block_kw["norm_layer"] = nn.LayerNorm
+ _one_d_kw = dict(arch_cfg["one_d_kw"])
+ _one_d_kw["norm_layer"] = nn.LayerNorm
+ self.patch_embeds = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=k, stride=s) for k, s in _patch_cfgs
+ )
+
+ self.f_blocks = nn.ModuleList(
+ nn.ModuleList([Block(**_block_kw) for _ in range(n)]) for n in _f_depths
+ )
+
+ self.a_blocks = nn.ModuleList(
+ nn.ModuleList([OneDBlock(**_one_d_kw) for _ in range(3)]) for _ in range(3)
+ )
+
+ self.fusion_modules = nn.ModuleList(
+ AudioVisualFusionModule(in_channels=256, mode='dot') for _ in range(3)
+ )
+ self.smooth_convs = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=1, stride=1, padding=0) for _ in range(2)
+ )
+
+ self.train_proj_v1 = ProjectionHead(dim_in=256, proj_dim=128)
+
+ self.train_proj_a1 = ProjectionHead(dim_in=256, norm_act=nn.BatchNorm1d, conv_layer=nn.Conv1d, proj_dim=128)
+
+ @staticmethod
+ def positionalencoding1d(d_model, length):
+ if d_model % 2 != 0:
+ raise ValueError("Cannot use sin/cos positional encoding with "
+ "odd dim (got dim={:d})".format(d_model))
+ pe = torch.zeros(length, d_model)
+ position = torch.arange(0, length).unsqueeze(1)
+ div_term = torch.exp((torch.arange(0, d_model, 2, dtype=torch.float) *
+ -(math.log(10000.0) / d_model)))
+ pe[:, 0::2] = torch.sin(position.float() * div_term)
+ pe[:, 1::2] = torch.cos(position.float() * div_term)
+
+ return pe
+
+ def forward(self, feature_dicts, spect=None):
+ image_embed_shape = [self.hyp_param.image_embedding_size] * 2
+ H, W = image_embed_shape[0], image_embed_shape[1]
+ d = torch.cat(
+ [
+ self.vgg(spect[:, 0, ...].unsqueeze(1)),
+ self.vgg(spect[:, 1, ...].unsqueeze(1)),
+ ],
+ dim=-1,
+ )
+ length = d.shape[-1]
+ fix_audio_pos = self.positionalencoding1d(length, 1).squeeze().to(spect.device)
+ fpn = list(feature_dicts["backbone_fpn"])
+ patch_embeds = list(self.patch_embeds)
+ f_blocks = list(self.f_blocks)
+ a_blocks = list(self.a_blocks)
+ tpavi = list(self.fusion_modules)
+ smooths = [None, self.smooth_convs[0], self.smooth_convs[1]]
+
+ feats = [None, None, None]
+ d_outputs = []
+
+ for i in range(3):
+ x = fpn[i]
+ x = patch_embeds[i](x)
+ x_pos = self.position_encoding_func(x)
+ x = x.flatten(2).permute(0, 2, 1)
+ x_pos = x_pos.flatten(2).permute(0, 2, 1)
+
+ if i == 0:
+ x = x + x_pos
+ d = d + fix_audio_pos
+ else:
+ x = x + feats[i - 1]
+ x = smooths[i](
+ x.permute(0, 2, 1).reshape(x.shape[0], 256, H, W)
+ ).flatten(2).permute(0, 2, 1)
+ x = x + x_pos
+ d = d + fix_audio_pos
+
+ for blks in f_blocks[i]:
+ x = blks(x, H, W, x_pos)
+ for blks in a_blocks[i]:
+ d = blks(d, fix_audio_pos)
+
+ x = x + x_pos
+ d = d + fix_audio_pos
+ x, d_out, _, _ = tpavi[i](x, H, W, x_pos, d, length)
+ d = d_out
+ feats[i] = x
+ d_outputs.append(d_out)
+
+ a, b, c = feats
+ d1, d2, d3 = d_outputs
+
+ feature_residual = [a, b, c]
+ audio_out = [d1, d2, d3]
+
+ proj_feature_out = [
+ [
+ self.train_proj_v1(a.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ self.train_proj_v1(b.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ self.train_proj_v1(c.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ ],
+ [
+ self.train_proj_a1(d1.unsqueeze(-1)),
+ self.train_proj_a1(d2.unsqueeze(-1)),
+ self.train_proj_a1(d3.unsqueeze(-1)),
+ ],
+ ]
+
+ return feature_residual, audio_out, proj_feature_out
+
+
+class AudioVisualFusionModule(nn.Module):
+ def __init__(self, in_channels, inter_channels=None, mode='dot',
+ dimension=3):
+ super().__init__()
+ assert mode == 'dot'
+ self.mode = mode
+ self.dimension = dimension
+
+ self.in_channels = in_channels
+ self.inter_channels = in_channels // 2
+
+ self.align_channel = nn.Conv1d(256, in_channels, kernel_size=1)
+ self.align_channel_back = nn.Conv1d(in_channels, 128, kernel_size=1)
+
+ self.norm_layer = nn.LayerNorm(in_channels)
+
+ if dimension == 3:
+ conv_nd = nn.Conv3d
+ bn = nn.BatchNorm3d
+ elif dimension == 2:
+ conv_nd = nn.Conv2d
+ bn = nn.BatchNorm2d
+ else:
+ conv_nd = nn.Conv1d
+ bn = nn.BatchNorm1d
+
+ self.g = conv_nd(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.W_z = nn.Sequential(
+ conv_nd(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ bn(self.in_channels)
+ )
+ nn.init.constant_(self.W_z[1].weight, 0)
+ nn.init.constant_(self.W_z[1].bias, 0)
+
+ self.W_z2 = nn.Sequential(
+ nn.Conv1d(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ nn.BatchNorm1d(self.in_channels)
+ )
+ nn.init.constant_(self.W_z2[1].weight, 0)
+ nn.init.constant_(self.W_z2[1].bias, 0)
+ self.norm_layer2 = nn.LayerNorm(self.in_channels)
+
+ self.q_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.k_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.v_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.q_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.k_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.v_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+
+ def forward(self, frame, H_x, W_x, tmp1, audio, tmp2):
+ frame = frame.permute(0, 2, 1)
+ frame = frame.reshape(frame.shape[0], frame.shape[1], H_x, W_x)
+ frame = frame.unsqueeze(2)
+ audio = self.align_channel(audio.unsqueeze(-1))
+
+ batch_size, _ = frame.size(0), frame.size(1)
+ q_frame = self.q_frame(frame).reshape(1, -1, self.inter_channels)
+ k_frame = self.k_frame(frame).reshape(1, -1, self.inter_channels)
+ v_frame = self.v_frame(frame).reshape(1, -1, self.inter_channels)
+ q_audio = self.q_audio(audio).reshape(1, -1, self.inter_channels)
+ k_audio = self.k_audio(audio).reshape(1, -1, self.inter_channels)
+ v_audio = self.v_audio(audio).reshape(1, -1, self.inter_channels)
+ f = torch.matmul(q_frame, k_audio.mT)
+ f_normalise = f / f.size(1)
+
+ frame_attn = torch.matmul(f_normalise, v_audio)
+
+ frame_attn = frame_attn.permute(0, 2, 1).contiguous()
+ frame_attn = frame_attn.view(batch_size, self.inter_channels, *frame.size()[2:])
+ frame_attn = self.W_z(frame_attn)
+ frame = frame_attn + frame
+
+ frame = frame.permute(0, 2, 3, 4, 1)
+ frame = self.norm_layer(frame)
+ frame = frame.permute(0, 4, 1, 2, 3)
+ frame = frame.squeeze().flatten(start_dim=2).permute(0, 2, 1)
+
+ a = torch.matmul(q_audio, k_frame.mT)
+ a_normalise = a / a.size(-1)
+
+ audio_attn = torch.matmul(a_normalise, v_frame)
+ audio_attn = audio_attn.permute(0, 2, 1).contiguous()
+
+ audio_attn = audio_attn.view(batch_size, self.inter_channels).unsqueeze(-1)
+ audio_attn = self.W_z2(audio_attn)
+
+ audio = audio_attn + audio
+
+ audio = self.norm_layer2(audio.squeeze()).squeeze()
+
+ return frame, audio, frame_attn, audio_attn
+
+
+class OneDBlock(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = OneDAttention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = OneDMlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop,
+ linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, _pos):
+ x = x + self.drop_path(self.attn(self.norm1(x)))
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+
+ return x
+
+
+class OneDAttention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = x.unsqueeze(0)
+
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ x = x.squeeze()
+ return x
+
+
+class OneDMlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class Block(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = Attention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W, _pos):
+ x = x + self.drop_path(self.attn(self.norm1(x), H, W))
+ x = x + self.drop_path(self.mlp(self.norm2(x), H, W))
+
+ return x
+
+
+class Attention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ if not self.linear:
+ if self.sr_ratio > 1:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(self.pool(x_)).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ x_ = self.act(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ return x
+
+
+class Mlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.dwconv(x, H, W)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class DWConv(nn.Module):
+ def __init__(self, dim=768):
+ super(DWConv, self).__init__()
+ self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, bias=True, groups=dim)
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ x = x.transpose(1, 2).view(B, C, H, W)
+ x = self.dwconv(x)
+ x = x.flatten(2).transpose(1, 2)
+ return x
diff --git a/avs.code/v1m.code/model/mymodel.py b/avs.code/v1m.code/model/mymodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..35194cd584a4786f713447829592b15c7a366095
--- /dev/null
+++ b/avs.code/v1m.code/model/mymodel.py
@@ -0,0 +1,102 @@
+import logging
+
+from typing import List, Optional, Tuple, Union
+
+import numpy
+import numpy as np
+import torch
+from PIL.Image import Image
+
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+
+from model.visual.sam2.modeling.backbones.hieradet import Hiera
+from model.visual.sam2.modeling.backbones.image_encoder import FpnNeck
+from model.visual.sam2.modeling.backbones.image_encoder import ImageEncoder
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+from model.visual.sam2.modeling.memory_attention import MemoryAttention
+from model.visual.sam2.modeling.memory_attention import MemoryAttentionLayer
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+from model.visual.sam2.modeling.memory_encoder import MemoryEncoder
+from model.visual.sam2.modeling.memory_encoder import MaskDownSampler
+from model.visual.sam2.modeling.memory_encoder import Fuser
+from model.visual.sam2.modeling.memory_encoder import CXBlock
+
+from model.visual.sam2.utils.transforms import SAM2Transforms
+from model.visual.sam2.modeling.backbones.hieradet import do_pool
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+
+class AVmodel(torch.nn.Module):
+ """End-to-end AV segmentation: SAM2 visual backbone + AuralFuser audio-visual fusion + tracking head."""
+
+ def __init__(self, param, mask_threshold=0.0, max_hole_area=0.0, max_sprinkle_area=0.0, ):
+ super().__init__()
+ self.param = param
+ self.mask_threshold = mask_threshold
+ self._bb_feat_sizes = [(int(self.param.image_size / 4), int(self.param.image_size / 4)),
+ (int(self.param.image_size / 8), int(self.param.image_size / 8)),
+ (int(self.param.image_size / 16), int(self.param.image_size / 16))]
+
+ from model.visual.sam2.build_sam import build_sam2_visual_predictor
+ self.v_model = build_sam2_visual_predictor(self.param.sam_config_path, self.param.backbone_weight,
+ apply_postprocessing=True, mode='train')
+ self._transforms = SAM2Transforms(
+ resolution=self.v_model.image_size,
+ mask_threshold=mask_threshold,
+ max_hole_area=max_hole_area,
+ max_sprinkle_area=max_sprinkle_area,
+ )
+ from model.aural_fuser import AuralFuser
+ self.aural_fuser = AuralFuser(hyp_param=self.param)
+
+
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.v_model.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.v_model.num_feature_levels:]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.v_model.num_feature_levels:]
+
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def forward_frame(self, frame_):
+ frame = torch.nn.functional.interpolate(frame_, (self.param.image_size, self.param.image_size),
+ antialias=True, align_corners=False, mode='bilinear')
+ return self.v_model.image_encoder(frame)
+
+ def forward(self, frames, spect, prompts, sam_process=False):
+ """Fuse audio into FPN features, then run SAM2 tracking. `sam_process` is reserved for prompt path."""
+ backbone_feats = self.v_model.forward_image(frames, pre_compute=False)
+ audio_residual_feats = self.aural_fuser(backbone_feats, spect)
+ visual_resfeats, audio_resfeats, proj_feats = audio_residual_feats
+
+ map_res = visual_resfeats[::-1]
+ vec_res = audio_resfeats[::-1]
+
+ av_feats = (map_res, vec_res)
+ backbone_feats = self.v_model.precompute_high_res_features(backbone_feats)
+ backbone_feats = self.v_model.dont_prepare_prompt_inputs(backbone_feats, num_frames=frames.shape[0],
+ cond_frame=int(frames.shape[0]/2) if self.training else 0)
+ outputs = self.v_model.forward_tracking_wo_prompt(backbone_feats, audio_res=av_feats)
+ return outputs, proj_feats
+
+ @property
+ def device(self) -> torch.device:
+ return self.v_model.device
+
+ def freeze_sam_parameters(self):
+ self.v_model.eval()
+ for name, parameter in self.v_model.named_parameters():
+ parameter.requires_grad = False
diff --git a/avs.code/v1m.code/model/visual/sam2/__init__.py b/avs.code/v1m.code/model/visual/sam2/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..46a1cecc55b6fd02a5ce6c66d9cc8a77343156db
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/__init__.py
@@ -0,0 +1,11 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from hydra import initialize_config_module
+from hydra.core.global_hydra import GlobalHydra
+
+if not GlobalHydra.instance().is_initialized():
+ initialize_config_module("configs", version_base="1.2")
diff --git a/avs.code/v1m.code/model/visual/sam2/build_sam.py b/avs.code/v1m.code/model/visual/sam2/build_sam.py
new file mode 100644
index 0000000000000000000000000000000000000000..69f68c2e672d35d925aeb496cac918c1ee913dde
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/build_sam.py
@@ -0,0 +1,171 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+import os
+
+import torch
+from hydra import compose
+from hydra.utils import instantiate
+from omegaconf import OmegaConf
+'''
+import sam2
+
+# Check if the user is running Python from the parent directory of the sam2 repo
+# (i.e. the directory where this repo is cloned into) -- this is not supported since
+# it could shadow the sam2 package and cause issues.
+if os.path.isdir(os.path.join(sam2.__path__[0], "sam2")):
+ # If the user has "sam2/sam2" in their path, they are likey importing the repo itself
+ # as "sam2" rather than importing the "sam2" python package (i.e. "sam2/sam2" directory).
+ # This typically happens because the user is running Python from the parent directory
+ # that contains the sam2 repo they cloned.
+ raise RuntimeError(
+ "You're likely running Python from the parent directory of the sam2 repository "
+ "(i.e. the directory where https://github.com/facebookresearch/sam2 is cloned into). "
+ "This is not supported since the `sam2` Python package could be shadowed by the "
+ "repository name (the repository is also named `sam2` and contains the Python package "
+ "in `sam2/sam2`). Please run Python from another directory (e.g. from the repo dir "
+ "rather than its parent dir, or from your home directory) after installing SAM 2."
+ )
+'''
+
+HF_MODEL_ID_TO_FILENAMES = {
+ "facebook/sam2-hiera-tiny": (
+ "sam2/sam2_hiera_t.yaml",
+ "sam2_hiera_tiny.pt",
+ ),
+ "facebook/sam2-hiera-small": (
+ "sam2/sam2_hiera_s.yaml",
+ "sam2_hiera_small.pt",
+ ),
+ "facebook/sam2-hiera-base-plus": (
+ "sam2/sam2_hiera_b+.yaml",
+ "sam2_hiera_base_plus.pt",
+ ),
+ "facebook/sam2-hiera-large": (
+ "sam2/sam2_hiera_l.yaml",
+ "sam2_hiera_large.pt",
+ ),
+ "facebook/sam2.1-hiera-tiny": (
+ "sam2.1/sam2.1_hiera_t.yaml",
+ "sam2.1_hiera_tiny.pt",
+ ),
+ "facebook/sam2.1-hiera-small": (
+ "sam2.1/sam2.1_hiera_s.yaml",
+ "sam2.1_hiera_small.pt",
+ ),
+ "facebook/sam2.1-hiera-base-plus": (
+ "sam2.1/sam2.1_hiera_b+.yaml",
+ "sam2.1_hiera_base_plus.pt",
+ ),
+ "facebook/sam2.1-hiera-large": (
+ "sam2.1/sam2.1_hiera_l.yaml",
+ "sam2.1_hiera_large.pt",
+ ),
+}
+
+
+def build_sam2(
+ config_file,
+ ckpt_path=None,
+ device="cuda",
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+ # dynamically fall back to multi-mask if the single mask is not stable
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+ ]
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides_extra)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ model = model.to(device)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def build_sam2_visual_predictor(
+ config_file,
+ ckpt_path=None,
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+ # visual
+ hydra_overrides = []
+ # "++model._target_=model.visual.sam2.organised_sam2_train.SAM2Train",
+ # ]
+ # hydra_overrides = [
+ # "++model._target_=sam2.sam2_video_predictor.SAM2VideoPredictor",
+ # ]
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+
+ # dynamically fall back to multi-mask if the single mask is not stable
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+
+ # the sigmoid mask logits on interacted frames with clicks in the memory encoder so that the encoded masks are exactly as what users see from clicking
+ "++model.binarize_mask_from_pts_for_mem_enc=true",
+ # fill small holes in the low-res masks up to `fill_hole_area` (before resizing them to the original video resolution)
+ # "++model.fill_hole_area=8",
+ ]
+ hydra_overrides.extend(hydra_overrides_extra)
+
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def _hf_download(model_id):
+ from huggingface_hub import hf_hub_download
+
+ config_name, checkpoint_name = HF_MODEL_ID_TO_FILENAMES[model_id]
+ ckpt_path = hf_hub_download(repo_id=model_id, filename=checkpoint_name)
+ return config_name, ckpt_path
+
+
+def build_sam2_hf(model_id, **kwargs):
+ config_name, ckpt_path = _hf_download(model_id)
+ return build_sam2(config_file=config_name, ckpt_path=ckpt_path, **kwargs)
+
+
+# def build_sam2_video_predictor_hf(model_id, **kwargs):
+# config_name, ckpt_path = _hf_download(model_id)
+# return build_sam2_video_predictor(
+# config_file=config_name, ckpt_path=ckpt_path, **kwargs
+# )
+
+
+def _load_checkpoint(model, ckpt_path):
+ if ckpt_path is not None:
+ sd = torch.load(ckpt_path, map_location="cpu", weights_only=True)["model"]
+ missing_keys, unexpected_keys = model.load_state_dict(sd)
+ if missing_keys:
+ logging.error(missing_keys)
+ raise RuntimeError()
+ if unexpected_keys:
+ logging.error(unexpected_keys)
+ raise RuntimeError()
+ logging.info("Loaded checkpoint sucessfully")
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/__init__.py b/avs.code/v1m.code/model/visual/sam2/modeling/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/backbones/__init__.py b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/backbones/hieradet.py b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/hieradet.py
new file mode 100644
index 0000000000000000000000000000000000000000..3fb6633c9c752cbefe2fc6043c81fb79bc659465
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/hieradet.py
@@ -0,0 +1,317 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+from functools import partial
+from typing import List, Tuple, Union
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from iopath.common.file_io import g_pathmgr
+
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, MLP
+
+
+def do_pool(x: torch.Tensor, pool: nn.Module, norm: nn.Module = None) -> torch.Tensor:
+ if pool is None:
+ return x
+ # (B, H, W, C) -> (B, C, H, W)
+ x = x.permute(0, 3, 1, 2)
+ x = pool(x)
+ # (B, C, H', W') -> (B, H', W', C)
+ x = x.permute(0, 2, 3, 1)
+ if norm:
+ x = norm(x)
+
+ return x
+
+
+class MultiScaleAttention(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ q_pool: nn.Module = None,
+ ):
+ super().__init__()
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.num_heads = num_heads
+ self.q_pool = q_pool
+ self.qkv = nn.Linear(dim, dim_out * 3)
+ self.proj = nn.Linear(dim_out, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ B, H, W, _ = x.shape
+ # qkv with shape (B, H * W, 3, nHead, C)
+ qkv = self.qkv(x).reshape(B, H * W, 3, self.num_heads, -1)
+ # q, k, v with shape (B, H * W, nheads, C)
+ q, k, v = torch.unbind(qkv, 2)
+
+ # Q pooling (for downsample at stage changes)
+ if self.q_pool:
+ q = do_pool(q.reshape(B, H, W, -1), self.q_pool)
+ H, W = q.shape[1:3] # downsampled shape
+ q = q.reshape(B, H * W, self.num_heads, -1)
+
+ # Torch's SDPA expects [B, nheads, H*W, C] so we transpose
+ x = F.scaled_dot_product_attention(
+ q.transpose(1, 2),
+ k.transpose(1, 2),
+ v.transpose(1, 2),
+ )
+ # Transpose back
+ x = x.transpose(1, 2)
+ x = x.reshape(B, H, W, -1)
+
+ x = self.proj(x)
+
+ return x
+
+
+class MultiScaleBlock(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ mlp_ratio: float = 4.0,
+ drop_path: float = 0.0,
+ norm_layer: Union[nn.Module, str] = "LayerNorm",
+ q_stride: Tuple[int, int] = None,
+ act_layer: nn.Module = nn.GELU,
+ window_size: int = 0,
+ ):
+ super().__init__()
+
+ if isinstance(norm_layer, str):
+ norm_layer = partial(getattr(nn, norm_layer), eps=1e-6)
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.norm1 = norm_layer(dim)
+
+ self.window_size = window_size
+
+ self.pool, self.q_stride = None, q_stride
+ if self.q_stride:
+ self.pool = nn.MaxPool2d(
+ kernel_size=q_stride, stride=q_stride, ceil_mode=False
+ )
+
+ self.attn = MultiScaleAttention(
+ dim,
+ dim_out,
+ num_heads=num_heads,
+ q_pool=self.pool,
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ self.norm2 = norm_layer(dim_out)
+ self.mlp = MLP(
+ dim_out,
+ int(dim_out * mlp_ratio),
+ dim_out,
+ num_layers=2,
+ activation=act_layer,
+ )
+
+ if dim != dim_out:
+ self.proj = nn.Linear(dim, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ shortcut = x # B, H, W, C
+ x = self.norm1(x)
+
+ # Skip connection
+ if self.dim != self.dim_out:
+ shortcut = do_pool(self.proj(x), self.pool)
+
+ # Window partition
+ window_size = self.window_size
+ if window_size > 0:
+ H, W = x.shape[1], x.shape[2]
+ x, pad_hw = window_partition(x, window_size)
+
+ # Window Attention + Q Pooling (if stage change)
+ x = self.attn(x)
+ if self.q_stride:
+ # Shapes have changed due to Q pooling
+ window_size = self.window_size // self.q_stride[0]
+ H, W = shortcut.shape[1:3]
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ pad_hw = (H + pad_h, W + pad_w)
+
+ # Reverse window partition
+ if self.window_size > 0:
+ x = window_unpartition(x, window_size, pad_hw, (H, W))
+
+ x = shortcut + self.drop_path(x)
+ # MLP
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+ return x
+
+
+class Hiera(nn.Module):
+ """
+ Reference: https://arxiv.org/abs/2306.00989
+ """
+
+ def __init__(
+ self,
+ embed_dim: int = 96, # initial embed dim
+ num_heads: int = 1, # initial number of heads
+ drop_path_rate: float = 0.0, # stochastic depth
+ q_pool: int = 3, # number of q_pool stages
+ q_stride: Tuple[int, int] = (2, 2), # downsample stride bet. stages
+ stages: Tuple[int, ...] = (2, 3, 16, 3), # blocks per stage
+ dim_mul: float = 2.0, # dim_mul factor at stage shift
+ head_mul: float = 2.0, # head_mul factor at stage shift
+ window_pos_embed_bkg_spatial_size: Tuple[int, int] = (14, 14),
+ # window size per stage, when not using global att.
+ window_spec: Tuple[int, ...] = (
+ 8,
+ 4,
+ 14,
+ 7,
+ ),
+ # global attn in these blocks
+ global_att_blocks: Tuple[int, ...] = (
+ 12,
+ 16,
+ 20,
+ ),
+ weights_path=None,
+ return_interm_layers=True, # return feats from every stage
+ ):
+ super().__init__()
+
+ assert len(stages) == len(window_spec)
+ self.window_spec = window_spec
+
+ depth = sum(stages)
+ self.q_stride = q_stride
+ self.stage_ends = [sum(stages[:i]) - 1 for i in range(1, len(stages) + 1)]
+ assert 0 <= q_pool <= len(self.stage_ends[:-1])
+ self.q_pool_blocks = [x + 1 for x in self.stage_ends[:-1]][:q_pool]
+ self.return_interm_layers = return_interm_layers
+
+ self.patch_embed = PatchEmbed(
+ embed_dim=embed_dim,
+ )
+ # Which blocks have global att?
+ self.global_att_blocks = global_att_blocks
+
+ # Windowed positional embedding (https://arxiv.org/abs/2311.05613)
+ self.window_pos_embed_bkg_spatial_size = window_pos_embed_bkg_spatial_size
+ self.pos_embed = nn.Parameter(
+ torch.zeros(1, embed_dim, *self.window_pos_embed_bkg_spatial_size)
+ )
+ self.pos_embed_window = nn.Parameter(
+ torch.zeros(1, embed_dim, self.window_spec[0], self.window_spec[0])
+ )
+
+ dpr = [
+ x.item() for x in torch.linspace(0, drop_path_rate, depth)
+ ] # stochastic depth decay rule
+
+ cur_stage = 1
+ self.blocks = nn.ModuleList()
+
+ for i in range(depth):
+ dim_out = embed_dim
+ # lags by a block, so first block of
+ # next stage uses an initial window size
+ # of previous stage and final window size of current stage
+ window_size = self.window_spec[cur_stage - 1]
+
+ if self.global_att_blocks is not None:
+ window_size = 0 if i in self.global_att_blocks else window_size
+
+ if i - 1 in self.stage_ends:
+ dim_out = int(embed_dim * dim_mul)
+ num_heads = int(num_heads * head_mul)
+ cur_stage += 1
+
+ block = MultiScaleBlock(
+ dim=embed_dim,
+ dim_out=dim_out,
+ num_heads=num_heads,
+ drop_path=dpr[i],
+ q_stride=self.q_stride if i in self.q_pool_blocks else None,
+ window_size=window_size,
+ )
+
+ embed_dim = dim_out
+ self.blocks.append(block)
+
+ self.channel_list = (
+ [self.blocks[i].dim_out for i in self.stage_ends[::-1]]
+ if return_interm_layers
+ else [self.blocks[-1].dim_out]
+ )
+
+ if weights_path is not None:
+ with g_pathmgr.open(weights_path, "rb") as f:
+ chkpt = torch.load(f, map_location="cpu")
+ logging.info("loading Hiera", self.load_state_dict(chkpt, strict=False))
+
+ def _get_pos_embed(self, hw: Tuple[int, int]) -> torch.Tensor:
+ h, w = hw
+ window_embed = self.pos_embed_window
+ pos_embed = F.interpolate(self.pos_embed, size=(h, w), mode="bicubic")
+ pos_embed = pos_embed + window_embed.tile(
+ [x // y for x, y in zip(pos_embed.shape, window_embed.shape)]
+ )
+ pos_embed = pos_embed.permute(0, 2, 3, 1)
+ return pos_embed
+
+ def forward(self, x: torch.Tensor) -> List[torch.Tensor]:
+ x = self.patch_embed(x)
+ # x: (B, H, W, C)
+
+ # Add pos embed
+ x = x + self._get_pos_embed(x.shape[1:3])
+
+ outputs = []
+ for i, blk in enumerate(self.blocks):
+ x = blk(x)
+ if (i == self.stage_ends[-1]) or (
+ i in self.stage_ends and self.return_interm_layers
+ ):
+ feats = x.permute(0, 3, 1, 2)
+ outputs.append(feats)
+
+ return outputs
+
+ def get_layer_id(self, layer_name):
+ # https://github.com/microsoft/unilm/blob/master/beit/optim_factory.py#L33
+ num_layers = self.get_num_layers()
+
+ if layer_name.find("rel_pos") != -1:
+ return num_layers + 1
+ elif layer_name.find("pos_embed") != -1:
+ return 0
+ elif layer_name.find("patch_embed") != -1:
+ return 0
+ elif layer_name.find("blocks") != -1:
+ return int(layer_name.split("blocks")[1].split(".")[1]) + 1
+ else:
+ return num_layers + 1
+
+ def get_num_layers(self) -> int:
+ return len(self.blocks)
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/backbones/image_encoder.py b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/image_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..37e9266bc98596e97ca303118c910ed24f6cee2c
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/image_encoder.py
@@ -0,0 +1,134 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+class ImageEncoder(nn.Module):
+ def __init__(
+ self,
+ trunk: nn.Module,
+ neck: nn.Module,
+ scalp: int = 0,
+ ):
+ super().__init__()
+ self.trunk = trunk
+ self.neck = neck
+ self.scalp = scalp
+ assert (
+ self.trunk.channel_list == self.neck.backbone_channel_list
+ ), f"Channel dims of trunk and neck do not match. Trunk: {self.trunk.channel_list}, neck: {self.neck.backbone_channel_list}"
+
+ def forward(self, sample: torch.Tensor):
+ # Forward through backbone
+ features, pos = self.neck(self.trunk(sample))
+ if self.scalp > 0:
+ # Discard the lowest resolution features
+ features, pos = features[: -self.scalp], pos[: -self.scalp]
+
+ src = features[-1]
+ output = {
+ "vision_features": src,
+ "vision_pos_enc": pos,
+ "backbone_fpn": features,
+ }
+ return output
+
+
+class FpnNeck(nn.Module):
+ """
+ A modified variant of Feature Pyramid Network (FPN) neck
+ (we remove output conv and also do bicubic interpolation similar to ViT
+ pos embed interpolation)
+ """
+
+ def __init__(
+ self,
+ position_encoding: nn.Module,
+ d_model: int,
+ backbone_channel_list: List[int],
+ kernel_size: int = 1,
+ stride: int = 1,
+ padding: int = 0,
+ fpn_interp_model: str = "bilinear",
+ fuse_type: str = "sum",
+ fpn_top_down_levels: Optional[List[int]] = None,
+ ):
+ """Initialize the neck
+ :param trunk: the backbone
+ :param position_encoding: the positional encoding to use
+ :param d_model: the dimension of the model
+ :param neck_norm: the normalization to use
+ """
+ super().__init__()
+ self.position_encoding = position_encoding
+ self.convs = nn.ModuleList()
+ self.backbone_channel_list = backbone_channel_list
+ self.d_model = d_model
+ for dim in backbone_channel_list:
+ current = nn.Sequential()
+ current.add_module(
+ "conv",
+ nn.Conv2d(
+ in_channels=dim,
+ out_channels=d_model,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ ),
+ )
+
+ self.convs.append(current)
+ self.fpn_interp_model = fpn_interp_model
+ assert fuse_type in ["sum", "avg"]
+ self.fuse_type = fuse_type
+
+ # levels to have top-down features in its outputs
+ # e.g. if fpn_top_down_levels is [2, 3], then only outputs of level 2 and 3
+ # have top-down propagation, while outputs of level 0 and level 1 have only
+ # lateral features from the same backbone level.
+ if fpn_top_down_levels is None:
+ # default is to have top-down features on all levels
+ fpn_top_down_levels = range(len(self.convs))
+ self.fpn_top_down_levels = list(fpn_top_down_levels)
+
+ def forward(self, xs: List[torch.Tensor]):
+
+ out = [None] * len(self.convs)
+ pos = [None] * len(self.convs)
+ assert len(xs) == len(self.convs)
+ # fpn forward pass
+ # see https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/backbone/fpn.py
+ prev_features = None
+ # forward in top-down order (from low to high resolution)
+ n = len(self.convs) - 1
+ for i in range(n, -1, -1):
+ x = xs[i]
+ lateral_features = self.convs[n - i](x)
+ if i in self.fpn_top_down_levels and prev_features is not None:
+ top_down_features = F.interpolate(
+ prev_features.to(dtype=torch.float32),
+ scale_factor=2.0,
+ mode=self.fpn_interp_model,
+ align_corners=(
+ None if self.fpn_interp_model == "nearest" else False
+ ),
+ antialias=False,
+ )
+ prev_features = lateral_features + top_down_features
+ if self.fuse_type == "avg":
+ prev_features /= 2
+ else:
+ prev_features = lateral_features
+ x_out = prev_features
+ out[i] = x_out
+ pos[i] = self.position_encoding(x_out).to(x_out.dtype)
+
+ return out, pos
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/backbones/utils.py b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..32d55c7545f064de133a5ff0200ba1ece9b504b7
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/backbones/utils.py
@@ -0,0 +1,95 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""Some utilities for backbones, in particular for windowing"""
+
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+def window_partition(x, window_size):
+ """
+ Partition into non-overlapping windows with padding if needed.
+ Args:
+ x (tensor): input tokens with [B, H, W, C].
+ window_size (int): window size.
+ Returns:
+ windows: windows after partition with [B * num_windows, window_size, window_size, C].
+ (Hp, Wp): padded height and width before partition
+ """
+ B, H, W, C = x.shape
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ if pad_h > 0 or pad_w > 0:
+ x = F.pad(x, (0, 0, 0, pad_w, 0, pad_h))
+ Hp, Wp = H + pad_h, W + pad_w
+
+ x = x.view(B, Hp // window_size, window_size, Wp // window_size, window_size, C)
+ windows = (
+ x.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, C)
+ )
+ return windows, (Hp, Wp)
+
+
+def window_unpartition(windows, window_size, pad_hw, hw):
+ """
+ Window unpartition into original sequences and removing padding.
+ Args:
+ x (tensor): input tokens with [B * num_windows, window_size, window_size, C].
+ window_size (int): window size.
+ pad_hw (Tuple): padded height and width (Hp, Wp).
+ hw (Tuple): original height and width (H, W) before padding.
+ Returns:
+ x: unpartitioned sequences with [B, H, W, C].
+ """
+ Hp, Wp = pad_hw
+ H, W = hw
+ B = windows.shape[0] // (Hp * Wp // window_size // window_size)
+ x = windows.view(
+ B, Hp // window_size, Wp // window_size, window_size, window_size, -1
+ )
+ x = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(B, Hp, Wp, -1)
+
+ if Hp > H or Wp > W:
+ x = x[:, :H, :W, :].contiguous()
+ return x
+
+
+class PatchEmbed(nn.Module):
+ """
+ Image to Patch Embedding.
+ """
+
+ def __init__(
+ self,
+ kernel_size: Tuple[int, ...] = (7, 7),
+ stride: Tuple[int, ...] = (4, 4),
+ padding: Tuple[int, ...] = (3, 3),
+ in_chans: int = 3,
+ embed_dim: int = 768,
+ ):
+ """
+ Args:
+ kernel_size (Tuple): kernel size of the projection layer.
+ stride (Tuple): stride of the projection layer.
+ padding (Tuple): padding size of the projection layer.
+ in_chans (int): Number of input image channels.
+ embed_dim (int): embed_dim (int): Patch embedding dimension.
+ """
+ super().__init__()
+ self.proj = nn.Conv2d(
+ in_chans, embed_dim, kernel_size=kernel_size, stride=stride, padding=padding
+ )
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = self.proj(x)
+ # B C H W -> B H W C
+ x = x.permute(0, 2, 3, 1)
+ return x
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/memory_attention.py b/avs.code/v1m.code/model/visual/sam2/modeling/memory_attention.py
new file mode 100644
index 0000000000000000000000000000000000000000..11f4ccb1904f022c18f8a02b9590a66bd57bb8f1
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/memory_attention.py
@@ -0,0 +1,169 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional
+
+import torch
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+
+from model.visual.sam2.modeling.sam2_utils import get_activation_fn, get_clones
+
+
+class MemoryAttentionLayer(nn.Module):
+
+ def __init__(
+ self,
+ activation: str,
+ cross_attention: nn.Module,
+ d_model: int,
+ dim_feedforward: int,
+ dropout: float,
+ pos_enc_at_attn: bool,
+ pos_enc_at_cross_attn_keys: bool,
+ pos_enc_at_cross_attn_queries: bool,
+ self_attention: nn.Module,
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.dim_feedforward = dim_feedforward
+ self.dropout_value = dropout
+ self.self_attn = self_attention
+ self.cross_attn_image = cross_attention
+
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm1 = nn.LayerNorm(d_model)
+ self.norm2 = nn.LayerNorm(d_model)
+ self.norm3 = nn.LayerNorm(d_model)
+ self.dropout1 = nn.Dropout(dropout)
+ self.dropout2 = nn.Dropout(dropout)
+ self.dropout3 = nn.Dropout(dropout)
+
+ self.activation_str = activation
+ self.activation = get_activation_fn(activation)
+
+ # Where to add pos enc
+ self.pos_enc_at_attn = pos_enc_at_attn
+ self.pos_enc_at_cross_attn_queries = pos_enc_at_cross_attn_queries
+ self.pos_enc_at_cross_attn_keys = pos_enc_at_cross_attn_keys
+
+ def _forward_sa(self, tgt, query_pos):
+ # Self-Attention
+ tgt2 = self.norm1(tgt)
+ q = k = tgt2 + query_pos if self.pos_enc_at_attn else tgt2
+ tgt2 = self.self_attn(q, k, v=tgt2)
+ tgt = tgt + self.dropout1(tgt2)
+ return tgt
+
+ def _forward_ca(self, tgt, memory, query_pos, pos, num_k_exclude_rope=0):
+ kwds = {}
+ if num_k_exclude_rope > 0:
+ assert isinstance(self.cross_attn_image, RoPEAttention)
+ kwds = {"num_k_exclude_rope": num_k_exclude_rope}
+
+ # Cross-Attention
+ tgt2 = self.norm2(tgt)
+ tgt2 = self.cross_attn_image(
+ q=tgt2 + query_pos if self.pos_enc_at_cross_attn_queries else tgt2,
+ k=memory + pos if self.pos_enc_at_cross_attn_keys else memory,
+ v=memory,
+ **kwds,
+ )
+ tgt = tgt + self.dropout2(tgt2)
+ return tgt
+
+ def forward(
+ self,
+ tgt,
+ memory,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ num_k_exclude_rope: int = 0,
+ ) -> torch.Tensor:
+
+ # Self-Attn, Cross-Attn
+ tgt = self._forward_sa(tgt, query_pos)
+ tgt = self._forward_ca(tgt, memory, query_pos, pos, num_k_exclude_rope)
+ # MLP
+ tgt2 = self.norm3(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout3(tgt2)
+ return tgt
+
+
+class MemoryAttention(nn.Module):
+ def __init__(
+ self,
+ d_model: int,
+ pos_enc_at_input: bool,
+ layer: nn.Module,
+ num_layers: int,
+ batch_first: bool = True, # Do layers expect batch first input?
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.layers = get_clones(layer, num_layers)
+ self.num_layers = num_layers
+ self.norm = nn.LayerNorm(d_model)
+ self.pos_enc_at_input = pos_enc_at_input
+ self.batch_first = batch_first
+
+ def forward(
+ self,
+ curr: torch.Tensor, # self-attention inputs
+ memory: torch.Tensor, # cross-attention inputs
+ curr_pos: Optional[Tensor] = None, # pos_enc for self-attention inputs
+ memory_pos: Optional[Tensor] = None, # pos_enc for cross-attention inputs
+ num_obj_ptr_tokens: int = 0, # number of object pointer *tokens*
+ ):
+ if isinstance(curr, list):
+ assert isinstance(curr_pos, list)
+ assert len(curr) == len(curr_pos) == 1
+ curr, curr_pos = (
+ curr[0],
+ curr_pos[0],
+ )
+
+ assert (
+ curr.shape[1] == memory.shape[1]
+ ), "Batch size must be the same for curr and memory"
+
+ output = curr
+ if self.pos_enc_at_input and curr_pos is not None:
+ output = output + 0.1 * curr_pos
+
+ if self.batch_first:
+ # Convert to batch first
+ output = output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+ memory = memory.transpose(0, 1)
+ memory_pos = memory_pos.transpose(0, 1)
+
+ for layer in self.layers:
+ kwds = {}
+ if isinstance(layer.cross_attn_image, RoPEAttention):
+ kwds = {"num_k_exclude_rope": num_obj_ptr_tokens}
+
+ output = layer(
+ tgt=output,
+ memory=memory,
+ pos=memory_pos,
+ query_pos=curr_pos,
+ **kwds,
+ )
+ normed_output = self.norm(output)
+
+ if self.batch_first:
+ # Convert back to seq first
+ normed_output = normed_output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+
+ return normed_output
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/memory_encoder.py b/avs.code/v1m.code/model/visual/sam2/modeling/memory_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e1143cc0d5774ff96108203e404f678f14b0a23
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/memory_encoder.py
@@ -0,0 +1,181 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, get_clones, LayerNorm2d
+
+
+class MaskDownSampler(nn.Module):
+ """
+ Progressively downsample a mask by total_stride, each time by stride.
+ Note that LayerNorm is applied per *token*, like in ViT.
+
+ With each downsample (by a factor stride**2), channel capacity increases by the same factor.
+ In the end, we linearly project to embed_dim channels.
+ """
+
+ def __init__(
+ self,
+ embed_dim=256,
+ kernel_size=4,
+ stride=4,
+ padding=0,
+ total_stride=16,
+ activation=nn.GELU,
+ ):
+ super().__init__()
+ num_layers = int(math.log2(total_stride) // math.log2(stride))
+ assert stride**num_layers == total_stride
+ self.encoder = nn.Sequential()
+ mask_in_chans, mask_out_chans = 1, 1
+ for _ in range(num_layers):
+ mask_out_chans = mask_in_chans * (stride**2)
+ self.encoder.append(
+ nn.Conv2d(
+ mask_in_chans,
+ mask_out_chans,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ )
+ )
+ self.encoder.append(LayerNorm2d(mask_out_chans))
+ self.encoder.append(activation())
+ mask_in_chans = mask_out_chans
+
+ self.encoder.append(nn.Conv2d(mask_out_chans, embed_dim, kernel_size=1))
+
+ def forward(self, x):
+ return self.encoder(x)
+
+
+# Lightly adapted from ConvNext (https://github.com/facebookresearch/ConvNeXt)
+class CXBlock(nn.Module):
+ r"""ConvNeXt Block. There are two equivalent implementations:
+ (1) DwConv -> LayerNorm (channels_first) -> 1x1 Conv -> GELU -> 1x1 Conv; all in (N, C, H, W)
+ (2) DwConv -> Permute to (N, H, W, C); LayerNorm (channels_last) -> Linear -> GELU -> Linear; Permute back
+ We use (2) as we find it slightly faster in PyTorch
+
+ Args:
+ dim (int): Number of input channels.
+ drop_path (float): Stochastic depth rate. Default: 0.0
+ layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
+ """
+
+ def __init__(
+ self,
+ dim,
+ kernel_size=7,
+ padding=3,
+ drop_path=0.0,
+ layer_scale_init_value=1e-6,
+ use_dwconv=True,
+ ):
+ super().__init__()
+ self.dwconv = nn.Conv2d(
+ dim,
+ dim,
+ kernel_size=kernel_size,
+ padding=padding,
+ groups=dim if use_dwconv else 1,
+ ) # depthwise conv
+ self.norm = LayerNorm2d(dim, eps=1e-6)
+ self.pwconv1 = nn.Linear(
+ dim, 4 * dim
+ ) # pointwise/1x1 convs, implemented with linear layers
+ self.act = nn.GELU()
+ self.pwconv2 = nn.Linear(4 * dim, dim)
+ self.gamma = (
+ nn.Parameter(layer_scale_init_value * torch.ones((dim)), requires_grad=True)
+ if layer_scale_init_value > 0
+ else None
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ def forward(self, x):
+ input = x
+ x = self.dwconv(x)
+ x = self.norm(x)
+ x = x.permute(0, 2, 3, 1) # (N, C, H, W) -> (N, H, W, C)
+ x = self.pwconv1(x)
+ x = self.act(x)
+ x = self.pwconv2(x)
+ if self.gamma is not None:
+ x = self.gamma * x
+ x = x.permute(0, 3, 1, 2) # (N, H, W, C) -> (N, C, H, W)
+
+ x = input + self.drop_path(x)
+ return x
+
+
+class Fuser(nn.Module):
+ def __init__(self, layer, num_layers, dim=None, input_projection=False):
+ super().__init__()
+ self.proj = nn.Identity()
+ self.layers = get_clones(layer, num_layers)
+
+ if input_projection:
+ assert dim is not None
+ self.proj = nn.Conv2d(dim, dim, kernel_size=1)
+
+ def forward(self, x):
+ # normally x: (N, C, H, W)
+ x = self.proj(x)
+ for layer in self.layers:
+ x = layer(x)
+ return x
+
+
+class MemoryEncoder(nn.Module):
+ def __init__(
+ self,
+ out_dim,
+ mask_downsampler,
+ fuser,
+ position_encoding,
+ in_dim=256, # in_dim of pix_feats
+ ):
+ super().__init__()
+
+ self.mask_downsampler = mask_downsampler
+
+ self.pix_feat_proj = nn.Conv2d(in_dim, in_dim, kernel_size=1)
+ self.fuser = fuser
+ self.position_encoding = position_encoding
+ self.out_proj = nn.Identity()
+ if out_dim != in_dim:
+ self.out_proj = nn.Conv2d(in_dim, out_dim, kernel_size=1)
+
+ def forward(
+ self,
+ pix_feat: torch.Tensor,
+ masks: torch.Tensor,
+ skip_mask_sigmoid: bool = False,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ ## Process masks
+ # sigmoid, so that less domain shift from gt masks which are bool
+ if not skip_mask_sigmoid:
+ masks = F.sigmoid(masks)
+ masks = self.mask_downsampler(masks)
+
+ ## Fuse pix_feats and downsampled masks
+ # in case the visual features are on CPU, cast them to CUDA
+ pix_feat = pix_feat.to(masks.device)
+
+ x = self.pix_feat_proj(pix_feat)
+ x = x + masks
+ x = self.fuser(x)
+ x = self.out_proj(x)
+
+ pos = self.position_encoding(x).to(x.dtype)
+
+ return {"vision_features": x, "vision_pos_enc": [pos]}
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/position_encoding.py b/avs.code/v1m.code/model/visual/sam2/modeling/position_encoding.py
new file mode 100644
index 0000000000000000000000000000000000000000..52ac22674d5d4fdd9e83b6bdf034bff56d04bc0d
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/position_encoding.py
@@ -0,0 +1,221 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Any, Optional, Tuple
+
+import numpy as np
+
+import torch
+from torch import nn
+
+
+class PositionEmbeddingSine(nn.Module):
+ """
+ This is a more standard version of the position embedding, very similar to the one
+ used by the Attention Is All You Need paper, generalized to work on images.
+ """
+
+ def __init__(
+ self,
+ num_pos_feats,
+ temperature: int = 10000,
+ normalize: bool = True,
+ scale: Optional[float] = None,
+ ):
+ super().__init__()
+ assert num_pos_feats % 2 == 0, "Expecting even model width"
+ self.num_pos_feats = num_pos_feats // 2
+ self.temperature = temperature
+ self.normalize = normalize
+ if scale is not None and normalize is False:
+ raise ValueError("normalize should be True if scale is passed")
+ if scale is None:
+ scale = 2 * math.pi
+ self.scale = scale
+
+ self.cache = {}
+
+ def _encode_xy(self, x, y):
+ # The positions are expected to be normalized
+ assert len(x) == len(y) and x.ndim == y.ndim == 1
+ x_embed = x * self.scale
+ y_embed = y * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, None] / dim_t
+ pos_y = y_embed[:, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, 0::2].sin(), pos_x[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ pos_y = torch.stack(
+ (pos_y[:, 0::2].sin(), pos_y[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ return pos_x, pos_y
+
+ @torch.no_grad()
+ def encode_boxes(self, x, y, w, h):
+ pos_x, pos_y = self._encode_xy(x, y)
+ pos = torch.cat((pos_y, pos_x, h[:, None], w[:, None]), dim=1)
+ return pos
+
+ encode = encode_boxes # Backwards compatibility
+
+ @torch.no_grad()
+ def encode_points(self, x, y, labels):
+ (bx, nx), (by, ny), (bl, nl) = x.shape, y.shape, labels.shape
+ assert bx == by and nx == ny and bx == bl and nx == nl
+ pos_x, pos_y = self._encode_xy(x.flatten(), y.flatten())
+ pos_x, pos_y = pos_x.reshape(bx, nx, -1), pos_y.reshape(by, ny, -1)
+ pos = torch.cat((pos_y, pos_x, labels[:, :, None]), dim=2)
+ return pos
+
+ @torch.no_grad()
+ def forward(self, x: torch.Tensor):
+ cache_key = (x.shape[-2], x.shape[-1])
+ if cache_key in self.cache:
+ return self.cache[cache_key][None].repeat(x.shape[0], 1, 1, 1)
+ y_embed = (
+ torch.arange(1, x.shape[-2] + 1, dtype=torch.float32, device=x.device)
+ .view(1, -1, 1)
+ .repeat(x.shape[0], 1, x.shape[-1])
+ )
+ x_embed = (
+ torch.arange(1, x.shape[-1] + 1, dtype=torch.float32, device=x.device)
+ .view(1, 1, -1)
+ .repeat(x.shape[0], x.shape[-2], 1)
+ )
+
+ if self.normalize:
+ eps = 1e-6
+ y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
+ x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, :, :, None] / dim_t
+ pos_y = y_embed[:, :, :, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos_y = torch.stack(
+ (pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
+ self.cache[cache_key] = pos[0]
+ return pos
+
+
+class PositionEmbeddingRandom(nn.Module):
+ """
+ Positional encoding using random spatial frequencies.
+ """
+
+ def __init__(self, num_pos_feats: int = 64, scale: Optional[float] = None) -> None:
+ super().__init__()
+ if scale is None or scale <= 0.0:
+ scale = 1.0
+ self.register_buffer(
+ "positional_encoding_gaussian_matrix",
+ scale * torch.randn((2, num_pos_feats)),
+ )
+
+ def _pe_encoding(self, coords: torch.Tensor) -> torch.Tensor:
+ """Positionally encode points that are normalized to [0,1]."""
+ # assuming coords are in [0, 1]^2 square and have d_1 x ... x d_n x 2 shape
+ coords = 2 * coords - 1
+ coords = coords @ self.positional_encoding_gaussian_matrix
+ coords = 2 * np.pi * coords
+ # outputs d_1 x ... x d_n x C shape
+ return torch.cat([torch.sin(coords), torch.cos(coords)], dim=-1)
+
+ def forward(self, size: Tuple[int, int]) -> torch.Tensor:
+ """Generate positional encoding for a grid of the specified size."""
+ h, w = size
+ device: Any = self.positional_encoding_gaussian_matrix.device
+ grid = torch.ones((h, w), device=device, dtype=torch.float32)
+ y_embed = grid.cumsum(dim=0) - 0.5
+ x_embed = grid.cumsum(dim=1) - 0.5
+ y_embed = y_embed / h
+ x_embed = x_embed / w
+
+ pe = self._pe_encoding(torch.stack([x_embed, y_embed], dim=-1))
+ return pe.permute(2, 0, 1) # C x H x W
+
+ def forward_with_coords(
+ self, coords_input: torch.Tensor, image_size: Tuple[int, int]
+ ) -> torch.Tensor:
+ """Positionally encode points that are not normalized to [0,1]."""
+ coords = coords_input.clone()
+ coords[:, :, 0] = coords[:, :, 0] / image_size[1]
+ coords[:, :, 1] = coords[:, :, 1] / image_size[0]
+ return self._pe_encoding(coords.to(torch.float)) # B x N x C
+
+
+# Rotary Positional Encoding, adapted from:
+# 1. https://github.com/meta-llama/codellama/blob/main/llama/model.py
+# 2. https://github.com/naver-ai/rope-vit
+# 3. https://github.com/lucidrains/rotary-embedding-torch
+
+
+def init_t_xy(end_x: int, end_y: int):
+ t = torch.arange(end_x * end_y, dtype=torch.float32)
+ t_x = (t % end_x).float()
+ t_y = torch.div(t, end_x, rounding_mode="floor").float()
+ return t_x, t_y
+
+
+def compute_axial_cis(dim: int, end_x: int, end_y: int, theta: float = 10000.0):
+ freqs_x = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+ freqs_y = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+
+ t_x, t_y = init_t_xy(end_x, end_y)
+ freqs_x = torch.outer(t_x, freqs_x)
+ freqs_y = torch.outer(t_y, freqs_y)
+ freqs_cis_x = torch.polar(torch.ones_like(freqs_x), freqs_x)
+ freqs_cis_y = torch.polar(torch.ones_like(freqs_y), freqs_y)
+ return torch.cat([freqs_cis_x, freqs_cis_y], dim=-1)
+
+
+def reshape_for_broadcast(freqs_cis: torch.Tensor, x: torch.Tensor):
+ ndim = x.ndim
+ assert 0 <= 1 < ndim
+ assert freqs_cis.shape == (x.shape[-2], x.shape[-1])
+ shape = [d if i >= ndim - 2 else 1 for i, d in enumerate(x.shape)]
+ return freqs_cis.view(*shape)
+
+
+def apply_rotary_enc(
+ xq: torch.Tensor,
+ xk: torch.Tensor,
+ freqs_cis: torch.Tensor,
+ repeat_freqs_k: bool = False,
+):
+ xq_ = torch.view_as_complex(xq.float().reshape(*xq.shape[:-1], -1, 2))
+ xk_ = (
+ torch.view_as_complex(xk.float().reshape(*xk.shape[:-1], -1, 2))
+ if xk.shape[-2] != 0
+ else None
+ )
+ freqs_cis = reshape_for_broadcast(freqs_cis, xq_)
+ xq_out = torch.view_as_real(xq_ * freqs_cis).flatten(3)
+ if xk_ is None:
+ # no keys to rotate, due to dropout
+ return xq_out.type_as(xq).to(xq.device), xk
+ # repeat freqs along seq_len dim to match k seq_len
+ if repeat_freqs_k:
+ r = xk_.shape[-2] // xq_.shape[-2]
+ if freqs_cis.is_cuda:
+ freqs_cis = freqs_cis.repeat(*([1] * (freqs_cis.ndim - 2)), r, 1)
+ else:
+ # torch.repeat on complex numbers may not be supported on non-CUDA devices
+ # (freqs_cis has 4 dims and we repeat on dim 2) so we use expand + flatten
+ freqs_cis = freqs_cis.unsqueeze(2).expand(-1, -1, r, -1, -1).flatten(2, 3)
+ xk_out = torch.view_as_real(xk_ * freqs_cis).flatten(3)
+ return xq_out.type_as(xq).to(xq.device), xk_out.type_as(xk).to(xk.device)
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/sam/__init__.py b/avs.code/v1m.code/model/visual/sam2/modeling/sam/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/sam/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/sam/mask_decoder.py b/avs.code/v1m.code/model/visual/sam2/modeling/sam/mask_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..078f21cc2ec41805eebec677e6e27771335deaa4
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/sam/mask_decoder.py
@@ -0,0 +1,300 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d, MLP
+
+
+class MaskDecoder(nn.Module):
+ def __init__(
+ self,
+ *,
+ transformer_dim: int,
+ transformer: nn.Module,
+ num_multimask_outputs: int = 3,
+ activation: Type[nn.Module] = nn.GELU,
+ iou_head_depth: int = 3,
+ iou_head_hidden_dim: int = 256,
+ use_high_res_features: bool = False,
+ iou_prediction_use_sigmoid=False,
+ dynamic_multimask_via_stability=False,
+ dynamic_multimask_stability_delta=0.05,
+ dynamic_multimask_stability_thresh=0.98,
+ pred_obj_scores: bool = False,
+ pred_obj_scores_mlp: bool = False,
+ use_multimask_token_for_obj_ptr: bool = False,
+ ) -> None:
+ """
+ Predicts masks given an image and prompt embeddings, using a
+ transformer architecture.
+
+ Arguments:
+ transformer_dim (int): the channel dimension of the transformer
+ transformer (nn.Module): the transformer used to predict masks
+ num_multimask_outputs (int): the number of masks to predict
+ when disambiguating masks
+ activation (nn.Module): the type of activation to use when
+ upscaling masks
+ iou_head_depth (int): the depth of the MLP used to predict
+ mask quality
+ iou_head_hidden_dim (int): the hidden dimension of the MLP
+ used to predict mask quality
+ """
+ super().__init__()
+ self.transformer_dim = transformer_dim
+ self.transformer = transformer
+
+ self.num_multimask_outputs = num_multimask_outputs
+
+ self.iou_token = nn.Embedding(1, transformer_dim)
+ self.num_mask_tokens = num_multimask_outputs + 1
+ self.mask_tokens = nn.Embedding(self.num_mask_tokens, transformer_dim)
+
+ self.pred_obj_scores = pred_obj_scores
+ if self.pred_obj_scores:
+ self.obj_score_token = nn.Embedding(1, transformer_dim)
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+
+ self.output_upscaling = nn.Sequential(
+ nn.ConvTranspose2d(
+ transformer_dim, transformer_dim // 4, kernel_size=2, stride=2
+ ),
+ LayerNorm2d(transformer_dim // 4),
+ activation(),
+ nn.ConvTranspose2d(
+ transformer_dim // 4, transformer_dim // 8, kernel_size=2, stride=2
+ ),
+ activation(),
+ )
+ self.use_high_res_features = use_high_res_features
+ if use_high_res_features:
+ self.conv_s0 = nn.Conv2d(
+ transformer_dim, transformer_dim // 8, kernel_size=1, stride=1
+ )
+ self.conv_s1 = nn.Conv2d(
+ transformer_dim, transformer_dim // 4, kernel_size=1, stride=1
+ )
+
+ self.output_hypernetworks_mlps = nn.ModuleList(
+ [
+ MLP(transformer_dim, transformer_dim, transformer_dim // 8, 3)
+ for i in range(self.num_mask_tokens)
+ ]
+ )
+
+ self.iou_prediction_head = MLP(
+ transformer_dim,
+ iou_head_hidden_dim,
+ self.num_mask_tokens,
+ iou_head_depth,
+ sigmoid_output=iou_prediction_use_sigmoid,
+ )
+ if self.pred_obj_scores:
+ self.pred_obj_score_head = nn.Linear(transformer_dim, 1)
+ if pred_obj_scores_mlp:
+ self.pred_obj_score_head = MLP(transformer_dim, transformer_dim, 1, 3)
+
+ # When outputting a single mask, optionally we can dynamically fall back to the best
+ # multimask output token if the single mask output token gives low stability scores.
+ self.dynamic_multimask_via_stability = dynamic_multimask_via_stability
+ self.dynamic_multimask_stability_delta = dynamic_multimask_stability_delta
+ self.dynamic_multimask_stability_thresh = dynamic_multimask_stability_thresh
+
+ def forward(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ multimask_output: bool,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features: Optional[List[torch.Tensor]] = None,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Predict masks given image and prompt embeddings.
+
+ Arguments:
+ image_embeddings (torch.Tensor): the embeddings from the image encoder
+ image_pe (torch.Tensor): positional encoding with the shape of image_embeddings
+ sparse_prompt_embeddings (torch.Tensor): the embeddings of the points and boxes
+ dense_prompt_embeddings (torch.Tensor): the embeddings of the mask inputs
+ multimask_output (bool): Whether to return multiple masks or a single
+ mask.
+
+ Returns:
+ torch.Tensor: batched predicted masks
+ torch.Tensor: batched predictions of mask quality
+ torch.Tensor: batched SAM token for mask output
+ """
+ masks, iou_pred, mask_tokens_out, object_score_logits = self.predict_masks(
+ image_embeddings=image_embeddings,
+ image_pe=image_pe,
+ sparse_prompt_embeddings=sparse_prompt_embeddings,
+ dense_prompt_embeddings=dense_prompt_embeddings,
+ repeat_image=repeat_image,
+ high_res_features=high_res_features,
+ audio_res_features_=audio_res_features
+ )
+
+ # Select the correct mask or masks for output
+ if multimask_output:
+ masks = masks[:, 1:, :, :]
+ iou_pred = iou_pred[:, 1:]
+ elif self.dynamic_multimask_via_stability and not self.training:
+ masks, iou_pred = self._dynamic_multimask_via_stability(masks, iou_pred)
+ else:
+ masks = masks[:, 0:1, :, :]
+ iou_pred = iou_pred[:, 0:1]
+
+
+ if multimask_output and self.use_multimask_token_for_obj_ptr:
+ sam_tokens_out = mask_tokens_out[:, 1:] # [b, 3, c] shape
+ else:
+ # Take the mask output token. Here we *always* use the token for single mask output.
+ # At test time, even if we track after 1-click (and using multimask_output=True),
+ # we still take the single mask token here. The rationale is that we always track
+ # after multiple clicks during training, so the past tokens seen during training
+ # are always the single mask token (and we'll let it be the object-memory token).
+ sam_tokens_out = mask_tokens_out[:, 0:1] # [b, 1, c] shape
+
+ # Prepare output
+ return masks, iou_pred, sam_tokens_out, object_score_logits
+
+ def predict_masks(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features_: Optional[List[torch.Tensor]] = None
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """Predicts masks. See 'forward' for more details."""
+ # Concatenate output tokens
+ s = 0
+ if self.pred_obj_scores:
+ output_tokens = torch.cat(
+ [
+ self.obj_score_token.weight,
+ self.iou_token.weight,
+ self.mask_tokens.weight,
+ ],
+ dim=0,
+ )
+ s = 1
+ else:
+ output_tokens = torch.cat(
+ [self.iou_token.weight, self.mask_tokens.weight], dim=0
+ )
+ output_tokens = output_tokens.unsqueeze(0).expand(
+ sparse_prompt_embeddings.size(0), -1, -1
+ )
+ tokens = torch.cat((output_tokens, sparse_prompt_embeddings), dim=1)
+
+ # Expand per-image data in batch direction to be per-mask
+ if repeat_image:
+ src = torch.repeat_interleave(image_embeddings, tokens.shape[0], dim=0)
+ else:
+ assert image_embeddings.shape[0] == tokens.shape[0]
+ src = image_embeddings
+ src = src + dense_prompt_embeddings
+ assert (
+ image_pe.size(0) == 1
+ ), "image_pe should have size 1 in batch dim (from `get_dense_pe()`)"
+ pos_src = torch.repeat_interleave(image_pe, tokens.shape[0], dim=0)
+ b, c, h, w = src.shape
+
+ # Run the transformer
+ hs, src = self.transformer(src, pos_src, tokens, audio_res_features_)
+ iou_token_out = hs[:, s, :]
+ mask_tokens_out = hs[:, s + 1 : (s + 1 + self.num_mask_tokens), :]
+
+ # Upscale mask embeddings and predict masks using the mask tokens
+ src = src.transpose(1, 2).view(b, c, h, w)
+
+ if not self.use_high_res_features:
+ upscaled_embedding = self.output_upscaling(src)
+ else:
+ dc1, ln1, act1, dc2, act2 = self.output_upscaling
+ feat_s0, feat_s1 = high_res_features
+ upscaled_embedding = act1(ln1(dc1(src) + feat_s1))
+ upscaled_embedding = act2(dc2(upscaled_embedding) + feat_s0)
+
+ hyper_in_list: List[torch.Tensor] = []
+ for i in range(self.num_mask_tokens):
+ hyper_in_list.append(
+ self.output_hypernetworks_mlps[i](mask_tokens_out[:, i, :])
+ )
+ hyper_in = torch.stack(hyper_in_list, dim=1)
+ b, c, h, w = upscaled_embedding.shape
+ masks = (hyper_in @ upscaled_embedding.view(b, c, h * w)).view(b, -1, h, w)
+
+ # Generate mask quality predictions
+ iou_pred = self.iou_prediction_head(iou_token_out)
+ if self.pred_obj_scores:
+ assert s == 1
+ object_score_logits = self.pred_obj_score_head(hs[:, 0, :])
+ else:
+ # Obj scores logits - default to 10.0, i.e. assuming the object is present, sigmoid(10)=1
+ object_score_logits = 10.0 * iou_pred.new_ones(iou_pred.shape[0], 1)
+
+ return masks, iou_pred, mask_tokens_out, object_score_logits
+
+ def _get_stability_scores(self, mask_logits):
+ """
+ Compute stability scores of the mask logits based on the IoU between upper and
+ lower thresholds.
+ """
+ mask_logits = mask_logits.flatten(-2)
+ stability_delta = self.dynamic_multimask_stability_delta
+ area_i = torch.sum(mask_logits > stability_delta, dim=-1).float()
+ area_u = torch.sum(mask_logits > -stability_delta, dim=-1).float()
+ stability_scores = torch.where(area_u > 0, area_i / area_u, 1.0)
+ return stability_scores
+
+ def _dynamic_multimask_via_stability(self, all_mask_logits, all_iou_scores):
+ """
+ When outputting a single mask, if the stability score from the current single-mask
+ output (based on output token 0) falls below a threshold, we instead select from
+ multi-mask outputs (based on output token 1~3) the mask with the highest predicted
+ IoU score. This is intended to ensure a valid mask for both clicking and tracking.
+ """
+ # The best mask from multimask output tokens (1~3)
+ multimask_logits = all_mask_logits[:, 1:, :, :]
+ multimask_iou_scores = all_iou_scores[:, 1:]
+ best_scores_inds = torch.argmax(multimask_iou_scores, dim=-1)
+ batch_inds = torch.arange(
+ multimask_iou_scores.size(0), device=all_iou_scores.device
+ )
+ best_multimask_logits = multimask_logits[batch_inds, best_scores_inds]
+ best_multimask_logits = best_multimask_logits.unsqueeze(1)
+ best_multimask_iou_scores = multimask_iou_scores[batch_inds, best_scores_inds]
+ best_multimask_iou_scores = best_multimask_iou_scores.unsqueeze(1)
+
+ # The mask from singlemask output token 0 and its stability score
+ singlemask_logits = all_mask_logits[:, 0:1, :, :]
+ singlemask_iou_scores = all_iou_scores[:, 0:1]
+ stability_scores = self._get_stability_scores(singlemask_logits)
+ is_stable = stability_scores >= self.dynamic_multimask_stability_thresh
+
+ # Dynamically fall back to best multimask output upon low stability scores.
+ mask_logits_out = torch.where(
+ is_stable[..., None, None].expand_as(singlemask_logits),
+ singlemask_logits,
+ best_multimask_logits,
+ )
+ iou_scores_out = torch.where(
+ is_stable.expand_as(singlemask_iou_scores),
+ singlemask_iou_scores,
+ best_multimask_iou_scores,
+ )
+ return mask_logits_out, iou_scores_out
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/sam/prompt_encoder.py b/avs.code/v1m.code/model/visual/sam2/modeling/sam/prompt_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..038cebcc072ae7c0f3f83061061be3edba04d0f8
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/sam/prompt_encoder.py
@@ -0,0 +1,188 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingRandom
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d
+
+
+class PromptEncoder(nn.Module):
+ def __init__(
+ self,
+ embed_dim: int,
+ image_embedding_size: Tuple[int, int],
+ input_image_size: Tuple[int, int],
+ mask_in_chans: int,
+ activation: Type[nn.Module] = nn.GELU,
+ ) -> None:
+ """
+ Encodes prompts for input to SAM's mask decoder.
+
+ Arguments:
+ embed_dim (int): The prompts' embedding dimension
+ image_embedding_size (tuple(int, int)): The spatial size of the
+ image embedding, as (H, W).
+ input_image_size (int): The padded size of the image as input
+ to the image encoder, as (H, W).
+ mask_in_chans (int): The number of hidden channels used for
+ encoding input masks.
+ activation (nn.Module): The activation to use when encoding
+ input masks.
+ """
+ super().__init__()
+ self.embed_dim = embed_dim
+ self.input_image_size = input_image_size
+ self.image_embedding_size = image_embedding_size
+ self.pe_layer = PositionEmbeddingRandom(embed_dim // 2)
+
+ self.num_point_embeddings: int = 4 # pos/neg point + 2 box corners
+ point_embeddings = [
+ nn.Embedding(1, embed_dim) for i in range(self.num_point_embeddings)
+ ]
+ self.point_embeddings = nn.ModuleList(point_embeddings)
+ self.not_a_point_embed = nn.Embedding(1, embed_dim)
+
+ self.mask_input_size = (
+ 4 * image_embedding_size[0],
+ 4 * image_embedding_size[1],
+ )
+ self.mask_downscaling = nn.Sequential(
+ nn.Conv2d(1, mask_in_chans // 4, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans // 4),
+ activation(),
+ nn.Conv2d(mask_in_chans // 4, mask_in_chans, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans),
+ activation(),
+ nn.Conv2d(mask_in_chans, embed_dim, kernel_size=1),
+ )
+ self.no_mask_embed = nn.Embedding(1, embed_dim)
+
+ def get_dense_pe(self) -> torch.Tensor:
+ """
+ Returns the positional encoding used to encode point prompts,
+ applied to a dense set of points the shape of the image encoding.
+
+ Returns:
+ torch.Tensor: Positional encoding with shape
+ 1x(embed_dim)x(embedding_h)x(embedding_w)
+ """
+ return self.pe_layer(self.image_embedding_size).unsqueeze(0)
+
+ def _embed_points(
+ self,
+ points: torch.Tensor,
+ labels: torch.Tensor,
+ pad: bool,
+ ) -> torch.Tensor:
+ """Embeds point prompts."""
+ points = points + 0.5 # Shift to center of pixel
+ if pad:
+ padding_point = torch.zeros((points.shape[0], 1, 2), device=points.device)
+ padding_label = -torch.ones((labels.shape[0], 1), device=labels.device)
+ points = torch.cat([points, padding_point], dim=1)
+ labels = torch.cat([labels, padding_label], dim=1)
+ point_embedding = self.pe_layer.forward_with_coords(
+ points, self.input_image_size
+ )
+ point_embedding[labels == -1] = 0.0
+ point_embedding[labels == -1] += self.not_a_point_embed.weight
+ point_embedding[labels == 0] += self.point_embeddings[0].weight
+ point_embedding[labels == 1] += self.point_embeddings[1].weight
+ point_embedding[labels == 2] += self.point_embeddings[2].weight
+ point_embedding[labels == 3] += self.point_embeddings[3].weight
+ return point_embedding
+
+ def _embed_boxes(self, boxes: torch.Tensor) -> torch.Tensor:
+ """Embeds box prompts."""
+ boxes = boxes + 0.5 # Shift to center of pixel
+ coords = boxes.reshape(-1, 2, 2)
+ corner_embedding = self.pe_layer.forward_with_coords(
+ coords, self.input_image_size
+ )
+ corner_embedding[:, 0, :] += self.point_embeddings[2].weight
+ corner_embedding[:, 1, :] += self.point_embeddings[3].weight
+ return corner_embedding
+
+ def _embed_masks(self, masks: torch.Tensor) -> torch.Tensor:
+ """Embeds mask inputs."""
+ mask_embedding = self.mask_downscaling(masks)
+ return mask_embedding
+
+ def _get_batch_size(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> int:
+ """
+ Gets the batch size of the output given the batch size of the input prompts.
+ """
+ if points is not None:
+ return points[0].shape[0]
+ elif boxes is not None:
+ return boxes.shape[0]
+ elif masks is not None:
+ return masks.shape[0]
+ else:
+ return 1
+
+ def _get_device(self) -> torch.device:
+ return self.point_embeddings[0].weight.device
+
+ def forward(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Embeds different types of prompts, returning both sparse and dense
+ embeddings.
+
+ Arguments:
+ points (tuple(torch.Tensor, torch.Tensor) or none): point coordinates
+ and labels to embed.
+ boxes (torch.Tensor or none): boxes to embed
+ masks (torch.Tensor or none): masks to embed
+
+ Returns:
+ torch.Tensor: sparse embeddings for the points and boxes, with shape
+ BxNx(embed_dim), where N is determined by the number of input points
+ and boxes.
+ torch.Tensor: dense embeddings for the masks, in the shape
+ Bx(embed_dim)x(embed_H)x(embed_W)
+ """
+ # we only utilise sounding as prompt.
+ bs = self._get_batch_size(points, boxes, masks)
+ sparse_embeddings = torch.empty(
+ (bs, 0, self.embed_dim), device=self._get_device()
+ )
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ if points is not None:
+ coords, labels = points
+ point_embeddings = self._embed_points(coords, labels, pad=(boxes is None))
+ sparse_embeddings = torch.cat([sparse_embeddings, point_embeddings], dim=1)
+ if boxes is not None:
+ box_embeddings = self._embed_boxes(boxes)
+ sparse_embeddings = torch.cat([sparse_embeddings, box_embeddings], dim=1)
+
+ if masks is not None:
+ dense_embeddings = self._embed_masks(masks)
+ else:
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ return sparse_embeddings, dense_embeddings
+
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/sam/transformer.py b/avs.code/v1m.code/model/visual/sam2/modeling/sam/transformer.py
new file mode 100644
index 0000000000000000000000000000000000000000..31916550afeccb66f4427cee7ec4a7a2d66913a5
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/sam/transformer.py
@@ -0,0 +1,367 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import contextlib
+import math
+import warnings
+from functools import partial
+from typing import Tuple, Type
+
+import torch
+import torch.nn.functional as F
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.position_encoding import apply_rotary_enc, compute_axial_cis
+from model.visual.sam2.modeling.sam2_utils import MLP
+from model.visual.sam2.utils.misc import get_sdpa_settings
+
+warnings.simplefilter(action="ignore", category=FutureWarning)
+# Check whether Flash Attention is available (and use it by default)
+OLD_GPU, USE_FLASH_ATTN, MATH_KERNEL_ON = get_sdpa_settings()
+# A fallback setting to allow all available kernels if Flash Attention fails
+ALLOW_ALL_KERNELS = False
+
+
+def sdp_kernel_context(dropout_p):
+ """
+ Get the context for the attention scaled dot-product kernel. We use Flash Attention
+ by default, but fall back to all available kernels if Flash Attention fails.
+ """
+ if ALLOW_ALL_KERNELS:
+ return contextlib.nullcontext()
+
+ return torch.backends.cuda.sdp_kernel(
+ enable_flash=USE_FLASH_ATTN,
+ # if Flash attention kernel is off, then math kernel needs to be enabled
+ enable_math=(OLD_GPU and dropout_p > 0.0) or MATH_KERNEL_ON,
+ enable_mem_efficient=OLD_GPU,
+ )
+
+
+class TwoWayTransformer(nn.Module):
+ def __init__(
+ self,
+ depth: int,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ ) -> None:
+ """
+ A transformer decoder that attends to an input image using
+ queries whose positional embedding is supplied.
+
+ Args:
+ depth (int): number of layers in the transformer
+ embedding_dim (int): the channel dimension for the input embeddings
+ num_heads (int): the number of heads for multihead attention. Must
+ divide embedding_dim
+ mlp_dim (int): the channel dimension internal to the MLP block
+ activation (nn.Module): the activation to use in the MLP block
+ """
+ super().__init__()
+ self.depth = depth
+ self.embedding_dim = embedding_dim
+ self.num_heads = num_heads
+ self.mlp_dim = mlp_dim
+ self.layers = nn.ModuleList()
+
+ for i in range(depth):
+ self.layers.append(
+ TwoWayAttentionBlock(
+ embedding_dim=embedding_dim,
+ num_heads=num_heads,
+ mlp_dim=mlp_dim,
+ activation=activation,
+ attention_downsample_rate=attention_downsample_rate,
+ skip_first_layer_pe=(i == 0),
+ )
+ )
+
+ self.final_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm_final_attn = nn.LayerNorm(embedding_dim)
+
+ def forward(
+ self,
+ image_embedding: Tensor,
+ image_pe: Tensor,
+ point_embedding: Tensor,
+ audio_res: [],
+ ) -> Tuple[Tensor, Tensor]:
+ """
+ Args:
+ image_embedding (torch.Tensor): image to attend to. Should be shape
+ B x embedding_dim x h x w for any h and w.
+ image_pe (torch.Tensor): the positional encoding to add to the image. Must
+ have the same shape as image_embedding.
+ point_embedding (torch.Tensor): the embedding to add to the query points.
+ Must have shape B x N_points x embedding_dim for any N_points.
+
+ Returns:
+ torch.Tensor: the processed point_embedding
+ torch.Tensor: the processed image_embedding
+ """
+ # BxCxHxW -> BxHWxC == B x N_image_tokens x C
+ bs, c, h, w = image_embedding.shape
+ image_embedding = image_embedding.flatten(2).permute(0, 2, 1)
+ image_pe = image_pe.flatten(2).permute(0, 2, 1)
+
+ visual_res, audio_res = audio_res
+
+ # Prepare queries
+ queries = point_embedding
+ keys = image_embedding
+ # Apply transformer blocks and final layernorm
+ for i, layer in enumerate(self.layers):
+ keys = keys + visual_res[i]
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[i]
+ queries, keys = layer(
+ queries=queries,
+ keys=keys,
+ query_pe=point_embedding,
+ key_pe=image_pe,
+ )
+
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[-1]
+ keys = keys + visual_res[-1]
+
+ # Apply the final attention layer from the points to the image
+ q = queries + point_embedding
+ k = keys + image_pe
+ attn_out = self.final_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm_final_attn(queries)
+
+ return queries, keys
+
+
+class TwoWayAttentionBlock(nn.Module):
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int = 2048,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ skip_first_layer_pe: bool = False,
+ ) -> None:
+ """
+ A transformer block with four layers: (1) self-attention of sparse
+ inputs, (2) cross attention of sparse inputs to dense inputs, (3) mlp
+ block on sparse inputs, and (4) cross attention of dense inputs to sparse
+ inputs.
+
+ Arguments:
+ embedding_dim (int): the channel dimension of the embeddings
+ num_heads (int): the number of heads in the attention layers
+ mlp_dim (int): the hidden dimension of the mlp block
+ activation (nn.Module): the activation of the mlp block
+ skip_first_layer_pe (bool): skip the PE on the first layer
+ """
+ super().__init__()
+ self.self_attn = Attention(embedding_dim, num_heads)
+ self.norm1 = nn.LayerNorm(embedding_dim)
+
+ self.cross_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm2 = nn.LayerNorm(embedding_dim)
+
+ self.mlp = MLP(
+ embedding_dim, mlp_dim, embedding_dim, num_layers=2, activation=activation
+ )
+ self.norm3 = nn.LayerNorm(embedding_dim)
+
+ self.norm4 = nn.LayerNorm(embedding_dim)
+ self.cross_attn_image_to_token = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+
+ self.skip_first_layer_pe = skip_first_layer_pe
+
+ def forward(
+ self, queries: Tensor, keys: Tensor, query_pe: Tensor, key_pe: Tensor
+ ) -> Tuple[Tensor, Tensor]:
+ # Self attention block
+ if self.skip_first_layer_pe:
+ queries = self.self_attn(q=queries, k=queries, v=queries)
+ else:
+ q = queries + query_pe
+ attn_out = self.self_attn(q=q, k=q, v=queries)
+ queries = queries + attn_out
+ queries = self.norm1(queries)
+
+ # Cross attention block, tokens attending to image embedding
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm2(queries)
+
+ # MLP block
+ mlp_out = self.mlp(queries)
+ queries = queries + mlp_out
+ queries = self.norm3(queries)
+
+ # Cross attention block, image embedding attending to tokens
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_image_to_token(q=k, k=q, v=queries)
+ keys = keys + attn_out
+ keys = self.norm4(keys)
+
+ return queries, keys
+
+
+class Attention(nn.Module):
+ """
+ An attention layer that allows for downscaling the size of the embedding
+ after projection to queries, keys, and values.
+ """
+
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ downsample_rate: int = 1,
+ dropout: float = 0.0,
+ kv_in_dim: int = None,
+ ) -> None:
+ super().__init__()
+ self.embedding_dim = embedding_dim
+ self.kv_in_dim = kv_in_dim if kv_in_dim is not None else embedding_dim
+ self.internal_dim = embedding_dim // downsample_rate
+ self.num_heads = num_heads
+ assert (
+ self.internal_dim % num_heads == 0
+ ), "num_heads must divide embedding_dim."
+
+ self.q_proj = nn.Linear(embedding_dim, self.internal_dim)
+ self.k_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.v_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.out_proj = nn.Linear(self.internal_dim, embedding_dim)
+
+ self.dropout_p = dropout
+
+ def _separate_heads(self, x: Tensor, num_heads: int) -> Tensor:
+ b, n, c = x.shape
+ x = x.reshape(b, n, num_heads, c // num_heads)
+ return x.transpose(1, 2) # B x N_heads x N_tokens x C_per_head
+
+ def _recombine_heads(self, x: Tensor) -> Tensor:
+ b, n_heads, n_tokens, c_per_head = x.shape
+ x = x.transpose(1, 2)
+ return x.reshape(b, n_tokens, n_heads * c_per_head) # B x N_tokens x C
+
+ def forward(self, q: Tensor, k: Tensor, v: Tensor) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
+
+
+class RoPEAttention(Attention):
+ """Attention with rotary position encoding."""
+
+ def __init__(
+ self,
+ *args,
+ rope_theta=10000.0,
+ # whether to repeat q rope to match k length
+ # this is needed for cross-attention to memories
+ rope_k_repeat=False,
+ feat_sizes=(32, 32), # [w, h] for stride 16 feats at 512 resolution
+ **kwargs,
+ ):
+ super().__init__(*args, **kwargs)
+
+ self.compute_cis = partial(
+ compute_axial_cis, dim=self.internal_dim // self.num_heads, theta=rope_theta
+ )
+ freqs_cis = self.compute_cis(end_x=feat_sizes[0], end_y=feat_sizes[1])
+ self.freqs_cis = freqs_cis
+ self.rope_k_repeat = rope_k_repeat
+
+ def forward(
+ self, q: Tensor, k: Tensor, v: Tensor, num_k_exclude_rope: int = 0
+ ) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ # Apply rotary position encoding
+ w = h = math.sqrt(q.shape[-2])
+ self.freqs_cis = self.freqs_cis.to(q.device)
+ if self.freqs_cis.shape[0] != q.shape[-2]:
+ self.freqs_cis = self.compute_cis(end_x=w, end_y=h).to(q.device)
+ if q.shape[-2] != k.shape[-2]:
+ assert self.rope_k_repeat
+
+ num_k_rope = k.size(-2) - num_k_exclude_rope
+ q, k[:, :, :num_k_rope] = apply_rotary_enc(
+ q,
+ k[:, :, :num_k_rope],
+ freqs_cis=self.freqs_cis,
+ repeat_freqs_k=self.rope_k_repeat,
+ )
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/sam2_base.py b/avs.code/v1m.code/model/visual/sam2/modeling/sam2_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ab890394064172b8719e8a06ee0a47d995fd585
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/sam2_base.py
@@ -0,0 +1,940 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import torch
+import torch.distributed
+import torch.nn.functional as F
+
+from torch.nn.init import trunc_normal_
+
+from model.visual.sam2.modeling.sam.mask_decoder import MaskDecoder
+from model.visual.sam2.modeling.sam.prompt_encoder import PromptEncoder
+from model.visual.sam2.modeling.sam.transformer import TwoWayTransformer
+from model.visual.sam2.modeling.sam2_utils import get_1d_sine_pe, MLP, select_closest_cond_frames
+
+# a large negative value as a placeholder score for missing objects
+NO_OBJ_SCORE = -1024.0
+
+
+class SAM2Base(torch.nn.Module):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention,
+ memory_encoder,
+ num_maskmem=7, # default 1 input frame + 6 previous frames
+ image_size=512,
+ backbone_stride=16, # stride of the image backbone output
+ sigmoid_scale_for_mem_enc=1.0, # scale factor for mask sigmoid prob
+ sigmoid_bias_for_mem_enc=0.0, # bias factor for mask sigmoid prob
+ # During evaluation, whether to binarize the sigmoid mask logits on interacted frames with clicks
+ binarize_mask_from_pts_for_mem_enc=False,
+ use_mask_input_as_output_without_sam=False, # on frames with mask input, whether to directly output the input mask without using a SAM prompt encoder + mask decoder
+ # The maximum number of conditioning frames to participate in the memory attention (-1 means no limit; if there are more conditioning frames than this limit,
+ # we only cross-attend to the temporally closest `max_cond_frames_in_attn` conditioning frames in the encoder when tracking each frame). This gives the model
+ # a temporal locality when handling a large number of annotated frames (since closer frames should be more important) and also avoids GPU OOM.
+ max_cond_frames_in_attn=-1,
+ # on the first frame, whether to directly add the no-memory embedding to the image feature
+ # (instead of using the transformer encoder)
+ directly_add_no_mem_embed=False,
+ # whether to use high-resolution feature maps in the SAM mask decoder
+ use_high_res_features_in_sam=False,
+ # whether to output multiple (3) masks for the first click on initial conditioning frames
+ multimask_output_in_sam=False,
+ # the minimum and maximum number of clicks to use multimask_output_in_sam (only relevant when `multimask_output_in_sam=True`;
+ # default is 1 for both, meaning that only the first click gives multimask output; also note that a box counts as two points)
+ multimask_min_pt_num=1,
+ multimask_max_pt_num=1,
+ # whether to also use multimask output for tracking (not just for the first click on initial conditioning frames; only relevant when `multimask_output_in_sam=True`)
+ multimask_output_for_tracking=False,
+ # Whether to use multimask tokens for obj ptr; Only relevant when both
+ # use_obj_ptrs_in_encoder=True and multimask_output_for_tracking=True
+ use_multimask_token_for_obj_ptr: bool = False,
+ # whether to use sigmoid to restrict ious prediction to [0-1]
+ iou_prediction_use_sigmoid=False,
+ # The memory bank's temporal stride during evaluation (i.e. the `r` parameter in XMem and Cutie; XMem and Cutie use r=5).
+ # For r>1, the (self.num_maskmem - 1) non-conditioning memory frames consist of
+ # (self.num_maskmem - 2) nearest frames from every r-th frames, plus the last frame.
+ memory_temporal_stride_for_eval=1,
+ # whether to apply non-overlapping constraints on the object masks in the memory encoder during evaluation (to avoid/alleviate superposing masks)
+ non_overlap_masks_for_mem_enc=False,
+ # whether to cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder=False,
+ # the maximum number of object pointers from other frames in encoder cross attention (only relevant when `use_obj_ptrs_in_encoder=True`)
+ max_obj_ptrs_in_encoder=16,
+ # whether to add temporal positional encoding to the object pointers in the encoder (only relevant when `use_obj_ptrs_in_encoder=True`)
+ add_tpos_enc_to_obj_ptrs=True,
+ # whether to add an extra linear projection layer for the temporal positional encoding in the object pointers to avoid potential interference
+ # with spatial positional encoding (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ proj_tpos_enc_in_obj_ptrs=False,
+ # whether to use signed distance (instead of unsigned absolute distance) in the temporal positional encoding in the object pointers
+ # (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ use_signed_tpos_enc_to_obj_ptrs=False,
+ # whether to only attend to object pointers in the past (before the current frame) in the encoder during evaluation
+ # (only relevant when `use_obj_ptrs_in_encoder=True`; this might avoid pointer information too far in the future to distract the initial tracking)
+ only_obj_ptrs_in_the_past_for_eval=False,
+ # Whether to predict if there is an object in the frame
+ pred_obj_scores: bool = False,
+ # Whether to use an MLP to predict object scores
+ pred_obj_scores_mlp: bool = False,
+ # Only relevant if pred_obj_scores=True and use_obj_ptrs_in_encoder=True;
+ # Whether to have a fixed no obj pointer when there is no object present
+ # or to use it as an additive embedding with obj_ptr produced by decoder
+ fixed_no_obj_ptr: bool = False,
+ # Soft no object, i.e. mix in no_obj_ptr softly,
+ # hope to make recovery easier if there is a mistake and mitigate accumulation of errors
+ soft_no_obj_ptr: bool = False,
+ use_mlp_for_obj_ptr_proj: bool = False,
+ # add no obj embedding to spatial frames
+ no_obj_embed_spatial: bool = False,
+ # extra arguments used to construct the SAM mask decoder; if not None, it should be a dict of kwargs to be passed into `MaskDecoder` class.
+ sam_mask_decoder_extra_args=None,
+ compile_image_encoder: bool = False,
+ ):
+ super().__init__()
+
+ # Part 1: the image backbone
+ self.image_encoder = image_encoder
+ # Use level 0, 1, 2 for high-res setting, or just level 2 for the default setting
+ self.use_high_res_features_in_sam = use_high_res_features_in_sam
+ self.num_feature_levels = 3 if use_high_res_features_in_sam else 1
+ self.use_obj_ptrs_in_encoder = use_obj_ptrs_in_encoder
+ self.max_obj_ptrs_in_encoder = max_obj_ptrs_in_encoder
+ if use_obj_ptrs_in_encoder:
+ # A conv layer to downsample the mask prompt to stride 4 (the same stride as
+ # low-res SAM mask logits) and to change its scales from 0~1 to SAM logit scale,
+ # so that it can be fed into the SAM mask decoder to generate a pointer.
+ self.mask_downsample = torch.nn.Conv2d(1, 1, kernel_size=4, stride=4)
+ self.add_tpos_enc_to_obj_ptrs = add_tpos_enc_to_obj_ptrs
+ if proj_tpos_enc_in_obj_ptrs:
+ assert add_tpos_enc_to_obj_ptrs # these options need to be used together
+ self.proj_tpos_enc_in_obj_ptrs = proj_tpos_enc_in_obj_ptrs
+ self.use_signed_tpos_enc_to_obj_ptrs = use_signed_tpos_enc_to_obj_ptrs
+ self.only_obj_ptrs_in_the_past_for_eval = only_obj_ptrs_in_the_past_for_eval
+
+ # Part 2: memory attention to condition current frame's visual features
+ # with memories (and obj ptrs) from past frames
+ self.memory_attention = memory_attention
+
+ #### this is for Version 2.0
+ # self.hidden_dim = memory_attention.d_model
+ #### this is for Version 2.1
+ # self.hidden_dim = image_encoder.neck.d_model
+ self.hidden_dim = 256 # well, it is always 256 anyway.
+
+ # Part 3: memory encoder for the previous frame's outputs
+ self.memory_encoder = memory_encoder
+ self.mem_dim = self.hidden_dim
+ if hasattr(self.memory_encoder, "out_proj") and hasattr(
+ self.memory_encoder.out_proj, "weight"
+ ):
+ # if there is compression of memories along channel dim
+ self.mem_dim = self.memory_encoder.out_proj.weight.shape[0]
+ self.num_maskmem = num_maskmem # Number of memories accessible
+ # Temporal encoding of the memories
+ self.maskmem_tpos_enc = torch.nn.Parameter(
+ torch.zeros(num_maskmem, 1, 1, self.mem_dim)
+ )
+ trunc_normal_(self.maskmem_tpos_enc, std=0.02)
+ # a single token to indicate no memory embedding from previous frames
+ self.no_mem_embed = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ self.no_mem_pos_enc = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ trunc_normal_(self.no_mem_embed, std=0.02)
+ trunc_normal_(self.no_mem_pos_enc, std=0.02)
+ self.directly_add_no_mem_embed = directly_add_no_mem_embed
+ # Apply sigmoid to the output raw mask logits (to turn them from
+ # range (-inf, +inf) to range (0, 1)) before feeding them into the memory encoder
+ self.sigmoid_scale_for_mem_enc = sigmoid_scale_for_mem_enc
+ self.sigmoid_bias_for_mem_enc = sigmoid_bias_for_mem_enc
+ self.binarize_mask_from_pts_for_mem_enc = binarize_mask_from_pts_for_mem_enc
+ self.non_overlap_masks_for_mem_enc = non_overlap_masks_for_mem_enc
+ self.memory_temporal_stride_for_eval = memory_temporal_stride_for_eval
+ # On frames with mask input, whether to directly output the input mask without
+ # using a SAM prompt encoder + mask decoder
+ self.use_mask_input_as_output_without_sam = use_mask_input_as_output_without_sam
+ self.multimask_output_in_sam = multimask_output_in_sam
+ self.multimask_min_pt_num = multimask_min_pt_num
+ self.multimask_max_pt_num = multimask_max_pt_num
+ self.multimask_output_for_tracking = multimask_output_for_tracking
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+ self.iou_prediction_use_sigmoid = iou_prediction_use_sigmoid
+
+ # Part 4: SAM-style prompt encoder (for both mask and point inputs)
+ # and SAM-style mask decoder for the final mask output
+ self.image_size = image_size
+ self.backbone_stride = backbone_stride
+ self.sam_mask_decoder_extra_args = sam_mask_decoder_extra_args
+ self.pred_obj_scores = pred_obj_scores
+ self.pred_obj_scores_mlp = pred_obj_scores_mlp
+ self.fixed_no_obj_ptr = fixed_no_obj_ptr
+ self.soft_no_obj_ptr = soft_no_obj_ptr
+ if self.fixed_no_obj_ptr:
+ assert self.pred_obj_scores
+ assert self.use_obj_ptrs_in_encoder
+ if self.pred_obj_scores and self.use_obj_ptrs_in_encoder:
+ self.no_obj_ptr = torch.nn.Parameter(torch.zeros(1, self.hidden_dim))
+ trunc_normal_(self.no_obj_ptr, std=0.02)
+ self.use_mlp_for_obj_ptr_proj = use_mlp_for_obj_ptr_proj
+ self.no_obj_embed_spatial = None
+ if no_obj_embed_spatial:
+ self.no_obj_embed_spatial = torch.nn.Parameter(torch.zeros(1, self.mem_dim))
+ trunc_normal_(self.no_obj_embed_spatial, std=0.02)
+
+ self._build_sam_heads()
+ self.max_cond_frames_in_attn = max_cond_frames_in_attn
+
+ # Model compilation
+ if compile_image_encoder:
+ # Compile the forward function (not the full module) to allow loading checkpoints.
+ print(
+ "Image encoder compilation is enabled. First forward pass will be slow."
+ )
+ self.image_encoder.forward = torch.compile(
+ self.image_encoder.forward,
+ mode="max-autotune",
+ fullgraph=True,
+ dynamic=False,
+ )
+
+ ### we fix the use_mask_input_as_output_without_sam to be turned off.
+ self.use_mask_input_as_output_without_sam = False
+
+
+ @property
+ def device(self):
+ return next(self.parameters()).device
+
+ def forward(self, *args, **kwargs):
+ raise NotImplementedError(
+ "Please use the corresponding methods in SAM2VideoPredictor for inference or SAM2Train for training/fine-tuning"
+ "See notebooks/video_predictor_example.ipynb for an inference example."
+ )
+
+ def _build_sam_heads(self):
+ """Build SAM-style prompt encoder and mask decoder."""
+ self.sam_prompt_embed_dim = self.hidden_dim
+ self.sam_image_embedding_size = self.image_size // self.backbone_stride
+
+ # build PromptEncoder and MaskDecoder from SAM
+ # (their hyperparameters like `mask_in_chans=16` are from SAM code)
+ self.sam_prompt_encoder = PromptEncoder(
+ embed_dim=self.sam_prompt_embed_dim,
+ image_embedding_size=(
+ self.sam_image_embedding_size,
+ self.sam_image_embedding_size,
+ ),
+ input_image_size=(self.image_size, self.image_size),
+ mask_in_chans=16,
+ )
+ self.sam_mask_decoder = MaskDecoder(
+ num_multimask_outputs=3,
+ transformer=TwoWayTransformer(
+ depth=2,
+ embedding_dim=self.sam_prompt_embed_dim,
+ mlp_dim=2048,
+ num_heads=8,
+ ),
+ transformer_dim=self.sam_prompt_embed_dim,
+ iou_head_depth=3,
+ iou_head_hidden_dim=256,
+ use_high_res_features=self.use_high_res_features_in_sam,
+ iou_prediction_use_sigmoid=self.iou_prediction_use_sigmoid,
+ pred_obj_scores=self.pred_obj_scores,
+ pred_obj_scores_mlp=self.pred_obj_scores_mlp,
+ use_multimask_token_for_obj_ptr=self.use_multimask_token_for_obj_ptr,
+ **(self.sam_mask_decoder_extra_args or {}),
+ )
+ if self.use_obj_ptrs_in_encoder:
+ # a linear projection on SAM output tokens to turn them into object pointers
+ self.obj_ptr_proj = torch.nn.Linear(self.hidden_dim, self.hidden_dim)
+ if self.use_mlp_for_obj_ptr_proj:
+ self.obj_ptr_proj = MLP(
+ self.hidden_dim, self.hidden_dim, self.hidden_dim, 3
+ )
+ else:
+ self.obj_ptr_proj = torch.nn.Identity()
+ if self.proj_tpos_enc_in_obj_ptrs:
+ # a linear projection on temporal positional encoding in object pointers to
+ # avoid potential interference with spatial positional encoding
+ self.obj_ptr_tpos_proj = torch.nn.Linear(self.hidden_dim, self.mem_dim)
+ else:
+ self.obj_ptr_tpos_proj = torch.nn.Identity()
+
+ def _forward_sam_heads(
+ self,
+ backbone_features,
+ point_inputs=None,
+ mask_inputs=None,
+ high_res_features=None,
+ multimask_output=False,
+ audio_res=None
+ ):
+ """
+ Forward SAM prompt encoders and mask heads.
+
+ Inputs:
+ - backbone_features: image features of [B, C, H, W] shape
+ - point_inputs: a dictionary with "point_coords" and "point_labels", where
+ 1) "point_coords" has [B, P, 2] shape and float32 dtype and contains the
+ absolute pixel-unit coordinate in (x, y) format of the P input points
+ 2) "point_labels" has shape [B, P] and int32 dtype, where 1 means
+ positive clicks, 0 means negative clicks, and -1 means padding
+ - mask_inputs: a mask of [B, 1, H*16, W*16] shape, float or bool, with the
+ same spatial size as the image.
+ - high_res_features: either 1) None or 2) or a list of length 2 containing
+ two feature maps of [B, C, 4*H, 4*W] and [B, C, 2*H, 2*W] shapes respectively,
+ which will be used as high-resolution feature maps for SAM decoder.
+ - multimask_output: if it's True, we output 3 candidate masks and their 3
+ corresponding IoU estimates, and if it's False, we output only 1 mask and
+ its corresponding IoU estimate.
+
+ Outputs:
+ - low_res_multimasks: [B, M, H*4, W*4] shape (where M = 3 if
+ `multimask_output=True` and M = 1 if `multimask_output=False`), the SAM
+ output mask logits (before sigmoid) for the low-resolution masks, with 4x
+ the resolution (1/4 stride) of the input backbone_features.
+ - high_res_multimasks: [B, M, H*16, W*16] shape (where M = 3
+ if `multimask_output=True` and M = 1 if `multimask_output=False`),
+ upsampled from the low-resolution masks, with shape size as the image
+ (stride is 1 pixel).
+ - ious, [B, M] shape, where (where M = 3 if `multimask_output=True` and M = 1
+ if `multimask_output=False`), the estimated IoU of each output mask.
+ - low_res_masks: [B, 1, H*4, W*4] shape, the best mask in `low_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `low_res_multimasks`.
+ - high_res_masks: [B, 1, H*16, W*16] shape, the best mask in `high_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `high_res_multimasks`.
+ - obj_ptr: [B, C] shape, the object pointer vector for the output mask, extracted
+ based on the output token from the SAM mask decoder.
+ """
+ B = backbone_features.size(0)
+ device = backbone_features.device
+ assert backbone_features.size(1) == self.sam_prompt_embed_dim
+ assert backbone_features.size(2) == self.sam_image_embedding_size
+ assert backbone_features.size(3) == self.sam_image_embedding_size
+
+ '''
+ # a) Handle point prompts
+ if point_inputs is not None:
+ sam_point_coords = point_inputs["point_coords"]
+ sam_point_labels = point_inputs["point_labels"]
+ assert sam_point_coords.size(0) == B and sam_point_labels.size(0) == B
+ raise NotImplementedError
+ else:
+ # If no points are provide, pad with an empty point (with label -1)
+ sam_point_coords = torch.zeros(B, 1, 2, device=device)
+ sam_point_labels = -torch.ones(B, 1, dtype=torch.int32, device=device)
+
+ # b) Handle mask prompts
+ if mask_inputs is not None:
+ # If mask_inputs is provided, downsize it into low-res mask input if needed
+ # and feed it as a dense mask prompt into the SAM mask encoder
+ assert len(mask_inputs.shape) == 4 and mask_inputs.shape[:2] == (B, 1)
+ if mask_inputs.shape[-2:] != self.sam_prompt_encoder.mask_input_size:
+ sam_mask_prompt = F.interpolate(
+ mask_inputs.float(),
+ size=self.sam_prompt_encoder.mask_input_size,
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ else:
+ sam_mask_prompt = mask_inputs
+ raise NotImplementedError
+ else:
+ # Otherwise, simply feed None (and SAM's prompt encoder will add
+ # a learned `no_mask_embed` to indicate no mask input in this case).
+ sam_mask_prompt = None
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=(sam_point_coords, sam_point_labels),
+ boxes=None,
+ masks=sam_mask_prompt,
+ )
+ '''
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=None,
+ boxes=None,
+ masks=None,
+ )
+
+ (
+ low_res_multimasks,
+ ious,
+ sam_output_tokens,
+ object_score_logits,
+ ) = self.sam_mask_decoder(
+ image_embeddings=backbone_features,
+ image_pe=self.sam_prompt_encoder.get_dense_pe(),
+ sparse_prompt_embeddings=sparse_embeddings,
+ dense_prompt_embeddings=dense_embeddings,
+ multimask_output=multimask_output,
+ repeat_image=False, # the image is already batched
+ high_res_features=high_res_features,
+ audio_res_features=audio_res
+ )
+ '''
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+
+ # Mask used for spatial memories is always a *hard* choice between obj and no obj,
+ # consistent with the actual mask prediction
+ low_res_multimasks = torch.where(
+ is_obj_appearing[:, None, None],
+ low_res_multimasks,
+ NO_OBJ_SCORE,
+ )
+ '''
+ # convert masks from possibly bfloat16 (or float16) to float32
+ # (older PyTorch versions before 2.1 don't support `interpolate` on bf16)
+ low_res_multimasks = low_res_multimasks.float()
+ high_res_multimasks = F.interpolate(
+ low_res_multimasks,
+ size=(self.image_size, self.image_size),
+ mode="bilinear",
+ align_corners=False,
+ )
+ sam_output_token = sam_output_tokens[:, 0]
+ if multimask_output:
+ # comment this line temporarily.
+ # take the best mask prediction (with the highest IoU estimation)
+ best_iou_inds = torch.argmax(ious, dim=-1)
+ batch_inds = torch.arange(B, device=device)
+ low_res_masks = low_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ high_res_masks = high_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ if sam_output_tokens.size(1) > 1:
+ sam_output_token = sam_output_tokens[batch_inds, best_iou_inds]
+ else:
+ low_res_masks, high_res_masks = low_res_multimasks, high_res_multimasks
+
+ # Extract object pointer from the SAM output token (with occlusion handling)
+ obj_ptr = self.obj_ptr_proj(sam_output_token)
+
+ # don't train occlusion at the moment, command temporarily.
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+ # Allow *soft* no obj ptr, unlike for masks
+ if self.soft_no_obj_ptr:
+ lambda_is_obj_appearing = object_score_logits.sigmoid()
+ else:
+ lambda_is_obj_appearing = is_obj_appearing.float()
+
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+ return (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def _use_mask_as_output(self, backbone_features, high_res_features, mask_inputs):
+ """
+ Directly turn binary `mask_inputs` into a output mask logits without using SAM.
+ (same input and output shapes as in _forward_sam_heads above).
+ """
+ # Use -10/+10 as logits for neg/pos pixels (very close to 0/1 in prob after sigmoid).
+ out_scale, out_bias = 20.0, -10.0 # sigmoid(-10.0)=4.5398e-05
+ mask_inputs_float = mask_inputs.float()
+ high_res_masks = mask_inputs_float * out_scale + out_bias
+ low_res_masks = F.interpolate(
+ high_res_masks,
+ size=(high_res_masks.size(-2) // 4, high_res_masks.size(-1) // 4),
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ # a dummy IoU prediction of all 1's under mask input
+ ious = mask_inputs.new_ones(mask_inputs.size(0), 1).float()
+ if not self.use_obj_ptrs_in_encoder:
+ # all zeros as a dummy object pointer (of shape [B, C])
+ obj_ptr = torch.zeros(
+ mask_inputs.size(0), self.hidden_dim, device=mask_inputs.device
+ )
+ else:
+ # produce an object pointer using the SAM decoder from the mask input
+ _, _, _, _, _, obj_ptr, _ = self._forward_sam_heads(
+ backbone_features=backbone_features,
+ mask_inputs=self.mask_downsample(mask_inputs_float),
+ high_res_features=high_res_features,
+ )
+ # In this method, we are treating mask_input as output, e.g. using it directly to create spatial mem;
+ # Below, we follow the same design axiom to use mask_input to decide if obj appears or not instead of relying
+ # on the object_scores from the SAM decoder.
+ is_obj_appearing = torch.any(mask_inputs.flatten(1).float() > 0.0, dim=1)
+ is_obj_appearing = is_obj_appearing[..., None]
+ lambda_is_obj_appearing = is_obj_appearing.float()
+ object_score_logits = out_scale * lambda_is_obj_appearing + out_bias
+ if self.pred_obj_scores:
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+
+ return (
+ low_res_masks,
+ high_res_masks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def precompute_high_res_features(self, backbone_out):
+ if self.use_high_res_features_in_sam:
+ # precompute projected level 0 and level 1 features in SAM decoder
+ # to avoid running it again on every SAM click
+ backbone_out["backbone_fpn"][0] = self.sam_mask_decoder.conv_s0(
+ backbone_out["backbone_fpn"][0]
+ )
+ backbone_out["backbone_fpn"][1] = self.sam_mask_decoder.conv_s1(
+ backbone_out["backbone_fpn"][1]
+ )
+ return backbone_out
+
+ def forward_image(self, img_batch: torch.Tensor, pre_compute=True):
+ """Get the image feature on the input batch."""
+ backbone_out = self.image_encoder(img_batch)
+ return backbone_out if not pre_compute else self.precompute_high_res_features(backbone_out)
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.num_feature_levels :]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.num_feature_levels :]
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ # flatten NxCxHxW to HWxNxC
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def _prepare_memory_conditioned_features(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ ):
+ """Fuse the current frame's visual feature map with previous memory."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ device = current_vision_feats[-1].device
+ # The case of `self.num_maskmem == 0` below is primarily used for reproducing SAM on images.
+ # In this case, we skip the fusion with any memory.
+ if self.num_maskmem == 0: # Disable memory and skip fusion
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat
+
+ num_obj_ptr_tokens = 0
+ tpos_sign_mul = -1 if track_in_reverse else 1
+ # Step 1: condition the visual features of the current frame on previous memories
+ if not is_init_cond_frame:
+ # Retrieve the memories encoded with the maskmem backbone
+ to_cat_memory, to_cat_memory_pos_embed = [], []
+ # Add conditioning frames's output first (all cond frames have t_pos=0 for
+ # when getting temporal positional embedding below)
+ assert len(output_dict["cond_frame_outputs"]) > 0
+ # Select a maximum number of temporally closest cond frames for cross attention
+ cond_outputs = output_dict["cond_frame_outputs"]
+ selected_cond_outputs, unselected_cond_outputs = select_closest_cond_frames(
+ frame_idx, cond_outputs, self.max_cond_frames_in_attn
+ )
+ t_pos_and_prevs = [(0, out) for out in selected_cond_outputs.values()]
+ # for t_pos in range(1, min(self.num_maskmem, frame_idx)):
+ # out = output_dict["non_cond_frame_outputs"].get(t_pos, None)
+ # t_pos_and_prevs.append((t_pos, out))
+ # Add last (self.num_maskmem - 1) frames before current frame for non-conditioning memory
+ # the earliest one has t_pos=1 and the latest one has t_pos=self.num_maskmem-1
+ # We also allow taking the memory frame non-consecutively (with stride>1), in which case
+ # we take (self.num_maskmem - 2) frames among every stride-th frames plus the last frame.
+ stride = 1 if self.training else self.memory_temporal_stride_for_eval
+
+ for t_pos in range(1, self.num_maskmem):
+ t_rel = self.num_maskmem - t_pos # how many frames before current frame
+ if t_rel == 1:
+ # for t_rel == 1, we take the last frame (regardless of r)
+ if not track_in_reverse:
+ # the frame immediately before this frame (i.e. frame_idx - 1)
+ prev_frame_idx = frame_idx - t_rel
+ else:
+ # the frame immediately after this frame (i.e. frame_idx + 1)
+ prev_frame_idx = frame_idx + t_rel
+ else:
+ # for t_rel >= 2, we take the memory frame from every r-th frames
+ if not track_in_reverse:
+ # first find the nearest frame among every r-th frames before this frame
+ # for r=1, this would be (frame_idx - 2)
+ prev_frame_idx = ((frame_idx - 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx - (t_rel - 2) * stride
+ else:
+ # first find the nearest frame among every r-th frames after this frame
+ # for r=1, this would be (frame_idx + 2)
+ prev_frame_idx = -(-(frame_idx + 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx + (t_rel - 2) * stride
+ out = output_dict["non_cond_frame_outputs"].get(prev_frame_idx, None)
+ if out is None:
+ # If an unselected conditioning frame is among the last (self.num_maskmem - 1)
+ # frames, we still attend to it as if it's a non-conditioning frame.
+ out = unselected_cond_outputs.get(prev_frame_idx, None)
+ t_pos_and_prevs.append((t_pos, out))
+
+ for t_pos, prev in t_pos_and_prevs:
+ if prev is None:
+ continue # skip padding frames
+ # "maskmem_features" might have been offloaded to CPU in demo use cases,
+ # so we load it back to GPU (it's a no-op if it's already on GPU).
+ feats = prev["maskmem_features"].to(device, non_blocking=True)
+ to_cat_memory.append(feats.flatten(2).permute(2, 0, 1))
+ # Spatial positional encoding (it might have been offloaded to CPU in eval)
+ maskmem_enc = prev["maskmem_pos_enc"][-1].to(device)
+ maskmem_enc = maskmem_enc.flatten(2).permute(2, 0, 1)
+ # Temporal positional encoding
+ maskmem_enc = (
+ maskmem_enc + self.maskmem_tpos_enc[self.num_maskmem - t_pos - 1]
+ )
+ to_cat_memory_pos_embed.append(maskmem_enc)
+ # Construct the list of past object pointers
+ if self.use_obj_ptrs_in_encoder:
+ max_obj_ptrs_in_encoder = min(num_frames, self.max_obj_ptrs_in_encoder)
+ # First add those object pointers from selected conditioning frames
+ # (optionally, only include object pointers in the past during evaluation)
+ if not self.training and self.only_obj_ptrs_in_the_past_for_eval:
+ ptr_cond_outputs = {
+ t: out
+ for t, out in selected_cond_outputs.items()
+ if (t >= frame_idx if track_in_reverse else t <= frame_idx)
+ }
+ else:
+ ptr_cond_outputs = selected_cond_outputs
+ pos_and_ptrs = [
+ # Temporal pos encoding contains how far away each pointer is from current frame
+ (
+ (
+ (frame_idx - t) * tpos_sign_mul
+ if self.use_signed_tpos_enc_to_obj_ptrs
+ else abs(frame_idx - t)
+ ),
+ out["obj_ptr"],
+ )
+ for t, out in ptr_cond_outputs.items()
+ ]
+ # Add up to (max_obj_ptrs_in_encoder - 1) non-conditioning frames before current frame
+ for t_diff in range(1, max_obj_ptrs_in_encoder):
+ t = frame_idx + t_diff if track_in_reverse else frame_idx - t_diff
+ if t < 0 or (num_frames is not None and t >= num_frames):
+ break
+ out = output_dict["non_cond_frame_outputs"].get(
+ t, unselected_cond_outputs.get(t, None)
+ )
+ if out is not None:
+ pos_and_ptrs.append((t_diff, out["obj_ptr"]))
+ # If we have at least one object pointer, add them to the across attention
+ if len(pos_and_ptrs) > 0:
+ pos_list, ptrs_list = zip(*pos_and_ptrs)
+ # stack object pointers along dim=0 into [ptr_seq_len, B, C] shape
+ obj_ptrs = torch.stack(ptrs_list, dim=0)
+ # a temporal positional embedding based on how far each object pointer is from
+ # the current frame (sine embedding normalized by the max pointer num).
+ # default false.
+ if self.add_tpos_enc_to_obj_ptrs:
+ t_diff_max = max_obj_ptrs_in_encoder - 1
+ tpos_dim = C if self.proj_tpos_enc_in_obj_ptrs else self.mem_dim
+ obj_pos = torch.tensor(pos_list, device=device)
+ obj_pos = get_1d_sine_pe(obj_pos / t_diff_max, dim=tpos_dim)
+ obj_pos = self.obj_ptr_tpos_proj(obj_pos)
+ obj_pos = obj_pos.unsqueeze(1).expand(-1, B, self.mem_dim)
+ else:
+ obj_pos = obj_ptrs.new_zeros(len(pos_list), B, self.mem_dim)
+ if self.mem_dim < C:
+ # split a pointer into (C // self.mem_dim) tokens for self.mem_dim < C
+ obj_ptrs = obj_ptrs.reshape(
+ -1, B, C // self.mem_dim, self.mem_dim
+ )
+ obj_ptrs = obj_ptrs.permute(0, 2, 1, 3).flatten(0, 1)
+ obj_pos = obj_pos.repeat_interleave(C // self.mem_dim, dim=0)
+ to_cat_memory.append(obj_ptrs)
+ to_cat_memory_pos_embed.append(obj_pos)
+ num_obj_ptr_tokens = obj_ptrs.shape[0]
+ else:
+ num_obj_ptr_tokens = 0
+ else:
+ # for initial conditioning frames, encode them without using any previous memory
+ if self.directly_add_no_mem_embed:
+ # directly add no-mem embedding (instead of using the transformer encoder)
+ pix_feat_with_mem = current_vision_feats[-1] + self.no_mem_embed
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+ # Use a dummy token on the first frame (to avoid empty memory input to tranformer encoder)
+ # the Following lines will never be triggered.
+ raise NotImplementedError
+ to_cat_memory = [self.no_mem_embed.expand(1, B, self.mem_dim)]
+ to_cat_memory_pos_embed = [self.no_mem_pos_enc.expand(1, B, self.mem_dim)]
+
+ # Step 2: Concatenate the memories and forward through the transformer encoder
+ memory = torch.cat(to_cat_memory, dim=0)
+ memory_pos_embed = torch.cat(to_cat_memory_pos_embed, dim=0)
+
+ pix_feat_with_mem = self.memory_attention(
+ curr=current_vision_feats,
+ curr_pos=current_vision_pos_embeds,
+ memory=memory,
+ memory_pos=memory_pos_embed,
+ num_obj_ptr_tokens=num_obj_ptr_tokens,
+ )
+ # reshape the output (HW)BC => BCHW
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+
+ def _encode_new_memory(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ pred_masks_high_res,
+ object_score_logits,
+ is_mask_from_pts,
+ ):
+ """Encode the current image and its prediction into a memory feature."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ # top-level feature, (HW)BC => BCHW
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ if self.non_overlap_masks_for_mem_enc and not self.training:
+ # optionally, apply non-overlapping constraints to the masks (it's applied
+ # in the batch dimension and should only be used during eval, where all
+ # the objects come from the same video under batch size 1).
+ pred_masks_high_res = self._apply_non_overlapping_constraints(
+ pred_masks_high_res
+ )
+ raise NotImplementedError
+ # scale the raw mask logits with a temperature before applying sigmoid
+ binarize = self.binarize_mask_from_pts_for_mem_enc and is_mask_from_pts
+ if binarize and not self.training:
+ mask_for_mem = (pred_masks_high_res > 0).float()
+ else:
+ # apply sigmoid on the raw mask logits to turn them into range (0, 1)
+ mask_for_mem = torch.sigmoid(pred_masks_high_res)
+ # apply scale and bias terms to the sigmoid probabilities
+ if self.sigmoid_scale_for_mem_enc != 1.0:
+ mask_for_mem = mask_for_mem * self.sigmoid_scale_for_mem_enc
+ if self.sigmoid_bias_for_mem_enc != 0.0:
+ mask_for_mem = mask_for_mem + self.sigmoid_bias_for_mem_enc
+ maskmem_out = self.memory_encoder(
+ pix_feat, mask_for_mem, skip_mask_sigmoid=True # sigmoid already applied
+ )
+ maskmem_features = maskmem_out["vision_features"]
+ maskmem_pos_enc = maskmem_out["vision_pos_enc"]
+ # add a no-object embedding to the spatial memory to indicate that the frame
+ # is predicted to be occluded (i.e. no object is appearing in the frame)
+ if self.no_obj_embed_spatial is not None:
+ is_obj_appearing = (object_score_logits > 0).float()
+ maskmem_features += (
+ 1 - is_obj_appearing[..., None, None]
+ ) * self.no_obj_embed_spatial[..., None, None].expand(
+ *maskmem_features.shape
+ )
+ # it will be used in sam2.1
+ # raise NotImplementedError
+
+ return maskmem_features, maskmem_pos_enc
+
+ def _track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam:
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ if prev_sam_mask_logits is not None:
+ assert point_inputs is not None and mask_inputs is None
+ mask_inputs = prev_sam_mask_logits
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def _encode_memory_in_output(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+ if run_mem_encoder and self.num_maskmem > 0:
+ high_res_masks_for_mem_enc = high_res_masks
+ maskmem_features, maskmem_pos_enc = self._encode_new_memory(
+ current_vision_feats=current_vision_feats,
+ feat_sizes=feat_sizes,
+ pred_masks_high_res=high_res_masks_for_mem_enc,
+ object_score_logits=object_score_logits,
+ is_mask_from_pts=(point_inputs is not None),
+ )
+ current_out["maskmem_features"] = maskmem_features
+ current_out["maskmem_pos_enc"] = maskmem_pos_enc
+ else:
+ current_out["maskmem_features"] = None
+ current_out["maskmem_pos_enc"] = None
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ # Whether to run the memory encoder on the predicted masks. Sometimes we might want
+ # to skip the memory encoder with `run_mem_encoder=False`. For example,
+ # in demo we might call `track_step` multiple times for each user click,
+ # and only encode the memory when the user finalizes their clicks. And in ablation
+ # settings like SAM training on static images, we don't need the memory encoder.
+ run_mem_encoder=True,
+ # The previously predicted SAM mask logits (which can be fed together with new clicks in demo).
+ prev_sam_mask_logits=None,
+ ):
+ current_out, sam_outputs, _, _ = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+ if not self.training:
+ # Only add this in inference (to avoid unused param in activation checkpointing;
+ # it's mainly used in the demo to encode spatial memories w/ consolidated masks)
+ current_out["object_score_logits"] = object_score_logits
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+
+ return current_out
+
+ def _use_multimask(self, is_init_cond_frame, point_inputs):
+ """Whether to use multimask output in the SAM head."""
+ num_pts = 0 if point_inputs is None else point_inputs["point_labels"].size(1)
+ multimask_output = (
+ self.multimask_output_in_sam
+ and (is_init_cond_frame or self.multimask_output_for_tracking)
+ and (self.multimask_min_pt_num <= num_pts <= self.multimask_max_pt_num)
+ )
+ return multimask_output
+
+ def _apply_non_overlapping_constraints(self, pred_masks):
+ """
+ Apply non-overlapping constraints to the object scores in pred_masks. Here we
+ keep only the highest scoring object at each spatial location in pred_masks.
+ """
+ batch_size = pred_masks.size(0)
+ if batch_size == 1:
+ return pred_masks
+
+ device = pred_masks.device
+ # "max_obj_inds": object index of the object with the highest score at each location
+ max_obj_inds = torch.argmax(pred_masks, dim=0, keepdim=True)
+ # "batch_obj_inds": object index of each object slice (along dim 0) in `pred_masks`
+ batch_obj_inds = torch.arange(batch_size, device=device)[:, None, None, None]
+ keep = max_obj_inds == batch_obj_inds
+ # suppress overlapping regions' scores below -10.0 so that the foreground regions
+ # don't overlap (here sigmoid(-10.0)=4.5398e-05)
+ pred_masks = torch.where(keep, pred_masks, torch.clamp(pred_masks, max=-10.0))
+ return pred_masks
diff --git a/avs.code/v1m.code/model/visual/sam2/modeling/sam2_utils.py b/avs.code/v1m.code/model/visual/sam2/modeling/sam2_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..19133558dd657bbcf67f851011d45bd4999cab0a
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/modeling/sam2_utils.py
@@ -0,0 +1,323 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import copy
+from typing import Tuple
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.utils.misc import mask_to_box
+
+
+def select_closest_cond_frames(frame_idx, cond_frame_outputs, max_cond_frame_num):
+ """
+ Select up to `max_cond_frame_num` conditioning frames from `cond_frame_outputs`
+ that are temporally closest to the current frame at `frame_idx`. Here, we take
+ - a) the closest conditioning frame before `frame_idx` (if any);
+ - b) the closest conditioning frame after `frame_idx` (if any);
+ - c) any other temporally closest conditioning frames until reaching a total
+ of `max_cond_frame_num` conditioning frames.
+
+ Outputs:
+ - selected_outputs: selected items (keys & values) from `cond_frame_outputs`.
+ - unselected_outputs: items (keys & values) not selected in `cond_frame_outputs`.
+ """
+ if max_cond_frame_num == -1 or len(cond_frame_outputs) <= max_cond_frame_num:
+ selected_outputs = cond_frame_outputs
+ unselected_outputs = {}
+ else:
+ assert max_cond_frame_num >= 2, "we should allow using 2+ conditioning frames"
+ selected_outputs = {}
+
+ # the closest conditioning frame before `frame_idx` (if any)
+ idx_before = max((t for t in cond_frame_outputs if t < frame_idx), default=None)
+ if idx_before is not None:
+ selected_outputs[idx_before] = cond_frame_outputs[idx_before]
+
+ # the closest conditioning frame after `frame_idx` (if any)
+ idx_after = min((t for t in cond_frame_outputs if t >= frame_idx), default=None)
+ if idx_after is not None:
+ selected_outputs[idx_after] = cond_frame_outputs[idx_after]
+
+ # add other temporally closest conditioning frames until reaching a total
+ # of `max_cond_frame_num` conditioning frames.
+ num_remain = max_cond_frame_num - len(selected_outputs)
+ inds_remain = sorted(
+ (t for t in cond_frame_outputs if t not in selected_outputs),
+ key=lambda x: abs(x - frame_idx),
+ )[:num_remain]
+ selected_outputs.update((t, cond_frame_outputs[t]) for t in inds_remain)
+ unselected_outputs = {
+ t: v for t, v in cond_frame_outputs.items() if t not in selected_outputs
+ }
+
+ return selected_outputs, unselected_outputs
+
+
+def get_1d_sine_pe(pos_inds, dim, temperature=10000):
+ """
+ Get 1D sine positional embedding as in the original Transformer paper.
+ """
+ pe_dim = dim // 2
+ dim_t = torch.arange(pe_dim, dtype=torch.float32, device=pos_inds.device)
+ dim_t = temperature ** (2 * (dim_t // 2) / pe_dim)
+
+ pos_embed = pos_inds.unsqueeze(-1) / dim_t
+ pos_embed = torch.cat([pos_embed.sin(), pos_embed.cos()], dim=-1)
+ return pos_embed
+
+
+def get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(f"activation should be relu/gelu, not {activation}.")
+
+
+def get_clones(module, N):
+ return nn.ModuleList([copy.deepcopy(module) for i in range(N)])
+
+
+class DropPath(nn.Module):
+ # adapted from https://github.com/huggingface/pytorch-image-models/blob/main/timm/layers/drop.py
+ def __init__(self, drop_prob=0.0, scale_by_keep=True):
+ super(DropPath, self).__init__()
+ self.drop_prob = drop_prob
+ self.scale_by_keep = scale_by_keep
+
+ def forward(self, x):
+ if self.drop_prob == 0.0 or not self.training:
+ return x
+ keep_prob = 1 - self.drop_prob
+ shape = (x.shape[0],) + (1,) * (x.ndim - 1)
+ random_tensor = x.new_empty(shape).bernoulli_(keep_prob)
+ if keep_prob > 0.0 and self.scale_by_keep:
+ random_tensor.div_(keep_prob)
+ return x * random_tensor
+
+
+# Lightly adapted from
+# https://github.com/facebookresearch/MaskFormer/blob/main/mask_former/modeling/transformer/transformer_predictor.py # noqa
+class MLP(nn.Module):
+ def __init__(
+ self,
+ input_dim: int,
+ hidden_dim: int,
+ output_dim: int,
+ num_layers: int,
+ activation: nn.Module = nn.ReLU,
+ sigmoid_output: bool = False,
+ ) -> None:
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(
+ nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim])
+ )
+ self.sigmoid_output = sigmoid_output
+ self.act = activation()
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = self.act(layer(x)) if i < self.num_layers - 1 else layer(x)
+ if self.sigmoid_output:
+ x = F.sigmoid(x)
+ return x
+
+
+# From https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py # noqa
+# Itself from https://github.com/facebookresearch/ConvNeXt/blob/d1fa8f6fef0a165b27399986cc2bdacc92777e40/models/convnext.py#L119 # noqa
+class LayerNorm2d(nn.Module):
+ def __init__(self, num_channels: int, eps: float = 1e-6) -> None:
+ super().__init__()
+ self.weight = nn.Parameter(torch.ones(num_channels))
+ self.bias = nn.Parameter(torch.zeros(num_channels))
+ self.eps = eps
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ u = x.mean(1, keepdim=True)
+ s = (x - u).pow(2).mean(1, keepdim=True)
+ x = (x - u) / torch.sqrt(s + self.eps)
+ x = self.weight[:, None, None] * x + self.bias[:, None, None]
+ return x
+
+
+def sample_box_points(
+ masks: torch.Tensor,
+ noise: float = 0.1, # SAM default
+ noise_bound: int = 20, # SAM default
+ top_left_label: int = 2,
+ bottom_right_label: int = 3,
+) -> Tuple[np.array, np.array]:
+ """
+ Sample a noised version of the top left and bottom right corners of a given `bbox`
+
+ Inputs:
+ - masks: [B, 1, H,W] boxes, dtype=torch.Tensor
+ - noise: noise as a fraction of box width and height, dtype=float
+ - noise_bound: maximum amount of noise (in pure pixesl), dtype=int
+
+ Returns:
+ - box_coords: [B, num_pt, 2], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.float
+ - box_labels: [B, num_pt], label 2 is reserverd for top left and 3 for bottom right corners, dtype=torch.int32
+ """
+ device = masks.device
+ box_coords = mask_to_box(masks)
+ B, _, H, W = masks.shape
+ box_labels = torch.tensor(
+ [top_left_label, bottom_right_label], dtype=torch.int, device=device
+ ).repeat(B)
+ if noise > 0.0:
+ if not isinstance(noise_bound, torch.Tensor):
+ noise_bound = torch.tensor(noise_bound, device=device)
+ bbox_w = box_coords[..., 2] - box_coords[..., 0]
+ bbox_h = box_coords[..., 3] - box_coords[..., 1]
+ max_dx = torch.min(bbox_w * noise, noise_bound)
+ max_dy = torch.min(bbox_h * noise, noise_bound)
+ box_noise = 2 * torch.rand(B, 1, 4, device=device) - 1
+ box_noise = box_noise * torch.stack((max_dx, max_dy, max_dx, max_dy), dim=-1)
+
+ box_coords = box_coords + box_noise
+ img_bounds = (
+ torch.tensor([W, H, W, H], device=device) - 1
+ ) # uncentered pixel coords
+ box_coords.clamp_(torch.zeros_like(img_bounds), img_bounds) # In place clamping
+
+ box_coords = box_coords.reshape(-1, 2, 2) # always 2 points
+ box_labels = box_labels.reshape(-1, 2)
+ return box_coords, box_labels
+
+
+def sample_random_points_from_errors(gt_masks, pred_masks, num_pt=1):
+ """
+ Sample `num_pt` random points (along with their labels) independently from the error regions.
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - num_pt: int, number of points to sample independently for each of the B error maps
+
+ Outputs:
+ - points: [B, num_pt, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, num_pt], dtype=torch.int32, where 1 means positive clicks and 0 means
+ negative clicks
+ """
+ if pred_masks is None: # if pred_masks is not provided, treat it as empty
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+ assert num_pt >= 0
+
+ B, _, H_im, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+ # whether the prediction completely match the ground-truth on each mask
+ all_correct = torch.all((gt_masks == pred_masks).flatten(2), dim=2)
+ all_correct = all_correct[..., None, None]
+
+ # channel 0 is FP map, while channel 1 is FN map
+ pts_noise = torch.rand(B, num_pt, H_im, W_im, 2, device=device)
+ # sample a negative new click from FP region or a positive new click
+ # from FN region, depend on where the maximum falls,
+ # and in case the predictions are all correct (no FP or FN), we just
+ # sample a negative click from the background region
+ pts_noise[..., 0] *= fp_masks | (all_correct & ~gt_masks)
+ pts_noise[..., 1] *= fn_masks
+ pts_idx = pts_noise.flatten(2).argmax(dim=2)
+ labels = (pts_idx % 2).to(torch.int32)
+ pts_idx = pts_idx // 2
+ pts_x = pts_idx % W_im
+ pts_y = pts_idx // W_im
+ points = torch.stack([pts_x, pts_y], dim=2).to(torch.float)
+ return points, labels
+
+
+def sample_one_point_from_error_center(gt_masks, pred_masks, padding=True):
+ """
+ Sample 1 random point (along with its label) from the center of each error region,
+ that is, the point with the largest distance to the boundary of each error region.
+ This is the RITM sampling method from https://github.com/saic-vul/ritm_interactive_segmentation/blob/master/isegm/inference/clicker.py
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - padding: if True, pad with boundary of 1 px for distance transform
+
+ Outputs:
+ - points: [B, 1, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, 1], dtype=torch.int32, where 1 means positive clicks and 0 means negative clicks
+ """
+ import cv2
+
+ if pred_masks is None:
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+
+ B, _, _, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+
+ fp_masks = fp_masks.cpu().numpy()
+ fn_masks = fn_masks.cpu().numpy()
+ points = torch.zeros(B, 1, 2, dtype=torch.float)
+ labels = torch.ones(B, 1, dtype=torch.int32)
+ for b in range(B):
+ fn_mask = fn_masks[b, 0]
+ fp_mask = fp_masks[b, 0]
+ if padding:
+ fn_mask = np.pad(fn_mask, ((1, 1), (1, 1)), "constant")
+ fp_mask = np.pad(fp_mask, ((1, 1), (1, 1)), "constant")
+ # compute the distance of each point in FN/FP region to its boundary
+ fn_mask_dt = cv2.distanceTransform(fn_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ fp_mask_dt = cv2.distanceTransform(fp_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ if padding:
+ fn_mask_dt = fn_mask_dt[1:-1, 1:-1]
+ fp_mask_dt = fp_mask_dt[1:-1, 1:-1]
+
+ # take the point in FN/FP region with the largest distance to its boundary
+ fn_mask_dt_flat = fn_mask_dt.reshape(-1)
+ fp_mask_dt_flat = fp_mask_dt.reshape(-1)
+ fn_argmax = np.argmax(fn_mask_dt_flat)
+ fp_argmax = np.argmax(fp_mask_dt_flat)
+ is_positive = fn_mask_dt_flat[fn_argmax] > fp_mask_dt_flat[fp_argmax]
+ pt_idx = fn_argmax if is_positive else fp_argmax
+ points[b, 0, 0] = pt_idx % W_im # x
+ points[b, 0, 1] = pt_idx // W_im # y
+ labels[b, 0] = int(is_positive)
+
+ points = points.to(device)
+ labels = labels.to(device)
+ return points, labels
+
+
+def get_next_point(gt_masks, pred_masks, method):
+ if method == "uniform":
+ return sample_random_points_from_errors(gt_masks, pred_masks)
+ elif method == "center":
+ return sample_one_point_from_error_center(gt_masks, pred_masks)
+ else:
+ raise ValueError(f"unknown sampling method {method}")
diff --git a/avs.code/v1m.code/model/visual/sam2/organised_sam2_train.py b/avs.code/v1m.code/model/visual/sam2/organised_sam2_train.py
new file mode 100644
index 0000000000000000000000000000000000000000..607c3ad22ba7dcb7eb74c30e1283f68c4808450e
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/organised_sam2_train.py
@@ -0,0 +1,811 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+
+import numpy as np
+import torch
+import torch.distributed
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+from model.visual.sam2.modeling.sam2_utils import (
+ get_1d_sine_pe,
+ get_next_point,
+ sample_box_points,
+ select_closest_cond_frames,
+)
+
+from utils.misc import concat_points
+
+from utils.data_utils import BatchedVideoDatapoint
+
+
+class SAM2Train(SAM2Base):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention=None,
+ memory_encoder=None,
+ prob_to_use_pt_input_for_train=0.0,
+ prob_to_use_pt_input_for_eval=0.0,
+ prob_to_use_box_input_for_train=0.0,
+ prob_to_use_box_input_for_eval=0.0,
+ # if it is greater than 1, we interactive point sampling in the 1st frame and other randomly selected frames
+ num_frames_to_correct_for_train=1, # default: only iteratively sample on first frame
+ num_frames_to_correct_for_eval=1, # default: only iteratively sample on first frame
+ rand_frames_to_correct_for_train=False,
+ rand_frames_to_correct_for_eval=False,
+ # how many frames to use as initial conditioning frames (for both point input and mask input; the first frame is always used as an initial conditioning frame)
+ # - if `rand_init_cond_frames` below is True, we randomly sample 1~num_init_cond_frames initial conditioning frames
+ # - otherwise we sample a fixed number of num_init_cond_frames initial conditioning frames
+ # note: for point input, we sample correction points on all such initial conditioning frames, and we require that `num_frames_to_correct` >= `num_init_cond_frames`;
+ # these are initial conditioning frames because as we track the video, more conditioning frames might be added
+ # when a frame receives correction clicks under point input if `add_all_frames_to_correct_as_cond=True`
+ num_init_cond_frames_for_train=1, # default: only use the first frame as initial conditioning frame
+ num_init_cond_frames_for_eval=1, # default: only use the first frame as initial conditioning frame
+ rand_init_cond_frames_for_train=True, # default: random 1~num_init_cond_frames_for_train cond frames (to be constent w/ previous TA data loader)
+ rand_init_cond_frames_for_eval=False,
+ # if `add_all_frames_to_correct_as_cond` is True, we also append to the conditioning frame list any frame that receives a later correction click
+ # if `add_all_frames_to_correct_as_cond` is False, we conditioning frame list to only use those initial conditioning frames
+ add_all_frames_to_correct_as_cond=False,
+ # how many additional correction points to sample (on each frame selected to be corrected)
+ # note that the first frame receives an initial input click (in addition to any correction clicks)
+ num_correction_pt_per_frame=7,
+ # method for point sampling during evaluation
+ # "uniform" (sample uniformly from error region) or "center" (use the point with the largest distance to error region boundary)
+ # default to "center" to be consistent with evaluation in the SAM paper
+ pt_sampling_for_eval="center",
+ # During training, we optionally allow sampling the correction points from GT regions
+ # instead of the prediction error regions with a small probability. This might allow the
+ # model to overfit less to the error regions in training datasets
+ prob_to_sample_from_gt_for_train=0.0,
+ use_act_ckpt_iterative_pt_sampling=False,
+ # whether to forward image features per frame (as it's being tracked) during evaluation, instead of forwarding image features
+ # of all frames at once. This avoids backbone OOM errors on very long videos in evaluation, but could be slightly slower.
+ forward_backbone_per_frame_for_eval=False,
+ freeze_image_encoder=False,
+ **kwargs,
+ ):
+ super().__init__(image_encoder, memory_attention, memory_encoder, **kwargs)
+ self.use_act_ckpt_iterative_pt_sampling = use_act_ckpt_iterative_pt_sampling
+ self.forward_backbone_per_frame_for_eval = forward_backbone_per_frame_for_eval
+
+ # Point sampler and conditioning frames
+ self.prob_to_use_pt_input_for_train = prob_to_use_pt_input_for_train
+ self.prob_to_use_box_input_for_train = prob_to_use_box_input_for_train
+ self.prob_to_use_pt_input_for_eval = prob_to_use_pt_input_for_eval
+ self.prob_to_use_box_input_for_eval = prob_to_use_box_input_for_eval
+ if prob_to_use_pt_input_for_train > 0 or prob_to_use_pt_input_for_eval > 0:
+ logging.info(
+ f"Training with points (sampled from masks) as inputs with p={prob_to_use_pt_input_for_train}"
+ )
+ assert num_frames_to_correct_for_train >= num_init_cond_frames_for_train
+ assert num_frames_to_correct_for_eval >= num_init_cond_frames_for_eval
+
+ self.num_frames_to_correct_for_train = num_frames_to_correct_for_train
+ self.num_frames_to_correct_for_eval = num_frames_to_correct_for_eval
+ self.rand_frames_to_correct_for_train = rand_frames_to_correct_for_train
+ self.rand_frames_to_correct_for_eval = rand_frames_to_correct_for_eval
+ # Initial multi-conditioning frames
+ self.num_init_cond_frames_for_train = num_init_cond_frames_for_train
+ self.num_init_cond_frames_for_eval = num_init_cond_frames_for_eval
+ self.rand_init_cond_frames_for_train = rand_init_cond_frames_for_train
+ self.rand_init_cond_frames_for_eval = rand_init_cond_frames_for_eval
+ self.add_all_frames_to_correct_as_cond = add_all_frames_to_correct_as_cond
+ self.num_correction_pt_per_frame = num_correction_pt_per_frame
+ self.pt_sampling_for_eval = pt_sampling_for_eval
+ self.prob_to_sample_from_gt_for_train = prob_to_sample_from_gt_for_train
+ # A random number generator with a fixed initial seed across GPUs
+ self.rng = np.random.default_rng(seed=42)
+ if freeze_image_encoder:
+ for p in self.image_encoder.parameters():
+ p.requires_grad = False
+
+
+ def forward(self, input: BatchedVideoDatapoint):
+ if self.training or not self.forward_backbone_per_frame_for_eval:
+ # precompute image features on all frames before tracking
+ backbone_out = self.forward_image(input.flat_img_batch)
+ else:
+ # defer image feature computation on a frame until it's being tracked
+ backbone_out = {"backbone_fpn": None, "vision_pos_enc": None}
+ backbone_out = self.prepare_prompt_inputs(backbone_out, input)
+ previous_stages_out = self.forward_tracking(backbone_out, input)
+
+ return previous_stages_out
+
+ def _prepare_backbone_features_per_frame(self, img_batch, img_ids):
+ """Compute the image backbone features on the fly for the given img_ids."""
+ # Only forward backbone on unique image ids to avoid repetitive computation
+ # (if `img_ids` has only one element, it's already unique so we skip this step).
+ if img_ids.numel() > 1:
+ unique_img_ids, inv_ids = torch.unique(img_ids, return_inverse=True)
+ else:
+ unique_img_ids, inv_ids = img_ids, None
+
+ # Compute the image features on those unique image ids
+ image = img_batch[unique_img_ids]
+ backbone_out = self.forward_image(image)
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+ '''
+ vision_feats
+ torch.Size([65536, 5, 32])
+ torch.Size([16384, 5, 64])
+ torch.Size([4096, 5, 256])
+ '''
+ # Inverse-map image features for `unique_img_ids` to the final image features
+ # for the original input `img_ids`.
+ if inv_ids is not None:
+ image = image[inv_ids]
+ vision_feats = [x[:, inv_ids] for x in vision_feats]
+ vision_pos_embeds = [x[:, inv_ids] for x in vision_pos_embeds]
+
+ return image, vision_feats, vision_pos_embeds, feat_sizes
+
+ @staticmethod
+ def dont_prepare_prompt_inputs(backbone_out, num_frames=5, cond_frame=0):
+ backbone_out["gt_masks_per_frame"] = {}
+ backbone_out["num_frames"] = num_frames
+ backbone_out["use_pt_input"] = False
+ # always start from the first frame.
+ backbone_out["init_cond_frames"] = [cond_frame]
+ backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames) if i != cond_frame]
+ # backbone_out["init_cond_frames"] = []
+ # backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames)]
+
+ backbone_out["mask_inputs_per_frame"] = {}
+ backbone_out["point_inputs_per_frame"] = {}
+ backbone_out["frames_to_add_correction_pt"] = []
+ return backbone_out
+
+ def prepare_prompt_inputs(self, backbone_out, input, start_frame_idx=0):
+ """
+ Prepare input mask, point or box prompts. Optionally, we allow tracking from
+ a custom `start_frame_idx` to the end of the video (for evaluation purposes).
+ """
+ # Load the ground-truth masks on all frames (so that we can later
+ # sample correction points from them)
+ # gt_masks_per_frame = {
+ # stage_id: targets.segments.unsqueeze(1) # [B, 1, H_im, W_im]
+ # for stage_id, targets in enumerate(input.find_targets)
+ # }
+ gt_masks_per_frame = {
+ stage_id: masks.unsqueeze(1) # [B, 1, H_im, W_im]
+ for stage_id, masks in enumerate(input.masks)
+ }
+ # gt_masks_per_frame = input.masks.unsqueeze(2) # [T,B,1,H_im,W_im] keep everything in tensor form
+ backbone_out["gt_masks_per_frame"] = gt_masks_per_frame
+ num_frames = input.num_frames
+ backbone_out["num_frames"] = num_frames
+
+ # Randomly decide whether to use point inputs or mask inputs
+ if self.training:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_train
+ prob_to_use_box_input = self.prob_to_use_box_input_for_train
+ num_frames_to_correct = self.num_frames_to_correct_for_train
+ rand_frames_to_correct = self.rand_frames_to_correct_for_train
+ num_init_cond_frames = self.num_init_cond_frames_for_train
+ rand_init_cond_frames = self.rand_init_cond_frames_for_train
+ else:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_eval
+ prob_to_use_box_input = self.prob_to_use_box_input_for_eval
+ num_frames_to_correct = self.num_frames_to_correct_for_eval
+ rand_frames_to_correct = self.rand_frames_to_correct_for_eval
+ num_init_cond_frames = self.num_init_cond_frames_for_eval
+ rand_init_cond_frames = self.rand_init_cond_frames_for_eval
+ if num_frames == 1:
+ # here we handle a special case for mixing video + SAM on image training,
+ # where we force using point input for the SAM task on static images
+ prob_to_use_pt_input = 1.0
+ num_frames_to_correct = 1
+ num_init_cond_frames = 1
+ assert num_init_cond_frames >= 1
+ # (here `self.rng.random()` returns value in range 0.0 <= X < 1.0)
+ use_pt_input = self.rng.random() < prob_to_use_pt_input
+ if rand_init_cond_frames and num_init_cond_frames > 1:
+ # randomly select 1 to `num_init_cond_frames` frames as initial conditioning frames
+ num_init_cond_frames = self.rng.integers(
+ 1, num_init_cond_frames, endpoint=True
+ )
+ if (
+ use_pt_input
+ and rand_frames_to_correct
+ and num_frames_to_correct > num_init_cond_frames
+ ):
+ # randomly select `num_init_cond_frames` to `num_frames_to_correct` frames to sample
+ # correction clicks (only for the case of point input)
+ num_frames_to_correct = self.rng.integers(
+ num_init_cond_frames, num_frames_to_correct, endpoint=True
+ )
+ backbone_out["use_pt_input"] = use_pt_input
+
+ # Sample initial conditioning frames
+ if num_init_cond_frames == 1:
+ init_cond_frames = [start_frame_idx] # starting frame
+ else:
+ # starting frame + randomly selected remaining frames (without replacement)
+ init_cond_frames = [start_frame_idx] + self.rng.choice(
+ range(start_frame_idx + 1, num_frames),
+ num_init_cond_frames - 1,
+ replace=False,
+ ).tolist()
+ backbone_out["init_cond_frames"] = init_cond_frames
+ backbone_out["frames_not_in_init_cond"] = [
+ t for t in range(start_frame_idx, num_frames) if t not in init_cond_frames
+ ]
+ # Prepare mask or point inputs on initial conditioning frames
+ backbone_out["mask_inputs_per_frame"] = {} # {frame_idx: }
+ backbone_out["point_inputs_per_frame"] = {} # {frame_idx: }
+ for t in init_cond_frames:
+ if not use_pt_input:
+ backbone_out["mask_inputs_per_frame"][t] = gt_masks_per_frame[t]
+ else:
+ # During training # P(box) = prob_to_use_pt_input * prob_to_use_box_input
+ use_box_input = self.rng.random() < prob_to_use_box_input
+ if use_box_input:
+ points, labels = sample_box_points(
+ gt_masks_per_frame[t],
+ )
+ else:
+ # (here we only sample **one initial point** on initial conditioning frames from the
+ # ground-truth mask; we may sample more correction points on the fly)
+ points, labels = get_next_point(
+ gt_masks=gt_masks_per_frame[t],
+ pred_masks=None,
+ method=(
+ "uniform" if self.training else self.pt_sampling_for_eval
+ ),
+ )
+
+ point_inputs = {"point_coords": points, "point_labels": labels}
+ backbone_out["point_inputs_per_frame"][t] = point_inputs
+
+ # Sample frames where we will add correction clicks on the fly
+ # based on the error between prediction and ground-truth masks
+ if not use_pt_input:
+ # no correction points will be sampled when using mask inputs
+ frames_to_add_correction_pt = []
+ elif num_frames_to_correct == num_init_cond_frames:
+ frames_to_add_correction_pt = init_cond_frames
+ else:
+ assert num_frames_to_correct > num_init_cond_frames
+ # initial cond frame + randomly selected remaining frames (without replacement)
+ extra_num = num_frames_to_correct - num_init_cond_frames
+ frames_to_add_correction_pt = (
+ init_cond_frames
+ + self.rng.choice(
+ backbone_out["frames_not_in_init_cond"], extra_num, replace=False
+ ).tolist()
+ )
+ backbone_out["frames_to_add_correction_pt"] = frames_to_add_correction_pt
+
+ return backbone_out
+
+ def forward_tracking_wo_prompt(self, backbone_out, audio_res=None, return_dict=False):
+ # img_feats_already_computed = True.
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+
+ av_v_feats, av_a_feats = audio_res
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ img_ids = stage_id
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids].unsqueeze(1) for x in vision_feats] # add unsqueeze to maintain single sample.
+ current_vision_pos_embeds = [x[:, img_ids].unsqueeze(1) for x in vision_pos_embeds] # add unsqueeze to maintain single sample.
+ current_av_v_feats = [x[img_ids] for x in av_v_feats]
+ current_av_a_feats = [x[img_ids] for x in av_a_feats]
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step_wo_prompt(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=None, # backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=None, # backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=None, # backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=None, # frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ audio_res=(current_av_v_feats, current_av_a_feats),
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+
+ return all_frame_outputs
+
+ def track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ audio_res=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step_wo_prompt(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ '''
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+ '''
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ 666., # point_inputs,
+ run_mem_encoder,
+ # we follow SAM2 predictor, if we have multiple masks output, we only utilise the first one to perform
+ # the memory rope attention.
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res=None
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam: # False
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # current_vision_feats[-1] = current_vision_feats[-1] + self.no_mem_embed
+ # pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ # pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+
+ # we do not apply any prompts except audio.
+ '''
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ # if prev_sam_mask_logits is not None:
+ # assert point_inputs is not None and mask_inputs is None
+ # mask_inputs = prev_sam_mask_logits
+
+ ## comment this line, as we don't use points as prompts.
+ # multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ '''
+
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=True,
+ audio_res=audio_res
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def forward_tracking(
+ self, backbone_out, input: BatchedVideoDatapoint, return_dict=False
+ ):
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ img_feats_already_computed = backbone_out["backbone_fpn"] is not None
+ if img_feats_already_computed:
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ # img_ids = input.find_inputs[stage_id].img_ids
+ img_ids = input.flat_obj_to_img_idx[stage_id]
+ if img_feats_already_computed:
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids] for x in vision_feats]
+ current_vision_pos_embeds = [x[:, img_ids] for x in vision_pos_embeds]
+ else:
+ # Otherwise, compute the image features on the fly for the given img_ids
+ # (this might be used for evaluation on long videos to avoid backbone OOM).
+ (
+ _,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features_per_frame(
+ input.flat_img_batch, img_ids
+ )
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+ return all_frame_outputs
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _iter_correct_pt_sampling(
+ self,
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat_with_mem,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+
+ assert gt_masks is not None
+ all_pred_masks = [low_res_masks]
+ all_pred_high_res_masks = [high_res_masks]
+ all_pred_multimasks = [low_res_multimasks]
+ all_pred_high_res_multimasks = [high_res_multimasks]
+ all_pred_ious = [ious]
+ all_point_inputs = [point_inputs]
+ all_object_score_logits = [object_score_logits]
+ for _ in range(self.num_correction_pt_per_frame):
+ # sample a new point from the error between prediction and ground-truth
+ # (with a small probability, directly sample from GT masks instead of errors)
+ if self.training and self.prob_to_sample_from_gt_for_train > 0:
+ sample_from_gt = (
+ self.rng.random() < self.prob_to_sample_from_gt_for_train
+ )
+ else:
+ sample_from_gt = False
+ # if `pred_for_new_pt` is None, only GT masks will be used for point sampling
+ pred_for_new_pt = None if sample_from_gt else (high_res_masks > 0)
+ new_points, new_labels = get_next_point(
+ gt_masks=gt_masks,
+ pred_masks=pred_for_new_pt,
+ method="uniform" if self.training else self.pt_sampling_for_eval,
+ )
+ point_inputs = concat_points(point_inputs, new_points, new_labels)
+ # Feed the mask logits of the previous SAM outputs in the next SAM decoder step.
+ # For tracking, this means that when the user adds a correction click, we also feed
+ # the tracking output mask logits along with the click as input to the SAM decoder.
+ mask_inputs = low_res_masks
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ if self.use_act_ckpt_iterative_pt_sampling and not multimask_output:
+ sam_outputs = torch.utils.checkpoint.checkpoint(
+ self._forward_sam_heads,
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ use_reentrant=False,
+ )
+ else:
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ _,
+ object_score_logits,
+ ) = sam_outputs
+ all_pred_masks.append(low_res_masks)
+ all_pred_high_res_masks.append(high_res_masks)
+ all_pred_multimasks.append(low_res_multimasks)
+ all_pred_high_res_multimasks.append(high_res_multimasks)
+ all_pred_ious.append(ious)
+ all_point_inputs.append(point_inputs)
+ all_object_score_logits.append(object_score_logits)
+
+ # Concatenate the masks along channel (to compute losses on all of them,
+ # using `MultiStepIteractiveMasks`)
+ current_out["multistep_pred_masks"] = torch.cat(all_pred_masks, dim=1)
+ current_out["multistep_pred_masks_high_res"] = torch.cat(
+ all_pred_high_res_masks, dim=1
+ )
+ current_out["multistep_pred_multimasks"] = all_pred_multimasks
+ current_out["multistep_pred_multimasks_high_res"] = all_pred_high_res_multimasks
+ current_out["multistep_pred_ious"] = all_pred_ious
+ current_out["multistep_point_inputs"] = all_point_inputs
+ current_out["multistep_object_score_logits"] = all_object_score_logits
+
+ return point_inputs, sam_outputs
diff --git a/avs.code/v1m.code/model/visual/sam2/utils/__init__.py b/avs.code/v1m.code/model/visual/sam2/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/utils/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1m.code/model/visual/sam2/utils/misc.py b/avs.code/v1m.code/model/visual/sam2/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..b65ee825732ff85137805be650edd4cbe8e6f6d4
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/utils/misc.py
@@ -0,0 +1,349 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
diff --git a/avs.code/v1m.code/model/visual/sam2/utils/transforms.py b/avs.code/v1m.code/model/visual/sam2/utils/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d4fa6a3e4d2e2a0dde7f87e4991daff338467c4
--- /dev/null
+++ b/avs.code/v1m.code/model/visual/sam2/utils/transforms.py
@@ -0,0 +1,118 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import warnings
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from torchvision.transforms import Normalize, Resize, ToTensor
+
+
+class SAM2Transforms(nn.Module):
+ def __init__(
+ self, resolution, mask_threshold, max_hole_area=0.0, max_sprinkle_area=0.0
+ ):
+ """
+ Transforms for SAM2.
+ """
+ super().__init__()
+ self.resolution = resolution
+ self.mask_threshold = mask_threshold
+ self.max_hole_area = max_hole_area
+ self.max_sprinkle_area = max_sprinkle_area
+ self.mean = [0.485, 0.456, 0.406]
+ self.std = [0.229, 0.224, 0.225]
+ self.to_tensor = ToTensor()
+ self.transforms = torch.jit.script(
+ nn.Sequential(
+ Resize((self.resolution, self.resolution)),
+ Normalize(self.mean, self.std),
+ )
+ )
+
+ def __call__(self, x):
+ x = self.to_tensor(x)
+ return self.transforms(x)
+
+ def forward_batch(self, img_list):
+ img_batch = [self.transforms(self.to_tensor(img)) for img in img_list]
+ img_batch = torch.stack(img_batch, dim=0)
+ return img_batch
+
+ def transform_coords(
+ self, coords: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the SAM2 model.
+ """
+ if normalize:
+ assert orig_hw is not None
+ h, w = orig_hw
+ coords = coords.clone()
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+
+ coords = coords * self.resolution # unnormalize coords
+ return coords
+
+ def transform_boxes(
+ self, boxes: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a tensor of shape Bx4. The coordinates can be in absolute image or normalized coordinates,
+ if the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+ """
+ boxes = self.transform_coords(boxes.reshape(-1, 2, 2), normalize, orig_hw)
+ return boxes
+
+ def postprocess_masks(self, masks: torch.Tensor, orig_hw) -> torch.Tensor:
+ """
+ Perform PostProcessing on output masks.
+ """
+ from model.visual.sam2.utils.misc import get_connected_components
+
+ masks = masks.float()
+ input_masks = masks
+ mask_flat = masks.flatten(0, 1).unsqueeze(1) # flatten as 1-channel image
+ try:
+ if self.max_hole_area > 0:
+ # Holes are those connected components in background with area <= self.fill_hole_area
+ # (background regions are those with mask scores <= self.mask_threshold)
+ labels, areas = get_connected_components(
+ mask_flat <= self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_hole_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with a small positive mask score (10.0) to change them to foreground.
+ masks = torch.where(is_hole, self.mask_threshold + 10.0, masks)
+
+ if self.max_sprinkle_area > 0:
+ labels, areas = get_connected_components(
+ mask_flat > self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_sprinkle_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with negative mask score (-10.0) to change them to background.
+ masks = torch.where(is_hole, self.mask_threshold - 10.0, masks)
+ except Exception as e:
+ # Skip the post-processing step if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ masks = input_masks
+
+ masks = F.interpolate(masks, orig_hw, mode="bilinear", align_corners=False)
+ return masks
diff --git a/avs.code/v1m.code/tools/remap_aural_ckpt_keys.py b/avs.code/v1m.code/tools/remap_aural_ckpt_keys.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbb8d6086a854b1b0ab011542eafd99f4bf8a3bf
--- /dev/null
+++ b/avs.code/v1m.code/tools/remap_aural_ckpt_keys.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+"""
+Remap legacy checkpoint keys: rename audio_prompter.* to the current AuralFuser layout (aural_fuser.*),
+and drop duplicate weights under training_layers / finetuning_layers.
+
+Usage:
+ python tools/remap_aural_ckpt_keys.py /path/to/model.pth [--in-place] [--no-backup]
+
+By default writes _remapped.pth; --in-place overwrites the input (after a .bak backup unless --no-backup).
+"""
+from __future__ import annotations
+
+import argparse
+import shutil
+from pathlib import Path
+
+import torch
+
+# Matches AuralFuser ModuleList names (old train_* indices start at 1; new indices are 0-based).
+_REPLACEMENTS: list[tuple[str, str]] = [
+ ("train_f_patch_embed1", "patch_embeds.0"),
+ ("train_f_patch_embed2", "patch_embeds.1"),
+ ("train_f_patch_embed3", "patch_embeds.2"),
+ ("train_f_a_block1", "fusion_modules.0"),
+ ("train_f_a_block2", "fusion_modules.1"),
+ ("train_f_a_block3", "fusion_modules.2"),
+ ("train_f_block1", "f_blocks.0"),
+ ("train_f_block2", "f_blocks.1"),
+ ("train_f_block3", "f_blocks.2"),
+ ("train_a_block1", "a_blocks.0"),
+ ("train_a_block2", "a_blocks.1"),
+ ("train_a_block3", "a_blocks.2"),
+ ("train_smooth1", "smooth_convs.0"),
+ ("train_smooth2", "smooth_convs.1"),
+]
+
+
+def remap_state_dict(sd: dict) -> dict:
+ out: dict = {}
+ dropped = 0
+ for k, v in sd.items():
+ if k.startswith("audio_prompter."):
+ if ".training_layers." in k or ".finetuning_layers." in k:
+ dropped += 1
+ continue
+ nk = k.replace("audio_prompter.", "aural_fuser.", 1)
+ for old, new in _REPLACEMENTS:
+ nk = nk.replace(old, new)
+ out[nk] = v
+ else:
+ out[k] = v
+ if dropped:
+ print(f"Dropped duplicate keys: {dropped} (training_layers / finetuning_layers)")
+ return out
+
+
+def main() -> None:
+ ap = argparse.ArgumentParser()
+ ap.add_argument("ckpt", type=Path, help="Input .pth (full-model state_dict)")
+ ap.add_argument(
+ "-o", "--output", type=Path, default=None,
+ help="Output path; default _remapped.pth",
+ )
+ ap.add_argument("--in-place", action="store_true", help="Overwrite input file")
+ ap.add_argument("--no-backup", action="store_true", help="Skip .bak when using --in-place")
+ args = ap.parse_args()
+
+ ckpt_path: Path = args.ckpt.resolve()
+ if not ckpt_path.is_file():
+ raise SystemExit(f"File not found: {ckpt_path}")
+
+ print(f"Loading: {ckpt_path}")
+ sd = torch.load(ckpt_path, map_location="cpu")
+ if not isinstance(sd, dict):
+ raise SystemExit("Expected top-level checkpoint to be a state_dict dict")
+
+ n_old_ap = sum(1 for k in sd if k.startswith("audio_prompter."))
+ if n_old_ap == 0:
+ print("Warning: no audio_prompter.* keys found; checkpoint may already be remapped.")
+
+ new_sd = remap_state_dict(sd)
+ n_af = sum(1 for k in new_sd if k.startswith("aural_fuser."))
+ print(f"aural_fuser key count: {n_af}")
+
+ if args.in_place:
+ out = ckpt_path
+ if not args.no_backup:
+ bak = ckpt_path.with_suffix(ckpt_path.suffix + ".bak")
+ print(f"Backup -> {bak}")
+ shutil.copy2(ckpt_path, bak)
+ else:
+ out = args.output or ckpt_path.with_name(ckpt_path.stem + "_remapped.pth")
+
+ torch.save(new_sd, out)
+ print(f"Saved: {out} ({len(new_sd)} tensor keys)")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/avs.code/v1m.code/trainer/train.py b/avs.code/v1m.code/trainer/train.py
new file mode 100644
index 0000000000000000000000000000000000000000..b6dea236f976d28ad72711ee50bbefa21522334c
--- /dev/null
+++ b/avs.code/v1m.code/trainer/train.py
@@ -0,0 +1,157 @@
+"""Training and validation loop for the AV segmentation model."""
+import numpy
+import torch
+from torch.utils.data import DataLoader
+from tqdm import tqdm
+
+
+class Trainer:
+ """Wraps train/valid steps with optional loss, metrics, and logging."""
+
+ def __init__(self, hyp_param, loss, tensorboard, metrics):
+ self.param = hyp_param
+ self.loss = loss
+ self.tensorboard = tensorboard
+ self.metrics = metrics
+ from loss.training.contrastive_learning import ContrastLoss
+ self.cl = ContrastLoss(self.param)
+
+ @torch.no_grad()
+ def valid(self, epoch, dataloader, model, process=''):
+ """Evaluate foreground IoU / F-score. `process` selects SAM multimask decoding (see branch below)."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError(
+ "valid() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first)."
+ )
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+ iou_pool = [None] * self.param.gpus
+ fscore_pool = [None] * self.param.gpus
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ items = next(data_iter)
+ frame, spect, label, prompt_dicts = items['frame'], items['spectrogram'], items['label'], items['prompts']
+
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, _ = model.module(frame, spect, prompt_dicts, sam_process=True)
+ logits = torch.cat([torch.cat(i['multistep_pred_multimasks_high_res']) for i in outputs])
+ ious_scores = torch.cat([torch.cat(i['multistep_pred_ious']) for i in outputs])
+ occ_scores = torch.cat([torch.cat(i['multistep_object_score_logits']) for i in outputs])
+ # process: '' = first multimask; iou_select = argmax IoU head; iou_occ_select = + objectness gate
+ if process == 'iou_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits = logits[torch.arange(0, frame.shape[0]), ious_scores, ...]
+ elif process == 'iou_occ_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits = logits[torch.arange(0, frame.shape[0]), ious_scores, ...]
+ logits[occ_scores.squeeze() < 0, ...] = 0.
+ else:
+ logits = logits[:, 0, ...]
+
+ masks = logits > 0.
+ foreground_iou_rank = self.metrics['foreground_iou'].calculate_iou(masks.squeeze().long(),
+ label.squeeze().long(),
+ get_entire_list=True)
+
+ foreground_f_score_rank = self.metrics['foreground_f-score'].calculate_f_score(logits.squeeze(),
+ label.squeeze(),
+ get_entire_list=True)
+ torch.distributed.all_gather_object(iou_pool, foreground_iou_rank)
+ torch.distributed.all_gather_object(fscore_pool, foreground_f_score_rank)
+ foreground_iou = sum([i['foreground_iou'][0].cpu() for i in iou_pool]) / sum(
+ [i['foreground_iou'][1] for i in iou_pool])
+ foreground_f_score = sum([i['foreground_f-score'][0] for i in fscore_pool]) / sum(
+ [i['foreground_f-score'][1] for i in fscore_pool])
+
+ if self.param.local_rank <= 0:
+ tbar.set_description('epoch {} | valid.f_iou {}, valid.f_f-score {}'.format(epoch,
+ numpy.round(
+ foreground_iou.cpu().numpy(),
+ 5),
+ numpy.round(
+ foreground_f_score,
+ 5)))
+ torch.cuda.empty_cache()
+
+ final_iou = foreground_iou
+ final_fscore = foreground_f_score
+ if self.param.local_rank <= 0 and self.tensorboard is not None:
+ self.tensorboard.upload_wandb_info({"valid.f_iou/{}".format(process): final_iou,
+ "valid.f_f-score/{}".format(process): final_fscore})
+
+ def _to_float(x):
+ if isinstance(x, torch.Tensor):
+ return float(x.detach().cpu().item())
+ return float(x)
+
+ return numpy.round(_to_float(final_iou), 5), numpy.round(_to_float(final_fscore), 5)
+
+ def train(self, epoch, dataloader, model, optimiser):
+ """One epoch: SAM frozen, AuralFuser + heads trained with composite loss + contrastive term."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError(
+ "train() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first)."
+ )
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ current_index = dataloader_length * epoch + batch_index
+ items = next(data_iter)
+
+ frame, spect, label, prompt_dicts = items['frame'], items['spectrogram'], items['label'], items['prompts']
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, proj_feats = model(frame, spect, prompt_dicts, sam_process=False)
+
+ loss_dict = self.loss(outputs, label.unsqueeze(1))
+ cl_loss = self.cl(proj_feats, outputs, label)
+
+ optimiser.zero_grad()
+ (loss_dict['core_loss'] + cl_loss).backward()
+ optimiser.step()
+
+ current_lr = self.param.lr * (1 - current_index / (dataloader_length * self.param.epochs)) ** 0.9
+ for params_lr in optimiser.param_groups:
+ names = params_lr.get("name", [])
+ if names and any("vgg" in n for n in names):
+ params_lr['lr'] = current_lr * 0.1
+ else:
+ params_lr['lr'] = current_lr
+
+ if self.param.local_rank <= 0:
+ logits = torch.cat([i['multistep_pred_multimasks_high_res'][0] for i in outputs])
+ foreground_iou = self.metrics['foreground_iou'].calculate_iou((logits > 0)[:, 0, ...].long(),
+ label.long())
+
+ self.tensorboard.upload_wandb_info({"loss": loss_dict['core_loss'].item(), "f_iou": foreground_iou.item(),
+ "lr": optimiser.param_groups[0]['lr'],
+ "loss_dice": loss_dict['loss_dice'],
+ "loss_focal": loss_dict['loss_mask'],
+ "loss_contras": cl_loss.item()})
+ tbar.set_description('epoch {} | loss {}, f_iou {}'.format(epoch, loss_dict['core_loss'].item(),
+ foreground_iou.item()))
+ '''
+ if batch_index % 200 == 0:
+ pred_mask = (logits > 0)[:, 0, ...].long()
+ n_vis = min(4, frame.shape[0], pred_mask.shape[0], label.shape[0])
+ self.tensorboard.upload_wandb_image(
+ frame[:n_vis], pred_mask[:n_vis], label[:n_vis].long()
+ )
+ '''
+ return
diff --git a/avs.code/v1m.code/utils/data_utils.py b/avs.code/v1m.code/utils/data_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e7a98f8ec73e6e5dafd1e395b48a98575e5afb1
--- /dev/null
+++ b/avs.code/v1m.code/utils/data_utils.py
@@ -0,0 +1,176 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Misc functions, including distributed helpers.
+
+Mostly copy-paste from torchvision references.
+"""
+
+from dataclasses import dataclass
+from typing import List, Optional, Tuple, Union
+
+import torch
+
+from PIL import Image as PILImage
+
+
+class BatchedVideoMetaData:
+ """
+ This class represents metadata about a batch of videos.
+ Attributes:
+ unique_objects_identifier: A tensor of shape Bx3 containing unique identifiers for each object in the batch. Index consists of (video_id, obj_id, frame_id)
+ frame_orig_size: A tensor of shape Bx2 containing the original size of each frame in the batch.
+ """
+
+ unique_objects_identifier: torch.LongTensor
+ frame_orig_size: torch.LongTensor
+
+
+class BatchedVideoDatapoint:
+ """
+ This class represents a batch of videos with associated annotations and metadata.
+ Attributes:
+ img_batch: A [TxBxCxHxW] tensor containing the image data for each frame in the batch, where T is the number of frames per video, and B is the number of videos in the batch.
+ obj_to_frame_idx: A [TxOx2] tensor containing the image_batch index which the object belongs to. O is the number of objects in the batch.
+ masks: A [TxOxHxW] tensor containing binary masks for each object in the batch.
+ metadata: An instance of BatchedVideoMetaData containing metadata about the batch.
+ dict_key: A string key used to identify the batch.
+ """
+
+ img_batch: torch.FloatTensor
+ obj_to_frame_idx: torch.IntTensor
+ masks: torch.BoolTensor
+ metadata: BatchedVideoMetaData
+
+ dict_key: str
+
+ def pin_memory(self, device=None):
+ return self.apply(torch.Tensor.pin_memory, device=device)
+
+ @property
+ def num_frames(self) -> int:
+ """
+ Returns the number of frames per video.
+ """
+ return self.batch_size[0]
+
+ @property
+ def num_videos(self) -> int:
+ """
+ Returns the number of videos in the batch.
+ """
+ return self.img_batch.shape[1]
+
+ @property
+ def flat_obj_to_img_idx(self) -> torch.IntTensor:
+ """
+ Returns a flattened tensor containing the object to img index.
+ The flat index can be used to access a flattened img_batch of shape [(T*B)xCxHxW]
+ """
+ frame_idx, video_idx = self.obj_to_frame_idx.unbind(dim=-1)
+ flat_idx = video_idx * self.num_frames + frame_idx
+ return flat_idx
+
+ @property
+ def flat_img_batch(self) -> torch.FloatTensor:
+ """
+ Returns a flattened img_batch_tensor of shape [(B*T)xCxHxW]
+ """
+
+ return self.img_batch.transpose(0, 1).flatten(0, 1)
+
+
+@dataclass
+class Object:
+ # Id of the object in the media
+ object_id: int
+ # Index of the frame in the media (0 if single image)
+ frame_index: int
+ segment: Union[torch.Tensor, dict] # RLE dict or binary mask
+
+
+@dataclass
+class Frame:
+ data: Union[torch.Tensor, PILImage.Image]
+ objects: List[Object]
+
+
+@dataclass
+class VideoDatapoint:
+ """Refers to an image/video and all its annotations"""
+
+ frames: List[Frame]
+ video_id: int
+ size: Tuple[int, int]
+
+
+def collate_fn(
+ batch: List[VideoDatapoint],
+ dict_key,
+) -> BatchedVideoDatapoint:
+ """
+ Args:
+ batch: A list of VideoDatapoint instances.
+ dict_key (str): A string key used to identify the batch.
+ """
+ img_batch = []
+ for video in batch:
+ img_batch += [torch.stack([frame.data for frame in video.frames], dim=0)]
+
+ img_batch = torch.stack(img_batch, dim=0).permute((1, 0, 2, 3, 4))
+ T = img_batch.shape[0]
+ # Prepare data structures for sequential processing. Per-frame processing but batched across videos.
+ step_t_objects_identifier = [[] for _ in range(T)]
+ step_t_frame_orig_size = [[] for _ in range(T)]
+
+ step_t_masks = [[] for _ in range(T)]
+ step_t_obj_to_frame_idx = [
+ [] for _ in range(T)
+ ] # List to store frame indices for each time step
+
+ for video_idx, video in enumerate(batch):
+ orig_video_id = video.video_id
+ orig_frame_size = video.size
+ for t, frame in enumerate(video.frames):
+ objects = frame.objects
+ for obj in objects:
+ orig_obj_id = obj.object_id
+ orig_frame_idx = obj.frame_index
+ step_t_obj_to_frame_idx[t].append(
+ torch.tensor([t, video_idx], dtype=torch.int)
+ )
+ step_t_masks[t].append(obj.segment.to(torch.bool))
+ step_t_objects_identifier[t].append(
+ torch.tensor([orig_video_id, orig_obj_id, orig_frame_idx])
+ )
+ step_t_frame_orig_size[t].append(torch.tensor(orig_frame_size))
+
+ obj_to_frame_idx = torch.stack(
+ [
+ torch.stack(obj_to_frame_idx, dim=0)
+ for obj_to_frame_idx in step_t_obj_to_frame_idx
+ ],
+ dim=0,
+ )
+ masks = torch.stack([torch.stack(masks, dim=0) for masks in step_t_masks], dim=0)
+ objects_identifier = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_objects_identifier], dim=0
+ )
+ frame_orig_size = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_frame_orig_size], dim=0
+ )
+ return BatchedVideoDatapoint(
+ img_batch=img_batch,
+ obj_to_frame_idx=obj_to_frame_idx,
+ masks=masks,
+ metadata=BatchedVideoMetaData(
+ unique_objects_identifier=objects_identifier,
+ frame_orig_size=frame_orig_size,
+ ),
+ dict_key=dict_key,
+ batch_size=[T],
+ )
diff --git a/avs.code/v1m.code/utils/foreground_fscore.py b/avs.code/v1m.code/utils/foreground_fscore.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea20b84d2304ca0bd9981fd1a3c254111e3d0ac4
--- /dev/null
+++ b/avs.code/v1m.code/utils/foreground_fscore.py
@@ -0,0 +1,90 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundFScore(AverageMeter):
+ def __init__(self, rank):
+ self.local_rank = rank
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+ def _eval_pr(self, y_pred, y, num, cuda_flag=True):
+ if cuda_flag:
+ prec, recall = torch.zeros(num).cuda(self.local_rank), torch.zeros(num).cuda(self.local_rank)
+ thlist = torch.linspace(0, 1 - 1e-10, num).cuda(self.local_rank)
+ else:
+ prec, recall = torch.zeros(num), torch.zeros(num)
+ thlist = torch.linspace(0, 1 - 1e-10, num)
+ for i in range(num):
+ y_temp = (y_pred >= thlist[i]).float()
+ tp = (y_temp * y).sum()
+ prec[i], recall[i] = tp / (y_temp.sum() + 1e-20), tp / (y.sum() + 1e-20)
+ return prec, recall
+
+ def calculate_f_score(self, pred, gt, pr_num=255, get_entire_list=False):
+
+ r"""
+ param:
+ pred: size [N x H x W]
+ gt: size [N x H x W]
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ # print('=> eval [FMeasure]..')
+ pred = torch.sigmoid(pred) # =======================================[important]
+ N = pred.size(0)
+ beta2 = 0.3
+ avg_f, img_num = 0.0, 0
+ score = torch.zeros(pr_num)
+ # fLog = open(os.path.join(measure_path, 'FMeasure.txt'), 'w')
+ # print("{} videos in this batch".format(N))
+
+ for img_id in range(N):
+ # examples with totally black GTs are out of consideration
+ if torch.mean(gt[img_id].float()) == 0.0:
+ continue
+ prec, recall = self._eval_pr(pred[img_id], gt[img_id], pr_num)
+ f_score = (1 + beta2) * prec * recall / (beta2 * prec + recall)
+ f_score[f_score != f_score] = 0 # for Nan
+ avg_f += f_score
+ img_num += 1
+ score = avg_f / img_num
+ # print('score: ', score)
+ # fLog.close()
+ self.add({'foreground_f-score': score.max().item()})
+ return self.get('foreground_f-score') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+
diff --git a/avs.code/v1m.code/utils/foreground_iou.py b/avs.code/v1m.code/utils/foreground_iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..e01eeb081eee8ebfa1fcb6618d05b9d57c02f817
--- /dev/null
+++ b/avs.code/v1m.code/utils/foreground_iou.py
@@ -0,0 +1,69 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundIoU(AverageMeter):
+ def __init__(self):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
+ def calculate_iou(self, pred, target, eps=1e-7, get_entire_list=False):
+ r"""
+ param (both hard mask):
+ pred: size [N x H x W], type: int
+ target: size [N x H x W], type: int
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ assert len(pred.shape) == 3 and pred.shape == target.shape, 'shape mismatch.'
+ assert pred.dtype is torch.long and target.dtype is torch.long, 'type mismatch.'
+
+ N = pred.size(0)
+ num_pixels = pred.size(-1) * pred.size(-2)
+ no_obj_flag = (target.sum(2).sum(1) == 0)
+
+ inter = (pred * target).sum(2).sum(1)
+ union = torch.max(pred, target).sum(2).sum(1)
+
+ inter_no_obj = ((1 - target) * (1 - pred)).sum(2).sum(1)
+ inter[no_obj_flag] = inter_no_obj[no_obj_flag]
+ union[no_obj_flag] = num_pixels
+
+ iou = torch.sum(inter / (union+eps)) / N
+
+ self.add({'foreground_iou': iou})
+ return self.get('foreground_iou') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
diff --git a/avs.code/v1m.code/utils/iou.py b/avs.code/v1m.code/utils/iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..211488b780887a8efd84361bafc6b09bfad4c345
--- /dev/null
+++ b/avs.code/v1m.code/utils/iou.py
@@ -0,0 +1,76 @@
+import torch
+import numpy
+
+
+class BinaryMIoU(object):
+ def __init__(self, ignore_index):
+ self.num_classes = 2
+ self.ignore_index = ignore_index
+ self.inter, self.union = 0, 0
+ self.correct, self.label = 0, 0
+ self.iou = numpy.array([0 for _ in range(self.num_classes)])
+ self.acc = 0.0
+
+ def get_metric_results(self, curr_correct_, curr_label_, curr_inter_, curr_union_):
+ # calculates the overall miou and acc
+ self.correct = self.correct + curr_correct_
+ self.label = self.label + curr_label_
+ self.inter = self.inter + curr_inter_
+ self.union = self.union + curr_union_
+ self.acc = 1.0 * self.correct / (numpy.spacing(1) + self.label)
+ self.iou = 1.0 * self.inter / (numpy.spacing(1) + self.union)
+ return numpy.round(self.iou, 4), numpy.round(self.acc, 4)
+ # if class_list is None:
+ # return numpy.round(self.iou.mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+ # else:
+ # return numpy.round(self.iou[class_list].mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+
+ @staticmethod
+ def get_current_image_results(curr_correct_, curr_label_, curr_inter_, curr_union_):
+ curr_acc = 1.0 * curr_correct_ / (numpy.spacing(1) + curr_label_)
+ curr_iou = 1.0 * curr_inter_ / (numpy.spacing(1) + curr_union_)
+ return curr_iou, curr_acc
+
+ def __call__(self, x, y):
+ curr_correct, curr_label, curr_inter, curr_union = self.calculate_current_sample(x, y)
+ return (self.get_metric_results(curr_correct, curr_label, curr_inter, curr_union),
+ self.get_current_image_results(curr_correct, curr_label, curr_inter, curr_union))
+
+ def calculate_current_sample(self, output, target):
+ # output => BxCxHxW (logits)
+ # target => Bx1xHxW
+ target[target == self.ignore_index] = -1
+ correct, labeled = self.batch_pix_accuracy(output.data, target)
+ inter, union = self.batch_intersection_union(output.data, target, self.num_classes)
+ return [numpy.round(correct, 5), numpy.round(labeled, 5), numpy.round(inter, 5), numpy.round(union, 5)]
+
+ @ staticmethod
+ def batch_pix_accuracy(predict, target):
+ # _, predict = torch.max(output, 1)
+
+ predict = predict.int() + 1
+ target = target.int() + 1
+
+ pixel_labeled = (target > 0).sum()
+ pixel_correct = ((predict == target) * (target > 0)).sum()
+ assert pixel_correct <= pixel_labeled, "Correct area should be smaller than Labeled"
+ return pixel_correct.cpu().numpy(), pixel_labeled.cpu().numpy()
+
+ @ staticmethod
+ def batch_intersection_union(predict, target, num_class):
+ # _, predict = torch.max(output, 1)
+ predict = predict + 1
+ target = target + 1
+
+ predict = predict * (target > 0).long()
+ intersection = predict * (predict == target).long()
+
+ area_inter = torch.histc(intersection.float(), bins=num_class, max=num_class, min=1)
+ area_pred = torch.histc(predict.float(), bins=num_class, max=num_class, min=1)
+ area_lab = torch.histc(target.float(), bins=num_class, max=num_class, min=1)
+ area_union = area_pred + area_lab - area_inter
+ assert (area_inter <= area_union).all(), "Intersection area should be smaller than Union area"
+ return area_inter.cpu().numpy(), area_union.cpu().numpy()
+
diff --git a/avs.code/v1m.code/utils/misc.py b/avs.code/v1m.code/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..5eb9d66c31a4b9209b81a5b615386d29f246135c
--- /dev/null
+++ b/avs.code/v1m.code/utils/misc.py
@@ -0,0 +1,350 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
+
diff --git a/avs.code/v1m.code/utils/tensorboard.py b/avs.code/v1m.code/utils/tensorboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..3519131463bb3f279eb97b2b44974a402482af42
--- /dev/null
+++ b/avs.code/v1m.code/utils/tensorboard.py
@@ -0,0 +1,135 @@
+import os
+
+import PIL
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision
+import wandb
+
+# from utils.visualize import show_img
+
+
+color_map = {"background": (0, 0, 0), "longitudinal": (128, 0, 0), "pothole": (0, 128, 0),
+ "alligator": (128, 128, 0), "transverse": (128, 0, 128), "ignore": (255, 255, 255)}
+
+
+class Tensorboard:
+ def __init__(self, config):
+ if config.get('wandb_online', False):
+ key = config.get('wandb_key') or os.environ.get('WANDB_API_KEY', '')
+ if key:
+ os.environ['WANDB_API_KEY'] = key
+ wandb.login(key=key, relogin=False)
+ self.tensor_board = wandb.init(project=config['proj_name'], name=config['experiment_name'],
+ config=config, settings=wandb.Settings(code_dir=""))
+ else:
+ os.environ.setdefault("WANDB_MODE", "disabled")
+ self.tensor_board = wandb.init(project=config['proj_name'], name=config['experiment_name'],
+ config=config, mode="disabled",
+ settings=wandb.Settings(code_dir=""))
+
+ self._log_images = bool(config.get('wandb_online', False))
+
+ self.restore_transform = torchvision.transforms.Compose([
+ DeNormalize(config['image_mean'], config['image_std']),
+ torchvision.transforms.ToPILImage()])
+
+ def upload_wandb_info(self, info_dict):
+ for i, info in enumerate(info_dict):
+ self.tensor_board.log({info: info_dict[info]})
+ return
+
+
+ def upload_wandb_image(self, frames, pseudo_label_from_pred, pseudo_label_from_sam, img_number=4):
+ if not self._log_images:
+ return
+
+ def _batched_rgb(t):
+ """[N,C,H,W] or [C,H,W] float tensor on CPU."""
+ if not isinstance(t, torch.Tensor):
+ t = torch.as_tensor(t)
+ t = t.detach().cpu().float()
+ if t.dim() == 3:
+ return t.unsqueeze(0)
+ if t.dim() == 4:
+ return t
+ raise ValueError("frames must be [C,H,W] or [N,C,H,W], got shape {}".format(tuple(t.shape)))
+
+ def _batched_mask(t):
+ """[N,H,W] or [N,1,H,W] or [H,W]."""
+ if not isinstance(t, torch.Tensor):
+ t = torch.as_tensor(t)
+ t = t.detach().cpu().float()
+ while t.dim() > 3:
+ t = t.squeeze(1)
+ if t.dim() == 2:
+ t = t.unsqueeze(0)
+ if t.dim() != 3:
+ raise ValueError("masks must be [H,W], [N,H,W] or [N,1,H,W], got shape {}".format(tuple(t.shape)))
+ return t
+
+ frames = _batched_rgb(frames)
+ pseudo_label_from_pred = _batched_mask(pseudo_label_from_pred)
+ pseudo_label_from_sam = _batched_mask(pseudo_label_from_sam)
+
+ n = min(frames.shape[0], pseudo_label_from_pred.shape[0], pseudo_label_from_sam.shape[0], img_number)
+ frames = frames[:n]
+ pseudo_label_from_pred = pseudo_label_from_pred[:n]
+ pseudo_label_from_sam = pseudo_label_from_sam[:n]
+
+ pseudo_label_from_sam = pseudo_label_from_sam.clone()
+ pseudo_label_from_pred = pseudo_label_from_pred.clone()
+ pseudo_label_from_sam[pseudo_label_from_sam == 255.] = 0.5
+ pseudo_label_from_pred[pseudo_label_from_pred == 255.] = 0.5
+
+ denorm = self.restore_transform.transforms[0]
+ image_list = []
+ label_list = []
+ logits_list = []
+ for i in range(n):
+ fi = frames[i].clone()
+ if fi.shape[0] == 3:
+ denorm(fi)
+ fi.clamp_(0.0, 1.0)
+ image_list.append(wandb.Image(fi, caption="id {}".format(str(i))))
+ # wandb.Image expects torch tensors as [C, H, W] (it permutes CHW→HWC)
+ ms = pseudo_label_from_sam[i].squeeze()
+ mp = pseudo_label_from_pred[i].squeeze()
+ if ms.dim() == 2:
+ ms = ms.unsqueeze(0)
+ if mp.dim() == 2:
+ mp = mp.unsqueeze(0)
+ label_list.append(wandb.Image(ms, caption="id {}".format(str(i))))
+ logits_list.append(wandb.Image(mp, caption="id {}".format(str(i))))
+
+ self.tensor_board.log({"image": image_list, "label": label_list, "logits": logits_list})
+
+ def de_normalize(self, image):
+ return [self.restore_transform(i.detach().cpu()) if (isinstance(i, torch.Tensor) and len(i.shape) == 3)
+ else colorize_mask(i.detach().cpu().numpy(), self.palette)
+ for i in image]
+
+ def finish(self):
+ self.tensor_board.finish()
+
+
+class DeNormalize(object):
+ def __init__(self, mean, std):
+ self.mean = mean
+ self.std = std
+
+ def __call__(self, tensor):
+ for t, m, s in zip(tensor, self.mean, self.std):
+ t.mul_(s).add_(m)
+ return tensor
+
+
+def colorize_mask(mask, palette):
+ zero_pad = 256 * 3 - len(palette)
+ for i in range(zero_pad):
+ palette.append(0)
+ # palette[-6:-3] = [183, 65, 14]
+ new_mask = PIL.Image.fromarray(mask.astype(numpy.uint8)).convert('P')
+ new_mask.putpalette(palette)
+ return new_mask
diff --git a/avs.code/v1m.code/utils/utils.py b/avs.code/v1m.code/utils/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..e72f27a7e2be77cea271001230195ef79f685351
--- /dev/null
+++ b/avs.code/v1m.code/utils/utils.py
@@ -0,0 +1,119 @@
+"""Optimizer helpers: split learning rates for AuralFuser train_* vs VGG backbone."""
+import torch
+import copy
+from typing import List, Dict, Set, Any
+
+
+def manipulate_params(cfg, model):
+ weight_decay_norm = 0
+ weight_decay_embed = 0
+ defaults = {}
+ defaults["lr"] = cfg.lr
+ defaults["weight_decay"] = cfg.weight_decay
+
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ params_training: List[Dict[str, Any]] = []
+ params_finetuning: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+
+ train_prefixes = (
+ "patch_embeds",
+ "f_blocks",
+ "a_blocks",
+ "fusion_modules",
+ "smooth_convs",
+ "train_proj_v1",
+ "train_proj_a1",
+ )
+
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ # Avoid duplicating parameters
+ if value in memo:
+ continue
+ memo.add(value)
+ hyperparams = copy.copy(defaults)
+ if 'vgg' in module_name or 'vgg' in module_param_name:
+ hyperparams['lr'] *= 0.1
+ params_finetuning.append({"params": [value], "name": [module_name], **hyperparams})
+ elif (
+ 'train' in module_name
+ or 'train' in module_param_name
+ or module_name.startswith(train_prefixes)
+ ):
+ if (
+ "relative_position_bias_table" in module_param_name
+ or "pos_embed" in module_param_name
+ ):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, norm_module_types):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, torch.nn.Embedding):
+ hyperparams["weight_decay"] = 0.0
+ params_training.append({"params": [value], "name": [module_name], **hyperparams})
+ else:
+ print('undefined layer type.')
+ raise NotImplementedError
+ final_list = params_training + params_finetuning
+ assert len([p for p in model.parameters() if p.requires_grad]) == len(final_list), 'checksum confirmed not pass.'
+ return final_list
+
+
+def group_weight(weight_group, module, weight_decay_value, lr):
+ group_decay = []
+ group_no_decay = []
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ for m in module.modules():
+ if isinstance(m, torch.nn.Linear):
+ group_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d, torch.nn.Conv3d, torch.nn.ConvTranspose2d,
+ torch.nn.ConvTranspose3d)):
+ group_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, norm_module_types):
+ if m.weight is not None:
+ group_no_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, torch.nn.Parameter):
+ group_no_decay.append(m)
+ elif isinstance(m, torch.nn.Embedding):
+ group_no_decay.append(m)
+ else:
+ print('undefined layer type find.')
+ raise NotImplementedError
+
+ assert len(list(module.parameters())) == len(group_decay) + len(
+ group_no_decay)
+ weight_group.append(dict(params=group_decay, weight_deacy=weight_decay_value, lr=lr))
+ weight_group.append(dict(params=group_no_decay, weight_decay=.0, lr=lr))
+ return weight_group
\ No newline at end of file
diff --git a/avs.code/v1s.code/configs/__init__.py b/avs.code/v1s.code/configs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/avs.code/v1s.code/configs/auralfuser/architecture.yaml b/avs.code/v1s.code/configs/auralfuser/architecture.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab4c3d06ca42335ce6bfc8064bbd5cfd44c8080a
--- /dev/null
+++ b/avs.code/v1s.code/configs/auralfuser/architecture.yaml
@@ -0,0 +1,30 @@
+# @package _global_
+
+aural_fuser:
+ patch_cfgs:
+ - [4, 4]
+ - [2, 2]
+ - [1, 1]
+ f_depths: [3, 6, 12]
+ block_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
+ one_d_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
diff --git a/avs.code/v1s.code/configs/config.py b/avs.code/v1s.code/configs/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d75fa447314845c0671a494110cb2bedc2b8420
--- /dev/null
+++ b/avs.code/v1s.code/configs/config.py
@@ -0,0 +1,84 @@
+import os
+import numpy
+from easydict import EasyDict
+
+# v1m.code package root (parent of this `configs/` directory)
+_CODE_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+# workspace root (parent of avs.code)
+_WORKSPACE_ROOT = os.path.dirname(os.path.dirname(_CODE_ROOT))
+
+C = EasyDict()
+config = C
+cfg = C
+
+C.seed = 666
+
+C.audio = EasyDict()
+C.audio.FREEZE_AUDIO_EXTRACTOR = True
+C.audio.PRETRAINED_VGGISH_MODEL_PATH = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'vggish-10086976.pth')
+C.audio.PREPROCESS_AUDIO_TO_LOG_MEL = False
+C.audio.POSTPROCESS_LOG_MEL_WITH_PCA = False
+C.train_vggish = False
+
+"""Root Directory Config"""
+C.repo_name = 'AV'
+C.root_dir = _CODE_ROOT
+
+"""Data Dir and Weight Dir"""
+C.data_root_path = os.path.join(_WORKSPACE_ROOT, 'AVSBench')
+C.backbone_weight = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'sam_ckpts', 'sam2_hiera_large.pt')
+C.sam_config_path = os.path.join('sam2', 'sam2_hiera_l.yaml')
+
+"""Network Config"""
+C.fix_bias = True
+C.bn_eps = 1e-5
+C.bn_momentum = 0.1
+
+"""Image Config"""
+C.num_classes = 2
+
+C.image_mean = numpy.array([0.485, 0.456, 0.406])
+C.image_std = numpy.array([0.229, 0.224, 0.225])
+
+
+C.image_size = 1024
+C.image_embedding_size = int(C.image_size / 16)
+C.avsbench_size = (224, 224)
+
+C.scale_list = [.5, .75, 1., 1.25, 1.5]
+C.ignore_index = 255
+
+"""Train Config"""
+C.lr = 7.5e-5
+C.batch_size = 8
+C.energy_weight = .05
+
+C.lr_power = 0.9
+C.momentum = 0.9
+C.weight_decay = 0.05
+
+C.num_workers = 4
+
+"""Display Config"""
+C.record_info_iter = 20
+C.display_iter = 50
+
+"""Wandb Config"""
+# Paste your W&B API key here, or set the WANDB_API_KEY environment variable instead.
+C.wandb_key = ""
+
+# Your project [work_space] name
+C.proj_name = "AVS-final-report"
+
+C.experiment_name = "v1s-hiera-l"
+
+
+# False = no wandb logging (see utils/tensorboard.py)
+C.wandb_online = False
+
+"""Save Config"""
+C.saved_dir = os.path.join(_WORKSPACE_ROOT, 'ckpts', C.experiment_name)
+
+import pathlib
+
+pathlib.Path(C.saved_dir).mkdir(parents=True, exist_ok=True)
diff --git a/avs.code/v1s.code/configs/sam2/sam2_hiera_b+.yaml b/avs.code/v1s.code/configs/sam2/sam2_hiera_b+.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..52e0f10732134149f6a994be063d11fd7591c430
--- /dev/null
+++ b/avs.code/v1s.code/configs/sam2/sam2_hiera_b+.yaml
@@ -0,0 +1,114 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 112
+ num_heads: 2
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [896, 448, 224, 112]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
+
diff --git a/avs.code/v1s.code/configs/sam2/sam2_hiera_l.yaml b/avs.code/v1s.code/configs/sam2/sam2_hiera_l.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8478b3d4b8b16d8b22f6555cf7b1f00231d7fd59
--- /dev/null
+++ b/avs.code/v1s.code/configs/sam2/sam2_hiera_l.yaml
@@ -0,0 +1,117 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 144
+ num_heads: 2
+ stages: [2, 6, 36, 4]
+ global_att_blocks: [23, 33, 43]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ window_spec: [8, 4, 16, 8]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [1152, 576, 288, 144]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/avs.code/v1s.code/configs/sam2/sam2_hiera_s.yaml b/avs.code/v1s.code/configs/sam2/sam2_hiera_s.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..26e5d4d39f7b2892396106005c37c7ffe6c83bc2
--- /dev/null
+++ b/avs.code/v1s.code/configs/sam2/sam2_hiera_s.yaml
@@ -0,0 +1,116 @@
+# @package _global_
+
+# Model
+model:
+ _target_: sam2.modeling.sam2_base.SAM2Base
+ image_encoder:
+ _target_: sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 11, 2]
+ global_att_blocks: [7, 10, 13]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/avs.code/v1s.code/configs/sam2/sam2_hiera_t.yaml b/avs.code/v1s.code/configs/sam2/sam2_hiera_t.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..59e605b73c9777b70942538252d27a55ae8a7e1a
--- /dev/null
+++ b/avs.code/v1s.code/configs/sam2/sam2_hiera_t.yaml
@@ -0,0 +1,118 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 7, 2]
+ global_att_blocks: [5, 7, 9]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 224 # 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ # SAM decoder
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: false
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ # HieraT does not currently support compilation, should always be set to False
+ compile_image_encoder: False
diff --git a/avs.code/v1s.code/configs/training/sam2_training_config.yaml b/avs.code/v1s.code/configs/training/sam2_training_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..55771e7232fe88c4ea445958956eca8174c2e872
--- /dev/null
+++ b/avs.code/v1s.code/configs/training/sam2_training_config.yaml
@@ -0,0 +1,62 @@
+# @package _global_
+
+# Video transforms
+
+train_transforms:
+ - _target_: dataloader.sam2_dataset.transforms.ComposeAPI
+ transforms:
+ - _target_: dataloader.sam2_dataset.transforms.RandomHorizontalFlip
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomAffine
+ degrees: 25
+ shear: 20
+ image_interpolation: bilinear
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomResizeAPI
+ sizes: 1024 # ${scratch.resolution}
+ square: true
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: True
+ brightness: 0.1
+ contrast: 0.03
+ saturation: 0.03
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.RandomGrayscale
+ p: 0.05
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: False
+ brightness: 0.1
+ contrast: 0.05
+ saturation: 0.05
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.ToTensorAPI
+ - _target_: dataloader.sam2_dataset.transforms.NormalizeAPI
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+
+loss:
+ all:
+ _target_: loss.training.sam2_training_loss.MultiStepMultiMasksAndIous
+ weight_dict:
+ loss_mask: 20 # 20
+ loss_dice: 1
+ loss_iou: 1
+ loss_class: 1
+ supervise_all_iou: true
+ iou_use_l1_loss: true
+ pred_obj_scores: true
+ focal_gamma_obj_score: 0.0
+ focal_alpha_obj_score: -1.0
+ gpu_num: 4.
+
+# Contrastive loss (ContrastLoss); loaded in main.py / inference.py → hyp_param.contrastive_learning
+contrastive_learning:
+ temperature: 0.10
+ ignore_idx: 255
+ ood_idx: 254
+ max_views: 512
+ proj_dim: 512
+ sample_limits: 128
+ total_limits: 15240
diff --git a/avs.code/v1s.code/dataloader/audio/audio_augmentation.py b/avs.code/v1s.code/dataloader/audio/audio_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..850d1577ea2bca4f8ec209edc201fb54968be928
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/audio/audio_augmentation.py
@@ -0,0 +1,23 @@
+import numpy
+
+
+class Augmentation(object):
+ """Audio pre-step used by training/inference: int16 waveform -> float in [-1, 1].
+
+ The previous audiomentations-based transforms were commented out and never applied;
+ behavior is unchanged: only scaling by 1/32768.
+ """
+
+ def __init__(self, mono=True):
+ self.mono = mono
+
+ def train_aug(self, x_, sr_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def test_process(self, x_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def __call__(self, x, sr, split):
+ return self.train_aug(x, sr) if split == "train" else self.test_process(x)
diff --git a/avs.code/v1s.code/dataloader/audio/audio_dataset.py b/avs.code/v1s.code/dataloader/audio/audio_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c8e8b276e8545aa55ef56295719a0ad2b167106
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/audio/audio_dataset.py
@@ -0,0 +1,38 @@
+import torch
+import numpy
+import os
+from dataloader.audio.preprocess_vgg.vggish_input import waveform_to_examples
+import soundfile
+
+
+class Audio(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split):
+ # temporarily set no augmentation.
+ self.augmentation = augmentation
+ self.directory_path = directory_path
+ self.split = split
+
+ def load_audio_wave(self, file_index, file_index_mix):
+ audio_path = os.path.join(file_index, 'audio.wav')
+ wav_data, sample_rate = soundfile.read(audio_path, dtype='int16')
+ assert wav_data.dtype == numpy.int16, 'Bad sample type: %r' % wav_data.dtype
+
+ if file_index_mix is not None:
+ audio_path2 = os.path.join(file_index_mix, 'audio.wav')
+ wav_data2, _ = soundfile.read(audio_path2, dtype='int16')
+ mix_lambda = numpy.random.beta(10, 10)
+ min_length = min(wav_data.shape[0], wav_data2.shape[0])
+ wav_data = wav_data[:min_length] * mix_lambda + wav_data2[:min_length] * (1-mix_lambda)
+
+ wav_data = self.augmentation(wav_data, sample_rate, self.split)
+ audio_log_mel = torch.cat([waveform_to_examples(wav_data[:, 0], sample_rate, True).detach(),
+ waveform_to_examples(wav_data[:, 1], sample_rate, True).detach()], dim=1)
+
+ # for the vgg preprocess, we will need 5 seconds audio log.
+ if audio_log_mel.shape[0] < 5:
+ audio_log_mel = torch.cat([audio_log_mel,
+ audio_log_mel[-1].unsqueeze(0).repeat(5-audio_log_mel.shape[0], 1, 1, 1)])
+ return audio_log_mel
+
+ def __len__(self):
+ return len(self.audio_list)
diff --git a/avs.code/v1s.code/dataloader/audio/preprocess_vgg/mel_features.py b/avs.code/v1s.code/dataloader/audio/preprocess_vgg/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/audio/preprocess_vgg/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/avs.code/v1s.code/dataloader/audio/preprocess_vgg/vggish_input.py b/avs.code/v1s.code/dataloader/audio/preprocess_vgg/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d58e81bc70a85138980128e033f271998794605
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/audio/preprocess_vgg/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from dataloader.audio.preprocess_vgg import mel_features
+from dataloader.audio.preprocess_vgg import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/avs.code/v1s.code/dataloader/audio/preprocess_vgg/vggish_params.py b/avs.code/v1s.code/dataloader/audio/preprocess_vgg/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/audio/preprocess_vgg/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/avs.code/v1s.code/dataloader/dataset.py b/avs.code/v1s.code/dataloader/dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..066f3639049e8840a67c60078ae7a8d6f38c1fa2
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/dataset.py
@@ -0,0 +1,67 @@
+"""Fused audio-visual dataset for AVSBench-style indexing."""
+import os
+import random
+import PIL.Image
+import numpy
+import torch
+from dataloader.visual.visual_dataset import Visual
+from dataloader.audio.audio_dataset import Audio
+import pandas
+
+
+class AV(torch.utils.data.Dataset):
+ """Pairs video frames + labels from `Visual` with log-mel spectrograms from `Audio` via `metadata.csv`."""
+
+ def __init__(self, split, augmentation, param, root_path='', data_name='find'):
+ self.visual_dataset = Visual(augmentation['visual'], os.path.join(root_path, data_name), split, param.image_size, param.image_embedding_size)
+ self.audio_dataset = Audio(augmentation['audio'], os.path.join(root_path, data_name), split)
+ self.augment = augmentation
+ self.split = split
+ self.file_path = self.organise_files(self.split, root_path, data_name, csv_name_='avss_index/metadata.csv')
+
+ def __getitem__(self, index):
+ mixing_prob = 0. # we omit this option.
+ other_index = random.randint(1, self.__len__()) - 1 if random.random() < mixing_prob and self.split == 'train' else None
+ frame, label, prompts = self.visual_dataset.load_data(self.file_path[index])
+ if other_index is not None:
+ other_frame, other_label, other_prompts = self.visual_dataset.load_data(self.file_path[other_index])
+ frame, label, prompts = self.visual_mix(frame, other_frame, label, other_label, prompts, other_prompts)
+ audio_mel = self.audio_dataset.load_audio_wave(self.file_path[index], self.file_path[other_index])
+ else:
+ audio_mel = self.audio_dataset.load_audio_wave(self.file_path[index], None)
+
+ assert other_index is None if self.split == 'test' else 1, print('no mix in validation.')
+
+ return {'frame': frame, 'label': label, 'spectrogram': audio_mel, 'id': self.file_path[index],
+ 'prompts': prompts}
+
+ def __len__(self):
+ return len(self.file_path)
+
+ @staticmethod
+ def organise_files(split_, root_path_, data_name_, csv_name_):
+ """Read rows from `csv_name_` under `root_path_` matching split and dataset label."""
+ total_files = pandas.read_csv(os.path.join(root_path_, csv_name_))
+ files_info = total_files[(total_files["split"] == split_) & (total_files["label"] == data_name_)]['uid']
+
+ files_path = [os.path.join(root_path_, data_name_, files_name) for files_name in files_info]
+ del total_files, files_info
+ return files_path
+
+ @staticmethod
+ def visual_mix(frame1, frame2, label1, label2, prompts1, prompts2):
+ mix_frame = frame1.clone()
+ mix_label = label1.clone()
+ bbx1, bby1, bbx2, bby2 = 0, 0, mix_label.shape[1] - 1, mix_label.shape[2] - 1
+
+ for i in range(0, mix_frame.shape[0]):
+ label_canvas_foreground = label2[i, bbx1:bbx2, bby1:bby2] > 0.
+ mix_frame[i, :, bbx1:bbx2, bby1:bby2][:, label_canvas_foreground] = (
+ frame2[i, :, bbx1:bbx2, bby1:bby2][:, label_canvas_foreground])
+ mix_label[i, bbx1:bbx2, bby1:bby2][label_canvas_foreground] = (
+ label2[i, bbx1:bbx2, bby1:bby2][label_canvas_foreground])
+
+ return mix_frame, mix_label, prompts1
+
+
+
diff --git a/avs.code/v1s.code/dataloader/sam2_dataset/__init__.py b/avs.code/v1s.code/dataloader/sam2_dataset/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/sam2_dataset/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1s.code/dataloader/sam2_dataset/transforms.py b/avs.code/v1s.code/dataloader/sam2_dataset/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..7731e59ba98a5465493e3a9c4b785eb4d4420ca2
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/sam2_dataset/transforms.py
@@ -0,0 +1,528 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Transforms and data augmentation for both image + bbox.
+"""
+
+import logging
+
+import random
+from typing import Iterable
+
+import torch
+import torchvision.transforms as T
+import torchvision.transforms.functional as F
+import torchvision.transforms.v2.functional as Fv2
+from PIL import Image as PILImage
+# from docutils.nodes import label
+import numpy
+from torchvision.transforms import InterpolationMode
+
+# from utils.data_utils import VideoDatapoint
+
+
+def hflip(frames, labels, index):
+ # print(index)
+ # print(len(frames), frames[index].size, type(frames[index]))
+ # print(len(labels), labels[index].size, type(labels[index]))
+ frames[index] = F.hflip(frames[index])
+ labels[index] = F.hflip(labels[index])
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.hflip(obj.segment)
+
+ return frames, labels
+
+
+def get_size_with_aspect_ratio(image_size, size, max_size=None):
+ w, h = image_size
+ if max_size is not None:
+ min_original_size = float(min((w, h)))
+ max_original_size = float(max((w, h)))
+ if max_original_size / min_original_size * size > max_size:
+ size = max_size * min_original_size / max_original_size
+
+ if (w <= h and w == size) or (h <= w and h == size):
+ return (h, w)
+
+ if w < h:
+ ow = int(round(size))
+ oh = int(round(size * h / w))
+ else:
+ oh = int(round(size))
+ ow = int(round(size * w / h))
+
+ return (oh, ow)
+
+
+def resize(frames, labels, index, size, max_size=None, square=False, v2=False):
+ # size can be min_size (scalar) or (w, h) tuple
+ def get_size(image_size, size, max_size=None):
+ if isinstance(size, (list, tuple)):
+ return size[::-1]
+ else:
+ return get_size_with_aspect_ratio(image_size, size, max_size)
+
+ if square:
+ size = size, size
+ else:
+ raise NotImplementedError
+ # cur_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ # size = get_size(cur_size, size, max_size)
+
+ # old_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ if v2:
+ frames[index].data = Fv2.resize(
+ frames[index].data, size, antialias=True
+ )
+ else:
+ frames[index] = F.resize(frames[index], size)
+ labels[index] = F.resize(labels[index], size)
+ # new_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.resize(obj.segment[None, None], size).squeeze()
+
+ # h, w = size
+ # frames[index].size = (h, w)
+ return frames, labels
+
+
+def pad(frames, index, padding, v2=False):
+ old_h, old_w = frames[index].size
+ h, w = old_h, old_w
+ if len(padding) == 2:
+ # assumes that we only pad on the bottom right corners
+ frames[index].data = F.pad(
+ frames[index].data, (0, 0, padding[0], padding[1])
+ )
+ h += padding[1]
+ w += padding[0]
+ else:
+ # left, top, right, bottom
+ frames[index].data = F.pad(
+ frames[index].data,
+ (padding[0], padding[1], padding[2], padding[3]),
+ )
+ h += padding[1] + padding[3]
+ w += padding[0] + padding[2]
+
+ frames[index].size = (h, w)
+
+ for obj in frames[index].objects:
+ if obj.segment is not None:
+ if v2:
+ if len(padding) == 2:
+ obj.segment = Fv2.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = Fv2.pad(obj.segment, tuple(padding))
+ else:
+ if len(padding) == 2:
+ obj.segment = F.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = F.pad(obj.segment, tuple(padding))
+ return frames
+
+
+class RandomHorizontalFlip:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for i in range(len(frames)):
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+ for i in range(len(frames)):
+ if random.random() < self.p:
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+
+
+class RandomResizeAPI:
+ def __init__(
+ self, sizes, consistent_transform, max_size=None, square=False, v2=False
+ ):
+ if isinstance(sizes, int):
+ sizes = (sizes,)
+ assert isinstance(sizes, Iterable)
+ self.sizes = list(sizes)
+ self.max_size = max_size
+ self.square = square
+ self.consistent_transform = consistent_transform
+ self.v2 = v2
+
+ def __call__(self, frames, labels):
+ if self.consistent_transform:
+ size = random.choice(self.sizes)
+ for i in range(len(frames)):
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+ for i in range(len(frames)):
+ size = random.choice(self.sizes)
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+
+
+class ToTensorAPI:
+ def __init__(self, v2=False):
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ if self.v2:
+ raise NotImplementedError
+ # frames[img_idx] = Fv2.to_tensor(frames[img_idx])
+ else:
+ frames[img_idx] = F.to_tensor(frames[img_idx])
+ labels[img_idx] = torch.tensor(numpy.array(labels[img_idx]), dtype=torch.float)
+ return frames, labels
+
+
+class NormalizeAPI:
+ def __init__(self, mean, std, v2=False):
+ self.mean = mean
+ self.std = std
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ # if self.v2:
+ # img.data = Fv2.convert_image_dtype(img.data, torch.float32)
+ # img.data = Fv2.normalize(img.data, mean=self.mean, std=self.std)
+ # else:
+ frames[img_idx] = F.normalize(frames[img_idx], mean=self.mean, std=self.std)
+
+ return frames, labels
+
+'''
+
+
+
+
+
+
+
+
+'''
+class ComposeAPI:
+ def __init__(self, transforms):
+ self.transforms = transforms
+
+ def __call__(self, frames, labels, **kwargs):
+ for t in self.transforms:
+ frames, labels = t(frames, labels, **kwargs)
+ return frames, labels
+
+ def __repr__(self):
+ format_string = self.__class__.__name__ + "("
+ for t in self.transforms:
+ format_string += "\n"
+ format_string += " {0}".format(t)
+ format_string += "\n)"
+ return format_string
+
+
+class RandomGrayscale:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+ self.Grayscale = T.Grayscale(num_output_channels=3)
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for img_idx in range(len(frames)):
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+ for img_idx in range(len(frames)):
+ if random.random() < self.p:
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+
+
+class ColorJitter:
+ def __init__(self, consistent_transform, brightness, contrast, saturation, hue):
+ self.consistent_transform = consistent_transform
+ self.brightness = (
+ brightness
+ if isinstance(brightness, list)
+ else [max(0, 1 - brightness), 1 + brightness]
+ )
+ self.contrast = (
+ contrast
+ if isinstance(contrast, list)
+ else [max(0, 1 - contrast), 1 + contrast]
+ )
+ self.saturation = (
+ saturation
+ if isinstance(saturation, list)
+ else [max(0, 1 - saturation), 1 + saturation]
+ )
+ self.hue = hue if isinstance(hue, list) or hue is None else ([-hue, hue])
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ # Create a color jitter transformation params
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for img in frames:
+ if not self.consistent_transform:
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for fn_id in fn_idx:
+ if fn_id == 0 and brightness_factor is not None:
+ img = F.adjust_brightness(img, brightness_factor)
+ elif fn_id == 1 and contrast_factor is not None:
+ img = F.adjust_contrast(img, contrast_factor)
+ elif fn_id == 2 and saturation_factor is not None:
+ img = F.adjust_saturation(img, saturation_factor)
+ elif fn_id == 3 and hue_factor is not None:
+ img = F.adjust_hue(img, hue_factor)
+ return frames, labels
+
+
+class RandomAffine:
+ def __init__(
+ self,
+ degrees,
+ consistent_transform,
+ scale=None,
+ translate=None,
+ shear=None,
+ image_mean=(123, 116, 103),
+ label_fill_value=0.,
+ log_warning=True,
+ num_tentatives=1,
+ image_interpolation="bicubic",
+ ):
+ """
+ The mask is required for this transform.
+ if consistent_transform if True, then the same random affine is applied to all frames and masks.
+ """
+ self.degrees = degrees if isinstance(degrees, list) else ([-degrees, degrees])
+ self.scale = scale
+ self.shear = (
+ shear if isinstance(shear, list) else ([-shear, shear] if shear else None)
+ )
+ self.translate = translate
+ self.fill_img = image_mean
+ self.fill_label = label_fill_value
+ self.consistent_transform = consistent_transform
+ self.log_warning = log_warning
+ self.num_tentatives = num_tentatives
+ assert self.num_tentatives >= 1., 'must have at least one if we utilise the augmentation.'
+
+ if image_interpolation == "bicubic":
+ self.image_interpolation = InterpolationMode.BICUBIC
+ elif image_interpolation == "bilinear":
+ self.image_interpolation = InterpolationMode.BILINEAR
+ else:
+ raise NotImplementedError
+
+ def __call__(self, frames, labels, **kwargs):
+ for _tentative in range(self.num_tentatives):
+ res_img, res_labels = self.transform_frames(frames, labels)
+ # if res is not None:
+ return res_img, res_labels
+
+ # raise NotImplementedError
+ # if self.log_warning:
+ # logging.warning(
+ # f"Skip RandomAffine for zero-area mask in first frame after {self.num_tentatives} tentatives"
+ # )
+ # return frames
+
+ def transform_frames(self, frames, labels):
+ _, height, width = F.get_dimensions(frames[0])
+ img_size = [width, height]
+
+ if self.consistent_transform:
+ # Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+
+ for img_idx, img in enumerate(frames):
+ if not self.consistent_transform:
+ # if not consistent we create a new affine params for every frame&mask pair Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+ frames[img_idx] = F.affine(
+ img,
+ *affine_params,
+ interpolation=self.image_interpolation,
+ fill=self.fill_img,
+ )
+ labels[img_idx] = F.affine(
+ labels[img_idx],
+ *affine_params,
+ # default: interpolation='nearest',
+ fill=self.fill_label,
+ )
+ return frames, labels
+
+
+'''
+def random_mosaic_frame(
+ datapoint,
+ index,
+ grid_h,
+ grid_w,
+ target_grid_y,
+ target_grid_x,
+ should_hflip,
+):
+ # Step 1: downsize the images and paste them into a mosaic
+ image_data = datapoint.frames[index].data
+ is_pil = isinstance(image_data, PILImage.Image)
+ if is_pil:
+ H_im = image_data.height
+ W_im = image_data.width
+ image_data_output = PILImage.new("RGB", (W_im, H_im))
+ else:
+ H_im = image_data.size(-2)
+ W_im = image_data.size(-1)
+ image_data_output = torch.zeros_like(image_data)
+
+ downsize_cache = {}
+ for grid_y in range(grid_h):
+ for grid_x in range(grid_w):
+ y_offset_b = grid_y * H_im // grid_h
+ x_offset_b = grid_x * W_im // grid_w
+ y_offset_e = (grid_y + 1) * H_im // grid_h
+ x_offset_e = (grid_x + 1) * W_im // grid_w
+ H_im_downsize = y_offset_e - y_offset_b
+ W_im_downsize = x_offset_e - x_offset_b
+
+ if (H_im_downsize, W_im_downsize) in downsize_cache:
+ image_data_downsize = downsize_cache[(H_im_downsize, W_im_downsize)]
+ else:
+ image_data_downsize = F.resize(
+ image_data,
+ size=(H_im_downsize, W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )
+ downsize_cache[(H_im_downsize, W_im_downsize)] = image_data_downsize
+ if should_hflip[grid_y, grid_x].item():
+ image_data_downsize = F.hflip(image_data_downsize)
+
+ if is_pil:
+ image_data_output.paste(image_data_downsize, (x_offset_b, y_offset_b))
+ else:
+ image_data_output[:, y_offset_b:y_offset_e, x_offset_b:x_offset_e] = (
+ image_data_downsize
+ )
+
+ datapoint.frames[index].data = image_data_output
+
+ # Step 2: downsize the masks and paste them into the target grid of the mosaic
+ for obj in datapoint.frames[index].objects:
+ if obj.segment is None:
+ continue
+ assert obj.segment.shape == (H_im, W_im) and obj.segment.dtype == torch.uint8
+ segment_output = torch.zeros_like(obj.segment)
+
+ target_y_offset_b = target_grid_y * H_im // grid_h
+ target_x_offset_b = target_grid_x * W_im // grid_w
+ target_y_offset_e = (target_grid_y + 1) * H_im // grid_h
+ target_x_offset_e = (target_grid_x + 1) * W_im // grid_w
+ target_H_im_downsize = target_y_offset_e - target_y_offset_b
+ target_W_im_downsize = target_x_offset_e - target_x_offset_b
+
+ segment_downsize = F.resize(
+ obj.segment[None, None],
+ size=(target_H_im_downsize, target_W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )[0, 0]
+ if should_hflip[target_grid_y, target_grid_x].item():
+ segment_downsize = F.hflip(segment_downsize[None, None])[0, 0]
+
+ segment_output[
+ target_y_offset_b:target_y_offset_e, target_x_offset_b:target_x_offset_e
+ ] = segment_downsize
+ obj.segment = segment_output
+
+ return datapoint
+
+
+class RandomMosaicVideoAPI:
+ def __init__(self, prob=0.15, grid_h=2, grid_w=2, use_random_hflip=False):
+ self.prob = prob
+ self.grid_h = grid_h
+ self.grid_w = grid_w
+ self.use_random_hflip = use_random_hflip
+
+ def __call__(self, frames, **kwargs):
+ if random.random() > self.prob:
+ return datapoint
+
+ # select a random location to place the target mask in the mosaic
+ target_grid_y = random.randint(0, self.grid_h - 1)
+ target_grid_x = random.randint(0, self.grid_w - 1)
+ # whether to flip each grid in the mosaic horizontally
+ if self.use_random_hflip:
+ should_hflip = torch.rand(self.grid_h, self.grid_w) < 0.5
+ else:
+ should_hflip = torch.zeros(self.grid_h, self.grid_w, dtype=torch.bool)
+ for i in range(len(datapoint.frames)):
+ datapoint = random_mosaic_frame(
+ datapoint,
+ i,
+ grid_h=self.grid_h,
+ grid_w=self.grid_w,
+ target_grid_y=target_grid_y,
+ target_grid_x=target_grid_x,
+ should_hflip=should_hflip,
+ )
+
+ return datapoint
+'''
\ No newline at end of file
diff --git a/avs.code/v1s.code/dataloader/visual/visual_augmentation.py b/avs.code/v1s.code/dataloader/visual/visual_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d40aed7c8b8c08d50a46db122e1213bd4878afd
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/visual/visual_augmentation.py
@@ -0,0 +1,140 @@
+import random
+
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision.transforms.functional as F
+import torchvision.transforms as transforms
+
+
+class Augmentation(object):
+ def __init__(self, image_mean, image_std, image_width, image_height, scale_list, ignore_index=255):
+ self.image_size = (image_height, image_width)
+ # self.image_norm = (image_mean, image_std)
+ # self.get_crop_pos = transforms.RandomCrop(self.image_size)
+ self.color_jitter = transforms.ColorJitter(brightness=.5, contrast=.5, saturation=.5, hue=.25)
+ self.gaussian_blurring = transforms.GaussianBlur((3, 3))
+ self.scale_list = scale_list
+
+ self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+ self.to_tensor = transforms.ToTensor()
+
+ self.ignore_index = ignore_index
+
+ # self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+
+ # if setup == "avs" or setup == "avss" or setup == "avss_binary":
+ # # AVS
+ # self.scale_list = [.5, .75, 1.]
+ # self.color_jitter = None
+ # else:
+ # # COCO
+ # # self.scale_list = [.75, 1., 1.25, 1.5, 1.75, 2.]
+ # self.scale_list = [0.5,0.75,1.0,1.25,1.5,1.75,2.0]
+
+ # def normalise(self, image):
+ # image = image / 255.0
+ # image = image - self.image_norm[0]
+ # image = image / self.image_norm[1]
+ # return image
+
+ def resize(self, image_, label_, size=None):
+ h_, w_ = self.image_size if size is None else size
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ def random_crop_with_padding(self, image_, label_):
+ w_, h_ = image_.size
+ if min(h_, w_) < min(self.image_size):
+ res_w_ = max(self.image_size[0] - w_, 0)
+ res_h_ = max(self.image_size[1] - h_, 0)
+ image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=(numpy.array(self.image_norm[0]) * 255.).tolist())
+ # image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=self.ignore_index) # if error, define the padding value.
+ label_ = F.pad(label_, [0, 0, res_w_, res_h_], fill=self.ignore_index)
+
+ pos_ = self.get_crop_pos.get_params(image_, self.image_size)
+ image_ = F.crop(image_, *pos_)
+ label_ = F.crop(label_, *pos_)
+
+ return image_, label_
+
+ # @staticmethod
+ def random_scales(self, image_, label_):
+ w_, h_ = image_.size
+ chosen_scale = random.choice(self.scale_list)
+ w_, h_ = int(w_ * chosen_scale), int(h_ * chosen_scale)
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ @staticmethod
+ def random_flip_h(image_, label_):
+ chosen_flip = random.random() > 0.5
+ image_ = F.hflip(image_) if chosen_flip else image_
+ label_ = F.hflip(label_) if chosen_flip else label_
+ return image_, label_
+
+ def augment_entire_clip(self, x_list, y_list):
+ degree_ = float(torch.empty(1).uniform_(float(-25.), float(25.)).item())
+ shear_ = [float(torch.empty(1).uniform_(float(-20.), float(20.)).item()),
+ torch.empty(1).uniform_(float(-20.), float(20.)).item()]
+ dice = random.random()
+ for index, single_x in enumerate(x_list):
+ if dice <= 0.1:
+ single_x = F.rgb_to_grayscale(single_x, num_output_channels=3)
+
+ single_x = F.affine(single_x, angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.BILINEAR, fill=[0., 0., 0.])
+ single_y = F.affine(y_list[index], angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.NEAREST, fill=[0.])
+ x_list[index] = single_x
+ y_list[index] = single_y
+
+ return x_list, y_list
+
+
+
+
+ def train_aug(self, x_, y_):
+ x_, y_ = self.random_flip_h(x_, y_)
+ # # x, y = self.random_scales(x, y)
+ x_, y_ = self.resize(x_, y_)
+
+ if self.color_jitter is not None and random.random() < 0.5:
+ x_ = self.color_jitter(x_)
+ if self.gaussian_blurring is not None and random.random() < 0.5:
+ x_ = self.gaussian_blurring(x_)
+
+ # x, y = self.random_crop_with_padding(x, y)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ # receive pseudo labels.
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def test_process(self, x_, y_):
+ # x = self.to_tensor(x)
+ # y = torch.tensor(numpy.asarray(y)).long()
+
+ # following AVSbench setup, we fix image size (224, 224)
+ x_, y_ = self.resize(x_, y_)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def __call__(self, x, y, split):
+ return self.train_aug(x, y) if split == "train" \
+ else self.test_process(x, y)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/avs.code/v1s.code/dataloader/visual/visual_dataset.py b/avs.code/v1s.code/dataloader/visual/visual_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..62673359e084483b51f41dc2204cbc9dedf288be
--- /dev/null
+++ b/avs.code/v1s.code/dataloader/visual/visual_dataset.py
@@ -0,0 +1,138 @@
+import os
+import re
+import PIL.Image
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import pandas
+import torchvision
+
+
+class Visual(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split, image_size, image_embedding_size):
+ self.augment = augmentation
+ self.directory_path = directory_path
+ self.split = split
+ self.image_size = image_size
+ self.embedding_size = image_embedding_size
+
+ def load_data(self, file_prefix):
+ frame_path = os.path.join(file_prefix, 'frames')
+ frame_path = [os.path.join(frame_path, i) for i in os.listdir(frame_path)]
+ label_path = os.path.join(file_prefix, 'labels_rgb')
+ label_path = [os.path.join(label_path, i) for i in os.listdir(label_path)]
+
+ # if self.split == 'train':
+ # label_path += [os.path.join(file_prefix.replace('v1s', 'v1s_sam2_pseudo_labels'), i) for i in
+ # os.listdir(file_prefix.replace('v1s', 'v1s_sam2_pseudo_labels'))]
+
+ frame_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.jpg')[0])))
+ label_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.png')[0])))
+
+ frame = [PIL.Image.open(i) for i in frame_path]
+ label = [PIL.Image.open(i).convert('L') for i in label_path]
+
+ # Keep full clip length. If labels are fewer than frames, pad missing labels
+ # with ignore-index masks so those positions are skipped in loss.
+ if len(label) < len(frame):
+ label += [PIL.Image.new('L', frame[0].size, color=255)] * (len(frame) - len(label))
+ elif len(label) > len(frame):
+ label = label[:len(frame)]
+
+ # if self.split == 'train':
+ # label += [PIL.Image.new('L', frame[0].size)] * (len(frame)-len(label))
+
+ label_idx = torch.zeros(len(frame), dtype=torch.bool)
+ if len(frame) > 0:
+ # Keep prior behavior: only the first frame is marked as labeled.
+ label_idx[0] = True
+ # fulfill the empty page.
+ # we utilise pseudo-labels now.
+ # label_idx = torch.tensor(list([1] + [0] * (len(frame) - len(label))), dtype=torch.bool)
+ # label += [PIL.Image.new('L', frame[0].size)] * (len(frame)-len(label))
+
+ # receive the prompts from the ground truth.
+ # prompts = {"point_coords": torch.nan, "point_labels": torch.nan,
+ # "masks": [None]*len(frame), "box_coords": [None]*len(frame)}
+
+ prompts = {}
+ image_batch = [None]*len(frame)
+ label_batch = [None]*len(frame)
+
+ if self.split == 'train':
+ # frame, label = self.augment.augment_entire_clip(frame, label)
+ frame, label = self.augment(frame, label)
+
+
+ for i in range(len(frame)):
+ if self.split == 'test':
+ curr_frame, curr_label = self.augment(frame[i], label[i], split=self.split)
+ else:
+ curr_frame, curr_label = frame[i], label[i]
+ # if self.split == 'train' and i > 0:
+ # curr_label = curr_label / 255.
+ # curr_label[curr_label > 0.5] = 1
+ # curr_label[curr_label < 0.5] = 0
+ # # curr_label[(0.05 < curr_label) & (curr_label < 0.95)] = 255
+ # # we temporarily make it to be hard mask;
+ # # curr_label = ((curr_label / 255.) - 0.5) * 2
+ # # curr_label[curr_label >= 0.] = 1.
+ # # curr_label[curr_label < 0.] = 0.
+ # else:
+ # Keep ignore-index (255) untouched; binarize only valid foreground labels.
+ curr_label[(curr_label > 0.) & (curr_label < 255.)] = 1.
+ image_batch[i], label_batch[i] = curr_frame, curr_label
+
+ # image_batch[i], label_batch[i] = self.augment(frame[i], label[i], split=self.split)
+ # note: we simply convert the code to binary mask in v1s, v1m;
+ # to some reason, we failed to load the label in `L' format and had to hardcoding here.
+ # label_batch[i][label_batch[i] > 0.] = 1.
+
+ # prompts['box_coords'][i], prompts['masks'][i] = self.receive_other_prompts(label_batch[i])
+
+ # organise the prompts
+ # prompts.update({'masks': torch.stack(prompts['masks'], dim=0)})
+ # prompts.update({'box_coords': torch.stack(prompts['box_coords'], dim=0)})
+ # prompts.update({'point_labels': torch.stack(prompts['point_labels'], dim=0)})
+ prompts.update({'label_index': label_idx})
+ return torch.stack(image_batch, dim=0), torch.stack(label_batch, dim=0), prompts
+
+ def receive_other_prompts(self, y_):
+ # y_ = torch.zeros_like(y_)
+ if len(torch.unique(y_)) > 1:
+ # foreground point
+ points_foreground = torch.stack(torch.where(y_ > 0)[::-1], dim=0).transpose(1, 0)
+
+ # bbox prompt (left-top corner & right-bottom corner)
+ bbox_one = torch.min(points_foreground[:, 0]), torch.min(points_foreground[:, 1])
+ bbox_fou = torch.max(points_foreground[:, 0]), torch.max(points_foreground[:, 1])
+ bbox_coord = torch.tensor(bbox_one + bbox_fou, dtype=torch.float)
+ bbox_coord = self.transform_coords(bbox_coord, orig_hw=y_.squeeze().shape)
+ # mask prompt
+ low_mask = torchvision.transforms.functional.resize(y_.clone(), [self.embedding_size*4, self.embedding_size*4],
+ torchvision.transforms.InterpolationMode.NEAREST)
+ else:
+ # for the pure background situation.
+ bbox_coord = torch.zeros([4], dtype=torch.float).fill_(float('nan'))
+ low_mask = torch.zeros([1, self.embedding_size*4, self.embedding_size*4], dtype=torch.float).fill_(float('nan'))
+
+ return bbox_coord, low_mask
+
+ # we transfer the coords to SAM's input resolution (1024, 1024).
+ def transform_coords(self, coords: torch.Tensor, orig_hw=None) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the sam2 model.
+ """
+ h, w = orig_hw
+ coords = coords.clone().reshape(-1, 2, 2)
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+ coords = coords * self.image_size # unnormalize coords
+ return coords.reshape(4)
+
+
+
diff --git a/avs.code/v1s.code/inference.py b/avs.code/v1s.code/inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..daa177eee39a941151e3fc5dace4296506fdec7a
--- /dev/null
+++ b/avs.code/v1s.code/inference.py
@@ -0,0 +1,195 @@
+"""Distributed inference on the test set; runs the same three `process` modes as training validation."""
+import os
+import pathlib
+import torch
+import numpy
+import random
+import argparse
+from easydict import EasyDict
+
+# Avoid import failure when configs.config creates saved_dir without write permission.
+_real_mkdir = pathlib.Path.mkdir
+
+
+def _safe_mkdir(self, mode=0o777, parents=False, exist_ok=False):
+ try:
+ return _real_mkdir(self, mode, parents=parents, exist_ok=exist_ok)
+ except PermissionError:
+ pass
+
+
+pathlib.Path.mkdir = _safe_mkdir
+
+
+def seed_it(seed):
+ random.seed(seed)
+ os.environ["PYTHONSEED"] = str(seed)
+ numpy.random.seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.deterministic = True
+ torch.backends.cudnn.benchmark = False
+ torch.backends.cudnn.enabled = True
+ torch.manual_seed(seed)
+
+
+class _DummyTensorboard:
+ """Minimal Tensorboard stub so Trainer.valid runs without wandb logging."""
+
+ def upload_wandb_info(self, info_dict):
+ pass
+
+ def upload_wandb_image(self, *args, **kwargs):
+ pass
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus * 1
+ )
+ seed_it(local_rank + hyp_param.seed)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra `configs`
+ from hydra import compose
+ from omegaconf import OmegaConf
+
+ arch_h = compose(config_name='auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ train_cfg = compose(config_name='training/sam2_training_config.yaml')
+ OmegaConf.resolve(train_cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(train_cfg.contrastive_learning, resolve=True)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda()
+ torch.cuda.set_device(hyp_param.local_rank)
+ ckpt_sd = torch.load(hyp_param.inference_ckpt, map_location="cpu")
+ if not isinstance(ckpt_sd, dict):
+ raise TypeError("Checkpoint must be a state_dict dictionary.")
+ # Support both formats:
+ # 1) full-model checkpoint (keys like `v_model.*`, `aural_fuser.*`)
+ # 2) train-only checkpoint for aural_fuser (keys without `aural_fuser.` prefix)
+ if any(k.startswith("v_model.") or k.startswith("aural_fuser.") for k in ckpt_sd.keys()):
+ av_model.load_state_dict(ckpt_sd, strict=True)
+ else:
+ av_model.aural_fuser.load_state_dict(ckpt_sd, strict=True)
+
+ av_model = torch.nn.parallel.distributed.DistributedDataParallel(av_model, device_ids=[hyp_param.local_rank],
+ find_unused_parameters=False)
+ av_model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(av_model)
+ av_model.eval()
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data import DataLoader, Subset
+ from torch.utils.data.distributed import DistributedSampler
+
+ visual_augmentation = VisualAugmentation(hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index)
+ audio_augmentation = AudioAugmentation(mono=True)
+
+ dataset = AV(split='test', augmentation={"visual": visual_augmentation, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path, data_name=hyp_param.inference_data_name)
+
+ max_batches = getattr(hyp_param, "inference_max_batches", 0) or 0
+ if max_batches > 0:
+ n_samples = min(max_batches * hyp_param.batch_size, len(dataset))
+ dataset = Subset(dataset, range(n_samples))
+
+ sampler = DistributedSampler(dataset, shuffle=False)
+ test_dataloader = DataLoader(dataset, batch_size=hyp_param.batch_size, sampler=sampler,
+ num_workers=hyp_param.num_workers)
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+
+ metrics = {
+ "foreground_iou": ForegroundIoU(),
+ "foreground_f-score": ForegroundFScore(hyp_param.local_rank),
+ }
+ trainer = Trainer(hyp_param, loss=None, tensorboard=_DummyTensorboard(), metrics=metrics)
+
+ # Same three modes as main.py validation: default first mask / iou_select / iou_occ_select
+ runs = [
+ ("", "default (logits[:,0])"),
+ ("iou_select", "iou_select"),
+ ("iou_occ_select", "iou_occ_select"),
+ ]
+ results = []
+ for process, label in runs:
+ fiou, ffscore = trainer.valid(epoch=0, dataloader=test_dataloader, model=av_model, process=process)
+ results.append((label, fiou, ffscore))
+ torch.cuda.empty_cache()
+
+ if hyp_param.local_rank <= 0:
+ print("\n========== inference (same three process flags as training valid) ==========")
+ for label, fiou, ffscore in results:
+ print(" {:32s} f_iou={} f_f-score={}".format(label, fiou, ffscore))
+ print("=======================================================\n")
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Inference: full test set + three process modes')
+
+ parser.add_argument('-n', '--nodes', default=1, type=int, metavar='N')
+
+ parser.add_argument("--local_rank", type=int, default=-1,
+ help='multi-process training for DDP')
+
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+
+ parser.add_argument('--batch_size', default=1, type=int,
+ help='Batch size (match training if needed)')
+
+ parser.add_argument('--epochs', default=80, type=int,
+ help="unused")
+
+ parser.add_argument('--lr', default=1e-5, type=float,
+ help="unused")
+
+ parser.add_argument('--online', action="store_true",
+ help='unused')
+
+ parser.add_argument(
+ '--inference_ckpt', type=str, default=None,
+ help='Trained AuralSAM2 checkpoint (.pth state_dict: full model or aural_fuser-only). '
+ 'SAM2 backbone is loaded from backbone_weight in configs (same path as training: repo_root/ckpts/sam_ckpts/). '
+ 'Default if unset: avs.code/training_details/.../hiera_l.pth',
+ )
+ parser.add_argument('--inference_data_name', type=str, default='v1s',
+ help='AVSBench subset folder label (v1s|v1m|v2); must match training test split')
+ parser.add_argument('--inference_max_batches', type=int, default=0,
+ help='0 = full test; >0 = first N batches only (debug)')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+
+ args = EasyDict({**C, **vars(args)})
+
+ _repo = pathlib.Path(__file__).resolve().parent
+ # Repo root: .../AuralSAM2 (parent of avs.code)
+ _workspace = _repo.parent.parent
+ args.data_root_path = str(_workspace / 'AVSBench')
+ args.backbone_weight = str(_workspace / 'ckpts' / 'sam_ckpts' / 'sam2_hiera_large.pt')
+ args.audio.PRETRAINED_VGGISH_MODEL_PATH = str(_workspace / 'ckpts' / 'vggish-10086976.pth')
+ args.saved_dir = '/tmp/v1s_infer_ckpt'
+ pathlib.Path(args.saved_dir).mkdir(parents=True, exist_ok=True)
+ if args.inference_ckpt is None:
+ args.inference_ckpt = str(
+ _repo.parent / 'training_details' / 'v1s' / 'hiera_l' / 'hiera_l.pth'
+ )
+
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9901'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/avs.code/v1s.code/loss/training/__init__.py b/avs.code/v1s.code/loss/training/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..da8932ea6e0916b9f16cb514f1e64704440d554e
--- /dev/null
+++ b/avs.code/v1s.code/loss/training/__init__.py
@@ -0,0 +1,2 @@
+"""Training loss modules."""
+
diff --git a/avs.code/v1s.code/loss/training/contrastive_learning.py b/avs.code/v1s.code/loss/training/contrastive_learning.py
new file mode 100644
index 0000000000000000000000000000000000000000..82cde07ec5815910688daa4622d61feaacb453c6
--- /dev/null
+++ b/avs.code/v1s.code/loss/training/contrastive_learning.py
@@ -0,0 +1,205 @@
+from abc import ABC
+
+import torch
+import torch.nn as nn
+
+
+class ContrastLoss(nn.Module, ABC):
+ def __init__(self, hyp_param):
+ super().__init__()
+ self.param = hyp_param
+ _defaults = {
+ "temperature": 0.10,
+ "ignore_idx": 255,
+ "ood_idx": 254,
+ "max_views": 512,
+ "proj_dim": 512,
+ "sample_limits": 128,
+ "total_limits": 15240,
+ }
+ _raw = getattr(hyp_param, "contrastive_learning", None) or {}
+ _cfg = {**_defaults, **_raw}
+ self.temperature = _cfg["temperature"]
+ self.ignore_idx = _cfg["ignore_idx"]
+ self.ood_idx = _cfg["ood_idx"]
+ self.max_views = _cfg["max_views"]
+ self.proj_dim = _cfg["proj_dim"]
+ self.sample_limits = _cfg["sample_limits"]
+ self.total_limits = _cfg["total_limits"]
+
+ def select_class_wise_samples(self, embeddings, audio_embeddings, predictions, masks, batch_idx):
+ embedding_sample_list = []
+ label_list = []
+ embedding_sample_list_a = []
+ label_list_a = []
+ class_index_list = torch.unique(masks)
+
+ if len(class_index_list) > 1:
+ for class_index in class_index_list[1:]:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(class_index.unsqueeze(0) + batch_idx * 1e3)
+ else:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(torch.zeros([1], device=embeddings.device) + batch_idx * 1e3)
+
+ sample_limits = self.sample_limits
+ embeddings = embeddings.permute(1, 0)
+ for class_index in class_index_list:
+ hard_indices = embeddings[((masks != predictions) & (masks == class_index)).nonzero()]
+ easy_indices = embeddings[((masks == predictions) & (masks == class_index)).nonzero()]
+
+ hard_indices_num, easy_indices_num = hard_indices.shape[0], easy_indices.shape[0]
+ selective_num_hard = min(sample_limits, hard_indices_num)
+ selective_num_easy = min(sample_limits, easy_indices_num)
+
+ if (selective_num_hard + selective_num_easy) < sample_limits * 2:
+ if selective_num_hard > selective_num_easy:
+ selective_num_hard += sample_limits * 2 - selective_num_easy
+ else:
+ selective_num_easy += sample_limits * 2 - selective_num_hard
+
+ hard_chosen_indices = torch.randperm(hard_indices_num)[:selective_num_hard]
+ embedding_sample_list.append(hard_indices[hard_chosen_indices])
+ label_list.append(masks[hard_chosen_indices] + batch_idx * 1e3)
+
+ easy_chosen_indices = torch.randperm(easy_indices_num)[:selective_num_easy]
+ embedding_sample_list.append(easy_indices[easy_chosen_indices])
+ label_list.append(masks[easy_chosen_indices] + batch_idx * 1e3)
+ return embedding_sample_list, label_list, embedding_sample_list_a, label_list_a
+
+ def forward_audio_visual(self, visual_embeddings, audio_embeddings, masks, predictions):
+ masks = masks.flatten(start_dim=1)
+ predictions = predictions.flatten(start_dim=1)
+ visual_embeddings = visual_embeddings.flatten(start_dim=-2)
+
+ visual_embedding_sample_list = []
+ visual_label_list = []
+ audio_embedding_sample_list = []
+ audio_label_list = []
+
+ for frame_idx in range(masks.shape[0]):
+ current_vision_feats = visual_embeddings[frame_idx]
+ current_masks = masks[frame_idx]
+ current_predictions = predictions[frame_idx]
+ current_audio_feats = audio_embeddings[frame_idx]
+ for layer_idx in range(3):
+ (
+ selected_vision_embeddings,
+ selected_vision_labels,
+ selected_audio_embeddings,
+ selected_audio_labels,
+ ) = self.select_class_wise_samples(
+ current_vision_feats[layer_idx],
+ current_audio_feats[layer_idx],
+ current_predictions,
+ current_masks,
+ 0,
+ )
+ visual_embedding_sample_list += selected_vision_embeddings
+ visual_label_list += selected_vision_labels
+ audio_embedding_sample_list += selected_audio_embeddings
+ audio_label_list += selected_audio_labels
+
+ if len(visual_embedding_sample_list) == 0:
+ return 0.0
+
+ visual_embedding_sample_list = torch.cat(visual_embedding_sample_list, dim=0).squeeze()
+ if visual_embedding_sample_list.dim() == 1:
+ visual_embedding_sample_list = visual_embedding_sample_list.unsqueeze(0)
+ visual_label_list = torch.cat(visual_label_list, dim=0).unsqueeze(-1)
+ audio_embedding_sample_list = torch.cat(audio_embedding_sample_list, dim=0).squeeze()
+ if audio_embedding_sample_list.dim() == 1:
+ audio_embedding_sample_list = audio_embedding_sample_list.unsqueeze(0)
+ audio_label_list = torch.cat(audio_label_list).unsqueeze(1)
+
+ total_limits = self.total_limits
+ if visual_embedding_sample_list.shape[0] > total_limits:
+ rand_index = torch.randperm(visual_embedding_sample_list.shape[0])[total_limits]
+ visual_embedding_sample_list = visual_embedding_sample_list[:rand_index]
+ visual_label_list = visual_label_list[:rand_index]
+ loss = self.info_nce(
+ visual_embedding_sample_list,
+ visual_label_list,
+ audio_embedding_sample_list,
+ audio_label_list,
+ )
+ return loss
+
+ def forward(self, embeddings, output_dicts, masks):
+ predictions = torch.cat([i["multistep_pred_masks"] for i in output_dicts])
+ predictions = torch.nn.functional.interpolate(
+ predictions,
+ size=(int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ mode="bilinear",
+ align_corners=False,
+ ).squeeze(1)
+ masks = torch.nn.functional.interpolate(
+ masks.unsqueeze(1),
+ size=(int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ mode="nearest",
+ ).squeeze(1)
+ visual_embeddings, audio_embeddings = embeddings
+ visual_embeddings = torch.cat(
+ [
+ torch.cat(
+ [
+ visual_embeddings[0][i].unsqueeze(0),
+ visual_embeddings[1][i].unsqueeze(0),
+ visual_embeddings[2][i].unsqueeze(0),
+ ]
+ ).unsqueeze(0)
+ for i in range(masks.shape[0])
+ ]
+ )
+ audio_embeddings = torch.cat(
+ [
+ torch.cat(
+ [
+ audio_embeddings[0][i].unsqueeze(0),
+ audio_embeddings[1][i].unsqueeze(0),
+ audio_embeddings[2][i].unsqueeze(0),
+ ]
+ ).unsqueeze(0)
+ for i in range(masks.shape[0])
+ ]
+ )
+ return self.forward_audio_visual(
+ visual_embeddings, audio_embeddings.squeeze(-1), masks, predictions
+ )
+
+ @staticmethod
+ def manipulate_cover_mask(a_label, current_mask):
+ a_label = a_label + 1
+ visual_mask = torch.matmul(a_label, torch.transpose(a_label, 0, 1))
+ current_mask[: visual_mask.shape[1], : visual_mask.shape[0]][visual_mask == 1.0] = 0
+ current_mask[: visual_mask.shape[1], : visual_mask.shape[0]][visual_mask == 4.0] = 0
+ return current_mask
+
+ def info_nce(self, anchors_, a_labels_, contras_, c_labels_):
+ c_labels_ = torch.cat([a_labels_, c_labels_])
+ contras_ = torch.cat([anchors_, contras_])
+ mask = torch.eq(a_labels_, torch.transpose(c_labels_, 0, 1)).float()
+
+ anchor_dot_contrast = torch.div(
+ torch.matmul(anchors_, torch.transpose(contras_, 0, 1)),
+ self.temperature,
+ )
+
+ logits_max, _ = torch.max(anchor_dot_contrast, dim=1, keepdim=True)
+ logits = anchor_dot_contrast - logits_max.detach()
+ neg_mask = 1 - mask
+
+ mask = self.manipulate_cover_mask(a_label=a_labels_, current_mask=mask)
+ mask = mask.fill_diagonal_(0.0)
+
+ neg_logits = torch.exp(logits) * neg_mask
+ neg_logits = neg_logits.sum(1, keepdim=True)
+ exp_logits = torch.exp(logits)
+ log_prob = logits - torch.log(exp_logits + neg_logits)
+
+ mask_pos_pairs = mask.sum(1)
+ mask_pos_pairs = torch.where(mask_pos_pairs < 1e-6, 1, mask_pos_pairs)
+ mean_log_prob_pos = (mask * log_prob).sum(1) / mask_pos_pairs
+ assert not torch.isnan(mean_log_prob_pos).any(), print(torch.isnan(log_prob).any())
+ return -mean_log_prob_pos.mean()
+
diff --git a/avs.code/v1s.code/loss/training/sam2_training_loss.py b/avs.code/v1s.code/loss/training/sam2_training_loss.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6ce1b02c0dbbf5d7e771b314a4a537145e28978
--- /dev/null
+++ b/avs.code/v1s.code/loss/training/sam2_training_loss.py
@@ -0,0 +1,220 @@
+from collections import defaultdict
+from typing import Dict, List
+
+import torch
+import torch.distributed
+import torch.nn as nn
+import torch.nn.functional as F
+
+CORE_LOSS_KEY = "core_loss"
+
+
+def dice_loss(inputs, targets, num_objects, loss_on_multimask=False):
+ inputs = inputs.sigmoid()
+ if loss_on_multimask:
+ assert inputs.dim() == 4 and targets.dim() == 4
+ inputs = inputs.flatten(2)
+ targets = targets.flatten(2)
+ numerator = 2 * (inputs * targets).sum(-1)
+ else:
+ inputs = inputs.flatten(1)
+ numerator = 2 * (inputs * targets).sum(1)
+ denominator = inputs.sum(-1) + targets.sum(-1)
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+def sigmoid_focal_loss(
+ inputs,
+ targets,
+ num_objects,
+ alpha: float = 0.25,
+ gamma: float = 2,
+ loss_on_multimask=False,
+):
+ prob = inputs.sigmoid()
+ ce_loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction="none")
+ p_t = prob * targets + (1 - prob) * (1 - targets)
+ loss = ce_loss * ((1 - p_t) ** gamma)
+
+ if alpha >= 0:
+ alpha_t = alpha * targets + (1 - alpha) * (1 - targets)
+ loss = alpha_t * loss
+
+ if loss_on_multimask:
+ assert loss.dim() == 4
+ return loss.flatten(2).mean(-1) / num_objects
+ return loss.mean(1).sum() / num_objects
+
+
+def iou_loss(
+ inputs, targets, pred_ious, num_objects, loss_on_multimask=False, use_l1_loss=False
+):
+ assert inputs.dim() == 4 and targets.dim() == 4
+ pred_mask = inputs.flatten(2) > 0
+ gt_mask = targets.flatten(2) > 0
+ area_i = torch.sum(pred_mask & gt_mask, dim=-1).float()
+ area_u = torch.sum(pred_mask | gt_mask, dim=-1).float()
+ actual_ious = area_i / torch.clamp(area_u, min=1.0)
+
+ if use_l1_loss:
+ loss = F.l1_loss(pred_ious, actual_ious, reduction="none")
+ else:
+ loss = F.mse_loss(pred_ious, actual_ious, reduction="none")
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+class MultiStepMultiMasksAndIous(nn.Module):
+ def __init__(
+ self,
+ weight_dict,
+ focal_alpha=0.25,
+ focal_gamma=2,
+ supervise_all_iou=False,
+ iou_use_l1_loss=False,
+ pred_obj_scores=False,
+ focal_gamma_obj_score=0.0,
+ focal_alpha_obj_score=-1,
+ gpu_num=1,
+ ):
+ super().__init__()
+ self.weight_dict = weight_dict
+ self.focal_alpha = focal_alpha
+ self.focal_gamma = focal_gamma
+ self.world_size = gpu_num
+ assert "loss_mask" in self.weight_dict
+ assert "loss_dice" in self.weight_dict
+ assert "loss_iou" in self.weight_dict
+ if "loss_class" not in self.weight_dict:
+ self.weight_dict["loss_class"] = 0.0
+
+ self.focal_alpha_obj_score = focal_alpha_obj_score
+ self.focal_gamma_obj_score = focal_gamma_obj_score
+ self.supervise_all_iou = supervise_all_iou
+ self.iou_use_l1_loss = iou_use_l1_loss
+ self.pred_obj_scores = pred_obj_scores
+
+ def forward(self, outs_batch: List[Dict], targets_batch: torch.Tensor):
+ assert len(outs_batch) == len(targets_batch)
+ num_objects = torch.tensor(
+ targets_batch.shape[1], device=targets_batch.device, dtype=torch.float
+ )
+ torch.distributed.all_reduce(num_objects)
+ num_objects = torch.clamp(num_objects / self.world_size, min=1).item()
+
+ losses = defaultdict(int)
+ for outs, targets in zip(outs_batch, targets_batch):
+ cur_losses = self._forward(outs, targets, num_objects)
+ for k, v in cur_losses.items():
+ losses[k] += v
+ return losses
+
+ def _forward(self, outputs: Dict, targets: torch.Tensor, num_objects):
+ target_masks = targets.unsqueeze(1).float()
+ assert target_masks.dim() == 4
+
+ src_masks_list = outputs["multistep_pred_multimasks_high_res"]
+ ious_list = outputs["multistep_pred_ious"]
+ object_score_logits_list = outputs["multistep_object_score_logits"]
+ assert len(src_masks_list) == len(ious_list)
+ assert len(object_score_logits_list) == len(ious_list)
+
+ losses = {"loss_mask": 0, "loss_dice": 0, "loss_iou": 0, "loss_class": 0}
+ for src_masks, ious, object_score_logits in zip(
+ src_masks_list, ious_list, object_score_logits_list
+ ):
+ self._update_losses(
+ losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ )
+ losses[CORE_LOSS_KEY] = self.reduce_loss(losses)
+ return losses
+
+ def _update_losses(
+ self, losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ ):
+ target_masks = target_masks.expand_as(src_masks)
+ loss_multimask = sigmoid_focal_loss(
+ src_masks,
+ target_masks,
+ num_objects,
+ alpha=self.focal_alpha,
+ gamma=self.focal_gamma,
+ loss_on_multimask=True,
+ )
+ loss_multidice = dice_loss(
+ src_masks, target_masks, num_objects, loss_on_multimask=True
+ )
+ if not self.pred_obj_scores:
+ loss_class = torch.tensor(
+ 0.0, dtype=loss_multimask.dtype, device=loss_multimask.device
+ )
+ target_obj = torch.ones(
+ loss_multimask.shape[0],
+ 1,
+ dtype=loss_multimask.dtype,
+ device=loss_multimask.device,
+ )
+ else:
+ target_obj = torch.any((target_masks[:, 0] > 0).flatten(1), dim=-1)[
+ ..., None
+ ].float()
+ loss_class = sigmoid_focal_loss(
+ object_score_logits,
+ target_obj,
+ num_objects,
+ alpha=self.focal_alpha_obj_score,
+ gamma=self.focal_gamma_obj_score,
+ )
+
+ loss_multiiou = iou_loss(
+ src_masks,
+ target_masks,
+ ious,
+ num_objects,
+ loss_on_multimask=True,
+ use_l1_loss=self.iou_use_l1_loss,
+ )
+ assert loss_multimask.dim() == 2
+ assert loss_multidice.dim() == 2
+ assert loss_multiiou.dim() == 2
+ if loss_multimask.size(1) > 1:
+ loss_combo = (
+ loss_multimask * self.weight_dict["loss_mask"]
+ + loss_multidice * self.weight_dict["loss_dice"]
+ )
+ best_loss_inds = torch.argmin(loss_combo, dim=-1)
+ batch_inds = torch.arange(loss_combo.size(0), device=loss_combo.device)
+
+ loss_mask = loss_multimask[batch_inds, best_loss_inds].unsqueeze(1)
+ loss_dice = loss_multidice[batch_inds, best_loss_inds].unsqueeze(1)
+ if self.supervise_all_iou:
+ loss_iou = loss_multiiou.mean(dim=-1).unsqueeze(1)
+ else:
+ loss_iou = loss_multiiou[batch_inds, best_loss_inds].unsqueeze(1)
+ else:
+ loss_mask = loss_multimask
+ loss_dice = loss_multidice
+ loss_iou = loss_multiiou
+
+ loss_mask = loss_mask * target_obj
+ loss_dice = loss_dice * target_obj
+ loss_iou = loss_iou * target_obj
+
+ losses["loss_mask"] += loss_mask.sum()
+ losses["loss_dice"] += loss_dice.sum()
+ losses["loss_iou"] += loss_iou.sum()
+ losses["loss_class"] += loss_class
+
+ def reduce_loss(self, losses):
+ reduced_loss = 0.0
+ for loss_key, weight in self.weight_dict.items():
+ if loss_key not in losses:
+ raise ValueError(f"{type(self)} doesn't compute {loss_key}")
+ if weight != 0:
+ reduced_loss += losses[loss_key] * weight
+ return reduced_loss
+
diff --git a/avs.code/v1s.code/main.py b/avs.code/v1s.code/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..bca501accb6ccfbc0e394e231899d3e2e7a40eb5
--- /dev/null
+++ b/avs.code/v1s.code/main.py
@@ -0,0 +1,166 @@
+"""DDP training entry: AV model with SAM2 frozen, AuralFuser trainable, Hydra transforms and loss."""
+import os
+import torch
+import numpy
+import random
+import argparse
+from easydict import EasyDict
+
+
+def seed_it(seed):
+ """Fix RNGs and cuDNN for reproducible runs (rank offsets seed in DDP)."""
+ os.environ["PYTHONSEED"] = str(seed)
+ random.seed(seed)
+ numpy.random.seed(seed)
+ torch.manual_seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.enabled = True
+ torch.backends.cudnn.deterministic = True
+
+ torch.backends.cudnn.benchmark = False
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ # NCCL process group; world size = GPUs on this node
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus * 1
+ )
+ seed_it(local_rank + hyp_param.seed)
+
+ torch.cuda.set_device(hyp_param.local_rank)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra `configs` (initialize_config_module)
+
+ from hydra import compose
+ from hydra.utils import instantiate
+ from omegaconf import OmegaConf
+
+ # Hydra configs under v1m.code/configs (same pattern as training/sam2_training_config.yaml)
+ transform_config_path = 'training/sam2_training_config.yaml'
+
+ if 'hiera_t' in hyp_param.sam_config_path:
+ hyp_param.image_size = 224
+ hyp_param.image_embedding_size = int(hyp_param.image_size / 16)
+ print('\n upload image size to be {}x{} \n'.format(224, 224), flush=True)
+
+ cfg = compose(config_name=transform_config_path)
+ OmegaConf.resolve(cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(cfg.contrastive_learning, resolve=True)
+
+ arch_h = compose(config_name='auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda(hyp_param.local_rank)
+
+ av_model = torch.nn.parallel.distributed.DistributedDataParallel(av_model, device_ids=[hyp_param.local_rank],
+ find_unused_parameters=True)
+
+ # Optimizer: parameter groups from AuralFuser only (train_* vs VGG backbone)
+ from utils.utils import manipulate_params
+ parameter_list = manipulate_params(hyp_param, av_model.module.aural_fuser)
+ optimiser = torch.optim.AdamW(parameter_list, betas=(0.9, 0.999))
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data.distributed import DistributedSampler
+
+ compose_api = instantiate(cfg.train_transforms, _recursive_=True)[0]
+
+ audio_augmentation = AudioAugmentation(mono=True)
+ train_dataset = AV(split='train', augmentation={"visual": compose_api, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path, data_name='v1s')
+
+
+ visual_augmentation = VisualAugmentation(hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index)
+
+ audio_augmentation = AudioAugmentation(mono=True)
+
+ random_sampler = DistributedSampler(train_dataset, shuffle=True)
+ train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=hyp_param.batch_size,
+ sampler=random_sampler,
+ num_workers=hyp_param.num_workers, drop_last=True)
+
+ test_dataset = AV(split='test', augmentation={"visual": visual_augmentation, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path, data_name='v1s')
+
+ order_sampler = DistributedSampler(test_dataset, shuffle=False)
+ test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=1, sampler=order_sampler,
+ num_workers=hyp_param.num_workers)
+
+
+ criterion = instantiate(cfg.loss, _recursive_=True)['all']
+ from utils.tensorboard import Tensorboard
+ tensorboard = Tensorboard(config=hyp_param) if hyp_param.local_rank <= 0 else None
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+ metrics = {"foreground_iou": ForegroundIoU(), "foreground_f-score": ForegroundFScore(0 if hyp_param.local_rank <= 0 else hyp_param.local_rank)}
+
+ trainer = Trainer(hyp_param, loss=criterion, tensorboard=tensorboard, metrics=metrics)
+
+
+ curr_best = 0. # checkpoint when IoU (iou_select mode) improves
+
+ for epoch in range(hyp_param.epochs):
+ av_model.train()
+ av_model.module.freeze_sam_parameters()
+ random_sampler.set_epoch(epoch)
+ trainer.train(epoch=epoch, dataloader=train_dataloader, model=av_model, optimiser=optimiser)
+
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+ av_model.eval()
+ # Three validation modes: default first mask / IoU-selected mask / IoU + objectness gate
+ curr_results1, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='first_index')
+ curr_results, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='iou_select')
+ curr_results3, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='iou_occ_select')
+ if hyp_param.local_rank <= 0 and curr_results > curr_best:
+ curr_best = curr_results
+ torch.save(av_model.module.aural_fuser.state_dict(), os.path.join(hyp_param.saved_dir, str(curr_results) + ".pth"))
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='PyTorch Training')
+ parser.add_argument('-n', '--nodes', default=1, type=int, metavar='N')
+
+ parser.add_argument("--local_rank", type=int, default=-1,
+ help='multi-process training for DDP')
+
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+
+ parser.add_argument('--batch_size', default=1, type=int)
+
+ parser.add_argument('--epochs', default=80, type=int,
+ help="total epochs that used for the training")
+
+ parser.add_argument('--lr', default=1e-4, type=float,
+ help='Default HEAD Learning rate is same as others, '
+ '*Note: in ddp training, lr will automatically times by n_gpu')
+
+ parser.add_argument('--online', action="store_true",
+ help='switch on for visualization; switch off for debug')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+
+ args = EasyDict({**C, **vars(args)})
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9902'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/avs.code/v1s.code/model/audio/torchvggish/mel_features.py b/avs.code/v1s.code/model/audio/torchvggish/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/avs.code/v1s.code/model/audio/torchvggish/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/avs.code/v1s.code/model/audio/torchvggish/vggish.py b/avs.code/v1s.code/model/audio/torchvggish/vggish.py
new file mode 100644
index 0000000000000000000000000000000000000000..f01c22867c713bfd8713eee5665120b92602761d
--- /dev/null
+++ b/avs.code/v1s.code/model/audio/torchvggish/vggish.py
@@ -0,0 +1,193 @@
+import numpy as np
+import torch
+import torch.nn as nn
+from torch import hub
+
+from . import vggish_input, vggish_params
+
+
+class VGG(nn.Module):
+ def __init__(self, features):
+ super(VGG, self).__init__()
+ self.features = features
+ self.embeddings = nn.Sequential(
+ nn.Linear(512 * 4 * 6, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 128),
+ nn.ReLU(True))
+
+ def forward(self, x):
+ x = self.features(x)
+
+ # Transpose the output from features to
+ # remain compatible with vggish embeddings
+ x = torch.transpose(x, 1, 3)
+ x = torch.transpose(x, 1, 2)
+ x = x.contiguous()
+ x = x.view(x.size(0), -1)
+
+ return self.embeddings(x)
+
+
+class Postprocessor(nn.Module):
+ """Post-processes VGGish embeddings. Returns a torch.Tensor instead of a
+ numpy array in order to preserve the gradient.
+
+ "The initial release of AudioSet included 128-D VGGish embeddings for each
+ segment of AudioSet. These released embeddings were produced by applying
+ a PCA transformation (technically, a whitening transform is included as well)
+ and 8-bit quantization to the raw embedding output from VGGish, in order to
+ stay compatible with the YouTube-8M project which provides visual embeddings
+ in the same format for a large set of YouTube videos. This class implements
+ the same PCA (with whitening) and quantization transformations."
+ """
+
+ def __init__(self):
+ """Constructs a postprocessor."""
+ super(Postprocessor, self).__init__()
+ # Create empty matrix, for user's state_dict to load
+ self.pca_eigen_vectors = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, vggish_params.EMBEDDING_SIZE,),
+ dtype=torch.float,
+ )
+ self.pca_means = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, 1), dtype=torch.float
+ )
+
+ self.pca_eigen_vectors = nn.Parameter(self.pca_eigen_vectors, requires_grad=False)
+ self.pca_means = nn.Parameter(self.pca_means, requires_grad=False)
+
+ def postprocess(self, embeddings_batch):
+ """Applies tensor postprocessing to a batch of embeddings.
+
+ Args:
+ embeddings_batch: An tensor of shape [batch_size, embedding_size]
+ containing output from the embedding layer of VGGish.
+
+ Returns:
+ A tensor of the same shape as the input, containing the PCA-transformed,
+ quantized, and clipped version of the input.
+ """
+ assert len(embeddings_batch.shape) == 2, "Expected 2-d batch, got %r" % (
+ embeddings_batch.shape,
+ )
+ assert (
+ embeddings_batch.shape[1] == vggish_params.EMBEDDING_SIZE
+ ), "Bad batch shape: %r" % (embeddings_batch.shape,)
+
+ # Apply PCA.
+ # - Embeddings come in as [batch_size, embedding_size].
+ # - Transpose to [embedding_size, batch_size].
+ # - Subtract pca_means column vector from each column.
+ # - Premultiply by PCA matrix of shape [output_dims, input_dims]
+ # where both are are equal to embedding_size in our case.
+ # - Transpose result back to [batch_size, embedding_size].
+ pca_applied = torch.mm(self.pca_eigen_vectors, (embeddings_batch.t() - self.pca_means)).t()
+
+ # Quantize by:
+ # - clipping to [min, max] range
+ clipped_embeddings = torch.clamp(
+ pca_applied, vggish_params.QUANTIZE_MIN_VAL, vggish_params.QUANTIZE_MAX_VAL
+ )
+ # - convert to 8-bit in range [0.0, 255.0]
+ quantized_embeddings = torch.round(
+ (clipped_embeddings - vggish_params.QUANTIZE_MIN_VAL)
+ * (
+ 255.0
+ / (vggish_params.QUANTIZE_MAX_VAL - vggish_params.QUANTIZE_MIN_VAL)
+ )
+ )
+ return torch.squeeze(quantized_embeddings)
+
+ def forward(self, x):
+ return self.postprocess(x)
+
+
+def make_layers():
+ layers = []
+ in_channels = 1
+ for v in [64, "M", 128, "M", 256, 256, "M", 512, 512, "M"]:
+ if v == "M":
+ layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
+ else:
+ conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1)
+ layers += [conv2d, nn.ReLU(inplace=True)]
+ in_channels = v
+ return nn.Sequential(*layers)
+
+
+def _vgg():
+ return VGG(make_layers())
+
+
+# def _spectrogram():
+# config = dict(
+# sr=16000,
+# n_fft=400,
+# n_mels=64,
+# hop_length=160,
+# window="hann",
+# center=False,
+# pad_mode="reflect",
+# htk=True,
+# fmin=125,
+# fmax=7500,
+# output_format='Magnitude',
+# # device=device,
+# )
+# return Spectrogram.MelSpectrogram(**config)
+
+
+class VGGish(VGG):
+ def __init__(self, cfg, device=None):
+ super().__init__(make_layers())
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_VGGISH_MODEL_PATH)
+ super().load_state_dict(state_dict)
+ print(f'==> Load pretrained VGGish parameters from {cfg.PRETRAINED_VGGISH_MODEL_PATH}')
+
+ if device is None:
+ device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
+ print("device: ", device)
+ self.device = device
+
+ self.preprocess = cfg.PREPROCESS_AUDIO_TO_LOG_MEL
+ self.postprocess = cfg.POSTPROCESS_LOG_MEL_WITH_PCA
+ if self.postprocess:
+ self.pproc = Postprocessor()
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_PCA_PARAMS_PATH)
+ # TODO: Convert the state_dict to torch
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME], dtype=torch.float
+ )
+ state_dict[vggish_params.PCA_MEANS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_MEANS_NAME].reshape(-1, 1), dtype=torch.float
+ )
+ self.pproc.load_state_dict(state_dict)
+ self.to(self.device)
+
+ def forward(self, x):
+ if self.preprocess:
+ print(">>> pre processing...")
+ x = self._preprocess(x)
+ x = x.to(self.device)
+ x = VGG.forward(self, x)
+ if self.postprocess:
+ print(">>> post processing...")
+ x = self._postprocess(x)
+ return x
+
+ def _preprocess(self, x):
+ # if isinstance(x, np.ndarray):
+ # x = vggish_input.waveform_to_examples(x, fs)
+ if isinstance(x, str):
+ x = vggish_input.wavfile_to_examples(x)
+ else:
+ raise AttributeError
+ return x
+
+ def _postprocess(self, x):
+ return self.pproc(x)
diff --git a/avs.code/v1s.code/model/audio/torchvggish/vggish_input.py b/avs.code/v1s.code/model/audio/torchvggish/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..ede228b1fb630180f1f49244355d373fb3300f03
--- /dev/null
+++ b/avs.code/v1s.code/model/audio/torchvggish/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from . import mel_features
+from . import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/avs.code/v1s.code/model/audio/torchvggish/vggish_params.py b/avs.code/v1s.code/model/audio/torchvggish/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/avs.code/v1s.code/model/audio/torchvggish/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/avs.code/v1s.code/model/aural_fuser.py b/avs.code/v1s.code/model/aural_fuser.py
new file mode 100644
index 0000000000000000000000000000000000000000..924810bfcf8bee5e285cab7d54e477daf254b85a
--- /dev/null
+++ b/avs.code/v1s.code/model/aural_fuser.py
@@ -0,0 +1,567 @@
+import math
+
+import torch
+import torch.nn as nn
+from model.audio.torchvggish import vggish
+from timm.models.layers import DropPath, trunc_normal_
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+
+class ProjectionHead(nn.Module):
+ def __init__(self, dim_in, proj_dim=256, norm_act=nn.BatchNorm2d, conv_layer=nn.Conv2d):
+ super().__init__()
+ self.proj = nn.Sequential(
+ conv_layer(dim_in, proj_dim, kernel_size=1),
+ norm_act(proj_dim),
+ conv_layer(proj_dim, proj_dim, kernel_size=1),
+ )
+
+ def forward(self, x):
+ return torch.nn.functional.normalize(self.proj(x), p=2, dim=1)
+
+class AuralFuser(torch.nn.Module):
+ """Fuses VGGish audio with SAM2 FPN maps via patch embeds, fusion blocks, and projection heads."""
+
+ def __init__(self, hyp_param):
+ self.hyp_param = hyp_param
+ super().__init__()
+ self.vgg = vggish.VGGish(self.hyp_param.audio)
+ if not getattr(self.hyp_param, "train_vggish", False):
+ for p in self.vgg.parameters():
+ p.requires_grad = False
+
+ self.position_encoding_func = PositionEmbeddingSine(num_pos_feats=256, normalize=True, scale=None,
+ temperature=10000)
+
+ # Populated in main.py / inference.py via Hydra compose('auralfuser/architecture.yaml') → hyp_param.aural_fuser
+ if not hasattr(self.hyp_param, "aural_fuser") or self.hyp_param.aural_fuser is None:
+ raise ValueError(
+ "hyp_param.aural_fuser is missing; load it with Hydra compose before constructing AuralFuser."
+ )
+ arch_cfg = self.hyp_param.aural_fuser
+
+ _patch_cfgs = [tuple(i) for i in arch_cfg["patch_cfgs"]]
+ _f_depths = arch_cfg["f_depths"]
+ _block_kw = dict(arch_cfg["block_kw"])
+ _block_kw["norm_layer"] = nn.LayerNorm
+ _one_d_kw = dict(arch_cfg["one_d_kw"])
+ _one_d_kw["norm_layer"] = nn.LayerNorm
+ self.patch_embeds = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=k, stride=s) for k, s in _patch_cfgs
+ )
+
+ self.f_blocks = nn.ModuleList(
+ nn.ModuleList([Block(**_block_kw) for _ in range(n)]) for n in _f_depths
+ )
+
+ self.a_blocks = nn.ModuleList(
+ nn.ModuleList([OneDBlock(**_one_d_kw) for _ in range(3)]) for _ in range(3)
+ )
+
+ self.fusion_modules = nn.ModuleList(
+ AudioVisualFusionModule(in_channels=256, mode='dot') for _ in range(3)
+ )
+ self.smooth_convs = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=1, stride=1, padding=0) for _ in range(2)
+ )
+
+ self.train_proj_v1 = ProjectionHead(dim_in=256, proj_dim=128)
+
+ self.train_proj_a1 = ProjectionHead(dim_in=256, norm_act=nn.BatchNorm1d, conv_layer=nn.Conv1d, proj_dim=128)
+
+ @staticmethod
+ def positionalencoding1d(d_model, length):
+ if d_model % 2 != 0:
+ raise ValueError("Cannot use sin/cos positional encoding with "
+ "odd dim (got dim={:d})".format(d_model))
+ pe = torch.zeros(length, d_model)
+ position = torch.arange(0, length).unsqueeze(1)
+ div_term = torch.exp((torch.arange(0, d_model, 2, dtype=torch.float) *
+ -(math.log(10000.0) / d_model)))
+ pe[:, 0::2] = torch.sin(position.float() * div_term)
+ pe[:, 1::2] = torch.cos(position.float() * div_term)
+
+ return pe
+
+ def forward(self, feature_dicts, spect=None):
+ image_embed_shape = [self.hyp_param.image_embedding_size] * 2
+ H, W = image_embed_shape[0], image_embed_shape[1]
+ d = torch.cat(
+ [
+ self.vgg(spect[:, 0, ...].unsqueeze(1)),
+ self.vgg(spect[:, 1, ...].unsqueeze(1)),
+ ],
+ dim=-1,
+ )
+ length = d.shape[-1]
+ fix_audio_pos = self.positionalencoding1d(length, 1).squeeze().to(spect.device)
+ fpn = list(feature_dicts["backbone_fpn"])
+ patch_embeds = list(self.patch_embeds)
+ f_blocks = list(self.f_blocks)
+ a_blocks = list(self.a_blocks)
+ tpavi = list(self.fusion_modules)
+ smooths = [None, self.smooth_convs[0], self.smooth_convs[1]]
+
+ feats = [None, None, None]
+ d_outputs = []
+
+ for i in range(3):
+ x = fpn[i]
+ x = patch_embeds[i](x)
+ x_pos = self.position_encoding_func(x)
+ x = x.flatten(2).permute(0, 2, 1)
+ x_pos = x_pos.flatten(2).permute(0, 2, 1)
+
+ if i == 0:
+ x = x + x_pos
+ d = d + fix_audio_pos
+ else:
+ x = x + feats[i - 1]
+ x = smooths[i](
+ x.permute(0, 2, 1).reshape(x.shape[0], 256, H, W)
+ ).flatten(2).permute(0, 2, 1)
+ x = x + x_pos
+ d = d + fix_audio_pos
+
+ for blks in f_blocks[i]:
+ x = blks(x, H, W, x_pos)
+ for blks in a_blocks[i]:
+ d = blks(d, fix_audio_pos)
+
+ x = x + x_pos
+ d = d + fix_audio_pos
+ x, d_out, _, _ = tpavi[i](x, H, W, x_pos, d, length)
+ d = d_out
+ feats[i] = x
+ d_outputs.append(d_out)
+
+ a, b, c = feats
+ d1, d2, d3 = d_outputs
+
+ feature_residual = [a, b, c]
+ audio_out = [d1, d2, d3]
+
+ proj_feature_out = [
+ [
+ self.train_proj_v1(a.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ self.train_proj_v1(b.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ self.train_proj_v1(c.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ ],
+ [
+ self.train_proj_a1(d1.unsqueeze(-1)),
+ self.train_proj_a1(d2.unsqueeze(-1)),
+ self.train_proj_a1(d3.unsqueeze(-1)),
+ ],
+ ]
+
+ return feature_residual, audio_out, proj_feature_out
+
+
+class AudioVisualFusionModule(nn.Module):
+ def __init__(self, in_channels, inter_channels=None, mode='dot',
+ dimension=3):
+ super().__init__()
+ assert mode == 'dot'
+ self.mode = mode
+ self.dimension = dimension
+
+ self.in_channels = in_channels
+ self.inter_channels = in_channels // 2
+
+ self.align_channel = nn.Conv1d(256, in_channels, kernel_size=1)
+ self.align_channel_back = nn.Conv1d(in_channels, 128, kernel_size=1)
+
+ self.norm_layer = nn.LayerNorm(in_channels)
+
+ if dimension == 3:
+ conv_nd = nn.Conv3d
+ bn = nn.BatchNorm3d
+ elif dimension == 2:
+ conv_nd = nn.Conv2d
+ bn = nn.BatchNorm2d
+ else:
+ conv_nd = nn.Conv1d
+ bn = nn.BatchNorm1d
+
+ self.g = conv_nd(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.W_z = nn.Sequential(
+ conv_nd(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ bn(self.in_channels)
+ )
+ nn.init.constant_(self.W_z[1].weight, 0)
+ nn.init.constant_(self.W_z[1].bias, 0)
+
+ self.W_z2 = nn.Sequential(
+ nn.Conv1d(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ nn.BatchNorm1d(self.in_channels)
+ )
+ nn.init.constant_(self.W_z2[1].weight, 0)
+ nn.init.constant_(self.W_z2[1].bias, 0)
+ self.norm_layer2 = nn.LayerNorm(self.in_channels)
+
+ self.q_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.k_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.v_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.q_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.k_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.v_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+
+ def forward(self, frame, H_x, W_x, tmp1, audio, tmp2):
+ frame = frame.permute(0, 2, 1)
+ frame = frame.reshape(frame.shape[0], frame.shape[1], H_x, W_x)
+ frame = frame.unsqueeze(2)
+ audio = self.align_channel(audio.unsqueeze(-1))
+
+ batch_size, _ = frame.size(0), frame.size(1)
+ q_frame = self.q_frame(frame).reshape(1, -1, self.inter_channels)
+ k_frame = self.k_frame(frame).reshape(1, -1, self.inter_channels)
+ v_frame = self.v_frame(frame).reshape(1, -1, self.inter_channels)
+ q_audio = self.q_audio(audio).reshape(1, -1, self.inter_channels)
+ k_audio = self.k_audio(audio).reshape(1, -1, self.inter_channels)
+ v_audio = self.v_audio(audio).reshape(1, -1, self.inter_channels)
+ f = torch.matmul(q_frame, k_audio.mT)
+ f_normalise = f / f.size(1)
+
+ frame_attn = torch.matmul(f_normalise, v_audio)
+
+ frame_attn = frame_attn.permute(0, 2, 1).contiguous()
+ frame_attn = frame_attn.view(batch_size, self.inter_channels, *frame.size()[2:])
+ frame_attn = self.W_z(frame_attn)
+ frame = frame_attn + frame
+
+ frame = frame.permute(0, 2, 3, 4, 1)
+ frame = self.norm_layer(frame)
+ frame = frame.permute(0, 4, 1, 2, 3)
+ frame = frame.squeeze().flatten(start_dim=2).permute(0, 2, 1)
+
+ a = torch.matmul(q_audio, k_frame.mT)
+ a_normalise = a / a.size(-1)
+
+ audio_attn = torch.matmul(a_normalise, v_frame)
+ audio_attn = audio_attn.permute(0, 2, 1).contiguous()
+
+ audio_attn = audio_attn.view(batch_size, self.inter_channels).unsqueeze(-1)
+ audio_attn = self.W_z2(audio_attn)
+
+ audio = audio_attn + audio
+
+ audio = self.norm_layer2(audio.squeeze()).squeeze()
+
+ return frame, audio, frame_attn, audio_attn
+
+
+class OneDBlock(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = OneDAttention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = OneDMlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop,
+ linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, _pos):
+ x = x + self.drop_path(self.attn(self.norm1(x)))
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+
+ return x
+
+
+class OneDAttention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = x.unsqueeze(0)
+
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ x = x.squeeze()
+ return x
+
+
+class OneDMlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class Block(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = Attention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W, _pos):
+ x = x + self.drop_path(self.attn(self.norm1(x), H, W))
+ x = x + self.drop_path(self.mlp(self.norm2(x), H, W))
+
+ return x
+
+
+class Attention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ if not self.linear:
+ if self.sr_ratio > 1:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(self.pool(x_)).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ x_ = self.act(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ return x
+
+
+class Mlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.dwconv(x, H, W)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class DWConv(nn.Module):
+ def __init__(self, dim=768):
+ super(DWConv, self).__init__()
+ self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, bias=True, groups=dim)
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ x = x.transpose(1, 2).view(B, C, H, W)
+ x = self.dwconv(x)
+ x = x.flatten(2).transpose(1, 2)
+ return x
diff --git a/avs.code/v1s.code/model/mymodel.py b/avs.code/v1s.code/model/mymodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..35194cd584a4786f713447829592b15c7a366095
--- /dev/null
+++ b/avs.code/v1s.code/model/mymodel.py
@@ -0,0 +1,102 @@
+import logging
+
+from typing import List, Optional, Tuple, Union
+
+import numpy
+import numpy as np
+import torch
+from PIL.Image import Image
+
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+
+from model.visual.sam2.modeling.backbones.hieradet import Hiera
+from model.visual.sam2.modeling.backbones.image_encoder import FpnNeck
+from model.visual.sam2.modeling.backbones.image_encoder import ImageEncoder
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+from model.visual.sam2.modeling.memory_attention import MemoryAttention
+from model.visual.sam2.modeling.memory_attention import MemoryAttentionLayer
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+from model.visual.sam2.modeling.memory_encoder import MemoryEncoder
+from model.visual.sam2.modeling.memory_encoder import MaskDownSampler
+from model.visual.sam2.modeling.memory_encoder import Fuser
+from model.visual.sam2.modeling.memory_encoder import CXBlock
+
+from model.visual.sam2.utils.transforms import SAM2Transforms
+from model.visual.sam2.modeling.backbones.hieradet import do_pool
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+
+class AVmodel(torch.nn.Module):
+ """End-to-end AV segmentation: SAM2 visual backbone + AuralFuser audio-visual fusion + tracking head."""
+
+ def __init__(self, param, mask_threshold=0.0, max_hole_area=0.0, max_sprinkle_area=0.0, ):
+ super().__init__()
+ self.param = param
+ self.mask_threshold = mask_threshold
+ self._bb_feat_sizes = [(int(self.param.image_size / 4), int(self.param.image_size / 4)),
+ (int(self.param.image_size / 8), int(self.param.image_size / 8)),
+ (int(self.param.image_size / 16), int(self.param.image_size / 16))]
+
+ from model.visual.sam2.build_sam import build_sam2_visual_predictor
+ self.v_model = build_sam2_visual_predictor(self.param.sam_config_path, self.param.backbone_weight,
+ apply_postprocessing=True, mode='train')
+ self._transforms = SAM2Transforms(
+ resolution=self.v_model.image_size,
+ mask_threshold=mask_threshold,
+ max_hole_area=max_hole_area,
+ max_sprinkle_area=max_sprinkle_area,
+ )
+ from model.aural_fuser import AuralFuser
+ self.aural_fuser = AuralFuser(hyp_param=self.param)
+
+
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.v_model.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.v_model.num_feature_levels:]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.v_model.num_feature_levels:]
+
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def forward_frame(self, frame_):
+ frame = torch.nn.functional.interpolate(frame_, (self.param.image_size, self.param.image_size),
+ antialias=True, align_corners=False, mode='bilinear')
+ return self.v_model.image_encoder(frame)
+
+ def forward(self, frames, spect, prompts, sam_process=False):
+ """Fuse audio into FPN features, then run SAM2 tracking. `sam_process` is reserved for prompt path."""
+ backbone_feats = self.v_model.forward_image(frames, pre_compute=False)
+ audio_residual_feats = self.aural_fuser(backbone_feats, spect)
+ visual_resfeats, audio_resfeats, proj_feats = audio_residual_feats
+
+ map_res = visual_resfeats[::-1]
+ vec_res = audio_resfeats[::-1]
+
+ av_feats = (map_res, vec_res)
+ backbone_feats = self.v_model.precompute_high_res_features(backbone_feats)
+ backbone_feats = self.v_model.dont_prepare_prompt_inputs(backbone_feats, num_frames=frames.shape[0],
+ cond_frame=int(frames.shape[0]/2) if self.training else 0)
+ outputs = self.v_model.forward_tracking_wo_prompt(backbone_feats, audio_res=av_feats)
+ return outputs, proj_feats
+
+ @property
+ def device(self) -> torch.device:
+ return self.v_model.device
+
+ def freeze_sam_parameters(self):
+ self.v_model.eval()
+ for name, parameter in self.v_model.named_parameters():
+ parameter.requires_grad = False
diff --git a/avs.code/v1s.code/model/visual/sam2/__init__.py b/avs.code/v1s.code/model/visual/sam2/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..46a1cecc55b6fd02a5ce6c66d9cc8a77343156db
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/__init__.py
@@ -0,0 +1,11 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from hydra import initialize_config_module
+from hydra.core.global_hydra import GlobalHydra
+
+if not GlobalHydra.instance().is_initialized():
+ initialize_config_module("configs", version_base="1.2")
diff --git a/avs.code/v1s.code/model/visual/sam2/build_sam.py b/avs.code/v1s.code/model/visual/sam2/build_sam.py
new file mode 100644
index 0000000000000000000000000000000000000000..69f68c2e672d35d925aeb496cac918c1ee913dde
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/build_sam.py
@@ -0,0 +1,171 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+import os
+
+import torch
+from hydra import compose
+from hydra.utils import instantiate
+from omegaconf import OmegaConf
+'''
+import sam2
+
+# Check if the user is running Python from the parent directory of the sam2 repo
+# (i.e. the directory where this repo is cloned into) -- this is not supported since
+# it could shadow the sam2 package and cause issues.
+if os.path.isdir(os.path.join(sam2.__path__[0], "sam2")):
+ # If the user has "sam2/sam2" in their path, they are likey importing the repo itself
+ # as "sam2" rather than importing the "sam2" python package (i.e. "sam2/sam2" directory).
+ # This typically happens because the user is running Python from the parent directory
+ # that contains the sam2 repo they cloned.
+ raise RuntimeError(
+ "You're likely running Python from the parent directory of the sam2 repository "
+ "(i.e. the directory where https://github.com/facebookresearch/sam2 is cloned into). "
+ "This is not supported since the `sam2` Python package could be shadowed by the "
+ "repository name (the repository is also named `sam2` and contains the Python package "
+ "in `sam2/sam2`). Please run Python from another directory (e.g. from the repo dir "
+ "rather than its parent dir, or from your home directory) after installing SAM 2."
+ )
+'''
+
+HF_MODEL_ID_TO_FILENAMES = {
+ "facebook/sam2-hiera-tiny": (
+ "sam2/sam2_hiera_t.yaml",
+ "sam2_hiera_tiny.pt",
+ ),
+ "facebook/sam2-hiera-small": (
+ "sam2/sam2_hiera_s.yaml",
+ "sam2_hiera_small.pt",
+ ),
+ "facebook/sam2-hiera-base-plus": (
+ "sam2/sam2_hiera_b+.yaml",
+ "sam2_hiera_base_plus.pt",
+ ),
+ "facebook/sam2-hiera-large": (
+ "sam2/sam2_hiera_l.yaml",
+ "sam2_hiera_large.pt",
+ ),
+ "facebook/sam2.1-hiera-tiny": (
+ "sam2.1/sam2.1_hiera_t.yaml",
+ "sam2.1_hiera_tiny.pt",
+ ),
+ "facebook/sam2.1-hiera-small": (
+ "sam2.1/sam2.1_hiera_s.yaml",
+ "sam2.1_hiera_small.pt",
+ ),
+ "facebook/sam2.1-hiera-base-plus": (
+ "sam2.1/sam2.1_hiera_b+.yaml",
+ "sam2.1_hiera_base_plus.pt",
+ ),
+ "facebook/sam2.1-hiera-large": (
+ "sam2.1/sam2.1_hiera_l.yaml",
+ "sam2.1_hiera_large.pt",
+ ),
+}
+
+
+def build_sam2(
+ config_file,
+ ckpt_path=None,
+ device="cuda",
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+ # dynamically fall back to multi-mask if the single mask is not stable
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+ ]
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides_extra)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ model = model.to(device)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def build_sam2_visual_predictor(
+ config_file,
+ ckpt_path=None,
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+ # visual
+ hydra_overrides = []
+ # "++model._target_=model.visual.sam2.organised_sam2_train.SAM2Train",
+ # ]
+ # hydra_overrides = [
+ # "++model._target_=sam2.sam2_video_predictor.SAM2VideoPredictor",
+ # ]
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+
+ # dynamically fall back to multi-mask if the single mask is not stable
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+
+ # the sigmoid mask logits on interacted frames with clicks in the memory encoder so that the encoded masks are exactly as what users see from clicking
+ "++model.binarize_mask_from_pts_for_mem_enc=true",
+ # fill small holes in the low-res masks up to `fill_hole_area` (before resizing them to the original video resolution)
+ # "++model.fill_hole_area=8",
+ ]
+ hydra_overrides.extend(hydra_overrides_extra)
+
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def _hf_download(model_id):
+ from huggingface_hub import hf_hub_download
+
+ config_name, checkpoint_name = HF_MODEL_ID_TO_FILENAMES[model_id]
+ ckpt_path = hf_hub_download(repo_id=model_id, filename=checkpoint_name)
+ return config_name, ckpt_path
+
+
+def build_sam2_hf(model_id, **kwargs):
+ config_name, ckpt_path = _hf_download(model_id)
+ return build_sam2(config_file=config_name, ckpt_path=ckpt_path, **kwargs)
+
+
+# def build_sam2_video_predictor_hf(model_id, **kwargs):
+# config_name, ckpt_path = _hf_download(model_id)
+# return build_sam2_video_predictor(
+# config_file=config_name, ckpt_path=ckpt_path, **kwargs
+# )
+
+
+def _load_checkpoint(model, ckpt_path):
+ if ckpt_path is not None:
+ sd = torch.load(ckpt_path, map_location="cpu", weights_only=True)["model"]
+ missing_keys, unexpected_keys = model.load_state_dict(sd)
+ if missing_keys:
+ logging.error(missing_keys)
+ raise RuntimeError()
+ if unexpected_keys:
+ logging.error(unexpected_keys)
+ raise RuntimeError()
+ logging.info("Loaded checkpoint sucessfully")
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/__init__.py b/avs.code/v1s.code/model/visual/sam2/modeling/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/backbones/__init__.py b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/backbones/hieradet.py b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/hieradet.py
new file mode 100644
index 0000000000000000000000000000000000000000..3fb6633c9c752cbefe2fc6043c81fb79bc659465
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/hieradet.py
@@ -0,0 +1,317 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+from functools import partial
+from typing import List, Tuple, Union
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from iopath.common.file_io import g_pathmgr
+
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, MLP
+
+
+def do_pool(x: torch.Tensor, pool: nn.Module, norm: nn.Module = None) -> torch.Tensor:
+ if pool is None:
+ return x
+ # (B, H, W, C) -> (B, C, H, W)
+ x = x.permute(0, 3, 1, 2)
+ x = pool(x)
+ # (B, C, H', W') -> (B, H', W', C)
+ x = x.permute(0, 2, 3, 1)
+ if norm:
+ x = norm(x)
+
+ return x
+
+
+class MultiScaleAttention(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ q_pool: nn.Module = None,
+ ):
+ super().__init__()
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.num_heads = num_heads
+ self.q_pool = q_pool
+ self.qkv = nn.Linear(dim, dim_out * 3)
+ self.proj = nn.Linear(dim_out, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ B, H, W, _ = x.shape
+ # qkv with shape (B, H * W, 3, nHead, C)
+ qkv = self.qkv(x).reshape(B, H * W, 3, self.num_heads, -1)
+ # q, k, v with shape (B, H * W, nheads, C)
+ q, k, v = torch.unbind(qkv, 2)
+
+ # Q pooling (for downsample at stage changes)
+ if self.q_pool:
+ q = do_pool(q.reshape(B, H, W, -1), self.q_pool)
+ H, W = q.shape[1:3] # downsampled shape
+ q = q.reshape(B, H * W, self.num_heads, -1)
+
+ # Torch's SDPA expects [B, nheads, H*W, C] so we transpose
+ x = F.scaled_dot_product_attention(
+ q.transpose(1, 2),
+ k.transpose(1, 2),
+ v.transpose(1, 2),
+ )
+ # Transpose back
+ x = x.transpose(1, 2)
+ x = x.reshape(B, H, W, -1)
+
+ x = self.proj(x)
+
+ return x
+
+
+class MultiScaleBlock(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ mlp_ratio: float = 4.0,
+ drop_path: float = 0.0,
+ norm_layer: Union[nn.Module, str] = "LayerNorm",
+ q_stride: Tuple[int, int] = None,
+ act_layer: nn.Module = nn.GELU,
+ window_size: int = 0,
+ ):
+ super().__init__()
+
+ if isinstance(norm_layer, str):
+ norm_layer = partial(getattr(nn, norm_layer), eps=1e-6)
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.norm1 = norm_layer(dim)
+
+ self.window_size = window_size
+
+ self.pool, self.q_stride = None, q_stride
+ if self.q_stride:
+ self.pool = nn.MaxPool2d(
+ kernel_size=q_stride, stride=q_stride, ceil_mode=False
+ )
+
+ self.attn = MultiScaleAttention(
+ dim,
+ dim_out,
+ num_heads=num_heads,
+ q_pool=self.pool,
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ self.norm2 = norm_layer(dim_out)
+ self.mlp = MLP(
+ dim_out,
+ int(dim_out * mlp_ratio),
+ dim_out,
+ num_layers=2,
+ activation=act_layer,
+ )
+
+ if dim != dim_out:
+ self.proj = nn.Linear(dim, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ shortcut = x # B, H, W, C
+ x = self.norm1(x)
+
+ # Skip connection
+ if self.dim != self.dim_out:
+ shortcut = do_pool(self.proj(x), self.pool)
+
+ # Window partition
+ window_size = self.window_size
+ if window_size > 0:
+ H, W = x.shape[1], x.shape[2]
+ x, pad_hw = window_partition(x, window_size)
+
+ # Window Attention + Q Pooling (if stage change)
+ x = self.attn(x)
+ if self.q_stride:
+ # Shapes have changed due to Q pooling
+ window_size = self.window_size // self.q_stride[0]
+ H, W = shortcut.shape[1:3]
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ pad_hw = (H + pad_h, W + pad_w)
+
+ # Reverse window partition
+ if self.window_size > 0:
+ x = window_unpartition(x, window_size, pad_hw, (H, W))
+
+ x = shortcut + self.drop_path(x)
+ # MLP
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+ return x
+
+
+class Hiera(nn.Module):
+ """
+ Reference: https://arxiv.org/abs/2306.00989
+ """
+
+ def __init__(
+ self,
+ embed_dim: int = 96, # initial embed dim
+ num_heads: int = 1, # initial number of heads
+ drop_path_rate: float = 0.0, # stochastic depth
+ q_pool: int = 3, # number of q_pool stages
+ q_stride: Tuple[int, int] = (2, 2), # downsample stride bet. stages
+ stages: Tuple[int, ...] = (2, 3, 16, 3), # blocks per stage
+ dim_mul: float = 2.0, # dim_mul factor at stage shift
+ head_mul: float = 2.0, # head_mul factor at stage shift
+ window_pos_embed_bkg_spatial_size: Tuple[int, int] = (14, 14),
+ # window size per stage, when not using global att.
+ window_spec: Tuple[int, ...] = (
+ 8,
+ 4,
+ 14,
+ 7,
+ ),
+ # global attn in these blocks
+ global_att_blocks: Tuple[int, ...] = (
+ 12,
+ 16,
+ 20,
+ ),
+ weights_path=None,
+ return_interm_layers=True, # return feats from every stage
+ ):
+ super().__init__()
+
+ assert len(stages) == len(window_spec)
+ self.window_spec = window_spec
+
+ depth = sum(stages)
+ self.q_stride = q_stride
+ self.stage_ends = [sum(stages[:i]) - 1 for i in range(1, len(stages) + 1)]
+ assert 0 <= q_pool <= len(self.stage_ends[:-1])
+ self.q_pool_blocks = [x + 1 for x in self.stage_ends[:-1]][:q_pool]
+ self.return_interm_layers = return_interm_layers
+
+ self.patch_embed = PatchEmbed(
+ embed_dim=embed_dim,
+ )
+ # Which blocks have global att?
+ self.global_att_blocks = global_att_blocks
+
+ # Windowed positional embedding (https://arxiv.org/abs/2311.05613)
+ self.window_pos_embed_bkg_spatial_size = window_pos_embed_bkg_spatial_size
+ self.pos_embed = nn.Parameter(
+ torch.zeros(1, embed_dim, *self.window_pos_embed_bkg_spatial_size)
+ )
+ self.pos_embed_window = nn.Parameter(
+ torch.zeros(1, embed_dim, self.window_spec[0], self.window_spec[0])
+ )
+
+ dpr = [
+ x.item() for x in torch.linspace(0, drop_path_rate, depth)
+ ] # stochastic depth decay rule
+
+ cur_stage = 1
+ self.blocks = nn.ModuleList()
+
+ for i in range(depth):
+ dim_out = embed_dim
+ # lags by a block, so first block of
+ # next stage uses an initial window size
+ # of previous stage and final window size of current stage
+ window_size = self.window_spec[cur_stage - 1]
+
+ if self.global_att_blocks is not None:
+ window_size = 0 if i in self.global_att_blocks else window_size
+
+ if i - 1 in self.stage_ends:
+ dim_out = int(embed_dim * dim_mul)
+ num_heads = int(num_heads * head_mul)
+ cur_stage += 1
+
+ block = MultiScaleBlock(
+ dim=embed_dim,
+ dim_out=dim_out,
+ num_heads=num_heads,
+ drop_path=dpr[i],
+ q_stride=self.q_stride if i in self.q_pool_blocks else None,
+ window_size=window_size,
+ )
+
+ embed_dim = dim_out
+ self.blocks.append(block)
+
+ self.channel_list = (
+ [self.blocks[i].dim_out for i in self.stage_ends[::-1]]
+ if return_interm_layers
+ else [self.blocks[-1].dim_out]
+ )
+
+ if weights_path is not None:
+ with g_pathmgr.open(weights_path, "rb") as f:
+ chkpt = torch.load(f, map_location="cpu")
+ logging.info("loading Hiera", self.load_state_dict(chkpt, strict=False))
+
+ def _get_pos_embed(self, hw: Tuple[int, int]) -> torch.Tensor:
+ h, w = hw
+ window_embed = self.pos_embed_window
+ pos_embed = F.interpolate(self.pos_embed, size=(h, w), mode="bicubic")
+ pos_embed = pos_embed + window_embed.tile(
+ [x // y for x, y in zip(pos_embed.shape, window_embed.shape)]
+ )
+ pos_embed = pos_embed.permute(0, 2, 3, 1)
+ return pos_embed
+
+ def forward(self, x: torch.Tensor) -> List[torch.Tensor]:
+ x = self.patch_embed(x)
+ # x: (B, H, W, C)
+
+ # Add pos embed
+ x = x + self._get_pos_embed(x.shape[1:3])
+
+ outputs = []
+ for i, blk in enumerate(self.blocks):
+ x = blk(x)
+ if (i == self.stage_ends[-1]) or (
+ i in self.stage_ends and self.return_interm_layers
+ ):
+ feats = x.permute(0, 3, 1, 2)
+ outputs.append(feats)
+
+ return outputs
+
+ def get_layer_id(self, layer_name):
+ # https://github.com/microsoft/unilm/blob/master/beit/optim_factory.py#L33
+ num_layers = self.get_num_layers()
+
+ if layer_name.find("rel_pos") != -1:
+ return num_layers + 1
+ elif layer_name.find("pos_embed") != -1:
+ return 0
+ elif layer_name.find("patch_embed") != -1:
+ return 0
+ elif layer_name.find("blocks") != -1:
+ return int(layer_name.split("blocks")[1].split(".")[1]) + 1
+ else:
+ return num_layers + 1
+
+ def get_num_layers(self) -> int:
+ return len(self.blocks)
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/backbones/image_encoder.py b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/image_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..37e9266bc98596e97ca303118c910ed24f6cee2c
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/image_encoder.py
@@ -0,0 +1,134 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+class ImageEncoder(nn.Module):
+ def __init__(
+ self,
+ trunk: nn.Module,
+ neck: nn.Module,
+ scalp: int = 0,
+ ):
+ super().__init__()
+ self.trunk = trunk
+ self.neck = neck
+ self.scalp = scalp
+ assert (
+ self.trunk.channel_list == self.neck.backbone_channel_list
+ ), f"Channel dims of trunk and neck do not match. Trunk: {self.trunk.channel_list}, neck: {self.neck.backbone_channel_list}"
+
+ def forward(self, sample: torch.Tensor):
+ # Forward through backbone
+ features, pos = self.neck(self.trunk(sample))
+ if self.scalp > 0:
+ # Discard the lowest resolution features
+ features, pos = features[: -self.scalp], pos[: -self.scalp]
+
+ src = features[-1]
+ output = {
+ "vision_features": src,
+ "vision_pos_enc": pos,
+ "backbone_fpn": features,
+ }
+ return output
+
+
+class FpnNeck(nn.Module):
+ """
+ A modified variant of Feature Pyramid Network (FPN) neck
+ (we remove output conv and also do bicubic interpolation similar to ViT
+ pos embed interpolation)
+ """
+
+ def __init__(
+ self,
+ position_encoding: nn.Module,
+ d_model: int,
+ backbone_channel_list: List[int],
+ kernel_size: int = 1,
+ stride: int = 1,
+ padding: int = 0,
+ fpn_interp_model: str = "bilinear",
+ fuse_type: str = "sum",
+ fpn_top_down_levels: Optional[List[int]] = None,
+ ):
+ """Initialize the neck
+ :param trunk: the backbone
+ :param position_encoding: the positional encoding to use
+ :param d_model: the dimension of the model
+ :param neck_norm: the normalization to use
+ """
+ super().__init__()
+ self.position_encoding = position_encoding
+ self.convs = nn.ModuleList()
+ self.backbone_channel_list = backbone_channel_list
+ self.d_model = d_model
+ for dim in backbone_channel_list:
+ current = nn.Sequential()
+ current.add_module(
+ "conv",
+ nn.Conv2d(
+ in_channels=dim,
+ out_channels=d_model,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ ),
+ )
+
+ self.convs.append(current)
+ self.fpn_interp_model = fpn_interp_model
+ assert fuse_type in ["sum", "avg"]
+ self.fuse_type = fuse_type
+
+ # levels to have top-down features in its outputs
+ # e.g. if fpn_top_down_levels is [2, 3], then only outputs of level 2 and 3
+ # have top-down propagation, while outputs of level 0 and level 1 have only
+ # lateral features from the same backbone level.
+ if fpn_top_down_levels is None:
+ # default is to have top-down features on all levels
+ fpn_top_down_levels = range(len(self.convs))
+ self.fpn_top_down_levels = list(fpn_top_down_levels)
+
+ def forward(self, xs: List[torch.Tensor]):
+
+ out = [None] * len(self.convs)
+ pos = [None] * len(self.convs)
+ assert len(xs) == len(self.convs)
+ # fpn forward pass
+ # see https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/backbone/fpn.py
+ prev_features = None
+ # forward in top-down order (from low to high resolution)
+ n = len(self.convs) - 1
+ for i in range(n, -1, -1):
+ x = xs[i]
+ lateral_features = self.convs[n - i](x)
+ if i in self.fpn_top_down_levels and prev_features is not None:
+ top_down_features = F.interpolate(
+ prev_features.to(dtype=torch.float32),
+ scale_factor=2.0,
+ mode=self.fpn_interp_model,
+ align_corners=(
+ None if self.fpn_interp_model == "nearest" else False
+ ),
+ antialias=False,
+ )
+ prev_features = lateral_features + top_down_features
+ if self.fuse_type == "avg":
+ prev_features /= 2
+ else:
+ prev_features = lateral_features
+ x_out = prev_features
+ out[i] = x_out
+ pos[i] = self.position_encoding(x_out).to(x_out.dtype)
+
+ return out, pos
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/backbones/utils.py b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..32d55c7545f064de133a5ff0200ba1ece9b504b7
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/backbones/utils.py
@@ -0,0 +1,95 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""Some utilities for backbones, in particular for windowing"""
+
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+def window_partition(x, window_size):
+ """
+ Partition into non-overlapping windows with padding if needed.
+ Args:
+ x (tensor): input tokens with [B, H, W, C].
+ window_size (int): window size.
+ Returns:
+ windows: windows after partition with [B * num_windows, window_size, window_size, C].
+ (Hp, Wp): padded height and width before partition
+ """
+ B, H, W, C = x.shape
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ if pad_h > 0 or pad_w > 0:
+ x = F.pad(x, (0, 0, 0, pad_w, 0, pad_h))
+ Hp, Wp = H + pad_h, W + pad_w
+
+ x = x.view(B, Hp // window_size, window_size, Wp // window_size, window_size, C)
+ windows = (
+ x.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, C)
+ )
+ return windows, (Hp, Wp)
+
+
+def window_unpartition(windows, window_size, pad_hw, hw):
+ """
+ Window unpartition into original sequences and removing padding.
+ Args:
+ x (tensor): input tokens with [B * num_windows, window_size, window_size, C].
+ window_size (int): window size.
+ pad_hw (Tuple): padded height and width (Hp, Wp).
+ hw (Tuple): original height and width (H, W) before padding.
+ Returns:
+ x: unpartitioned sequences with [B, H, W, C].
+ """
+ Hp, Wp = pad_hw
+ H, W = hw
+ B = windows.shape[0] // (Hp * Wp // window_size // window_size)
+ x = windows.view(
+ B, Hp // window_size, Wp // window_size, window_size, window_size, -1
+ )
+ x = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(B, Hp, Wp, -1)
+
+ if Hp > H or Wp > W:
+ x = x[:, :H, :W, :].contiguous()
+ return x
+
+
+class PatchEmbed(nn.Module):
+ """
+ Image to Patch Embedding.
+ """
+
+ def __init__(
+ self,
+ kernel_size: Tuple[int, ...] = (7, 7),
+ stride: Tuple[int, ...] = (4, 4),
+ padding: Tuple[int, ...] = (3, 3),
+ in_chans: int = 3,
+ embed_dim: int = 768,
+ ):
+ """
+ Args:
+ kernel_size (Tuple): kernel size of the projection layer.
+ stride (Tuple): stride of the projection layer.
+ padding (Tuple): padding size of the projection layer.
+ in_chans (int): Number of input image channels.
+ embed_dim (int): embed_dim (int): Patch embedding dimension.
+ """
+ super().__init__()
+ self.proj = nn.Conv2d(
+ in_chans, embed_dim, kernel_size=kernel_size, stride=stride, padding=padding
+ )
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = self.proj(x)
+ # B C H W -> B H W C
+ x = x.permute(0, 2, 3, 1)
+ return x
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/memory_attention.py b/avs.code/v1s.code/model/visual/sam2/modeling/memory_attention.py
new file mode 100644
index 0000000000000000000000000000000000000000..11f4ccb1904f022c18f8a02b9590a66bd57bb8f1
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/memory_attention.py
@@ -0,0 +1,169 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional
+
+import torch
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+
+from model.visual.sam2.modeling.sam2_utils import get_activation_fn, get_clones
+
+
+class MemoryAttentionLayer(nn.Module):
+
+ def __init__(
+ self,
+ activation: str,
+ cross_attention: nn.Module,
+ d_model: int,
+ dim_feedforward: int,
+ dropout: float,
+ pos_enc_at_attn: bool,
+ pos_enc_at_cross_attn_keys: bool,
+ pos_enc_at_cross_attn_queries: bool,
+ self_attention: nn.Module,
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.dim_feedforward = dim_feedforward
+ self.dropout_value = dropout
+ self.self_attn = self_attention
+ self.cross_attn_image = cross_attention
+
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm1 = nn.LayerNorm(d_model)
+ self.norm2 = nn.LayerNorm(d_model)
+ self.norm3 = nn.LayerNorm(d_model)
+ self.dropout1 = nn.Dropout(dropout)
+ self.dropout2 = nn.Dropout(dropout)
+ self.dropout3 = nn.Dropout(dropout)
+
+ self.activation_str = activation
+ self.activation = get_activation_fn(activation)
+
+ # Where to add pos enc
+ self.pos_enc_at_attn = pos_enc_at_attn
+ self.pos_enc_at_cross_attn_queries = pos_enc_at_cross_attn_queries
+ self.pos_enc_at_cross_attn_keys = pos_enc_at_cross_attn_keys
+
+ def _forward_sa(self, tgt, query_pos):
+ # Self-Attention
+ tgt2 = self.norm1(tgt)
+ q = k = tgt2 + query_pos if self.pos_enc_at_attn else tgt2
+ tgt2 = self.self_attn(q, k, v=tgt2)
+ tgt = tgt + self.dropout1(tgt2)
+ return tgt
+
+ def _forward_ca(self, tgt, memory, query_pos, pos, num_k_exclude_rope=0):
+ kwds = {}
+ if num_k_exclude_rope > 0:
+ assert isinstance(self.cross_attn_image, RoPEAttention)
+ kwds = {"num_k_exclude_rope": num_k_exclude_rope}
+
+ # Cross-Attention
+ tgt2 = self.norm2(tgt)
+ tgt2 = self.cross_attn_image(
+ q=tgt2 + query_pos if self.pos_enc_at_cross_attn_queries else tgt2,
+ k=memory + pos if self.pos_enc_at_cross_attn_keys else memory,
+ v=memory,
+ **kwds,
+ )
+ tgt = tgt + self.dropout2(tgt2)
+ return tgt
+
+ def forward(
+ self,
+ tgt,
+ memory,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ num_k_exclude_rope: int = 0,
+ ) -> torch.Tensor:
+
+ # Self-Attn, Cross-Attn
+ tgt = self._forward_sa(tgt, query_pos)
+ tgt = self._forward_ca(tgt, memory, query_pos, pos, num_k_exclude_rope)
+ # MLP
+ tgt2 = self.norm3(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout3(tgt2)
+ return tgt
+
+
+class MemoryAttention(nn.Module):
+ def __init__(
+ self,
+ d_model: int,
+ pos_enc_at_input: bool,
+ layer: nn.Module,
+ num_layers: int,
+ batch_first: bool = True, # Do layers expect batch first input?
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.layers = get_clones(layer, num_layers)
+ self.num_layers = num_layers
+ self.norm = nn.LayerNorm(d_model)
+ self.pos_enc_at_input = pos_enc_at_input
+ self.batch_first = batch_first
+
+ def forward(
+ self,
+ curr: torch.Tensor, # self-attention inputs
+ memory: torch.Tensor, # cross-attention inputs
+ curr_pos: Optional[Tensor] = None, # pos_enc for self-attention inputs
+ memory_pos: Optional[Tensor] = None, # pos_enc for cross-attention inputs
+ num_obj_ptr_tokens: int = 0, # number of object pointer *tokens*
+ ):
+ if isinstance(curr, list):
+ assert isinstance(curr_pos, list)
+ assert len(curr) == len(curr_pos) == 1
+ curr, curr_pos = (
+ curr[0],
+ curr_pos[0],
+ )
+
+ assert (
+ curr.shape[1] == memory.shape[1]
+ ), "Batch size must be the same for curr and memory"
+
+ output = curr
+ if self.pos_enc_at_input and curr_pos is not None:
+ output = output + 0.1 * curr_pos
+
+ if self.batch_first:
+ # Convert to batch first
+ output = output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+ memory = memory.transpose(0, 1)
+ memory_pos = memory_pos.transpose(0, 1)
+
+ for layer in self.layers:
+ kwds = {}
+ if isinstance(layer.cross_attn_image, RoPEAttention):
+ kwds = {"num_k_exclude_rope": num_obj_ptr_tokens}
+
+ output = layer(
+ tgt=output,
+ memory=memory,
+ pos=memory_pos,
+ query_pos=curr_pos,
+ **kwds,
+ )
+ normed_output = self.norm(output)
+
+ if self.batch_first:
+ # Convert back to seq first
+ normed_output = normed_output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+
+ return normed_output
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/memory_encoder.py b/avs.code/v1s.code/model/visual/sam2/modeling/memory_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e1143cc0d5774ff96108203e404f678f14b0a23
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/memory_encoder.py
@@ -0,0 +1,181 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, get_clones, LayerNorm2d
+
+
+class MaskDownSampler(nn.Module):
+ """
+ Progressively downsample a mask by total_stride, each time by stride.
+ Note that LayerNorm is applied per *token*, like in ViT.
+
+ With each downsample (by a factor stride**2), channel capacity increases by the same factor.
+ In the end, we linearly project to embed_dim channels.
+ """
+
+ def __init__(
+ self,
+ embed_dim=256,
+ kernel_size=4,
+ stride=4,
+ padding=0,
+ total_stride=16,
+ activation=nn.GELU,
+ ):
+ super().__init__()
+ num_layers = int(math.log2(total_stride) // math.log2(stride))
+ assert stride**num_layers == total_stride
+ self.encoder = nn.Sequential()
+ mask_in_chans, mask_out_chans = 1, 1
+ for _ in range(num_layers):
+ mask_out_chans = mask_in_chans * (stride**2)
+ self.encoder.append(
+ nn.Conv2d(
+ mask_in_chans,
+ mask_out_chans,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ )
+ )
+ self.encoder.append(LayerNorm2d(mask_out_chans))
+ self.encoder.append(activation())
+ mask_in_chans = mask_out_chans
+
+ self.encoder.append(nn.Conv2d(mask_out_chans, embed_dim, kernel_size=1))
+
+ def forward(self, x):
+ return self.encoder(x)
+
+
+# Lightly adapted from ConvNext (https://github.com/facebookresearch/ConvNeXt)
+class CXBlock(nn.Module):
+ r"""ConvNeXt Block. There are two equivalent implementations:
+ (1) DwConv -> LayerNorm (channels_first) -> 1x1 Conv -> GELU -> 1x1 Conv; all in (N, C, H, W)
+ (2) DwConv -> Permute to (N, H, W, C); LayerNorm (channels_last) -> Linear -> GELU -> Linear; Permute back
+ We use (2) as we find it slightly faster in PyTorch
+
+ Args:
+ dim (int): Number of input channels.
+ drop_path (float): Stochastic depth rate. Default: 0.0
+ layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
+ """
+
+ def __init__(
+ self,
+ dim,
+ kernel_size=7,
+ padding=3,
+ drop_path=0.0,
+ layer_scale_init_value=1e-6,
+ use_dwconv=True,
+ ):
+ super().__init__()
+ self.dwconv = nn.Conv2d(
+ dim,
+ dim,
+ kernel_size=kernel_size,
+ padding=padding,
+ groups=dim if use_dwconv else 1,
+ ) # depthwise conv
+ self.norm = LayerNorm2d(dim, eps=1e-6)
+ self.pwconv1 = nn.Linear(
+ dim, 4 * dim
+ ) # pointwise/1x1 convs, implemented with linear layers
+ self.act = nn.GELU()
+ self.pwconv2 = nn.Linear(4 * dim, dim)
+ self.gamma = (
+ nn.Parameter(layer_scale_init_value * torch.ones((dim)), requires_grad=True)
+ if layer_scale_init_value > 0
+ else None
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ def forward(self, x):
+ input = x
+ x = self.dwconv(x)
+ x = self.norm(x)
+ x = x.permute(0, 2, 3, 1) # (N, C, H, W) -> (N, H, W, C)
+ x = self.pwconv1(x)
+ x = self.act(x)
+ x = self.pwconv2(x)
+ if self.gamma is not None:
+ x = self.gamma * x
+ x = x.permute(0, 3, 1, 2) # (N, H, W, C) -> (N, C, H, W)
+
+ x = input + self.drop_path(x)
+ return x
+
+
+class Fuser(nn.Module):
+ def __init__(self, layer, num_layers, dim=None, input_projection=False):
+ super().__init__()
+ self.proj = nn.Identity()
+ self.layers = get_clones(layer, num_layers)
+
+ if input_projection:
+ assert dim is not None
+ self.proj = nn.Conv2d(dim, dim, kernel_size=1)
+
+ def forward(self, x):
+ # normally x: (N, C, H, W)
+ x = self.proj(x)
+ for layer in self.layers:
+ x = layer(x)
+ return x
+
+
+class MemoryEncoder(nn.Module):
+ def __init__(
+ self,
+ out_dim,
+ mask_downsampler,
+ fuser,
+ position_encoding,
+ in_dim=256, # in_dim of pix_feats
+ ):
+ super().__init__()
+
+ self.mask_downsampler = mask_downsampler
+
+ self.pix_feat_proj = nn.Conv2d(in_dim, in_dim, kernel_size=1)
+ self.fuser = fuser
+ self.position_encoding = position_encoding
+ self.out_proj = nn.Identity()
+ if out_dim != in_dim:
+ self.out_proj = nn.Conv2d(in_dim, out_dim, kernel_size=1)
+
+ def forward(
+ self,
+ pix_feat: torch.Tensor,
+ masks: torch.Tensor,
+ skip_mask_sigmoid: bool = False,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ ## Process masks
+ # sigmoid, so that less domain shift from gt masks which are bool
+ if not skip_mask_sigmoid:
+ masks = F.sigmoid(masks)
+ masks = self.mask_downsampler(masks)
+
+ ## Fuse pix_feats and downsampled masks
+ # in case the visual features are on CPU, cast them to CUDA
+ pix_feat = pix_feat.to(masks.device)
+
+ x = self.pix_feat_proj(pix_feat)
+ x = x + masks
+ x = self.fuser(x)
+ x = self.out_proj(x)
+
+ pos = self.position_encoding(x).to(x.dtype)
+
+ return {"vision_features": x, "vision_pos_enc": [pos]}
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/position_encoding.py b/avs.code/v1s.code/model/visual/sam2/modeling/position_encoding.py
new file mode 100644
index 0000000000000000000000000000000000000000..52ac22674d5d4fdd9e83b6bdf034bff56d04bc0d
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/position_encoding.py
@@ -0,0 +1,221 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Any, Optional, Tuple
+
+import numpy as np
+
+import torch
+from torch import nn
+
+
+class PositionEmbeddingSine(nn.Module):
+ """
+ This is a more standard version of the position embedding, very similar to the one
+ used by the Attention Is All You Need paper, generalized to work on images.
+ """
+
+ def __init__(
+ self,
+ num_pos_feats,
+ temperature: int = 10000,
+ normalize: bool = True,
+ scale: Optional[float] = None,
+ ):
+ super().__init__()
+ assert num_pos_feats % 2 == 0, "Expecting even model width"
+ self.num_pos_feats = num_pos_feats // 2
+ self.temperature = temperature
+ self.normalize = normalize
+ if scale is not None and normalize is False:
+ raise ValueError("normalize should be True if scale is passed")
+ if scale is None:
+ scale = 2 * math.pi
+ self.scale = scale
+
+ self.cache = {}
+
+ def _encode_xy(self, x, y):
+ # The positions are expected to be normalized
+ assert len(x) == len(y) and x.ndim == y.ndim == 1
+ x_embed = x * self.scale
+ y_embed = y * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, None] / dim_t
+ pos_y = y_embed[:, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, 0::2].sin(), pos_x[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ pos_y = torch.stack(
+ (pos_y[:, 0::2].sin(), pos_y[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ return pos_x, pos_y
+
+ @torch.no_grad()
+ def encode_boxes(self, x, y, w, h):
+ pos_x, pos_y = self._encode_xy(x, y)
+ pos = torch.cat((pos_y, pos_x, h[:, None], w[:, None]), dim=1)
+ return pos
+
+ encode = encode_boxes # Backwards compatibility
+
+ @torch.no_grad()
+ def encode_points(self, x, y, labels):
+ (bx, nx), (by, ny), (bl, nl) = x.shape, y.shape, labels.shape
+ assert bx == by and nx == ny and bx == bl and nx == nl
+ pos_x, pos_y = self._encode_xy(x.flatten(), y.flatten())
+ pos_x, pos_y = pos_x.reshape(bx, nx, -1), pos_y.reshape(by, ny, -1)
+ pos = torch.cat((pos_y, pos_x, labels[:, :, None]), dim=2)
+ return pos
+
+ @torch.no_grad()
+ def forward(self, x: torch.Tensor):
+ cache_key = (x.shape[-2], x.shape[-1])
+ if cache_key in self.cache:
+ return self.cache[cache_key][None].repeat(x.shape[0], 1, 1, 1)
+ y_embed = (
+ torch.arange(1, x.shape[-2] + 1, dtype=torch.float32, device=x.device)
+ .view(1, -1, 1)
+ .repeat(x.shape[0], 1, x.shape[-1])
+ )
+ x_embed = (
+ torch.arange(1, x.shape[-1] + 1, dtype=torch.float32, device=x.device)
+ .view(1, 1, -1)
+ .repeat(x.shape[0], x.shape[-2], 1)
+ )
+
+ if self.normalize:
+ eps = 1e-6
+ y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
+ x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, :, :, None] / dim_t
+ pos_y = y_embed[:, :, :, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos_y = torch.stack(
+ (pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
+ self.cache[cache_key] = pos[0]
+ return pos
+
+
+class PositionEmbeddingRandom(nn.Module):
+ """
+ Positional encoding using random spatial frequencies.
+ """
+
+ def __init__(self, num_pos_feats: int = 64, scale: Optional[float] = None) -> None:
+ super().__init__()
+ if scale is None or scale <= 0.0:
+ scale = 1.0
+ self.register_buffer(
+ "positional_encoding_gaussian_matrix",
+ scale * torch.randn((2, num_pos_feats)),
+ )
+
+ def _pe_encoding(self, coords: torch.Tensor) -> torch.Tensor:
+ """Positionally encode points that are normalized to [0,1]."""
+ # assuming coords are in [0, 1]^2 square and have d_1 x ... x d_n x 2 shape
+ coords = 2 * coords - 1
+ coords = coords @ self.positional_encoding_gaussian_matrix
+ coords = 2 * np.pi * coords
+ # outputs d_1 x ... x d_n x C shape
+ return torch.cat([torch.sin(coords), torch.cos(coords)], dim=-1)
+
+ def forward(self, size: Tuple[int, int]) -> torch.Tensor:
+ """Generate positional encoding for a grid of the specified size."""
+ h, w = size
+ device: Any = self.positional_encoding_gaussian_matrix.device
+ grid = torch.ones((h, w), device=device, dtype=torch.float32)
+ y_embed = grid.cumsum(dim=0) - 0.5
+ x_embed = grid.cumsum(dim=1) - 0.5
+ y_embed = y_embed / h
+ x_embed = x_embed / w
+
+ pe = self._pe_encoding(torch.stack([x_embed, y_embed], dim=-1))
+ return pe.permute(2, 0, 1) # C x H x W
+
+ def forward_with_coords(
+ self, coords_input: torch.Tensor, image_size: Tuple[int, int]
+ ) -> torch.Tensor:
+ """Positionally encode points that are not normalized to [0,1]."""
+ coords = coords_input.clone()
+ coords[:, :, 0] = coords[:, :, 0] / image_size[1]
+ coords[:, :, 1] = coords[:, :, 1] / image_size[0]
+ return self._pe_encoding(coords.to(torch.float)) # B x N x C
+
+
+# Rotary Positional Encoding, adapted from:
+# 1. https://github.com/meta-llama/codellama/blob/main/llama/model.py
+# 2. https://github.com/naver-ai/rope-vit
+# 3. https://github.com/lucidrains/rotary-embedding-torch
+
+
+def init_t_xy(end_x: int, end_y: int):
+ t = torch.arange(end_x * end_y, dtype=torch.float32)
+ t_x = (t % end_x).float()
+ t_y = torch.div(t, end_x, rounding_mode="floor").float()
+ return t_x, t_y
+
+
+def compute_axial_cis(dim: int, end_x: int, end_y: int, theta: float = 10000.0):
+ freqs_x = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+ freqs_y = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+
+ t_x, t_y = init_t_xy(end_x, end_y)
+ freqs_x = torch.outer(t_x, freqs_x)
+ freqs_y = torch.outer(t_y, freqs_y)
+ freqs_cis_x = torch.polar(torch.ones_like(freqs_x), freqs_x)
+ freqs_cis_y = torch.polar(torch.ones_like(freqs_y), freqs_y)
+ return torch.cat([freqs_cis_x, freqs_cis_y], dim=-1)
+
+
+def reshape_for_broadcast(freqs_cis: torch.Tensor, x: torch.Tensor):
+ ndim = x.ndim
+ assert 0 <= 1 < ndim
+ assert freqs_cis.shape == (x.shape[-2], x.shape[-1])
+ shape = [d if i >= ndim - 2 else 1 for i, d in enumerate(x.shape)]
+ return freqs_cis.view(*shape)
+
+
+def apply_rotary_enc(
+ xq: torch.Tensor,
+ xk: torch.Tensor,
+ freqs_cis: torch.Tensor,
+ repeat_freqs_k: bool = False,
+):
+ xq_ = torch.view_as_complex(xq.float().reshape(*xq.shape[:-1], -1, 2))
+ xk_ = (
+ torch.view_as_complex(xk.float().reshape(*xk.shape[:-1], -1, 2))
+ if xk.shape[-2] != 0
+ else None
+ )
+ freqs_cis = reshape_for_broadcast(freqs_cis, xq_)
+ xq_out = torch.view_as_real(xq_ * freqs_cis).flatten(3)
+ if xk_ is None:
+ # no keys to rotate, due to dropout
+ return xq_out.type_as(xq).to(xq.device), xk
+ # repeat freqs along seq_len dim to match k seq_len
+ if repeat_freqs_k:
+ r = xk_.shape[-2] // xq_.shape[-2]
+ if freqs_cis.is_cuda:
+ freqs_cis = freqs_cis.repeat(*([1] * (freqs_cis.ndim - 2)), r, 1)
+ else:
+ # torch.repeat on complex numbers may not be supported on non-CUDA devices
+ # (freqs_cis has 4 dims and we repeat on dim 2) so we use expand + flatten
+ freqs_cis = freqs_cis.unsqueeze(2).expand(-1, -1, r, -1, -1).flatten(2, 3)
+ xk_out = torch.view_as_real(xk_ * freqs_cis).flatten(3)
+ return xq_out.type_as(xq).to(xq.device), xk_out.type_as(xk).to(xk.device)
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/sam/__init__.py b/avs.code/v1s.code/model/visual/sam2/modeling/sam/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/sam/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/sam/mask_decoder.py b/avs.code/v1s.code/model/visual/sam2/modeling/sam/mask_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..078f21cc2ec41805eebec677e6e27771335deaa4
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/sam/mask_decoder.py
@@ -0,0 +1,300 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d, MLP
+
+
+class MaskDecoder(nn.Module):
+ def __init__(
+ self,
+ *,
+ transformer_dim: int,
+ transformer: nn.Module,
+ num_multimask_outputs: int = 3,
+ activation: Type[nn.Module] = nn.GELU,
+ iou_head_depth: int = 3,
+ iou_head_hidden_dim: int = 256,
+ use_high_res_features: bool = False,
+ iou_prediction_use_sigmoid=False,
+ dynamic_multimask_via_stability=False,
+ dynamic_multimask_stability_delta=0.05,
+ dynamic_multimask_stability_thresh=0.98,
+ pred_obj_scores: bool = False,
+ pred_obj_scores_mlp: bool = False,
+ use_multimask_token_for_obj_ptr: bool = False,
+ ) -> None:
+ """
+ Predicts masks given an image and prompt embeddings, using a
+ transformer architecture.
+
+ Arguments:
+ transformer_dim (int): the channel dimension of the transformer
+ transformer (nn.Module): the transformer used to predict masks
+ num_multimask_outputs (int): the number of masks to predict
+ when disambiguating masks
+ activation (nn.Module): the type of activation to use when
+ upscaling masks
+ iou_head_depth (int): the depth of the MLP used to predict
+ mask quality
+ iou_head_hidden_dim (int): the hidden dimension of the MLP
+ used to predict mask quality
+ """
+ super().__init__()
+ self.transformer_dim = transformer_dim
+ self.transformer = transformer
+
+ self.num_multimask_outputs = num_multimask_outputs
+
+ self.iou_token = nn.Embedding(1, transformer_dim)
+ self.num_mask_tokens = num_multimask_outputs + 1
+ self.mask_tokens = nn.Embedding(self.num_mask_tokens, transformer_dim)
+
+ self.pred_obj_scores = pred_obj_scores
+ if self.pred_obj_scores:
+ self.obj_score_token = nn.Embedding(1, transformer_dim)
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+
+ self.output_upscaling = nn.Sequential(
+ nn.ConvTranspose2d(
+ transformer_dim, transformer_dim // 4, kernel_size=2, stride=2
+ ),
+ LayerNorm2d(transformer_dim // 4),
+ activation(),
+ nn.ConvTranspose2d(
+ transformer_dim // 4, transformer_dim // 8, kernel_size=2, stride=2
+ ),
+ activation(),
+ )
+ self.use_high_res_features = use_high_res_features
+ if use_high_res_features:
+ self.conv_s0 = nn.Conv2d(
+ transformer_dim, transformer_dim // 8, kernel_size=1, stride=1
+ )
+ self.conv_s1 = nn.Conv2d(
+ transformer_dim, transformer_dim // 4, kernel_size=1, stride=1
+ )
+
+ self.output_hypernetworks_mlps = nn.ModuleList(
+ [
+ MLP(transformer_dim, transformer_dim, transformer_dim // 8, 3)
+ for i in range(self.num_mask_tokens)
+ ]
+ )
+
+ self.iou_prediction_head = MLP(
+ transformer_dim,
+ iou_head_hidden_dim,
+ self.num_mask_tokens,
+ iou_head_depth,
+ sigmoid_output=iou_prediction_use_sigmoid,
+ )
+ if self.pred_obj_scores:
+ self.pred_obj_score_head = nn.Linear(transformer_dim, 1)
+ if pred_obj_scores_mlp:
+ self.pred_obj_score_head = MLP(transformer_dim, transformer_dim, 1, 3)
+
+ # When outputting a single mask, optionally we can dynamically fall back to the best
+ # multimask output token if the single mask output token gives low stability scores.
+ self.dynamic_multimask_via_stability = dynamic_multimask_via_stability
+ self.dynamic_multimask_stability_delta = dynamic_multimask_stability_delta
+ self.dynamic_multimask_stability_thresh = dynamic_multimask_stability_thresh
+
+ def forward(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ multimask_output: bool,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features: Optional[List[torch.Tensor]] = None,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Predict masks given image and prompt embeddings.
+
+ Arguments:
+ image_embeddings (torch.Tensor): the embeddings from the image encoder
+ image_pe (torch.Tensor): positional encoding with the shape of image_embeddings
+ sparse_prompt_embeddings (torch.Tensor): the embeddings of the points and boxes
+ dense_prompt_embeddings (torch.Tensor): the embeddings of the mask inputs
+ multimask_output (bool): Whether to return multiple masks or a single
+ mask.
+
+ Returns:
+ torch.Tensor: batched predicted masks
+ torch.Tensor: batched predictions of mask quality
+ torch.Tensor: batched SAM token for mask output
+ """
+ masks, iou_pred, mask_tokens_out, object_score_logits = self.predict_masks(
+ image_embeddings=image_embeddings,
+ image_pe=image_pe,
+ sparse_prompt_embeddings=sparse_prompt_embeddings,
+ dense_prompt_embeddings=dense_prompt_embeddings,
+ repeat_image=repeat_image,
+ high_res_features=high_res_features,
+ audio_res_features_=audio_res_features
+ )
+
+ # Select the correct mask or masks for output
+ if multimask_output:
+ masks = masks[:, 1:, :, :]
+ iou_pred = iou_pred[:, 1:]
+ elif self.dynamic_multimask_via_stability and not self.training:
+ masks, iou_pred = self._dynamic_multimask_via_stability(masks, iou_pred)
+ else:
+ masks = masks[:, 0:1, :, :]
+ iou_pred = iou_pred[:, 0:1]
+
+
+ if multimask_output and self.use_multimask_token_for_obj_ptr:
+ sam_tokens_out = mask_tokens_out[:, 1:] # [b, 3, c] shape
+ else:
+ # Take the mask output token. Here we *always* use the token for single mask output.
+ # At test time, even if we track after 1-click (and using multimask_output=True),
+ # we still take the single mask token here. The rationale is that we always track
+ # after multiple clicks during training, so the past tokens seen during training
+ # are always the single mask token (and we'll let it be the object-memory token).
+ sam_tokens_out = mask_tokens_out[:, 0:1] # [b, 1, c] shape
+
+ # Prepare output
+ return masks, iou_pred, sam_tokens_out, object_score_logits
+
+ def predict_masks(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features_: Optional[List[torch.Tensor]] = None
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """Predicts masks. See 'forward' for more details."""
+ # Concatenate output tokens
+ s = 0
+ if self.pred_obj_scores:
+ output_tokens = torch.cat(
+ [
+ self.obj_score_token.weight,
+ self.iou_token.weight,
+ self.mask_tokens.weight,
+ ],
+ dim=0,
+ )
+ s = 1
+ else:
+ output_tokens = torch.cat(
+ [self.iou_token.weight, self.mask_tokens.weight], dim=0
+ )
+ output_tokens = output_tokens.unsqueeze(0).expand(
+ sparse_prompt_embeddings.size(0), -1, -1
+ )
+ tokens = torch.cat((output_tokens, sparse_prompt_embeddings), dim=1)
+
+ # Expand per-image data in batch direction to be per-mask
+ if repeat_image:
+ src = torch.repeat_interleave(image_embeddings, tokens.shape[0], dim=0)
+ else:
+ assert image_embeddings.shape[0] == tokens.shape[0]
+ src = image_embeddings
+ src = src + dense_prompt_embeddings
+ assert (
+ image_pe.size(0) == 1
+ ), "image_pe should have size 1 in batch dim (from `get_dense_pe()`)"
+ pos_src = torch.repeat_interleave(image_pe, tokens.shape[0], dim=0)
+ b, c, h, w = src.shape
+
+ # Run the transformer
+ hs, src = self.transformer(src, pos_src, tokens, audio_res_features_)
+ iou_token_out = hs[:, s, :]
+ mask_tokens_out = hs[:, s + 1 : (s + 1 + self.num_mask_tokens), :]
+
+ # Upscale mask embeddings and predict masks using the mask tokens
+ src = src.transpose(1, 2).view(b, c, h, w)
+
+ if not self.use_high_res_features:
+ upscaled_embedding = self.output_upscaling(src)
+ else:
+ dc1, ln1, act1, dc2, act2 = self.output_upscaling
+ feat_s0, feat_s1 = high_res_features
+ upscaled_embedding = act1(ln1(dc1(src) + feat_s1))
+ upscaled_embedding = act2(dc2(upscaled_embedding) + feat_s0)
+
+ hyper_in_list: List[torch.Tensor] = []
+ for i in range(self.num_mask_tokens):
+ hyper_in_list.append(
+ self.output_hypernetworks_mlps[i](mask_tokens_out[:, i, :])
+ )
+ hyper_in = torch.stack(hyper_in_list, dim=1)
+ b, c, h, w = upscaled_embedding.shape
+ masks = (hyper_in @ upscaled_embedding.view(b, c, h * w)).view(b, -1, h, w)
+
+ # Generate mask quality predictions
+ iou_pred = self.iou_prediction_head(iou_token_out)
+ if self.pred_obj_scores:
+ assert s == 1
+ object_score_logits = self.pred_obj_score_head(hs[:, 0, :])
+ else:
+ # Obj scores logits - default to 10.0, i.e. assuming the object is present, sigmoid(10)=1
+ object_score_logits = 10.0 * iou_pred.new_ones(iou_pred.shape[0], 1)
+
+ return masks, iou_pred, mask_tokens_out, object_score_logits
+
+ def _get_stability_scores(self, mask_logits):
+ """
+ Compute stability scores of the mask logits based on the IoU between upper and
+ lower thresholds.
+ """
+ mask_logits = mask_logits.flatten(-2)
+ stability_delta = self.dynamic_multimask_stability_delta
+ area_i = torch.sum(mask_logits > stability_delta, dim=-1).float()
+ area_u = torch.sum(mask_logits > -stability_delta, dim=-1).float()
+ stability_scores = torch.where(area_u > 0, area_i / area_u, 1.0)
+ return stability_scores
+
+ def _dynamic_multimask_via_stability(self, all_mask_logits, all_iou_scores):
+ """
+ When outputting a single mask, if the stability score from the current single-mask
+ output (based on output token 0) falls below a threshold, we instead select from
+ multi-mask outputs (based on output token 1~3) the mask with the highest predicted
+ IoU score. This is intended to ensure a valid mask for both clicking and tracking.
+ """
+ # The best mask from multimask output tokens (1~3)
+ multimask_logits = all_mask_logits[:, 1:, :, :]
+ multimask_iou_scores = all_iou_scores[:, 1:]
+ best_scores_inds = torch.argmax(multimask_iou_scores, dim=-1)
+ batch_inds = torch.arange(
+ multimask_iou_scores.size(0), device=all_iou_scores.device
+ )
+ best_multimask_logits = multimask_logits[batch_inds, best_scores_inds]
+ best_multimask_logits = best_multimask_logits.unsqueeze(1)
+ best_multimask_iou_scores = multimask_iou_scores[batch_inds, best_scores_inds]
+ best_multimask_iou_scores = best_multimask_iou_scores.unsqueeze(1)
+
+ # The mask from singlemask output token 0 and its stability score
+ singlemask_logits = all_mask_logits[:, 0:1, :, :]
+ singlemask_iou_scores = all_iou_scores[:, 0:1]
+ stability_scores = self._get_stability_scores(singlemask_logits)
+ is_stable = stability_scores >= self.dynamic_multimask_stability_thresh
+
+ # Dynamically fall back to best multimask output upon low stability scores.
+ mask_logits_out = torch.where(
+ is_stable[..., None, None].expand_as(singlemask_logits),
+ singlemask_logits,
+ best_multimask_logits,
+ )
+ iou_scores_out = torch.where(
+ is_stable.expand_as(singlemask_iou_scores),
+ singlemask_iou_scores,
+ best_multimask_iou_scores,
+ )
+ return mask_logits_out, iou_scores_out
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/sam/prompt_encoder.py b/avs.code/v1s.code/model/visual/sam2/modeling/sam/prompt_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..038cebcc072ae7c0f3f83061061be3edba04d0f8
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/sam/prompt_encoder.py
@@ -0,0 +1,188 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingRandom
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d
+
+
+class PromptEncoder(nn.Module):
+ def __init__(
+ self,
+ embed_dim: int,
+ image_embedding_size: Tuple[int, int],
+ input_image_size: Tuple[int, int],
+ mask_in_chans: int,
+ activation: Type[nn.Module] = nn.GELU,
+ ) -> None:
+ """
+ Encodes prompts for input to SAM's mask decoder.
+
+ Arguments:
+ embed_dim (int): The prompts' embedding dimension
+ image_embedding_size (tuple(int, int)): The spatial size of the
+ image embedding, as (H, W).
+ input_image_size (int): The padded size of the image as input
+ to the image encoder, as (H, W).
+ mask_in_chans (int): The number of hidden channels used for
+ encoding input masks.
+ activation (nn.Module): The activation to use when encoding
+ input masks.
+ """
+ super().__init__()
+ self.embed_dim = embed_dim
+ self.input_image_size = input_image_size
+ self.image_embedding_size = image_embedding_size
+ self.pe_layer = PositionEmbeddingRandom(embed_dim // 2)
+
+ self.num_point_embeddings: int = 4 # pos/neg point + 2 box corners
+ point_embeddings = [
+ nn.Embedding(1, embed_dim) for i in range(self.num_point_embeddings)
+ ]
+ self.point_embeddings = nn.ModuleList(point_embeddings)
+ self.not_a_point_embed = nn.Embedding(1, embed_dim)
+
+ self.mask_input_size = (
+ 4 * image_embedding_size[0],
+ 4 * image_embedding_size[1],
+ )
+ self.mask_downscaling = nn.Sequential(
+ nn.Conv2d(1, mask_in_chans // 4, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans // 4),
+ activation(),
+ nn.Conv2d(mask_in_chans // 4, mask_in_chans, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans),
+ activation(),
+ nn.Conv2d(mask_in_chans, embed_dim, kernel_size=1),
+ )
+ self.no_mask_embed = nn.Embedding(1, embed_dim)
+
+ def get_dense_pe(self) -> torch.Tensor:
+ """
+ Returns the positional encoding used to encode point prompts,
+ applied to a dense set of points the shape of the image encoding.
+
+ Returns:
+ torch.Tensor: Positional encoding with shape
+ 1x(embed_dim)x(embedding_h)x(embedding_w)
+ """
+ return self.pe_layer(self.image_embedding_size).unsqueeze(0)
+
+ def _embed_points(
+ self,
+ points: torch.Tensor,
+ labels: torch.Tensor,
+ pad: bool,
+ ) -> torch.Tensor:
+ """Embeds point prompts."""
+ points = points + 0.5 # Shift to center of pixel
+ if pad:
+ padding_point = torch.zeros((points.shape[0], 1, 2), device=points.device)
+ padding_label = -torch.ones((labels.shape[0], 1), device=labels.device)
+ points = torch.cat([points, padding_point], dim=1)
+ labels = torch.cat([labels, padding_label], dim=1)
+ point_embedding = self.pe_layer.forward_with_coords(
+ points, self.input_image_size
+ )
+ point_embedding[labels == -1] = 0.0
+ point_embedding[labels == -1] += self.not_a_point_embed.weight
+ point_embedding[labels == 0] += self.point_embeddings[0].weight
+ point_embedding[labels == 1] += self.point_embeddings[1].weight
+ point_embedding[labels == 2] += self.point_embeddings[2].weight
+ point_embedding[labels == 3] += self.point_embeddings[3].weight
+ return point_embedding
+
+ def _embed_boxes(self, boxes: torch.Tensor) -> torch.Tensor:
+ """Embeds box prompts."""
+ boxes = boxes + 0.5 # Shift to center of pixel
+ coords = boxes.reshape(-1, 2, 2)
+ corner_embedding = self.pe_layer.forward_with_coords(
+ coords, self.input_image_size
+ )
+ corner_embedding[:, 0, :] += self.point_embeddings[2].weight
+ corner_embedding[:, 1, :] += self.point_embeddings[3].weight
+ return corner_embedding
+
+ def _embed_masks(self, masks: torch.Tensor) -> torch.Tensor:
+ """Embeds mask inputs."""
+ mask_embedding = self.mask_downscaling(masks)
+ return mask_embedding
+
+ def _get_batch_size(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> int:
+ """
+ Gets the batch size of the output given the batch size of the input prompts.
+ """
+ if points is not None:
+ return points[0].shape[0]
+ elif boxes is not None:
+ return boxes.shape[0]
+ elif masks is not None:
+ return masks.shape[0]
+ else:
+ return 1
+
+ def _get_device(self) -> torch.device:
+ return self.point_embeddings[0].weight.device
+
+ def forward(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Embeds different types of prompts, returning both sparse and dense
+ embeddings.
+
+ Arguments:
+ points (tuple(torch.Tensor, torch.Tensor) or none): point coordinates
+ and labels to embed.
+ boxes (torch.Tensor or none): boxes to embed
+ masks (torch.Tensor or none): masks to embed
+
+ Returns:
+ torch.Tensor: sparse embeddings for the points and boxes, with shape
+ BxNx(embed_dim), where N is determined by the number of input points
+ and boxes.
+ torch.Tensor: dense embeddings for the masks, in the shape
+ Bx(embed_dim)x(embed_H)x(embed_W)
+ """
+ # we only utilise sounding as prompt.
+ bs = self._get_batch_size(points, boxes, masks)
+ sparse_embeddings = torch.empty(
+ (bs, 0, self.embed_dim), device=self._get_device()
+ )
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ if points is not None:
+ coords, labels = points
+ point_embeddings = self._embed_points(coords, labels, pad=(boxes is None))
+ sparse_embeddings = torch.cat([sparse_embeddings, point_embeddings], dim=1)
+ if boxes is not None:
+ box_embeddings = self._embed_boxes(boxes)
+ sparse_embeddings = torch.cat([sparse_embeddings, box_embeddings], dim=1)
+
+ if masks is not None:
+ dense_embeddings = self._embed_masks(masks)
+ else:
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ return sparse_embeddings, dense_embeddings
+
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/sam/transformer.py b/avs.code/v1s.code/model/visual/sam2/modeling/sam/transformer.py
new file mode 100644
index 0000000000000000000000000000000000000000..31916550afeccb66f4427cee7ec4a7a2d66913a5
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/sam/transformer.py
@@ -0,0 +1,367 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import contextlib
+import math
+import warnings
+from functools import partial
+from typing import Tuple, Type
+
+import torch
+import torch.nn.functional as F
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.position_encoding import apply_rotary_enc, compute_axial_cis
+from model.visual.sam2.modeling.sam2_utils import MLP
+from model.visual.sam2.utils.misc import get_sdpa_settings
+
+warnings.simplefilter(action="ignore", category=FutureWarning)
+# Check whether Flash Attention is available (and use it by default)
+OLD_GPU, USE_FLASH_ATTN, MATH_KERNEL_ON = get_sdpa_settings()
+# A fallback setting to allow all available kernels if Flash Attention fails
+ALLOW_ALL_KERNELS = False
+
+
+def sdp_kernel_context(dropout_p):
+ """
+ Get the context for the attention scaled dot-product kernel. We use Flash Attention
+ by default, but fall back to all available kernels if Flash Attention fails.
+ """
+ if ALLOW_ALL_KERNELS:
+ return contextlib.nullcontext()
+
+ return torch.backends.cuda.sdp_kernel(
+ enable_flash=USE_FLASH_ATTN,
+ # if Flash attention kernel is off, then math kernel needs to be enabled
+ enable_math=(OLD_GPU and dropout_p > 0.0) or MATH_KERNEL_ON,
+ enable_mem_efficient=OLD_GPU,
+ )
+
+
+class TwoWayTransformer(nn.Module):
+ def __init__(
+ self,
+ depth: int,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ ) -> None:
+ """
+ A transformer decoder that attends to an input image using
+ queries whose positional embedding is supplied.
+
+ Args:
+ depth (int): number of layers in the transformer
+ embedding_dim (int): the channel dimension for the input embeddings
+ num_heads (int): the number of heads for multihead attention. Must
+ divide embedding_dim
+ mlp_dim (int): the channel dimension internal to the MLP block
+ activation (nn.Module): the activation to use in the MLP block
+ """
+ super().__init__()
+ self.depth = depth
+ self.embedding_dim = embedding_dim
+ self.num_heads = num_heads
+ self.mlp_dim = mlp_dim
+ self.layers = nn.ModuleList()
+
+ for i in range(depth):
+ self.layers.append(
+ TwoWayAttentionBlock(
+ embedding_dim=embedding_dim,
+ num_heads=num_heads,
+ mlp_dim=mlp_dim,
+ activation=activation,
+ attention_downsample_rate=attention_downsample_rate,
+ skip_first_layer_pe=(i == 0),
+ )
+ )
+
+ self.final_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm_final_attn = nn.LayerNorm(embedding_dim)
+
+ def forward(
+ self,
+ image_embedding: Tensor,
+ image_pe: Tensor,
+ point_embedding: Tensor,
+ audio_res: [],
+ ) -> Tuple[Tensor, Tensor]:
+ """
+ Args:
+ image_embedding (torch.Tensor): image to attend to. Should be shape
+ B x embedding_dim x h x w for any h and w.
+ image_pe (torch.Tensor): the positional encoding to add to the image. Must
+ have the same shape as image_embedding.
+ point_embedding (torch.Tensor): the embedding to add to the query points.
+ Must have shape B x N_points x embedding_dim for any N_points.
+
+ Returns:
+ torch.Tensor: the processed point_embedding
+ torch.Tensor: the processed image_embedding
+ """
+ # BxCxHxW -> BxHWxC == B x N_image_tokens x C
+ bs, c, h, w = image_embedding.shape
+ image_embedding = image_embedding.flatten(2).permute(0, 2, 1)
+ image_pe = image_pe.flatten(2).permute(0, 2, 1)
+
+ visual_res, audio_res = audio_res
+
+ # Prepare queries
+ queries = point_embedding
+ keys = image_embedding
+ # Apply transformer blocks and final layernorm
+ for i, layer in enumerate(self.layers):
+ keys = keys + visual_res[i]
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[i]
+ queries, keys = layer(
+ queries=queries,
+ keys=keys,
+ query_pe=point_embedding,
+ key_pe=image_pe,
+ )
+
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[-1]
+ keys = keys + visual_res[-1]
+
+ # Apply the final attention layer from the points to the image
+ q = queries + point_embedding
+ k = keys + image_pe
+ attn_out = self.final_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm_final_attn(queries)
+
+ return queries, keys
+
+
+class TwoWayAttentionBlock(nn.Module):
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int = 2048,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ skip_first_layer_pe: bool = False,
+ ) -> None:
+ """
+ A transformer block with four layers: (1) self-attention of sparse
+ inputs, (2) cross attention of sparse inputs to dense inputs, (3) mlp
+ block on sparse inputs, and (4) cross attention of dense inputs to sparse
+ inputs.
+
+ Arguments:
+ embedding_dim (int): the channel dimension of the embeddings
+ num_heads (int): the number of heads in the attention layers
+ mlp_dim (int): the hidden dimension of the mlp block
+ activation (nn.Module): the activation of the mlp block
+ skip_first_layer_pe (bool): skip the PE on the first layer
+ """
+ super().__init__()
+ self.self_attn = Attention(embedding_dim, num_heads)
+ self.norm1 = nn.LayerNorm(embedding_dim)
+
+ self.cross_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm2 = nn.LayerNorm(embedding_dim)
+
+ self.mlp = MLP(
+ embedding_dim, mlp_dim, embedding_dim, num_layers=2, activation=activation
+ )
+ self.norm3 = nn.LayerNorm(embedding_dim)
+
+ self.norm4 = nn.LayerNorm(embedding_dim)
+ self.cross_attn_image_to_token = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+
+ self.skip_first_layer_pe = skip_first_layer_pe
+
+ def forward(
+ self, queries: Tensor, keys: Tensor, query_pe: Tensor, key_pe: Tensor
+ ) -> Tuple[Tensor, Tensor]:
+ # Self attention block
+ if self.skip_first_layer_pe:
+ queries = self.self_attn(q=queries, k=queries, v=queries)
+ else:
+ q = queries + query_pe
+ attn_out = self.self_attn(q=q, k=q, v=queries)
+ queries = queries + attn_out
+ queries = self.norm1(queries)
+
+ # Cross attention block, tokens attending to image embedding
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm2(queries)
+
+ # MLP block
+ mlp_out = self.mlp(queries)
+ queries = queries + mlp_out
+ queries = self.norm3(queries)
+
+ # Cross attention block, image embedding attending to tokens
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_image_to_token(q=k, k=q, v=queries)
+ keys = keys + attn_out
+ keys = self.norm4(keys)
+
+ return queries, keys
+
+
+class Attention(nn.Module):
+ """
+ An attention layer that allows for downscaling the size of the embedding
+ after projection to queries, keys, and values.
+ """
+
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ downsample_rate: int = 1,
+ dropout: float = 0.0,
+ kv_in_dim: int = None,
+ ) -> None:
+ super().__init__()
+ self.embedding_dim = embedding_dim
+ self.kv_in_dim = kv_in_dim if kv_in_dim is not None else embedding_dim
+ self.internal_dim = embedding_dim // downsample_rate
+ self.num_heads = num_heads
+ assert (
+ self.internal_dim % num_heads == 0
+ ), "num_heads must divide embedding_dim."
+
+ self.q_proj = nn.Linear(embedding_dim, self.internal_dim)
+ self.k_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.v_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.out_proj = nn.Linear(self.internal_dim, embedding_dim)
+
+ self.dropout_p = dropout
+
+ def _separate_heads(self, x: Tensor, num_heads: int) -> Tensor:
+ b, n, c = x.shape
+ x = x.reshape(b, n, num_heads, c // num_heads)
+ return x.transpose(1, 2) # B x N_heads x N_tokens x C_per_head
+
+ def _recombine_heads(self, x: Tensor) -> Tensor:
+ b, n_heads, n_tokens, c_per_head = x.shape
+ x = x.transpose(1, 2)
+ return x.reshape(b, n_tokens, n_heads * c_per_head) # B x N_tokens x C
+
+ def forward(self, q: Tensor, k: Tensor, v: Tensor) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
+
+
+class RoPEAttention(Attention):
+ """Attention with rotary position encoding."""
+
+ def __init__(
+ self,
+ *args,
+ rope_theta=10000.0,
+ # whether to repeat q rope to match k length
+ # this is needed for cross-attention to memories
+ rope_k_repeat=False,
+ feat_sizes=(32, 32), # [w, h] for stride 16 feats at 512 resolution
+ **kwargs,
+ ):
+ super().__init__(*args, **kwargs)
+
+ self.compute_cis = partial(
+ compute_axial_cis, dim=self.internal_dim // self.num_heads, theta=rope_theta
+ )
+ freqs_cis = self.compute_cis(end_x=feat_sizes[0], end_y=feat_sizes[1])
+ self.freqs_cis = freqs_cis
+ self.rope_k_repeat = rope_k_repeat
+
+ def forward(
+ self, q: Tensor, k: Tensor, v: Tensor, num_k_exclude_rope: int = 0
+ ) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ # Apply rotary position encoding
+ w = h = math.sqrt(q.shape[-2])
+ self.freqs_cis = self.freqs_cis.to(q.device)
+ if self.freqs_cis.shape[0] != q.shape[-2]:
+ self.freqs_cis = self.compute_cis(end_x=w, end_y=h).to(q.device)
+ if q.shape[-2] != k.shape[-2]:
+ assert self.rope_k_repeat
+
+ num_k_rope = k.size(-2) - num_k_exclude_rope
+ q, k[:, :, :num_k_rope] = apply_rotary_enc(
+ q,
+ k[:, :, :num_k_rope],
+ freqs_cis=self.freqs_cis,
+ repeat_freqs_k=self.rope_k_repeat,
+ )
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/sam2_base.py b/avs.code/v1s.code/model/visual/sam2/modeling/sam2_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ab890394064172b8719e8a06ee0a47d995fd585
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/sam2_base.py
@@ -0,0 +1,940 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import torch
+import torch.distributed
+import torch.nn.functional as F
+
+from torch.nn.init import trunc_normal_
+
+from model.visual.sam2.modeling.sam.mask_decoder import MaskDecoder
+from model.visual.sam2.modeling.sam.prompt_encoder import PromptEncoder
+from model.visual.sam2.modeling.sam.transformer import TwoWayTransformer
+from model.visual.sam2.modeling.sam2_utils import get_1d_sine_pe, MLP, select_closest_cond_frames
+
+# a large negative value as a placeholder score for missing objects
+NO_OBJ_SCORE = -1024.0
+
+
+class SAM2Base(torch.nn.Module):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention,
+ memory_encoder,
+ num_maskmem=7, # default 1 input frame + 6 previous frames
+ image_size=512,
+ backbone_stride=16, # stride of the image backbone output
+ sigmoid_scale_for_mem_enc=1.0, # scale factor for mask sigmoid prob
+ sigmoid_bias_for_mem_enc=0.0, # bias factor for mask sigmoid prob
+ # During evaluation, whether to binarize the sigmoid mask logits on interacted frames with clicks
+ binarize_mask_from_pts_for_mem_enc=False,
+ use_mask_input_as_output_without_sam=False, # on frames with mask input, whether to directly output the input mask without using a SAM prompt encoder + mask decoder
+ # The maximum number of conditioning frames to participate in the memory attention (-1 means no limit; if there are more conditioning frames than this limit,
+ # we only cross-attend to the temporally closest `max_cond_frames_in_attn` conditioning frames in the encoder when tracking each frame). This gives the model
+ # a temporal locality when handling a large number of annotated frames (since closer frames should be more important) and also avoids GPU OOM.
+ max_cond_frames_in_attn=-1,
+ # on the first frame, whether to directly add the no-memory embedding to the image feature
+ # (instead of using the transformer encoder)
+ directly_add_no_mem_embed=False,
+ # whether to use high-resolution feature maps in the SAM mask decoder
+ use_high_res_features_in_sam=False,
+ # whether to output multiple (3) masks for the first click on initial conditioning frames
+ multimask_output_in_sam=False,
+ # the minimum and maximum number of clicks to use multimask_output_in_sam (only relevant when `multimask_output_in_sam=True`;
+ # default is 1 for both, meaning that only the first click gives multimask output; also note that a box counts as two points)
+ multimask_min_pt_num=1,
+ multimask_max_pt_num=1,
+ # whether to also use multimask output for tracking (not just for the first click on initial conditioning frames; only relevant when `multimask_output_in_sam=True`)
+ multimask_output_for_tracking=False,
+ # Whether to use multimask tokens for obj ptr; Only relevant when both
+ # use_obj_ptrs_in_encoder=True and multimask_output_for_tracking=True
+ use_multimask_token_for_obj_ptr: bool = False,
+ # whether to use sigmoid to restrict ious prediction to [0-1]
+ iou_prediction_use_sigmoid=False,
+ # The memory bank's temporal stride during evaluation (i.e. the `r` parameter in XMem and Cutie; XMem and Cutie use r=5).
+ # For r>1, the (self.num_maskmem - 1) non-conditioning memory frames consist of
+ # (self.num_maskmem - 2) nearest frames from every r-th frames, plus the last frame.
+ memory_temporal_stride_for_eval=1,
+ # whether to apply non-overlapping constraints on the object masks in the memory encoder during evaluation (to avoid/alleviate superposing masks)
+ non_overlap_masks_for_mem_enc=False,
+ # whether to cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder=False,
+ # the maximum number of object pointers from other frames in encoder cross attention (only relevant when `use_obj_ptrs_in_encoder=True`)
+ max_obj_ptrs_in_encoder=16,
+ # whether to add temporal positional encoding to the object pointers in the encoder (only relevant when `use_obj_ptrs_in_encoder=True`)
+ add_tpos_enc_to_obj_ptrs=True,
+ # whether to add an extra linear projection layer for the temporal positional encoding in the object pointers to avoid potential interference
+ # with spatial positional encoding (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ proj_tpos_enc_in_obj_ptrs=False,
+ # whether to use signed distance (instead of unsigned absolute distance) in the temporal positional encoding in the object pointers
+ # (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ use_signed_tpos_enc_to_obj_ptrs=False,
+ # whether to only attend to object pointers in the past (before the current frame) in the encoder during evaluation
+ # (only relevant when `use_obj_ptrs_in_encoder=True`; this might avoid pointer information too far in the future to distract the initial tracking)
+ only_obj_ptrs_in_the_past_for_eval=False,
+ # Whether to predict if there is an object in the frame
+ pred_obj_scores: bool = False,
+ # Whether to use an MLP to predict object scores
+ pred_obj_scores_mlp: bool = False,
+ # Only relevant if pred_obj_scores=True and use_obj_ptrs_in_encoder=True;
+ # Whether to have a fixed no obj pointer when there is no object present
+ # or to use it as an additive embedding with obj_ptr produced by decoder
+ fixed_no_obj_ptr: bool = False,
+ # Soft no object, i.e. mix in no_obj_ptr softly,
+ # hope to make recovery easier if there is a mistake and mitigate accumulation of errors
+ soft_no_obj_ptr: bool = False,
+ use_mlp_for_obj_ptr_proj: bool = False,
+ # add no obj embedding to spatial frames
+ no_obj_embed_spatial: bool = False,
+ # extra arguments used to construct the SAM mask decoder; if not None, it should be a dict of kwargs to be passed into `MaskDecoder` class.
+ sam_mask_decoder_extra_args=None,
+ compile_image_encoder: bool = False,
+ ):
+ super().__init__()
+
+ # Part 1: the image backbone
+ self.image_encoder = image_encoder
+ # Use level 0, 1, 2 for high-res setting, or just level 2 for the default setting
+ self.use_high_res_features_in_sam = use_high_res_features_in_sam
+ self.num_feature_levels = 3 if use_high_res_features_in_sam else 1
+ self.use_obj_ptrs_in_encoder = use_obj_ptrs_in_encoder
+ self.max_obj_ptrs_in_encoder = max_obj_ptrs_in_encoder
+ if use_obj_ptrs_in_encoder:
+ # A conv layer to downsample the mask prompt to stride 4 (the same stride as
+ # low-res SAM mask logits) and to change its scales from 0~1 to SAM logit scale,
+ # so that it can be fed into the SAM mask decoder to generate a pointer.
+ self.mask_downsample = torch.nn.Conv2d(1, 1, kernel_size=4, stride=4)
+ self.add_tpos_enc_to_obj_ptrs = add_tpos_enc_to_obj_ptrs
+ if proj_tpos_enc_in_obj_ptrs:
+ assert add_tpos_enc_to_obj_ptrs # these options need to be used together
+ self.proj_tpos_enc_in_obj_ptrs = proj_tpos_enc_in_obj_ptrs
+ self.use_signed_tpos_enc_to_obj_ptrs = use_signed_tpos_enc_to_obj_ptrs
+ self.only_obj_ptrs_in_the_past_for_eval = only_obj_ptrs_in_the_past_for_eval
+
+ # Part 2: memory attention to condition current frame's visual features
+ # with memories (and obj ptrs) from past frames
+ self.memory_attention = memory_attention
+
+ #### this is for Version 2.0
+ # self.hidden_dim = memory_attention.d_model
+ #### this is for Version 2.1
+ # self.hidden_dim = image_encoder.neck.d_model
+ self.hidden_dim = 256 # well, it is always 256 anyway.
+
+ # Part 3: memory encoder for the previous frame's outputs
+ self.memory_encoder = memory_encoder
+ self.mem_dim = self.hidden_dim
+ if hasattr(self.memory_encoder, "out_proj") and hasattr(
+ self.memory_encoder.out_proj, "weight"
+ ):
+ # if there is compression of memories along channel dim
+ self.mem_dim = self.memory_encoder.out_proj.weight.shape[0]
+ self.num_maskmem = num_maskmem # Number of memories accessible
+ # Temporal encoding of the memories
+ self.maskmem_tpos_enc = torch.nn.Parameter(
+ torch.zeros(num_maskmem, 1, 1, self.mem_dim)
+ )
+ trunc_normal_(self.maskmem_tpos_enc, std=0.02)
+ # a single token to indicate no memory embedding from previous frames
+ self.no_mem_embed = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ self.no_mem_pos_enc = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ trunc_normal_(self.no_mem_embed, std=0.02)
+ trunc_normal_(self.no_mem_pos_enc, std=0.02)
+ self.directly_add_no_mem_embed = directly_add_no_mem_embed
+ # Apply sigmoid to the output raw mask logits (to turn them from
+ # range (-inf, +inf) to range (0, 1)) before feeding them into the memory encoder
+ self.sigmoid_scale_for_mem_enc = sigmoid_scale_for_mem_enc
+ self.sigmoid_bias_for_mem_enc = sigmoid_bias_for_mem_enc
+ self.binarize_mask_from_pts_for_mem_enc = binarize_mask_from_pts_for_mem_enc
+ self.non_overlap_masks_for_mem_enc = non_overlap_masks_for_mem_enc
+ self.memory_temporal_stride_for_eval = memory_temporal_stride_for_eval
+ # On frames with mask input, whether to directly output the input mask without
+ # using a SAM prompt encoder + mask decoder
+ self.use_mask_input_as_output_without_sam = use_mask_input_as_output_without_sam
+ self.multimask_output_in_sam = multimask_output_in_sam
+ self.multimask_min_pt_num = multimask_min_pt_num
+ self.multimask_max_pt_num = multimask_max_pt_num
+ self.multimask_output_for_tracking = multimask_output_for_tracking
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+ self.iou_prediction_use_sigmoid = iou_prediction_use_sigmoid
+
+ # Part 4: SAM-style prompt encoder (for both mask and point inputs)
+ # and SAM-style mask decoder for the final mask output
+ self.image_size = image_size
+ self.backbone_stride = backbone_stride
+ self.sam_mask_decoder_extra_args = sam_mask_decoder_extra_args
+ self.pred_obj_scores = pred_obj_scores
+ self.pred_obj_scores_mlp = pred_obj_scores_mlp
+ self.fixed_no_obj_ptr = fixed_no_obj_ptr
+ self.soft_no_obj_ptr = soft_no_obj_ptr
+ if self.fixed_no_obj_ptr:
+ assert self.pred_obj_scores
+ assert self.use_obj_ptrs_in_encoder
+ if self.pred_obj_scores and self.use_obj_ptrs_in_encoder:
+ self.no_obj_ptr = torch.nn.Parameter(torch.zeros(1, self.hidden_dim))
+ trunc_normal_(self.no_obj_ptr, std=0.02)
+ self.use_mlp_for_obj_ptr_proj = use_mlp_for_obj_ptr_proj
+ self.no_obj_embed_spatial = None
+ if no_obj_embed_spatial:
+ self.no_obj_embed_spatial = torch.nn.Parameter(torch.zeros(1, self.mem_dim))
+ trunc_normal_(self.no_obj_embed_spatial, std=0.02)
+
+ self._build_sam_heads()
+ self.max_cond_frames_in_attn = max_cond_frames_in_attn
+
+ # Model compilation
+ if compile_image_encoder:
+ # Compile the forward function (not the full module) to allow loading checkpoints.
+ print(
+ "Image encoder compilation is enabled. First forward pass will be slow."
+ )
+ self.image_encoder.forward = torch.compile(
+ self.image_encoder.forward,
+ mode="max-autotune",
+ fullgraph=True,
+ dynamic=False,
+ )
+
+ ### we fix the use_mask_input_as_output_without_sam to be turned off.
+ self.use_mask_input_as_output_without_sam = False
+
+
+ @property
+ def device(self):
+ return next(self.parameters()).device
+
+ def forward(self, *args, **kwargs):
+ raise NotImplementedError(
+ "Please use the corresponding methods in SAM2VideoPredictor for inference or SAM2Train for training/fine-tuning"
+ "See notebooks/video_predictor_example.ipynb for an inference example."
+ )
+
+ def _build_sam_heads(self):
+ """Build SAM-style prompt encoder and mask decoder."""
+ self.sam_prompt_embed_dim = self.hidden_dim
+ self.sam_image_embedding_size = self.image_size // self.backbone_stride
+
+ # build PromptEncoder and MaskDecoder from SAM
+ # (their hyperparameters like `mask_in_chans=16` are from SAM code)
+ self.sam_prompt_encoder = PromptEncoder(
+ embed_dim=self.sam_prompt_embed_dim,
+ image_embedding_size=(
+ self.sam_image_embedding_size,
+ self.sam_image_embedding_size,
+ ),
+ input_image_size=(self.image_size, self.image_size),
+ mask_in_chans=16,
+ )
+ self.sam_mask_decoder = MaskDecoder(
+ num_multimask_outputs=3,
+ transformer=TwoWayTransformer(
+ depth=2,
+ embedding_dim=self.sam_prompt_embed_dim,
+ mlp_dim=2048,
+ num_heads=8,
+ ),
+ transformer_dim=self.sam_prompt_embed_dim,
+ iou_head_depth=3,
+ iou_head_hidden_dim=256,
+ use_high_res_features=self.use_high_res_features_in_sam,
+ iou_prediction_use_sigmoid=self.iou_prediction_use_sigmoid,
+ pred_obj_scores=self.pred_obj_scores,
+ pred_obj_scores_mlp=self.pred_obj_scores_mlp,
+ use_multimask_token_for_obj_ptr=self.use_multimask_token_for_obj_ptr,
+ **(self.sam_mask_decoder_extra_args or {}),
+ )
+ if self.use_obj_ptrs_in_encoder:
+ # a linear projection on SAM output tokens to turn them into object pointers
+ self.obj_ptr_proj = torch.nn.Linear(self.hidden_dim, self.hidden_dim)
+ if self.use_mlp_for_obj_ptr_proj:
+ self.obj_ptr_proj = MLP(
+ self.hidden_dim, self.hidden_dim, self.hidden_dim, 3
+ )
+ else:
+ self.obj_ptr_proj = torch.nn.Identity()
+ if self.proj_tpos_enc_in_obj_ptrs:
+ # a linear projection on temporal positional encoding in object pointers to
+ # avoid potential interference with spatial positional encoding
+ self.obj_ptr_tpos_proj = torch.nn.Linear(self.hidden_dim, self.mem_dim)
+ else:
+ self.obj_ptr_tpos_proj = torch.nn.Identity()
+
+ def _forward_sam_heads(
+ self,
+ backbone_features,
+ point_inputs=None,
+ mask_inputs=None,
+ high_res_features=None,
+ multimask_output=False,
+ audio_res=None
+ ):
+ """
+ Forward SAM prompt encoders and mask heads.
+
+ Inputs:
+ - backbone_features: image features of [B, C, H, W] shape
+ - point_inputs: a dictionary with "point_coords" and "point_labels", where
+ 1) "point_coords" has [B, P, 2] shape and float32 dtype and contains the
+ absolute pixel-unit coordinate in (x, y) format of the P input points
+ 2) "point_labels" has shape [B, P] and int32 dtype, where 1 means
+ positive clicks, 0 means negative clicks, and -1 means padding
+ - mask_inputs: a mask of [B, 1, H*16, W*16] shape, float or bool, with the
+ same spatial size as the image.
+ - high_res_features: either 1) None or 2) or a list of length 2 containing
+ two feature maps of [B, C, 4*H, 4*W] and [B, C, 2*H, 2*W] shapes respectively,
+ which will be used as high-resolution feature maps for SAM decoder.
+ - multimask_output: if it's True, we output 3 candidate masks and their 3
+ corresponding IoU estimates, and if it's False, we output only 1 mask and
+ its corresponding IoU estimate.
+
+ Outputs:
+ - low_res_multimasks: [B, M, H*4, W*4] shape (where M = 3 if
+ `multimask_output=True` and M = 1 if `multimask_output=False`), the SAM
+ output mask logits (before sigmoid) for the low-resolution masks, with 4x
+ the resolution (1/4 stride) of the input backbone_features.
+ - high_res_multimasks: [B, M, H*16, W*16] shape (where M = 3
+ if `multimask_output=True` and M = 1 if `multimask_output=False`),
+ upsampled from the low-resolution masks, with shape size as the image
+ (stride is 1 pixel).
+ - ious, [B, M] shape, where (where M = 3 if `multimask_output=True` and M = 1
+ if `multimask_output=False`), the estimated IoU of each output mask.
+ - low_res_masks: [B, 1, H*4, W*4] shape, the best mask in `low_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `low_res_multimasks`.
+ - high_res_masks: [B, 1, H*16, W*16] shape, the best mask in `high_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `high_res_multimasks`.
+ - obj_ptr: [B, C] shape, the object pointer vector for the output mask, extracted
+ based on the output token from the SAM mask decoder.
+ """
+ B = backbone_features.size(0)
+ device = backbone_features.device
+ assert backbone_features.size(1) == self.sam_prompt_embed_dim
+ assert backbone_features.size(2) == self.sam_image_embedding_size
+ assert backbone_features.size(3) == self.sam_image_embedding_size
+
+ '''
+ # a) Handle point prompts
+ if point_inputs is not None:
+ sam_point_coords = point_inputs["point_coords"]
+ sam_point_labels = point_inputs["point_labels"]
+ assert sam_point_coords.size(0) == B and sam_point_labels.size(0) == B
+ raise NotImplementedError
+ else:
+ # If no points are provide, pad with an empty point (with label -1)
+ sam_point_coords = torch.zeros(B, 1, 2, device=device)
+ sam_point_labels = -torch.ones(B, 1, dtype=torch.int32, device=device)
+
+ # b) Handle mask prompts
+ if mask_inputs is not None:
+ # If mask_inputs is provided, downsize it into low-res mask input if needed
+ # and feed it as a dense mask prompt into the SAM mask encoder
+ assert len(mask_inputs.shape) == 4 and mask_inputs.shape[:2] == (B, 1)
+ if mask_inputs.shape[-2:] != self.sam_prompt_encoder.mask_input_size:
+ sam_mask_prompt = F.interpolate(
+ mask_inputs.float(),
+ size=self.sam_prompt_encoder.mask_input_size,
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ else:
+ sam_mask_prompt = mask_inputs
+ raise NotImplementedError
+ else:
+ # Otherwise, simply feed None (and SAM's prompt encoder will add
+ # a learned `no_mask_embed` to indicate no mask input in this case).
+ sam_mask_prompt = None
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=(sam_point_coords, sam_point_labels),
+ boxes=None,
+ masks=sam_mask_prompt,
+ )
+ '''
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=None,
+ boxes=None,
+ masks=None,
+ )
+
+ (
+ low_res_multimasks,
+ ious,
+ sam_output_tokens,
+ object_score_logits,
+ ) = self.sam_mask_decoder(
+ image_embeddings=backbone_features,
+ image_pe=self.sam_prompt_encoder.get_dense_pe(),
+ sparse_prompt_embeddings=sparse_embeddings,
+ dense_prompt_embeddings=dense_embeddings,
+ multimask_output=multimask_output,
+ repeat_image=False, # the image is already batched
+ high_res_features=high_res_features,
+ audio_res_features=audio_res
+ )
+ '''
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+
+ # Mask used for spatial memories is always a *hard* choice between obj and no obj,
+ # consistent with the actual mask prediction
+ low_res_multimasks = torch.where(
+ is_obj_appearing[:, None, None],
+ low_res_multimasks,
+ NO_OBJ_SCORE,
+ )
+ '''
+ # convert masks from possibly bfloat16 (or float16) to float32
+ # (older PyTorch versions before 2.1 don't support `interpolate` on bf16)
+ low_res_multimasks = low_res_multimasks.float()
+ high_res_multimasks = F.interpolate(
+ low_res_multimasks,
+ size=(self.image_size, self.image_size),
+ mode="bilinear",
+ align_corners=False,
+ )
+ sam_output_token = sam_output_tokens[:, 0]
+ if multimask_output:
+ # comment this line temporarily.
+ # take the best mask prediction (with the highest IoU estimation)
+ best_iou_inds = torch.argmax(ious, dim=-1)
+ batch_inds = torch.arange(B, device=device)
+ low_res_masks = low_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ high_res_masks = high_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ if sam_output_tokens.size(1) > 1:
+ sam_output_token = sam_output_tokens[batch_inds, best_iou_inds]
+ else:
+ low_res_masks, high_res_masks = low_res_multimasks, high_res_multimasks
+
+ # Extract object pointer from the SAM output token (with occlusion handling)
+ obj_ptr = self.obj_ptr_proj(sam_output_token)
+
+ # don't train occlusion at the moment, command temporarily.
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+ # Allow *soft* no obj ptr, unlike for masks
+ if self.soft_no_obj_ptr:
+ lambda_is_obj_appearing = object_score_logits.sigmoid()
+ else:
+ lambda_is_obj_appearing = is_obj_appearing.float()
+
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+ return (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def _use_mask_as_output(self, backbone_features, high_res_features, mask_inputs):
+ """
+ Directly turn binary `mask_inputs` into a output mask logits without using SAM.
+ (same input and output shapes as in _forward_sam_heads above).
+ """
+ # Use -10/+10 as logits for neg/pos pixels (very close to 0/1 in prob after sigmoid).
+ out_scale, out_bias = 20.0, -10.0 # sigmoid(-10.0)=4.5398e-05
+ mask_inputs_float = mask_inputs.float()
+ high_res_masks = mask_inputs_float * out_scale + out_bias
+ low_res_masks = F.interpolate(
+ high_res_masks,
+ size=(high_res_masks.size(-2) // 4, high_res_masks.size(-1) // 4),
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ # a dummy IoU prediction of all 1's under mask input
+ ious = mask_inputs.new_ones(mask_inputs.size(0), 1).float()
+ if not self.use_obj_ptrs_in_encoder:
+ # all zeros as a dummy object pointer (of shape [B, C])
+ obj_ptr = torch.zeros(
+ mask_inputs.size(0), self.hidden_dim, device=mask_inputs.device
+ )
+ else:
+ # produce an object pointer using the SAM decoder from the mask input
+ _, _, _, _, _, obj_ptr, _ = self._forward_sam_heads(
+ backbone_features=backbone_features,
+ mask_inputs=self.mask_downsample(mask_inputs_float),
+ high_res_features=high_res_features,
+ )
+ # In this method, we are treating mask_input as output, e.g. using it directly to create spatial mem;
+ # Below, we follow the same design axiom to use mask_input to decide if obj appears or not instead of relying
+ # on the object_scores from the SAM decoder.
+ is_obj_appearing = torch.any(mask_inputs.flatten(1).float() > 0.0, dim=1)
+ is_obj_appearing = is_obj_appearing[..., None]
+ lambda_is_obj_appearing = is_obj_appearing.float()
+ object_score_logits = out_scale * lambda_is_obj_appearing + out_bias
+ if self.pred_obj_scores:
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+
+ return (
+ low_res_masks,
+ high_res_masks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def precompute_high_res_features(self, backbone_out):
+ if self.use_high_res_features_in_sam:
+ # precompute projected level 0 and level 1 features in SAM decoder
+ # to avoid running it again on every SAM click
+ backbone_out["backbone_fpn"][0] = self.sam_mask_decoder.conv_s0(
+ backbone_out["backbone_fpn"][0]
+ )
+ backbone_out["backbone_fpn"][1] = self.sam_mask_decoder.conv_s1(
+ backbone_out["backbone_fpn"][1]
+ )
+ return backbone_out
+
+ def forward_image(self, img_batch: torch.Tensor, pre_compute=True):
+ """Get the image feature on the input batch."""
+ backbone_out = self.image_encoder(img_batch)
+ return backbone_out if not pre_compute else self.precompute_high_res_features(backbone_out)
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.num_feature_levels :]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.num_feature_levels :]
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ # flatten NxCxHxW to HWxNxC
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def _prepare_memory_conditioned_features(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ ):
+ """Fuse the current frame's visual feature map with previous memory."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ device = current_vision_feats[-1].device
+ # The case of `self.num_maskmem == 0` below is primarily used for reproducing SAM on images.
+ # In this case, we skip the fusion with any memory.
+ if self.num_maskmem == 0: # Disable memory and skip fusion
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat
+
+ num_obj_ptr_tokens = 0
+ tpos_sign_mul = -1 if track_in_reverse else 1
+ # Step 1: condition the visual features of the current frame on previous memories
+ if not is_init_cond_frame:
+ # Retrieve the memories encoded with the maskmem backbone
+ to_cat_memory, to_cat_memory_pos_embed = [], []
+ # Add conditioning frames's output first (all cond frames have t_pos=0 for
+ # when getting temporal positional embedding below)
+ assert len(output_dict["cond_frame_outputs"]) > 0
+ # Select a maximum number of temporally closest cond frames for cross attention
+ cond_outputs = output_dict["cond_frame_outputs"]
+ selected_cond_outputs, unselected_cond_outputs = select_closest_cond_frames(
+ frame_idx, cond_outputs, self.max_cond_frames_in_attn
+ )
+ t_pos_and_prevs = [(0, out) for out in selected_cond_outputs.values()]
+ # for t_pos in range(1, min(self.num_maskmem, frame_idx)):
+ # out = output_dict["non_cond_frame_outputs"].get(t_pos, None)
+ # t_pos_and_prevs.append((t_pos, out))
+ # Add last (self.num_maskmem - 1) frames before current frame for non-conditioning memory
+ # the earliest one has t_pos=1 and the latest one has t_pos=self.num_maskmem-1
+ # We also allow taking the memory frame non-consecutively (with stride>1), in which case
+ # we take (self.num_maskmem - 2) frames among every stride-th frames plus the last frame.
+ stride = 1 if self.training else self.memory_temporal_stride_for_eval
+
+ for t_pos in range(1, self.num_maskmem):
+ t_rel = self.num_maskmem - t_pos # how many frames before current frame
+ if t_rel == 1:
+ # for t_rel == 1, we take the last frame (regardless of r)
+ if not track_in_reverse:
+ # the frame immediately before this frame (i.e. frame_idx - 1)
+ prev_frame_idx = frame_idx - t_rel
+ else:
+ # the frame immediately after this frame (i.e. frame_idx + 1)
+ prev_frame_idx = frame_idx + t_rel
+ else:
+ # for t_rel >= 2, we take the memory frame from every r-th frames
+ if not track_in_reverse:
+ # first find the nearest frame among every r-th frames before this frame
+ # for r=1, this would be (frame_idx - 2)
+ prev_frame_idx = ((frame_idx - 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx - (t_rel - 2) * stride
+ else:
+ # first find the nearest frame among every r-th frames after this frame
+ # for r=1, this would be (frame_idx + 2)
+ prev_frame_idx = -(-(frame_idx + 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx + (t_rel - 2) * stride
+ out = output_dict["non_cond_frame_outputs"].get(prev_frame_idx, None)
+ if out is None:
+ # If an unselected conditioning frame is among the last (self.num_maskmem - 1)
+ # frames, we still attend to it as if it's a non-conditioning frame.
+ out = unselected_cond_outputs.get(prev_frame_idx, None)
+ t_pos_and_prevs.append((t_pos, out))
+
+ for t_pos, prev in t_pos_and_prevs:
+ if prev is None:
+ continue # skip padding frames
+ # "maskmem_features" might have been offloaded to CPU in demo use cases,
+ # so we load it back to GPU (it's a no-op if it's already on GPU).
+ feats = prev["maskmem_features"].to(device, non_blocking=True)
+ to_cat_memory.append(feats.flatten(2).permute(2, 0, 1))
+ # Spatial positional encoding (it might have been offloaded to CPU in eval)
+ maskmem_enc = prev["maskmem_pos_enc"][-1].to(device)
+ maskmem_enc = maskmem_enc.flatten(2).permute(2, 0, 1)
+ # Temporal positional encoding
+ maskmem_enc = (
+ maskmem_enc + self.maskmem_tpos_enc[self.num_maskmem - t_pos - 1]
+ )
+ to_cat_memory_pos_embed.append(maskmem_enc)
+ # Construct the list of past object pointers
+ if self.use_obj_ptrs_in_encoder:
+ max_obj_ptrs_in_encoder = min(num_frames, self.max_obj_ptrs_in_encoder)
+ # First add those object pointers from selected conditioning frames
+ # (optionally, only include object pointers in the past during evaluation)
+ if not self.training and self.only_obj_ptrs_in_the_past_for_eval:
+ ptr_cond_outputs = {
+ t: out
+ for t, out in selected_cond_outputs.items()
+ if (t >= frame_idx if track_in_reverse else t <= frame_idx)
+ }
+ else:
+ ptr_cond_outputs = selected_cond_outputs
+ pos_and_ptrs = [
+ # Temporal pos encoding contains how far away each pointer is from current frame
+ (
+ (
+ (frame_idx - t) * tpos_sign_mul
+ if self.use_signed_tpos_enc_to_obj_ptrs
+ else abs(frame_idx - t)
+ ),
+ out["obj_ptr"],
+ )
+ for t, out in ptr_cond_outputs.items()
+ ]
+ # Add up to (max_obj_ptrs_in_encoder - 1) non-conditioning frames before current frame
+ for t_diff in range(1, max_obj_ptrs_in_encoder):
+ t = frame_idx + t_diff if track_in_reverse else frame_idx - t_diff
+ if t < 0 or (num_frames is not None and t >= num_frames):
+ break
+ out = output_dict["non_cond_frame_outputs"].get(
+ t, unselected_cond_outputs.get(t, None)
+ )
+ if out is not None:
+ pos_and_ptrs.append((t_diff, out["obj_ptr"]))
+ # If we have at least one object pointer, add them to the across attention
+ if len(pos_and_ptrs) > 0:
+ pos_list, ptrs_list = zip(*pos_and_ptrs)
+ # stack object pointers along dim=0 into [ptr_seq_len, B, C] shape
+ obj_ptrs = torch.stack(ptrs_list, dim=0)
+ # a temporal positional embedding based on how far each object pointer is from
+ # the current frame (sine embedding normalized by the max pointer num).
+ # default false.
+ if self.add_tpos_enc_to_obj_ptrs:
+ t_diff_max = max_obj_ptrs_in_encoder - 1
+ tpos_dim = C if self.proj_tpos_enc_in_obj_ptrs else self.mem_dim
+ obj_pos = torch.tensor(pos_list, device=device)
+ obj_pos = get_1d_sine_pe(obj_pos / t_diff_max, dim=tpos_dim)
+ obj_pos = self.obj_ptr_tpos_proj(obj_pos)
+ obj_pos = obj_pos.unsqueeze(1).expand(-1, B, self.mem_dim)
+ else:
+ obj_pos = obj_ptrs.new_zeros(len(pos_list), B, self.mem_dim)
+ if self.mem_dim < C:
+ # split a pointer into (C // self.mem_dim) tokens for self.mem_dim < C
+ obj_ptrs = obj_ptrs.reshape(
+ -1, B, C // self.mem_dim, self.mem_dim
+ )
+ obj_ptrs = obj_ptrs.permute(0, 2, 1, 3).flatten(0, 1)
+ obj_pos = obj_pos.repeat_interleave(C // self.mem_dim, dim=0)
+ to_cat_memory.append(obj_ptrs)
+ to_cat_memory_pos_embed.append(obj_pos)
+ num_obj_ptr_tokens = obj_ptrs.shape[0]
+ else:
+ num_obj_ptr_tokens = 0
+ else:
+ # for initial conditioning frames, encode them without using any previous memory
+ if self.directly_add_no_mem_embed:
+ # directly add no-mem embedding (instead of using the transformer encoder)
+ pix_feat_with_mem = current_vision_feats[-1] + self.no_mem_embed
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+ # Use a dummy token on the first frame (to avoid empty memory input to tranformer encoder)
+ # the Following lines will never be triggered.
+ raise NotImplementedError
+ to_cat_memory = [self.no_mem_embed.expand(1, B, self.mem_dim)]
+ to_cat_memory_pos_embed = [self.no_mem_pos_enc.expand(1, B, self.mem_dim)]
+
+ # Step 2: Concatenate the memories and forward through the transformer encoder
+ memory = torch.cat(to_cat_memory, dim=0)
+ memory_pos_embed = torch.cat(to_cat_memory_pos_embed, dim=0)
+
+ pix_feat_with_mem = self.memory_attention(
+ curr=current_vision_feats,
+ curr_pos=current_vision_pos_embeds,
+ memory=memory,
+ memory_pos=memory_pos_embed,
+ num_obj_ptr_tokens=num_obj_ptr_tokens,
+ )
+ # reshape the output (HW)BC => BCHW
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+
+ def _encode_new_memory(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ pred_masks_high_res,
+ object_score_logits,
+ is_mask_from_pts,
+ ):
+ """Encode the current image and its prediction into a memory feature."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ # top-level feature, (HW)BC => BCHW
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ if self.non_overlap_masks_for_mem_enc and not self.training:
+ # optionally, apply non-overlapping constraints to the masks (it's applied
+ # in the batch dimension and should only be used during eval, where all
+ # the objects come from the same video under batch size 1).
+ pred_masks_high_res = self._apply_non_overlapping_constraints(
+ pred_masks_high_res
+ )
+ raise NotImplementedError
+ # scale the raw mask logits with a temperature before applying sigmoid
+ binarize = self.binarize_mask_from_pts_for_mem_enc and is_mask_from_pts
+ if binarize and not self.training:
+ mask_for_mem = (pred_masks_high_res > 0).float()
+ else:
+ # apply sigmoid on the raw mask logits to turn them into range (0, 1)
+ mask_for_mem = torch.sigmoid(pred_masks_high_res)
+ # apply scale and bias terms to the sigmoid probabilities
+ if self.sigmoid_scale_for_mem_enc != 1.0:
+ mask_for_mem = mask_for_mem * self.sigmoid_scale_for_mem_enc
+ if self.sigmoid_bias_for_mem_enc != 0.0:
+ mask_for_mem = mask_for_mem + self.sigmoid_bias_for_mem_enc
+ maskmem_out = self.memory_encoder(
+ pix_feat, mask_for_mem, skip_mask_sigmoid=True # sigmoid already applied
+ )
+ maskmem_features = maskmem_out["vision_features"]
+ maskmem_pos_enc = maskmem_out["vision_pos_enc"]
+ # add a no-object embedding to the spatial memory to indicate that the frame
+ # is predicted to be occluded (i.e. no object is appearing in the frame)
+ if self.no_obj_embed_spatial is not None:
+ is_obj_appearing = (object_score_logits > 0).float()
+ maskmem_features += (
+ 1 - is_obj_appearing[..., None, None]
+ ) * self.no_obj_embed_spatial[..., None, None].expand(
+ *maskmem_features.shape
+ )
+ # it will be used in sam2.1
+ # raise NotImplementedError
+
+ return maskmem_features, maskmem_pos_enc
+
+ def _track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam:
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ if prev_sam_mask_logits is not None:
+ assert point_inputs is not None and mask_inputs is None
+ mask_inputs = prev_sam_mask_logits
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def _encode_memory_in_output(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+ if run_mem_encoder and self.num_maskmem > 0:
+ high_res_masks_for_mem_enc = high_res_masks
+ maskmem_features, maskmem_pos_enc = self._encode_new_memory(
+ current_vision_feats=current_vision_feats,
+ feat_sizes=feat_sizes,
+ pred_masks_high_res=high_res_masks_for_mem_enc,
+ object_score_logits=object_score_logits,
+ is_mask_from_pts=(point_inputs is not None),
+ )
+ current_out["maskmem_features"] = maskmem_features
+ current_out["maskmem_pos_enc"] = maskmem_pos_enc
+ else:
+ current_out["maskmem_features"] = None
+ current_out["maskmem_pos_enc"] = None
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ # Whether to run the memory encoder on the predicted masks. Sometimes we might want
+ # to skip the memory encoder with `run_mem_encoder=False`. For example,
+ # in demo we might call `track_step` multiple times for each user click,
+ # and only encode the memory when the user finalizes their clicks. And in ablation
+ # settings like SAM training on static images, we don't need the memory encoder.
+ run_mem_encoder=True,
+ # The previously predicted SAM mask logits (which can be fed together with new clicks in demo).
+ prev_sam_mask_logits=None,
+ ):
+ current_out, sam_outputs, _, _ = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+ if not self.training:
+ # Only add this in inference (to avoid unused param in activation checkpointing;
+ # it's mainly used in the demo to encode spatial memories w/ consolidated masks)
+ current_out["object_score_logits"] = object_score_logits
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+
+ return current_out
+
+ def _use_multimask(self, is_init_cond_frame, point_inputs):
+ """Whether to use multimask output in the SAM head."""
+ num_pts = 0 if point_inputs is None else point_inputs["point_labels"].size(1)
+ multimask_output = (
+ self.multimask_output_in_sam
+ and (is_init_cond_frame or self.multimask_output_for_tracking)
+ and (self.multimask_min_pt_num <= num_pts <= self.multimask_max_pt_num)
+ )
+ return multimask_output
+
+ def _apply_non_overlapping_constraints(self, pred_masks):
+ """
+ Apply non-overlapping constraints to the object scores in pred_masks. Here we
+ keep only the highest scoring object at each spatial location in pred_masks.
+ """
+ batch_size = pred_masks.size(0)
+ if batch_size == 1:
+ return pred_masks
+
+ device = pred_masks.device
+ # "max_obj_inds": object index of the object with the highest score at each location
+ max_obj_inds = torch.argmax(pred_masks, dim=0, keepdim=True)
+ # "batch_obj_inds": object index of each object slice (along dim 0) in `pred_masks`
+ batch_obj_inds = torch.arange(batch_size, device=device)[:, None, None, None]
+ keep = max_obj_inds == batch_obj_inds
+ # suppress overlapping regions' scores below -10.0 so that the foreground regions
+ # don't overlap (here sigmoid(-10.0)=4.5398e-05)
+ pred_masks = torch.where(keep, pred_masks, torch.clamp(pred_masks, max=-10.0))
+ return pred_masks
diff --git a/avs.code/v1s.code/model/visual/sam2/modeling/sam2_utils.py b/avs.code/v1s.code/model/visual/sam2/modeling/sam2_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..19133558dd657bbcf67f851011d45bd4999cab0a
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/modeling/sam2_utils.py
@@ -0,0 +1,323 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import copy
+from typing import Tuple
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.utils.misc import mask_to_box
+
+
+def select_closest_cond_frames(frame_idx, cond_frame_outputs, max_cond_frame_num):
+ """
+ Select up to `max_cond_frame_num` conditioning frames from `cond_frame_outputs`
+ that are temporally closest to the current frame at `frame_idx`. Here, we take
+ - a) the closest conditioning frame before `frame_idx` (if any);
+ - b) the closest conditioning frame after `frame_idx` (if any);
+ - c) any other temporally closest conditioning frames until reaching a total
+ of `max_cond_frame_num` conditioning frames.
+
+ Outputs:
+ - selected_outputs: selected items (keys & values) from `cond_frame_outputs`.
+ - unselected_outputs: items (keys & values) not selected in `cond_frame_outputs`.
+ """
+ if max_cond_frame_num == -1 or len(cond_frame_outputs) <= max_cond_frame_num:
+ selected_outputs = cond_frame_outputs
+ unselected_outputs = {}
+ else:
+ assert max_cond_frame_num >= 2, "we should allow using 2+ conditioning frames"
+ selected_outputs = {}
+
+ # the closest conditioning frame before `frame_idx` (if any)
+ idx_before = max((t for t in cond_frame_outputs if t < frame_idx), default=None)
+ if idx_before is not None:
+ selected_outputs[idx_before] = cond_frame_outputs[idx_before]
+
+ # the closest conditioning frame after `frame_idx` (if any)
+ idx_after = min((t for t in cond_frame_outputs if t >= frame_idx), default=None)
+ if idx_after is not None:
+ selected_outputs[idx_after] = cond_frame_outputs[idx_after]
+
+ # add other temporally closest conditioning frames until reaching a total
+ # of `max_cond_frame_num` conditioning frames.
+ num_remain = max_cond_frame_num - len(selected_outputs)
+ inds_remain = sorted(
+ (t for t in cond_frame_outputs if t not in selected_outputs),
+ key=lambda x: abs(x - frame_idx),
+ )[:num_remain]
+ selected_outputs.update((t, cond_frame_outputs[t]) for t in inds_remain)
+ unselected_outputs = {
+ t: v for t, v in cond_frame_outputs.items() if t not in selected_outputs
+ }
+
+ return selected_outputs, unselected_outputs
+
+
+def get_1d_sine_pe(pos_inds, dim, temperature=10000):
+ """
+ Get 1D sine positional embedding as in the original Transformer paper.
+ """
+ pe_dim = dim // 2
+ dim_t = torch.arange(pe_dim, dtype=torch.float32, device=pos_inds.device)
+ dim_t = temperature ** (2 * (dim_t // 2) / pe_dim)
+
+ pos_embed = pos_inds.unsqueeze(-1) / dim_t
+ pos_embed = torch.cat([pos_embed.sin(), pos_embed.cos()], dim=-1)
+ return pos_embed
+
+
+def get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(f"activation should be relu/gelu, not {activation}.")
+
+
+def get_clones(module, N):
+ return nn.ModuleList([copy.deepcopy(module) for i in range(N)])
+
+
+class DropPath(nn.Module):
+ # adapted from https://github.com/huggingface/pytorch-image-models/blob/main/timm/layers/drop.py
+ def __init__(self, drop_prob=0.0, scale_by_keep=True):
+ super(DropPath, self).__init__()
+ self.drop_prob = drop_prob
+ self.scale_by_keep = scale_by_keep
+
+ def forward(self, x):
+ if self.drop_prob == 0.0 or not self.training:
+ return x
+ keep_prob = 1 - self.drop_prob
+ shape = (x.shape[0],) + (1,) * (x.ndim - 1)
+ random_tensor = x.new_empty(shape).bernoulli_(keep_prob)
+ if keep_prob > 0.0 and self.scale_by_keep:
+ random_tensor.div_(keep_prob)
+ return x * random_tensor
+
+
+# Lightly adapted from
+# https://github.com/facebookresearch/MaskFormer/blob/main/mask_former/modeling/transformer/transformer_predictor.py # noqa
+class MLP(nn.Module):
+ def __init__(
+ self,
+ input_dim: int,
+ hidden_dim: int,
+ output_dim: int,
+ num_layers: int,
+ activation: nn.Module = nn.ReLU,
+ sigmoid_output: bool = False,
+ ) -> None:
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(
+ nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim])
+ )
+ self.sigmoid_output = sigmoid_output
+ self.act = activation()
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = self.act(layer(x)) if i < self.num_layers - 1 else layer(x)
+ if self.sigmoid_output:
+ x = F.sigmoid(x)
+ return x
+
+
+# From https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py # noqa
+# Itself from https://github.com/facebookresearch/ConvNeXt/blob/d1fa8f6fef0a165b27399986cc2bdacc92777e40/models/convnext.py#L119 # noqa
+class LayerNorm2d(nn.Module):
+ def __init__(self, num_channels: int, eps: float = 1e-6) -> None:
+ super().__init__()
+ self.weight = nn.Parameter(torch.ones(num_channels))
+ self.bias = nn.Parameter(torch.zeros(num_channels))
+ self.eps = eps
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ u = x.mean(1, keepdim=True)
+ s = (x - u).pow(2).mean(1, keepdim=True)
+ x = (x - u) / torch.sqrt(s + self.eps)
+ x = self.weight[:, None, None] * x + self.bias[:, None, None]
+ return x
+
+
+def sample_box_points(
+ masks: torch.Tensor,
+ noise: float = 0.1, # SAM default
+ noise_bound: int = 20, # SAM default
+ top_left_label: int = 2,
+ bottom_right_label: int = 3,
+) -> Tuple[np.array, np.array]:
+ """
+ Sample a noised version of the top left and bottom right corners of a given `bbox`
+
+ Inputs:
+ - masks: [B, 1, H,W] boxes, dtype=torch.Tensor
+ - noise: noise as a fraction of box width and height, dtype=float
+ - noise_bound: maximum amount of noise (in pure pixesl), dtype=int
+
+ Returns:
+ - box_coords: [B, num_pt, 2], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.float
+ - box_labels: [B, num_pt], label 2 is reserverd for top left and 3 for bottom right corners, dtype=torch.int32
+ """
+ device = masks.device
+ box_coords = mask_to_box(masks)
+ B, _, H, W = masks.shape
+ box_labels = torch.tensor(
+ [top_left_label, bottom_right_label], dtype=torch.int, device=device
+ ).repeat(B)
+ if noise > 0.0:
+ if not isinstance(noise_bound, torch.Tensor):
+ noise_bound = torch.tensor(noise_bound, device=device)
+ bbox_w = box_coords[..., 2] - box_coords[..., 0]
+ bbox_h = box_coords[..., 3] - box_coords[..., 1]
+ max_dx = torch.min(bbox_w * noise, noise_bound)
+ max_dy = torch.min(bbox_h * noise, noise_bound)
+ box_noise = 2 * torch.rand(B, 1, 4, device=device) - 1
+ box_noise = box_noise * torch.stack((max_dx, max_dy, max_dx, max_dy), dim=-1)
+
+ box_coords = box_coords + box_noise
+ img_bounds = (
+ torch.tensor([W, H, W, H], device=device) - 1
+ ) # uncentered pixel coords
+ box_coords.clamp_(torch.zeros_like(img_bounds), img_bounds) # In place clamping
+
+ box_coords = box_coords.reshape(-1, 2, 2) # always 2 points
+ box_labels = box_labels.reshape(-1, 2)
+ return box_coords, box_labels
+
+
+def sample_random_points_from_errors(gt_masks, pred_masks, num_pt=1):
+ """
+ Sample `num_pt` random points (along with their labels) independently from the error regions.
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - num_pt: int, number of points to sample independently for each of the B error maps
+
+ Outputs:
+ - points: [B, num_pt, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, num_pt], dtype=torch.int32, where 1 means positive clicks and 0 means
+ negative clicks
+ """
+ if pred_masks is None: # if pred_masks is not provided, treat it as empty
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+ assert num_pt >= 0
+
+ B, _, H_im, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+ # whether the prediction completely match the ground-truth on each mask
+ all_correct = torch.all((gt_masks == pred_masks).flatten(2), dim=2)
+ all_correct = all_correct[..., None, None]
+
+ # channel 0 is FP map, while channel 1 is FN map
+ pts_noise = torch.rand(B, num_pt, H_im, W_im, 2, device=device)
+ # sample a negative new click from FP region or a positive new click
+ # from FN region, depend on where the maximum falls,
+ # and in case the predictions are all correct (no FP or FN), we just
+ # sample a negative click from the background region
+ pts_noise[..., 0] *= fp_masks | (all_correct & ~gt_masks)
+ pts_noise[..., 1] *= fn_masks
+ pts_idx = pts_noise.flatten(2).argmax(dim=2)
+ labels = (pts_idx % 2).to(torch.int32)
+ pts_idx = pts_idx // 2
+ pts_x = pts_idx % W_im
+ pts_y = pts_idx // W_im
+ points = torch.stack([pts_x, pts_y], dim=2).to(torch.float)
+ return points, labels
+
+
+def sample_one_point_from_error_center(gt_masks, pred_masks, padding=True):
+ """
+ Sample 1 random point (along with its label) from the center of each error region,
+ that is, the point with the largest distance to the boundary of each error region.
+ This is the RITM sampling method from https://github.com/saic-vul/ritm_interactive_segmentation/blob/master/isegm/inference/clicker.py
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - padding: if True, pad with boundary of 1 px for distance transform
+
+ Outputs:
+ - points: [B, 1, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, 1], dtype=torch.int32, where 1 means positive clicks and 0 means negative clicks
+ """
+ import cv2
+
+ if pred_masks is None:
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+
+ B, _, _, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+
+ fp_masks = fp_masks.cpu().numpy()
+ fn_masks = fn_masks.cpu().numpy()
+ points = torch.zeros(B, 1, 2, dtype=torch.float)
+ labels = torch.ones(B, 1, dtype=torch.int32)
+ for b in range(B):
+ fn_mask = fn_masks[b, 0]
+ fp_mask = fp_masks[b, 0]
+ if padding:
+ fn_mask = np.pad(fn_mask, ((1, 1), (1, 1)), "constant")
+ fp_mask = np.pad(fp_mask, ((1, 1), (1, 1)), "constant")
+ # compute the distance of each point in FN/FP region to its boundary
+ fn_mask_dt = cv2.distanceTransform(fn_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ fp_mask_dt = cv2.distanceTransform(fp_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ if padding:
+ fn_mask_dt = fn_mask_dt[1:-1, 1:-1]
+ fp_mask_dt = fp_mask_dt[1:-1, 1:-1]
+
+ # take the point in FN/FP region with the largest distance to its boundary
+ fn_mask_dt_flat = fn_mask_dt.reshape(-1)
+ fp_mask_dt_flat = fp_mask_dt.reshape(-1)
+ fn_argmax = np.argmax(fn_mask_dt_flat)
+ fp_argmax = np.argmax(fp_mask_dt_flat)
+ is_positive = fn_mask_dt_flat[fn_argmax] > fp_mask_dt_flat[fp_argmax]
+ pt_idx = fn_argmax if is_positive else fp_argmax
+ points[b, 0, 0] = pt_idx % W_im # x
+ points[b, 0, 1] = pt_idx // W_im # y
+ labels[b, 0] = int(is_positive)
+
+ points = points.to(device)
+ labels = labels.to(device)
+ return points, labels
+
+
+def get_next_point(gt_masks, pred_masks, method):
+ if method == "uniform":
+ return sample_random_points_from_errors(gt_masks, pred_masks)
+ elif method == "center":
+ return sample_one_point_from_error_center(gt_masks, pred_masks)
+ else:
+ raise ValueError(f"unknown sampling method {method}")
diff --git a/avs.code/v1s.code/model/visual/sam2/organised_sam2_train.py b/avs.code/v1s.code/model/visual/sam2/organised_sam2_train.py
new file mode 100644
index 0000000000000000000000000000000000000000..607c3ad22ba7dcb7eb74c30e1283f68c4808450e
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/organised_sam2_train.py
@@ -0,0 +1,811 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+
+import numpy as np
+import torch
+import torch.distributed
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+from model.visual.sam2.modeling.sam2_utils import (
+ get_1d_sine_pe,
+ get_next_point,
+ sample_box_points,
+ select_closest_cond_frames,
+)
+
+from utils.misc import concat_points
+
+from utils.data_utils import BatchedVideoDatapoint
+
+
+class SAM2Train(SAM2Base):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention=None,
+ memory_encoder=None,
+ prob_to_use_pt_input_for_train=0.0,
+ prob_to_use_pt_input_for_eval=0.0,
+ prob_to_use_box_input_for_train=0.0,
+ prob_to_use_box_input_for_eval=0.0,
+ # if it is greater than 1, we interactive point sampling in the 1st frame and other randomly selected frames
+ num_frames_to_correct_for_train=1, # default: only iteratively sample on first frame
+ num_frames_to_correct_for_eval=1, # default: only iteratively sample on first frame
+ rand_frames_to_correct_for_train=False,
+ rand_frames_to_correct_for_eval=False,
+ # how many frames to use as initial conditioning frames (for both point input and mask input; the first frame is always used as an initial conditioning frame)
+ # - if `rand_init_cond_frames` below is True, we randomly sample 1~num_init_cond_frames initial conditioning frames
+ # - otherwise we sample a fixed number of num_init_cond_frames initial conditioning frames
+ # note: for point input, we sample correction points on all such initial conditioning frames, and we require that `num_frames_to_correct` >= `num_init_cond_frames`;
+ # these are initial conditioning frames because as we track the video, more conditioning frames might be added
+ # when a frame receives correction clicks under point input if `add_all_frames_to_correct_as_cond=True`
+ num_init_cond_frames_for_train=1, # default: only use the first frame as initial conditioning frame
+ num_init_cond_frames_for_eval=1, # default: only use the first frame as initial conditioning frame
+ rand_init_cond_frames_for_train=True, # default: random 1~num_init_cond_frames_for_train cond frames (to be constent w/ previous TA data loader)
+ rand_init_cond_frames_for_eval=False,
+ # if `add_all_frames_to_correct_as_cond` is True, we also append to the conditioning frame list any frame that receives a later correction click
+ # if `add_all_frames_to_correct_as_cond` is False, we conditioning frame list to only use those initial conditioning frames
+ add_all_frames_to_correct_as_cond=False,
+ # how many additional correction points to sample (on each frame selected to be corrected)
+ # note that the first frame receives an initial input click (in addition to any correction clicks)
+ num_correction_pt_per_frame=7,
+ # method for point sampling during evaluation
+ # "uniform" (sample uniformly from error region) or "center" (use the point with the largest distance to error region boundary)
+ # default to "center" to be consistent with evaluation in the SAM paper
+ pt_sampling_for_eval="center",
+ # During training, we optionally allow sampling the correction points from GT regions
+ # instead of the prediction error regions with a small probability. This might allow the
+ # model to overfit less to the error regions in training datasets
+ prob_to_sample_from_gt_for_train=0.0,
+ use_act_ckpt_iterative_pt_sampling=False,
+ # whether to forward image features per frame (as it's being tracked) during evaluation, instead of forwarding image features
+ # of all frames at once. This avoids backbone OOM errors on very long videos in evaluation, but could be slightly slower.
+ forward_backbone_per_frame_for_eval=False,
+ freeze_image_encoder=False,
+ **kwargs,
+ ):
+ super().__init__(image_encoder, memory_attention, memory_encoder, **kwargs)
+ self.use_act_ckpt_iterative_pt_sampling = use_act_ckpt_iterative_pt_sampling
+ self.forward_backbone_per_frame_for_eval = forward_backbone_per_frame_for_eval
+
+ # Point sampler and conditioning frames
+ self.prob_to_use_pt_input_for_train = prob_to_use_pt_input_for_train
+ self.prob_to_use_box_input_for_train = prob_to_use_box_input_for_train
+ self.prob_to_use_pt_input_for_eval = prob_to_use_pt_input_for_eval
+ self.prob_to_use_box_input_for_eval = prob_to_use_box_input_for_eval
+ if prob_to_use_pt_input_for_train > 0 or prob_to_use_pt_input_for_eval > 0:
+ logging.info(
+ f"Training with points (sampled from masks) as inputs with p={prob_to_use_pt_input_for_train}"
+ )
+ assert num_frames_to_correct_for_train >= num_init_cond_frames_for_train
+ assert num_frames_to_correct_for_eval >= num_init_cond_frames_for_eval
+
+ self.num_frames_to_correct_for_train = num_frames_to_correct_for_train
+ self.num_frames_to_correct_for_eval = num_frames_to_correct_for_eval
+ self.rand_frames_to_correct_for_train = rand_frames_to_correct_for_train
+ self.rand_frames_to_correct_for_eval = rand_frames_to_correct_for_eval
+ # Initial multi-conditioning frames
+ self.num_init_cond_frames_for_train = num_init_cond_frames_for_train
+ self.num_init_cond_frames_for_eval = num_init_cond_frames_for_eval
+ self.rand_init_cond_frames_for_train = rand_init_cond_frames_for_train
+ self.rand_init_cond_frames_for_eval = rand_init_cond_frames_for_eval
+ self.add_all_frames_to_correct_as_cond = add_all_frames_to_correct_as_cond
+ self.num_correction_pt_per_frame = num_correction_pt_per_frame
+ self.pt_sampling_for_eval = pt_sampling_for_eval
+ self.prob_to_sample_from_gt_for_train = prob_to_sample_from_gt_for_train
+ # A random number generator with a fixed initial seed across GPUs
+ self.rng = np.random.default_rng(seed=42)
+ if freeze_image_encoder:
+ for p in self.image_encoder.parameters():
+ p.requires_grad = False
+
+
+ def forward(self, input: BatchedVideoDatapoint):
+ if self.training or not self.forward_backbone_per_frame_for_eval:
+ # precompute image features on all frames before tracking
+ backbone_out = self.forward_image(input.flat_img_batch)
+ else:
+ # defer image feature computation on a frame until it's being tracked
+ backbone_out = {"backbone_fpn": None, "vision_pos_enc": None}
+ backbone_out = self.prepare_prompt_inputs(backbone_out, input)
+ previous_stages_out = self.forward_tracking(backbone_out, input)
+
+ return previous_stages_out
+
+ def _prepare_backbone_features_per_frame(self, img_batch, img_ids):
+ """Compute the image backbone features on the fly for the given img_ids."""
+ # Only forward backbone on unique image ids to avoid repetitive computation
+ # (if `img_ids` has only one element, it's already unique so we skip this step).
+ if img_ids.numel() > 1:
+ unique_img_ids, inv_ids = torch.unique(img_ids, return_inverse=True)
+ else:
+ unique_img_ids, inv_ids = img_ids, None
+
+ # Compute the image features on those unique image ids
+ image = img_batch[unique_img_ids]
+ backbone_out = self.forward_image(image)
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+ '''
+ vision_feats
+ torch.Size([65536, 5, 32])
+ torch.Size([16384, 5, 64])
+ torch.Size([4096, 5, 256])
+ '''
+ # Inverse-map image features for `unique_img_ids` to the final image features
+ # for the original input `img_ids`.
+ if inv_ids is not None:
+ image = image[inv_ids]
+ vision_feats = [x[:, inv_ids] for x in vision_feats]
+ vision_pos_embeds = [x[:, inv_ids] for x in vision_pos_embeds]
+
+ return image, vision_feats, vision_pos_embeds, feat_sizes
+
+ @staticmethod
+ def dont_prepare_prompt_inputs(backbone_out, num_frames=5, cond_frame=0):
+ backbone_out["gt_masks_per_frame"] = {}
+ backbone_out["num_frames"] = num_frames
+ backbone_out["use_pt_input"] = False
+ # always start from the first frame.
+ backbone_out["init_cond_frames"] = [cond_frame]
+ backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames) if i != cond_frame]
+ # backbone_out["init_cond_frames"] = []
+ # backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames)]
+
+ backbone_out["mask_inputs_per_frame"] = {}
+ backbone_out["point_inputs_per_frame"] = {}
+ backbone_out["frames_to_add_correction_pt"] = []
+ return backbone_out
+
+ def prepare_prompt_inputs(self, backbone_out, input, start_frame_idx=0):
+ """
+ Prepare input mask, point or box prompts. Optionally, we allow tracking from
+ a custom `start_frame_idx` to the end of the video (for evaluation purposes).
+ """
+ # Load the ground-truth masks on all frames (so that we can later
+ # sample correction points from them)
+ # gt_masks_per_frame = {
+ # stage_id: targets.segments.unsqueeze(1) # [B, 1, H_im, W_im]
+ # for stage_id, targets in enumerate(input.find_targets)
+ # }
+ gt_masks_per_frame = {
+ stage_id: masks.unsqueeze(1) # [B, 1, H_im, W_im]
+ for stage_id, masks in enumerate(input.masks)
+ }
+ # gt_masks_per_frame = input.masks.unsqueeze(2) # [T,B,1,H_im,W_im] keep everything in tensor form
+ backbone_out["gt_masks_per_frame"] = gt_masks_per_frame
+ num_frames = input.num_frames
+ backbone_out["num_frames"] = num_frames
+
+ # Randomly decide whether to use point inputs or mask inputs
+ if self.training:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_train
+ prob_to_use_box_input = self.prob_to_use_box_input_for_train
+ num_frames_to_correct = self.num_frames_to_correct_for_train
+ rand_frames_to_correct = self.rand_frames_to_correct_for_train
+ num_init_cond_frames = self.num_init_cond_frames_for_train
+ rand_init_cond_frames = self.rand_init_cond_frames_for_train
+ else:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_eval
+ prob_to_use_box_input = self.prob_to_use_box_input_for_eval
+ num_frames_to_correct = self.num_frames_to_correct_for_eval
+ rand_frames_to_correct = self.rand_frames_to_correct_for_eval
+ num_init_cond_frames = self.num_init_cond_frames_for_eval
+ rand_init_cond_frames = self.rand_init_cond_frames_for_eval
+ if num_frames == 1:
+ # here we handle a special case for mixing video + SAM on image training,
+ # where we force using point input for the SAM task on static images
+ prob_to_use_pt_input = 1.0
+ num_frames_to_correct = 1
+ num_init_cond_frames = 1
+ assert num_init_cond_frames >= 1
+ # (here `self.rng.random()` returns value in range 0.0 <= X < 1.0)
+ use_pt_input = self.rng.random() < prob_to_use_pt_input
+ if rand_init_cond_frames and num_init_cond_frames > 1:
+ # randomly select 1 to `num_init_cond_frames` frames as initial conditioning frames
+ num_init_cond_frames = self.rng.integers(
+ 1, num_init_cond_frames, endpoint=True
+ )
+ if (
+ use_pt_input
+ and rand_frames_to_correct
+ and num_frames_to_correct > num_init_cond_frames
+ ):
+ # randomly select `num_init_cond_frames` to `num_frames_to_correct` frames to sample
+ # correction clicks (only for the case of point input)
+ num_frames_to_correct = self.rng.integers(
+ num_init_cond_frames, num_frames_to_correct, endpoint=True
+ )
+ backbone_out["use_pt_input"] = use_pt_input
+
+ # Sample initial conditioning frames
+ if num_init_cond_frames == 1:
+ init_cond_frames = [start_frame_idx] # starting frame
+ else:
+ # starting frame + randomly selected remaining frames (without replacement)
+ init_cond_frames = [start_frame_idx] + self.rng.choice(
+ range(start_frame_idx + 1, num_frames),
+ num_init_cond_frames - 1,
+ replace=False,
+ ).tolist()
+ backbone_out["init_cond_frames"] = init_cond_frames
+ backbone_out["frames_not_in_init_cond"] = [
+ t for t in range(start_frame_idx, num_frames) if t not in init_cond_frames
+ ]
+ # Prepare mask or point inputs on initial conditioning frames
+ backbone_out["mask_inputs_per_frame"] = {} # {frame_idx: }
+ backbone_out["point_inputs_per_frame"] = {} # {frame_idx: }
+ for t in init_cond_frames:
+ if not use_pt_input:
+ backbone_out["mask_inputs_per_frame"][t] = gt_masks_per_frame[t]
+ else:
+ # During training # P(box) = prob_to_use_pt_input * prob_to_use_box_input
+ use_box_input = self.rng.random() < prob_to_use_box_input
+ if use_box_input:
+ points, labels = sample_box_points(
+ gt_masks_per_frame[t],
+ )
+ else:
+ # (here we only sample **one initial point** on initial conditioning frames from the
+ # ground-truth mask; we may sample more correction points on the fly)
+ points, labels = get_next_point(
+ gt_masks=gt_masks_per_frame[t],
+ pred_masks=None,
+ method=(
+ "uniform" if self.training else self.pt_sampling_for_eval
+ ),
+ )
+
+ point_inputs = {"point_coords": points, "point_labels": labels}
+ backbone_out["point_inputs_per_frame"][t] = point_inputs
+
+ # Sample frames where we will add correction clicks on the fly
+ # based on the error between prediction and ground-truth masks
+ if not use_pt_input:
+ # no correction points will be sampled when using mask inputs
+ frames_to_add_correction_pt = []
+ elif num_frames_to_correct == num_init_cond_frames:
+ frames_to_add_correction_pt = init_cond_frames
+ else:
+ assert num_frames_to_correct > num_init_cond_frames
+ # initial cond frame + randomly selected remaining frames (without replacement)
+ extra_num = num_frames_to_correct - num_init_cond_frames
+ frames_to_add_correction_pt = (
+ init_cond_frames
+ + self.rng.choice(
+ backbone_out["frames_not_in_init_cond"], extra_num, replace=False
+ ).tolist()
+ )
+ backbone_out["frames_to_add_correction_pt"] = frames_to_add_correction_pt
+
+ return backbone_out
+
+ def forward_tracking_wo_prompt(self, backbone_out, audio_res=None, return_dict=False):
+ # img_feats_already_computed = True.
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+
+ av_v_feats, av_a_feats = audio_res
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ img_ids = stage_id
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids].unsqueeze(1) for x in vision_feats] # add unsqueeze to maintain single sample.
+ current_vision_pos_embeds = [x[:, img_ids].unsqueeze(1) for x in vision_pos_embeds] # add unsqueeze to maintain single sample.
+ current_av_v_feats = [x[img_ids] for x in av_v_feats]
+ current_av_a_feats = [x[img_ids] for x in av_a_feats]
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step_wo_prompt(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=None, # backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=None, # backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=None, # backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=None, # frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ audio_res=(current_av_v_feats, current_av_a_feats),
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+
+ return all_frame_outputs
+
+ def track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ audio_res=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step_wo_prompt(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ '''
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+ '''
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ 666., # point_inputs,
+ run_mem_encoder,
+ # we follow SAM2 predictor, if we have multiple masks output, we only utilise the first one to perform
+ # the memory rope attention.
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res=None
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam: # False
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # current_vision_feats[-1] = current_vision_feats[-1] + self.no_mem_embed
+ # pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ # pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+
+ # we do not apply any prompts except audio.
+ '''
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ # if prev_sam_mask_logits is not None:
+ # assert point_inputs is not None and mask_inputs is None
+ # mask_inputs = prev_sam_mask_logits
+
+ ## comment this line, as we don't use points as prompts.
+ # multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ '''
+
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=True,
+ audio_res=audio_res
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def forward_tracking(
+ self, backbone_out, input: BatchedVideoDatapoint, return_dict=False
+ ):
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ img_feats_already_computed = backbone_out["backbone_fpn"] is not None
+ if img_feats_already_computed:
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ # img_ids = input.find_inputs[stage_id].img_ids
+ img_ids = input.flat_obj_to_img_idx[stage_id]
+ if img_feats_already_computed:
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids] for x in vision_feats]
+ current_vision_pos_embeds = [x[:, img_ids] for x in vision_pos_embeds]
+ else:
+ # Otherwise, compute the image features on the fly for the given img_ids
+ # (this might be used for evaluation on long videos to avoid backbone OOM).
+ (
+ _,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features_per_frame(
+ input.flat_img_batch, img_ids
+ )
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+ return all_frame_outputs
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _iter_correct_pt_sampling(
+ self,
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat_with_mem,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+
+ assert gt_masks is not None
+ all_pred_masks = [low_res_masks]
+ all_pred_high_res_masks = [high_res_masks]
+ all_pred_multimasks = [low_res_multimasks]
+ all_pred_high_res_multimasks = [high_res_multimasks]
+ all_pred_ious = [ious]
+ all_point_inputs = [point_inputs]
+ all_object_score_logits = [object_score_logits]
+ for _ in range(self.num_correction_pt_per_frame):
+ # sample a new point from the error between prediction and ground-truth
+ # (with a small probability, directly sample from GT masks instead of errors)
+ if self.training and self.prob_to_sample_from_gt_for_train > 0:
+ sample_from_gt = (
+ self.rng.random() < self.prob_to_sample_from_gt_for_train
+ )
+ else:
+ sample_from_gt = False
+ # if `pred_for_new_pt` is None, only GT masks will be used for point sampling
+ pred_for_new_pt = None if sample_from_gt else (high_res_masks > 0)
+ new_points, new_labels = get_next_point(
+ gt_masks=gt_masks,
+ pred_masks=pred_for_new_pt,
+ method="uniform" if self.training else self.pt_sampling_for_eval,
+ )
+ point_inputs = concat_points(point_inputs, new_points, new_labels)
+ # Feed the mask logits of the previous SAM outputs in the next SAM decoder step.
+ # For tracking, this means that when the user adds a correction click, we also feed
+ # the tracking output mask logits along with the click as input to the SAM decoder.
+ mask_inputs = low_res_masks
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ if self.use_act_ckpt_iterative_pt_sampling and not multimask_output:
+ sam_outputs = torch.utils.checkpoint.checkpoint(
+ self._forward_sam_heads,
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ use_reentrant=False,
+ )
+ else:
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ _,
+ object_score_logits,
+ ) = sam_outputs
+ all_pred_masks.append(low_res_masks)
+ all_pred_high_res_masks.append(high_res_masks)
+ all_pred_multimasks.append(low_res_multimasks)
+ all_pred_high_res_multimasks.append(high_res_multimasks)
+ all_pred_ious.append(ious)
+ all_point_inputs.append(point_inputs)
+ all_object_score_logits.append(object_score_logits)
+
+ # Concatenate the masks along channel (to compute losses on all of them,
+ # using `MultiStepIteractiveMasks`)
+ current_out["multistep_pred_masks"] = torch.cat(all_pred_masks, dim=1)
+ current_out["multistep_pred_masks_high_res"] = torch.cat(
+ all_pred_high_res_masks, dim=1
+ )
+ current_out["multistep_pred_multimasks"] = all_pred_multimasks
+ current_out["multistep_pred_multimasks_high_res"] = all_pred_high_res_multimasks
+ current_out["multistep_pred_ious"] = all_pred_ious
+ current_out["multistep_point_inputs"] = all_point_inputs
+ current_out["multistep_object_score_logits"] = all_object_score_logits
+
+ return point_inputs, sam_outputs
diff --git a/avs.code/v1s.code/model/visual/sam2/utils/__init__.py b/avs.code/v1s.code/model/visual/sam2/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/utils/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v1s.code/model/visual/sam2/utils/misc.py b/avs.code/v1s.code/model/visual/sam2/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..b65ee825732ff85137805be650edd4cbe8e6f6d4
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/utils/misc.py
@@ -0,0 +1,349 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
diff --git a/avs.code/v1s.code/model/visual/sam2/utils/transforms.py b/avs.code/v1s.code/model/visual/sam2/utils/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d4fa6a3e4d2e2a0dde7f87e4991daff338467c4
--- /dev/null
+++ b/avs.code/v1s.code/model/visual/sam2/utils/transforms.py
@@ -0,0 +1,118 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import warnings
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from torchvision.transforms import Normalize, Resize, ToTensor
+
+
+class SAM2Transforms(nn.Module):
+ def __init__(
+ self, resolution, mask_threshold, max_hole_area=0.0, max_sprinkle_area=0.0
+ ):
+ """
+ Transforms for SAM2.
+ """
+ super().__init__()
+ self.resolution = resolution
+ self.mask_threshold = mask_threshold
+ self.max_hole_area = max_hole_area
+ self.max_sprinkle_area = max_sprinkle_area
+ self.mean = [0.485, 0.456, 0.406]
+ self.std = [0.229, 0.224, 0.225]
+ self.to_tensor = ToTensor()
+ self.transforms = torch.jit.script(
+ nn.Sequential(
+ Resize((self.resolution, self.resolution)),
+ Normalize(self.mean, self.std),
+ )
+ )
+
+ def __call__(self, x):
+ x = self.to_tensor(x)
+ return self.transforms(x)
+
+ def forward_batch(self, img_list):
+ img_batch = [self.transforms(self.to_tensor(img)) for img in img_list]
+ img_batch = torch.stack(img_batch, dim=0)
+ return img_batch
+
+ def transform_coords(
+ self, coords: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the SAM2 model.
+ """
+ if normalize:
+ assert orig_hw is not None
+ h, w = orig_hw
+ coords = coords.clone()
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+
+ coords = coords * self.resolution # unnormalize coords
+ return coords
+
+ def transform_boxes(
+ self, boxes: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a tensor of shape Bx4. The coordinates can be in absolute image or normalized coordinates,
+ if the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+ """
+ boxes = self.transform_coords(boxes.reshape(-1, 2, 2), normalize, orig_hw)
+ return boxes
+
+ def postprocess_masks(self, masks: torch.Tensor, orig_hw) -> torch.Tensor:
+ """
+ Perform PostProcessing on output masks.
+ """
+ from model.visual.sam2.utils.misc import get_connected_components
+
+ masks = masks.float()
+ input_masks = masks
+ mask_flat = masks.flatten(0, 1).unsqueeze(1) # flatten as 1-channel image
+ try:
+ if self.max_hole_area > 0:
+ # Holes are those connected components in background with area <= self.fill_hole_area
+ # (background regions are those with mask scores <= self.mask_threshold)
+ labels, areas = get_connected_components(
+ mask_flat <= self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_hole_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with a small positive mask score (10.0) to change them to foreground.
+ masks = torch.where(is_hole, self.mask_threshold + 10.0, masks)
+
+ if self.max_sprinkle_area > 0:
+ labels, areas = get_connected_components(
+ mask_flat > self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_sprinkle_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with negative mask score (-10.0) to change them to background.
+ masks = torch.where(is_hole, self.mask_threshold - 10.0, masks)
+ except Exception as e:
+ # Skip the post-processing step if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ masks = input_masks
+
+ masks = F.interpolate(masks, orig_hw, mode="bilinear", align_corners=False)
+ return masks
diff --git a/avs.code/v1s.code/tools/remap_aural_ckpt_keys.py b/avs.code/v1s.code/tools/remap_aural_ckpt_keys.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbb8d6086a854b1b0ab011542eafd99f4bf8a3bf
--- /dev/null
+++ b/avs.code/v1s.code/tools/remap_aural_ckpt_keys.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+"""
+Remap legacy checkpoint keys: rename audio_prompter.* to the current AuralFuser layout (aural_fuser.*),
+and drop duplicate weights under training_layers / finetuning_layers.
+
+Usage:
+ python tools/remap_aural_ckpt_keys.py /path/to/model.pth [--in-place] [--no-backup]
+
+By default writes _remapped.pth; --in-place overwrites the input (after a .bak backup unless --no-backup).
+"""
+from __future__ import annotations
+
+import argparse
+import shutil
+from pathlib import Path
+
+import torch
+
+# Matches AuralFuser ModuleList names (old train_* indices start at 1; new indices are 0-based).
+_REPLACEMENTS: list[tuple[str, str]] = [
+ ("train_f_patch_embed1", "patch_embeds.0"),
+ ("train_f_patch_embed2", "patch_embeds.1"),
+ ("train_f_patch_embed3", "patch_embeds.2"),
+ ("train_f_a_block1", "fusion_modules.0"),
+ ("train_f_a_block2", "fusion_modules.1"),
+ ("train_f_a_block3", "fusion_modules.2"),
+ ("train_f_block1", "f_blocks.0"),
+ ("train_f_block2", "f_blocks.1"),
+ ("train_f_block3", "f_blocks.2"),
+ ("train_a_block1", "a_blocks.0"),
+ ("train_a_block2", "a_blocks.1"),
+ ("train_a_block3", "a_blocks.2"),
+ ("train_smooth1", "smooth_convs.0"),
+ ("train_smooth2", "smooth_convs.1"),
+]
+
+
+def remap_state_dict(sd: dict) -> dict:
+ out: dict = {}
+ dropped = 0
+ for k, v in sd.items():
+ if k.startswith("audio_prompter."):
+ if ".training_layers." in k or ".finetuning_layers." in k:
+ dropped += 1
+ continue
+ nk = k.replace("audio_prompter.", "aural_fuser.", 1)
+ for old, new in _REPLACEMENTS:
+ nk = nk.replace(old, new)
+ out[nk] = v
+ else:
+ out[k] = v
+ if dropped:
+ print(f"Dropped duplicate keys: {dropped} (training_layers / finetuning_layers)")
+ return out
+
+
+def main() -> None:
+ ap = argparse.ArgumentParser()
+ ap.add_argument("ckpt", type=Path, help="Input .pth (full-model state_dict)")
+ ap.add_argument(
+ "-o", "--output", type=Path, default=None,
+ help="Output path; default _remapped.pth",
+ )
+ ap.add_argument("--in-place", action="store_true", help="Overwrite input file")
+ ap.add_argument("--no-backup", action="store_true", help="Skip .bak when using --in-place")
+ args = ap.parse_args()
+
+ ckpt_path: Path = args.ckpt.resolve()
+ if not ckpt_path.is_file():
+ raise SystemExit(f"File not found: {ckpt_path}")
+
+ print(f"Loading: {ckpt_path}")
+ sd = torch.load(ckpt_path, map_location="cpu")
+ if not isinstance(sd, dict):
+ raise SystemExit("Expected top-level checkpoint to be a state_dict dict")
+
+ n_old_ap = sum(1 for k in sd if k.startswith("audio_prompter."))
+ if n_old_ap == 0:
+ print("Warning: no audio_prompter.* keys found; checkpoint may already be remapped.")
+
+ new_sd = remap_state_dict(sd)
+ n_af = sum(1 for k in new_sd if k.startswith("aural_fuser."))
+ print(f"aural_fuser key count: {n_af}")
+
+ if args.in_place:
+ out = ckpt_path
+ if not args.no_backup:
+ bak = ckpt_path.with_suffix(ckpt_path.suffix + ".bak")
+ print(f"Backup -> {bak}")
+ shutil.copy2(ckpt_path, bak)
+ else:
+ out = args.output or ckpt_path.with_name(ckpt_path.stem + "_remapped.pth")
+
+ torch.save(new_sd, out)
+ print(f"Saved: {out} ({len(new_sd)} tensor keys)")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/avs.code/v1s.code/trainer/train.py b/avs.code/v1s.code/trainer/train.py
new file mode 100644
index 0000000000000000000000000000000000000000..6622eb2e1dd1a57e725121cd259b8c138329df05
--- /dev/null
+++ b/avs.code/v1s.code/trainer/train.py
@@ -0,0 +1,179 @@
+"""Training and validation loop for the AV segmentation model."""
+import numpy
+import torch
+from torch.utils.data import DataLoader
+from tqdm import tqdm
+
+
+class Trainer:
+ """Wraps train/valid steps with optional loss, metrics, and logging."""
+
+ def __init__(self, hyp_param, loss, tensorboard, metrics):
+ self.param = hyp_param
+ self.loss = loss
+ self.tensorboard = tensorboard
+ self.metrics = metrics
+ from loss.training.contrastive_learning import ContrastLoss
+ self.cl = ContrastLoss(self.param)
+
+ @torch.no_grad()
+ def valid(self, epoch, dataloader, model, process=''):
+ """Evaluate foreground IoU / F-score. `process` selects SAM multimask decoding (see branch below)."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError(
+ "valid() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first)."
+ )
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+ iou_pool = [None] * self.param.gpus
+ fscore_pool = [None] * self.param.gpus
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ items = next(data_iter)
+ frame, spect, label, prompt_dicts = items['frame'], items['spectrogram'], items['label'], items['prompts']
+
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, _ = model.module(frame, spect, prompt_dicts, sam_process=True)
+ logits = torch.cat([torch.cat(i['multistep_pred_multimasks_high_res']) for i in outputs])
+ ious_scores = torch.cat([torch.cat(i['multistep_pred_ious']) for i in outputs])
+ occ_scores = torch.cat([torch.cat(i['multistep_object_score_logits']) for i in outputs])
+ # process: '' = first multimask; iou_select = argmax IoU head; iou_occ_select = + objectness gate
+ if process == 'iou_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits = logits[torch.arange(0, frame.shape[0]), ious_scores, ...]
+ elif process == 'iou_occ_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits = logits[torch.arange(0, frame.shape[0]), ious_scores, ...]
+ logits[occ_scores.squeeze() < 0, ...] = 0.
+ else:
+ logits = logits[:, 0, ...]
+
+ masks = logits > 0.
+ foreground_iou_rank = self.metrics['foreground_iou'].calculate_iou(masks.squeeze().long(),
+ label.squeeze().long(),
+ get_entire_list=True)
+
+ foreground_f_score_rank = self.metrics['foreground_f-score'].calculate_f_score(logits.squeeze(),
+ label.squeeze(),
+ get_entire_list=True)
+ torch.distributed.all_gather_object(iou_pool, foreground_iou_rank)
+ torch.distributed.all_gather_object(fscore_pool, foreground_f_score_rank)
+ foreground_iou = sum([i['foreground_iou'][0].cpu() for i in iou_pool]) / sum(
+ [i['foreground_iou'][1] for i in iou_pool])
+ foreground_f_score = sum([i['foreground_f-score'][0] for i in fscore_pool]) / sum(
+ [i['foreground_f-score'][1] for i in fscore_pool])
+
+ if self.param.local_rank <= 0:
+ tbar.set_description('epoch {} | valid.f_iou {}, valid.f_f-score {}'.format(epoch,
+ numpy.round(
+ foreground_iou.cpu().numpy(),
+ 5),
+ numpy.round(
+ foreground_f_score,
+ 5)))
+ torch.cuda.empty_cache()
+
+ final_iou = foreground_iou
+ final_fscore = foreground_f_score
+ if self.param.local_rank <= 0 and self.tensorboard is not None:
+ self.tensorboard.upload_wandb_info({"valid.f_iou/{}".format(process): final_iou,
+ "valid.f_f-score/{}".format(process): final_fscore})
+
+ def _to_float(x):
+ if isinstance(x, torch.Tensor):
+ return float(x.detach().cpu().item())
+ return float(x)
+
+ return numpy.round(_to_float(final_iou), 5), numpy.round(_to_float(final_fscore), 5)
+
+ def train(self, epoch, dataloader, model, optimiser):
+ """One epoch: SAM frozen, AuralFuser + heads trained with composite loss + contrastive term."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError(
+ "train() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first)."
+ )
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ current_index = dataloader_length * epoch + batch_index
+ items = next(data_iter)
+
+ frame, spect, label, prompt_dicts = items['frame'], items['spectrogram'], items['label'], items['prompts']
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, proj_feats = model(frame, spect, prompt_dicts, sam_process=False)
+
+ # Use label_index to pick one supervised frame (legacy v1s behavior).
+ label_index = prompt_dicts.get('label_index', None)
+ if label_index is not None:
+ if not isinstance(label_index, torch.Tensor):
+ label_index = torch.as_tensor(label_index)
+ label_index = label_index.flatten().to(device=label.device, dtype=torch.bool)
+ if label_index.any():
+ frame_idx = int(torch.where(label_index)[0][0].item())
+ else:
+ frame_idx = 0
+ else:
+ frame_idx = 0
+
+ outputs_sel = outputs[frame_idx:frame_idx + 1]
+ label_sel = label[frame_idx:frame_idx + 1]
+ vision_feats, audio_feats = proj_feats
+ # Keep the same nested-list structure as legacy v1s code.
+ proj_feats_sel = (
+ [[vision_feats[i][frame_idx]] for i in range(3)],
+ [[audio_feats[i][frame_idx]] for i in range(3)],
+ )
+
+ loss_dict = self.loss(outputs_sel, label_sel.unsqueeze(1))
+ cl_loss = self.cl(proj_feats_sel, outputs_sel, label_sel)
+
+ optimiser.zero_grad()
+ (loss_dict['core_loss'] + cl_loss).backward()
+ optimiser.step()
+
+ current_lr = self.param.lr * (1 - current_index / (dataloader_length * self.param.epochs)) ** 0.9
+ for params_lr in optimiser.param_groups:
+ names = params_lr.get("name", [])
+ if names and any("vgg" in n for n in names):
+ params_lr['lr'] = current_lr * 0.1
+ else:
+ params_lr['lr'] = current_lr
+
+ if self.param.local_rank <= 0:
+ logits = torch.cat([i['multistep_pred_multimasks_high_res'][0] for i in outputs_sel])
+ foreground_iou = self.metrics['foreground_iou'].calculate_iou((logits > 0)[:, 0, ...].long(),
+ label_sel.long())
+
+ self.tensorboard.upload_wandb_info({"loss": loss_dict['core_loss'].item(), "f_iou": foreground_iou.item(),
+ "lr": optimiser.param_groups[0]['lr'],
+ "loss_dice": loss_dict['loss_dice'],
+ "loss_focal": loss_dict['loss_mask'],
+ "loss_contras": cl_loss.item()})
+ tbar.set_description('epoch {} | loss {}, f_iou {}'.format(epoch, loss_dict['core_loss'].item(),
+ foreground_iou.item()))
+ '''
+ if batch_index % 200 == 0:
+ pred_mask = (logits > 0)[:, 0, ...].long()
+ n_vis = min(4, frame.shape[0], pred_mask.shape[0], label.shape[0])
+ self.tensorboard.upload_wandb_image(
+ frame[:n_vis], pred_mask[:n_vis], label[:n_vis].long()
+ )
+ '''
+ return
diff --git a/avs.code/v1s.code/utils/data_utils.py b/avs.code/v1s.code/utils/data_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e7a98f8ec73e6e5dafd1e395b48a98575e5afb1
--- /dev/null
+++ b/avs.code/v1s.code/utils/data_utils.py
@@ -0,0 +1,176 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Misc functions, including distributed helpers.
+
+Mostly copy-paste from torchvision references.
+"""
+
+from dataclasses import dataclass
+from typing import List, Optional, Tuple, Union
+
+import torch
+
+from PIL import Image as PILImage
+
+
+class BatchedVideoMetaData:
+ """
+ This class represents metadata about a batch of videos.
+ Attributes:
+ unique_objects_identifier: A tensor of shape Bx3 containing unique identifiers for each object in the batch. Index consists of (video_id, obj_id, frame_id)
+ frame_orig_size: A tensor of shape Bx2 containing the original size of each frame in the batch.
+ """
+
+ unique_objects_identifier: torch.LongTensor
+ frame_orig_size: torch.LongTensor
+
+
+class BatchedVideoDatapoint:
+ """
+ This class represents a batch of videos with associated annotations and metadata.
+ Attributes:
+ img_batch: A [TxBxCxHxW] tensor containing the image data for each frame in the batch, where T is the number of frames per video, and B is the number of videos in the batch.
+ obj_to_frame_idx: A [TxOx2] tensor containing the image_batch index which the object belongs to. O is the number of objects in the batch.
+ masks: A [TxOxHxW] tensor containing binary masks for each object in the batch.
+ metadata: An instance of BatchedVideoMetaData containing metadata about the batch.
+ dict_key: A string key used to identify the batch.
+ """
+
+ img_batch: torch.FloatTensor
+ obj_to_frame_idx: torch.IntTensor
+ masks: torch.BoolTensor
+ metadata: BatchedVideoMetaData
+
+ dict_key: str
+
+ def pin_memory(self, device=None):
+ return self.apply(torch.Tensor.pin_memory, device=device)
+
+ @property
+ def num_frames(self) -> int:
+ """
+ Returns the number of frames per video.
+ """
+ return self.batch_size[0]
+
+ @property
+ def num_videos(self) -> int:
+ """
+ Returns the number of videos in the batch.
+ """
+ return self.img_batch.shape[1]
+
+ @property
+ def flat_obj_to_img_idx(self) -> torch.IntTensor:
+ """
+ Returns a flattened tensor containing the object to img index.
+ The flat index can be used to access a flattened img_batch of shape [(T*B)xCxHxW]
+ """
+ frame_idx, video_idx = self.obj_to_frame_idx.unbind(dim=-1)
+ flat_idx = video_idx * self.num_frames + frame_idx
+ return flat_idx
+
+ @property
+ def flat_img_batch(self) -> torch.FloatTensor:
+ """
+ Returns a flattened img_batch_tensor of shape [(B*T)xCxHxW]
+ """
+
+ return self.img_batch.transpose(0, 1).flatten(0, 1)
+
+
+@dataclass
+class Object:
+ # Id of the object in the media
+ object_id: int
+ # Index of the frame in the media (0 if single image)
+ frame_index: int
+ segment: Union[torch.Tensor, dict] # RLE dict or binary mask
+
+
+@dataclass
+class Frame:
+ data: Union[torch.Tensor, PILImage.Image]
+ objects: List[Object]
+
+
+@dataclass
+class VideoDatapoint:
+ """Refers to an image/video and all its annotations"""
+
+ frames: List[Frame]
+ video_id: int
+ size: Tuple[int, int]
+
+
+def collate_fn(
+ batch: List[VideoDatapoint],
+ dict_key,
+) -> BatchedVideoDatapoint:
+ """
+ Args:
+ batch: A list of VideoDatapoint instances.
+ dict_key (str): A string key used to identify the batch.
+ """
+ img_batch = []
+ for video in batch:
+ img_batch += [torch.stack([frame.data for frame in video.frames], dim=0)]
+
+ img_batch = torch.stack(img_batch, dim=0).permute((1, 0, 2, 3, 4))
+ T = img_batch.shape[0]
+ # Prepare data structures for sequential processing. Per-frame processing but batched across videos.
+ step_t_objects_identifier = [[] for _ in range(T)]
+ step_t_frame_orig_size = [[] for _ in range(T)]
+
+ step_t_masks = [[] for _ in range(T)]
+ step_t_obj_to_frame_idx = [
+ [] for _ in range(T)
+ ] # List to store frame indices for each time step
+
+ for video_idx, video in enumerate(batch):
+ orig_video_id = video.video_id
+ orig_frame_size = video.size
+ for t, frame in enumerate(video.frames):
+ objects = frame.objects
+ for obj in objects:
+ orig_obj_id = obj.object_id
+ orig_frame_idx = obj.frame_index
+ step_t_obj_to_frame_idx[t].append(
+ torch.tensor([t, video_idx], dtype=torch.int)
+ )
+ step_t_masks[t].append(obj.segment.to(torch.bool))
+ step_t_objects_identifier[t].append(
+ torch.tensor([orig_video_id, orig_obj_id, orig_frame_idx])
+ )
+ step_t_frame_orig_size[t].append(torch.tensor(orig_frame_size))
+
+ obj_to_frame_idx = torch.stack(
+ [
+ torch.stack(obj_to_frame_idx, dim=0)
+ for obj_to_frame_idx in step_t_obj_to_frame_idx
+ ],
+ dim=0,
+ )
+ masks = torch.stack([torch.stack(masks, dim=0) for masks in step_t_masks], dim=0)
+ objects_identifier = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_objects_identifier], dim=0
+ )
+ frame_orig_size = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_frame_orig_size], dim=0
+ )
+ return BatchedVideoDatapoint(
+ img_batch=img_batch,
+ obj_to_frame_idx=obj_to_frame_idx,
+ masks=masks,
+ metadata=BatchedVideoMetaData(
+ unique_objects_identifier=objects_identifier,
+ frame_orig_size=frame_orig_size,
+ ),
+ dict_key=dict_key,
+ batch_size=[T],
+ )
diff --git a/avs.code/v1s.code/utils/foreground_fscore.py b/avs.code/v1s.code/utils/foreground_fscore.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea20b84d2304ca0bd9981fd1a3c254111e3d0ac4
--- /dev/null
+++ b/avs.code/v1s.code/utils/foreground_fscore.py
@@ -0,0 +1,90 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundFScore(AverageMeter):
+ def __init__(self, rank):
+ self.local_rank = rank
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+ def _eval_pr(self, y_pred, y, num, cuda_flag=True):
+ if cuda_flag:
+ prec, recall = torch.zeros(num).cuda(self.local_rank), torch.zeros(num).cuda(self.local_rank)
+ thlist = torch.linspace(0, 1 - 1e-10, num).cuda(self.local_rank)
+ else:
+ prec, recall = torch.zeros(num), torch.zeros(num)
+ thlist = torch.linspace(0, 1 - 1e-10, num)
+ for i in range(num):
+ y_temp = (y_pred >= thlist[i]).float()
+ tp = (y_temp * y).sum()
+ prec[i], recall[i] = tp / (y_temp.sum() + 1e-20), tp / (y.sum() + 1e-20)
+ return prec, recall
+
+ def calculate_f_score(self, pred, gt, pr_num=255, get_entire_list=False):
+
+ r"""
+ param:
+ pred: size [N x H x W]
+ gt: size [N x H x W]
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ # print('=> eval [FMeasure]..')
+ pred = torch.sigmoid(pred) # =======================================[important]
+ N = pred.size(0)
+ beta2 = 0.3
+ avg_f, img_num = 0.0, 0
+ score = torch.zeros(pr_num)
+ # fLog = open(os.path.join(measure_path, 'FMeasure.txt'), 'w')
+ # print("{} videos in this batch".format(N))
+
+ for img_id in range(N):
+ # examples with totally black GTs are out of consideration
+ if torch.mean(gt[img_id].float()) == 0.0:
+ continue
+ prec, recall = self._eval_pr(pred[img_id], gt[img_id], pr_num)
+ f_score = (1 + beta2) * prec * recall / (beta2 * prec + recall)
+ f_score[f_score != f_score] = 0 # for Nan
+ avg_f += f_score
+ img_num += 1
+ score = avg_f / img_num
+ # print('score: ', score)
+ # fLog.close()
+ self.add({'foreground_f-score': score.max().item()})
+ return self.get('foreground_f-score') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+
diff --git a/avs.code/v1s.code/utils/foreground_iou.py b/avs.code/v1s.code/utils/foreground_iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..e01eeb081eee8ebfa1fcb6618d05b9d57c02f817
--- /dev/null
+++ b/avs.code/v1s.code/utils/foreground_iou.py
@@ -0,0 +1,69 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundIoU(AverageMeter):
+ def __init__(self):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
+ def calculate_iou(self, pred, target, eps=1e-7, get_entire_list=False):
+ r"""
+ param (both hard mask):
+ pred: size [N x H x W], type: int
+ target: size [N x H x W], type: int
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ assert len(pred.shape) == 3 and pred.shape == target.shape, 'shape mismatch.'
+ assert pred.dtype is torch.long and target.dtype is torch.long, 'type mismatch.'
+
+ N = pred.size(0)
+ num_pixels = pred.size(-1) * pred.size(-2)
+ no_obj_flag = (target.sum(2).sum(1) == 0)
+
+ inter = (pred * target).sum(2).sum(1)
+ union = torch.max(pred, target).sum(2).sum(1)
+
+ inter_no_obj = ((1 - target) * (1 - pred)).sum(2).sum(1)
+ inter[no_obj_flag] = inter_no_obj[no_obj_flag]
+ union[no_obj_flag] = num_pixels
+
+ iou = torch.sum(inter / (union+eps)) / N
+
+ self.add({'foreground_iou': iou})
+ return self.get('foreground_iou') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
diff --git a/avs.code/v1s.code/utils/iou.py b/avs.code/v1s.code/utils/iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..211488b780887a8efd84361bafc6b09bfad4c345
--- /dev/null
+++ b/avs.code/v1s.code/utils/iou.py
@@ -0,0 +1,76 @@
+import torch
+import numpy
+
+
+class BinaryMIoU(object):
+ def __init__(self, ignore_index):
+ self.num_classes = 2
+ self.ignore_index = ignore_index
+ self.inter, self.union = 0, 0
+ self.correct, self.label = 0, 0
+ self.iou = numpy.array([0 for _ in range(self.num_classes)])
+ self.acc = 0.0
+
+ def get_metric_results(self, curr_correct_, curr_label_, curr_inter_, curr_union_):
+ # calculates the overall miou and acc
+ self.correct = self.correct + curr_correct_
+ self.label = self.label + curr_label_
+ self.inter = self.inter + curr_inter_
+ self.union = self.union + curr_union_
+ self.acc = 1.0 * self.correct / (numpy.spacing(1) + self.label)
+ self.iou = 1.0 * self.inter / (numpy.spacing(1) + self.union)
+ return numpy.round(self.iou, 4), numpy.round(self.acc, 4)
+ # if class_list is None:
+ # return numpy.round(self.iou.mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+ # else:
+ # return numpy.round(self.iou[class_list].mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+
+ @staticmethod
+ def get_current_image_results(curr_correct_, curr_label_, curr_inter_, curr_union_):
+ curr_acc = 1.0 * curr_correct_ / (numpy.spacing(1) + curr_label_)
+ curr_iou = 1.0 * curr_inter_ / (numpy.spacing(1) + curr_union_)
+ return curr_iou, curr_acc
+
+ def __call__(self, x, y):
+ curr_correct, curr_label, curr_inter, curr_union = self.calculate_current_sample(x, y)
+ return (self.get_metric_results(curr_correct, curr_label, curr_inter, curr_union),
+ self.get_current_image_results(curr_correct, curr_label, curr_inter, curr_union))
+
+ def calculate_current_sample(self, output, target):
+ # output => BxCxHxW (logits)
+ # target => Bx1xHxW
+ target[target == self.ignore_index] = -1
+ correct, labeled = self.batch_pix_accuracy(output.data, target)
+ inter, union = self.batch_intersection_union(output.data, target, self.num_classes)
+ return [numpy.round(correct, 5), numpy.round(labeled, 5), numpy.round(inter, 5), numpy.round(union, 5)]
+
+ @ staticmethod
+ def batch_pix_accuracy(predict, target):
+ # _, predict = torch.max(output, 1)
+
+ predict = predict.int() + 1
+ target = target.int() + 1
+
+ pixel_labeled = (target > 0).sum()
+ pixel_correct = ((predict == target) * (target > 0)).sum()
+ assert pixel_correct <= pixel_labeled, "Correct area should be smaller than Labeled"
+ return pixel_correct.cpu().numpy(), pixel_labeled.cpu().numpy()
+
+ @ staticmethod
+ def batch_intersection_union(predict, target, num_class):
+ # _, predict = torch.max(output, 1)
+ predict = predict + 1
+ target = target + 1
+
+ predict = predict * (target > 0).long()
+ intersection = predict * (predict == target).long()
+
+ area_inter = torch.histc(intersection.float(), bins=num_class, max=num_class, min=1)
+ area_pred = torch.histc(predict.float(), bins=num_class, max=num_class, min=1)
+ area_lab = torch.histc(target.float(), bins=num_class, max=num_class, min=1)
+ area_union = area_pred + area_lab - area_inter
+ assert (area_inter <= area_union).all(), "Intersection area should be smaller than Union area"
+ return area_inter.cpu().numpy(), area_union.cpu().numpy()
+
diff --git a/avs.code/v1s.code/utils/misc.py b/avs.code/v1s.code/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..5eb9d66c31a4b9209b81a5b615386d29f246135c
--- /dev/null
+++ b/avs.code/v1s.code/utils/misc.py
@@ -0,0 +1,350 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
+
diff --git a/avs.code/v1s.code/utils/tensorboard.py b/avs.code/v1s.code/utils/tensorboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..3519131463bb3f279eb97b2b44974a402482af42
--- /dev/null
+++ b/avs.code/v1s.code/utils/tensorboard.py
@@ -0,0 +1,135 @@
+import os
+
+import PIL
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision
+import wandb
+
+# from utils.visualize import show_img
+
+
+color_map = {"background": (0, 0, 0), "longitudinal": (128, 0, 0), "pothole": (0, 128, 0),
+ "alligator": (128, 128, 0), "transverse": (128, 0, 128), "ignore": (255, 255, 255)}
+
+
+class Tensorboard:
+ def __init__(self, config):
+ if config.get('wandb_online', False):
+ key = config.get('wandb_key') or os.environ.get('WANDB_API_KEY', '')
+ if key:
+ os.environ['WANDB_API_KEY'] = key
+ wandb.login(key=key, relogin=False)
+ self.tensor_board = wandb.init(project=config['proj_name'], name=config['experiment_name'],
+ config=config, settings=wandb.Settings(code_dir=""))
+ else:
+ os.environ.setdefault("WANDB_MODE", "disabled")
+ self.tensor_board = wandb.init(project=config['proj_name'], name=config['experiment_name'],
+ config=config, mode="disabled",
+ settings=wandb.Settings(code_dir=""))
+
+ self._log_images = bool(config.get('wandb_online', False))
+
+ self.restore_transform = torchvision.transforms.Compose([
+ DeNormalize(config['image_mean'], config['image_std']),
+ torchvision.transforms.ToPILImage()])
+
+ def upload_wandb_info(self, info_dict):
+ for i, info in enumerate(info_dict):
+ self.tensor_board.log({info: info_dict[info]})
+ return
+
+
+ def upload_wandb_image(self, frames, pseudo_label_from_pred, pseudo_label_from_sam, img_number=4):
+ if not self._log_images:
+ return
+
+ def _batched_rgb(t):
+ """[N,C,H,W] or [C,H,W] float tensor on CPU."""
+ if not isinstance(t, torch.Tensor):
+ t = torch.as_tensor(t)
+ t = t.detach().cpu().float()
+ if t.dim() == 3:
+ return t.unsqueeze(0)
+ if t.dim() == 4:
+ return t
+ raise ValueError("frames must be [C,H,W] or [N,C,H,W], got shape {}".format(tuple(t.shape)))
+
+ def _batched_mask(t):
+ """[N,H,W] or [N,1,H,W] or [H,W]."""
+ if not isinstance(t, torch.Tensor):
+ t = torch.as_tensor(t)
+ t = t.detach().cpu().float()
+ while t.dim() > 3:
+ t = t.squeeze(1)
+ if t.dim() == 2:
+ t = t.unsqueeze(0)
+ if t.dim() != 3:
+ raise ValueError("masks must be [H,W], [N,H,W] or [N,1,H,W], got shape {}".format(tuple(t.shape)))
+ return t
+
+ frames = _batched_rgb(frames)
+ pseudo_label_from_pred = _batched_mask(pseudo_label_from_pred)
+ pseudo_label_from_sam = _batched_mask(pseudo_label_from_sam)
+
+ n = min(frames.shape[0], pseudo_label_from_pred.shape[0], pseudo_label_from_sam.shape[0], img_number)
+ frames = frames[:n]
+ pseudo_label_from_pred = pseudo_label_from_pred[:n]
+ pseudo_label_from_sam = pseudo_label_from_sam[:n]
+
+ pseudo_label_from_sam = pseudo_label_from_sam.clone()
+ pseudo_label_from_pred = pseudo_label_from_pred.clone()
+ pseudo_label_from_sam[pseudo_label_from_sam == 255.] = 0.5
+ pseudo_label_from_pred[pseudo_label_from_pred == 255.] = 0.5
+
+ denorm = self.restore_transform.transforms[0]
+ image_list = []
+ label_list = []
+ logits_list = []
+ for i in range(n):
+ fi = frames[i].clone()
+ if fi.shape[0] == 3:
+ denorm(fi)
+ fi.clamp_(0.0, 1.0)
+ image_list.append(wandb.Image(fi, caption="id {}".format(str(i))))
+ # wandb.Image expects torch tensors as [C, H, W] (it permutes CHW→HWC)
+ ms = pseudo_label_from_sam[i].squeeze()
+ mp = pseudo_label_from_pred[i].squeeze()
+ if ms.dim() == 2:
+ ms = ms.unsqueeze(0)
+ if mp.dim() == 2:
+ mp = mp.unsqueeze(0)
+ label_list.append(wandb.Image(ms, caption="id {}".format(str(i))))
+ logits_list.append(wandb.Image(mp, caption="id {}".format(str(i))))
+
+ self.tensor_board.log({"image": image_list, "label": label_list, "logits": logits_list})
+
+ def de_normalize(self, image):
+ return [self.restore_transform(i.detach().cpu()) if (isinstance(i, torch.Tensor) and len(i.shape) == 3)
+ else colorize_mask(i.detach().cpu().numpy(), self.palette)
+ for i in image]
+
+ def finish(self):
+ self.tensor_board.finish()
+
+
+class DeNormalize(object):
+ def __init__(self, mean, std):
+ self.mean = mean
+ self.std = std
+
+ def __call__(self, tensor):
+ for t, m, s in zip(tensor, self.mean, self.std):
+ t.mul_(s).add_(m)
+ return tensor
+
+
+def colorize_mask(mask, palette):
+ zero_pad = 256 * 3 - len(palette)
+ for i in range(zero_pad):
+ palette.append(0)
+ # palette[-6:-3] = [183, 65, 14]
+ new_mask = PIL.Image.fromarray(mask.astype(numpy.uint8)).convert('P')
+ new_mask.putpalette(palette)
+ return new_mask
diff --git a/avs.code/v1s.code/utils/utils.py b/avs.code/v1s.code/utils/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..e72f27a7e2be77cea271001230195ef79f685351
--- /dev/null
+++ b/avs.code/v1s.code/utils/utils.py
@@ -0,0 +1,119 @@
+"""Optimizer helpers: split learning rates for AuralFuser train_* vs VGG backbone."""
+import torch
+import copy
+from typing import List, Dict, Set, Any
+
+
+def manipulate_params(cfg, model):
+ weight_decay_norm = 0
+ weight_decay_embed = 0
+ defaults = {}
+ defaults["lr"] = cfg.lr
+ defaults["weight_decay"] = cfg.weight_decay
+
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ params_training: List[Dict[str, Any]] = []
+ params_finetuning: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+
+ train_prefixes = (
+ "patch_embeds",
+ "f_blocks",
+ "a_blocks",
+ "fusion_modules",
+ "smooth_convs",
+ "train_proj_v1",
+ "train_proj_a1",
+ )
+
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ # Avoid duplicating parameters
+ if value in memo:
+ continue
+ memo.add(value)
+ hyperparams = copy.copy(defaults)
+ if 'vgg' in module_name or 'vgg' in module_param_name:
+ hyperparams['lr'] *= 0.1
+ params_finetuning.append({"params": [value], "name": [module_name], **hyperparams})
+ elif (
+ 'train' in module_name
+ or 'train' in module_param_name
+ or module_name.startswith(train_prefixes)
+ ):
+ if (
+ "relative_position_bias_table" in module_param_name
+ or "pos_embed" in module_param_name
+ ):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, norm_module_types):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, torch.nn.Embedding):
+ hyperparams["weight_decay"] = 0.0
+ params_training.append({"params": [value], "name": [module_name], **hyperparams})
+ else:
+ print('undefined layer type.')
+ raise NotImplementedError
+ final_list = params_training + params_finetuning
+ assert len([p for p in model.parameters() if p.requires_grad]) == len(final_list), 'checksum confirmed not pass.'
+ return final_list
+
+
+def group_weight(weight_group, module, weight_decay_value, lr):
+ group_decay = []
+ group_no_decay = []
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ for m in module.modules():
+ if isinstance(m, torch.nn.Linear):
+ group_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d, torch.nn.Conv3d, torch.nn.ConvTranspose2d,
+ torch.nn.ConvTranspose3d)):
+ group_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, norm_module_types):
+ if m.weight is not None:
+ group_no_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, torch.nn.Parameter):
+ group_no_decay.append(m)
+ elif isinstance(m, torch.nn.Embedding):
+ group_no_decay.append(m)
+ else:
+ print('undefined layer type find.')
+ raise NotImplementedError
+
+ assert len(list(module.parameters())) == len(group_decay) + len(
+ group_no_decay)
+ weight_group.append(dict(params=group_decay, weight_deacy=weight_decay_value, lr=lr))
+ weight_group.append(dict(params=group_no_decay, weight_decay=.0, lr=lr))
+ return weight_group
\ No newline at end of file
diff --git a/avs.code/v2.code/configs/__init__.py b/avs.code/v2.code/configs/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/avs.code/v2.code/configs/auralfuser/architecture.yaml b/avs.code/v2.code/configs/auralfuser/architecture.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab4c3d06ca42335ce6bfc8064bbd5cfd44c8080a
--- /dev/null
+++ b/avs.code/v2.code/configs/auralfuser/architecture.yaml
@@ -0,0 +1,30 @@
+# @package _global_
+
+aural_fuser:
+ patch_cfgs:
+ - [4, 4]
+ - [2, 2]
+ - [1, 1]
+ f_depths: [3, 6, 12]
+ block_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
+ one_d_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
diff --git a/avs.code/v2.code/configs/config.py b/avs.code/v2.code/configs/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..21e69377536f2a491f46e3e35803c78d448c54ba
--- /dev/null
+++ b/avs.code/v2.code/configs/config.py
@@ -0,0 +1,84 @@
+import os
+import numpy
+from easydict import EasyDict
+
+# v1m.code package root (parent of this `configs/` directory)
+_CODE_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+# workspace root (parent of avs.code)
+_WORKSPACE_ROOT = os.path.dirname(os.path.dirname(_CODE_ROOT))
+
+C = EasyDict()
+config = C
+cfg = C
+
+C.seed = 666
+
+C.audio = EasyDict()
+C.audio.FREEZE_AUDIO_EXTRACTOR = True
+C.audio.PRETRAINED_VGGISH_MODEL_PATH = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'vggish-10086976.pth')
+C.audio.PREPROCESS_AUDIO_TO_LOG_MEL = False
+C.audio.POSTPROCESS_LOG_MEL_WITH_PCA = False
+C.train_vggish = False
+
+"""Root Directory Config"""
+C.repo_name = 'AV'
+C.root_dir = _CODE_ROOT
+
+"""Data Dir and Weight Dir"""
+C.data_root_path = os.path.join(_WORKSPACE_ROOT, 'AVSBench')
+C.backbone_weight = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'sam_ckpts', 'sam2_hiera_large.pt')
+C.sam_config_path = os.path.join('sam2', 'sam2_hiera_l.yaml')
+
+"""Network Config"""
+C.fix_bias = True
+C.bn_eps = 1e-5
+C.bn_momentum = 0.1
+
+"""Image Config"""
+C.num_classes = 2
+
+C.image_mean = numpy.array([0.485, 0.456, 0.406])
+C.image_std = numpy.array([0.229, 0.224, 0.225])
+
+
+C.image_size = 1024
+C.image_embedding_size = int(C.image_size / 16)
+C.avsbench_size = (224, 224)
+
+C.scale_list = [.5, .75, 1., 1.25, 1.5]
+C.ignore_index = 255
+
+"""Train Config"""
+C.lr = 7.5e-5
+C.batch_size = 8
+C.energy_weight = .05
+
+C.lr_power = 0.9
+C.momentum = 0.9
+C.weight_decay = 0.05
+
+C.num_workers = 4
+
+"""Display Config"""
+C.record_info_iter = 20
+C.display_iter = 50
+
+"""Wandb Config"""
+# Paste your W&B API key here, or set the WANDB_API_KEY environment variable instead.
+C.wandb_key = ""
+
+# Your project [work_space] name
+C.proj_name = "AVS-final-report"
+
+C.experiment_name = "v2-hiera-l"
+
+
+# False = no wandb logging (see utils/tensorboard.py)
+C.wandb_online = False
+
+"""Save Config"""
+C.saved_dir = os.path.join(_WORKSPACE_ROOT, 'ckpts', C.experiment_name)
+
+import pathlib
+
+pathlib.Path(C.saved_dir).mkdir(parents=True, exist_ok=True)
diff --git a/avs.code/v2.code/configs/sam2/sam2_hiera_b+.yaml b/avs.code/v2.code/configs/sam2/sam2_hiera_b+.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..52e0f10732134149f6a994be063d11fd7591c430
--- /dev/null
+++ b/avs.code/v2.code/configs/sam2/sam2_hiera_b+.yaml
@@ -0,0 +1,114 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 112
+ num_heads: 2
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [896, 448, 224, 112]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
+
diff --git a/avs.code/v2.code/configs/sam2/sam2_hiera_l.yaml b/avs.code/v2.code/configs/sam2/sam2_hiera_l.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8478b3d4b8b16d8b22f6555cf7b1f00231d7fd59
--- /dev/null
+++ b/avs.code/v2.code/configs/sam2/sam2_hiera_l.yaml
@@ -0,0 +1,117 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 144
+ num_heads: 2
+ stages: [2, 6, 36, 4]
+ global_att_blocks: [23, 33, 43]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ window_spec: [8, 4, 16, 8]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [1152, 576, 288, 144]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/avs.code/v2.code/configs/sam2/sam2_hiera_s.yaml b/avs.code/v2.code/configs/sam2/sam2_hiera_s.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..26e5d4d39f7b2892396106005c37c7ffe6c83bc2
--- /dev/null
+++ b/avs.code/v2.code/configs/sam2/sam2_hiera_s.yaml
@@ -0,0 +1,116 @@
+# @package _global_
+
+# Model
+model:
+ _target_: sam2.modeling.sam2_base.SAM2Base
+ image_encoder:
+ _target_: sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 11, 2]
+ global_att_blocks: [7, 10, 13]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/avs.code/v2.code/configs/sam2/sam2_hiera_t.yaml b/avs.code/v2.code/configs/sam2/sam2_hiera_t.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..59e605b73c9777b70942538252d27a55ae8a7e1a
--- /dev/null
+++ b/avs.code/v2.code/configs/sam2/sam2_hiera_t.yaml
@@ -0,0 +1,118 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 7, 2]
+ global_att_blocks: [5, 7, 9]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 224 # 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ # SAM decoder
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: false
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ # HieraT does not currently support compilation, should always be set to False
+ compile_image_encoder: False
diff --git a/avs.code/v2.code/configs/training/sam2_training_config.yaml b/avs.code/v2.code/configs/training/sam2_training_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..55771e7232fe88c4ea445958956eca8174c2e872
--- /dev/null
+++ b/avs.code/v2.code/configs/training/sam2_training_config.yaml
@@ -0,0 +1,62 @@
+# @package _global_
+
+# Video transforms
+
+train_transforms:
+ - _target_: dataloader.sam2_dataset.transforms.ComposeAPI
+ transforms:
+ - _target_: dataloader.sam2_dataset.transforms.RandomHorizontalFlip
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomAffine
+ degrees: 25
+ shear: 20
+ image_interpolation: bilinear
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomResizeAPI
+ sizes: 1024 # ${scratch.resolution}
+ square: true
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: True
+ brightness: 0.1
+ contrast: 0.03
+ saturation: 0.03
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.RandomGrayscale
+ p: 0.05
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: False
+ brightness: 0.1
+ contrast: 0.05
+ saturation: 0.05
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.ToTensorAPI
+ - _target_: dataloader.sam2_dataset.transforms.NormalizeAPI
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+
+loss:
+ all:
+ _target_: loss.training.sam2_training_loss.MultiStepMultiMasksAndIous
+ weight_dict:
+ loss_mask: 20 # 20
+ loss_dice: 1
+ loss_iou: 1
+ loss_class: 1
+ supervise_all_iou: true
+ iou_use_l1_loss: true
+ pred_obj_scores: true
+ focal_gamma_obj_score: 0.0
+ focal_alpha_obj_score: -1.0
+ gpu_num: 4.
+
+# Contrastive loss (ContrastLoss); loaded in main.py / inference.py → hyp_param.contrastive_learning
+contrastive_learning:
+ temperature: 0.10
+ ignore_idx: 255
+ ood_idx: 254
+ max_views: 512
+ proj_dim: 512
+ sample_limits: 128
+ total_limits: 15240
diff --git a/avs.code/v2.code/dataloader/audio/audio_augmentation.py b/avs.code/v2.code/dataloader/audio/audio_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..850d1577ea2bca4f8ec209edc201fb54968be928
--- /dev/null
+++ b/avs.code/v2.code/dataloader/audio/audio_augmentation.py
@@ -0,0 +1,23 @@
+import numpy
+
+
+class Augmentation(object):
+ """Audio pre-step used by training/inference: int16 waveform -> float in [-1, 1].
+
+ The previous audiomentations-based transforms were commented out and never applied;
+ behavior is unchanged: only scaling by 1/32768.
+ """
+
+ def __init__(self, mono=True):
+ self.mono = mono
+
+ def train_aug(self, x_, sr_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def test_process(self, x_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def __call__(self, x, sr, split):
+ return self.train_aug(x, sr) if split == "train" else self.test_process(x)
diff --git a/avs.code/v2.code/dataloader/audio/audio_dataset.py b/avs.code/v2.code/dataloader/audio/audio_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c8e8b276e8545aa55ef56295719a0ad2b167106
--- /dev/null
+++ b/avs.code/v2.code/dataloader/audio/audio_dataset.py
@@ -0,0 +1,38 @@
+import torch
+import numpy
+import os
+from dataloader.audio.preprocess_vgg.vggish_input import waveform_to_examples
+import soundfile
+
+
+class Audio(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split):
+ # temporarily set no augmentation.
+ self.augmentation = augmentation
+ self.directory_path = directory_path
+ self.split = split
+
+ def load_audio_wave(self, file_index, file_index_mix):
+ audio_path = os.path.join(file_index, 'audio.wav')
+ wav_data, sample_rate = soundfile.read(audio_path, dtype='int16')
+ assert wav_data.dtype == numpy.int16, 'Bad sample type: %r' % wav_data.dtype
+
+ if file_index_mix is not None:
+ audio_path2 = os.path.join(file_index_mix, 'audio.wav')
+ wav_data2, _ = soundfile.read(audio_path2, dtype='int16')
+ mix_lambda = numpy.random.beta(10, 10)
+ min_length = min(wav_data.shape[0], wav_data2.shape[0])
+ wav_data = wav_data[:min_length] * mix_lambda + wav_data2[:min_length] * (1-mix_lambda)
+
+ wav_data = self.augmentation(wav_data, sample_rate, self.split)
+ audio_log_mel = torch.cat([waveform_to_examples(wav_data[:, 0], sample_rate, True).detach(),
+ waveform_to_examples(wav_data[:, 1], sample_rate, True).detach()], dim=1)
+
+ # for the vgg preprocess, we will need 5 seconds audio log.
+ if audio_log_mel.shape[0] < 5:
+ audio_log_mel = torch.cat([audio_log_mel,
+ audio_log_mel[-1].unsqueeze(0).repeat(5-audio_log_mel.shape[0], 1, 1, 1)])
+ return audio_log_mel
+
+ def __len__(self):
+ return len(self.audio_list)
diff --git a/avs.code/v2.code/dataloader/audio/preprocess_vgg/mel_features.py b/avs.code/v2.code/dataloader/audio/preprocess_vgg/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/avs.code/v2.code/dataloader/audio/preprocess_vgg/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/avs.code/v2.code/dataloader/audio/preprocess_vgg/vggish_input.py b/avs.code/v2.code/dataloader/audio/preprocess_vgg/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d58e81bc70a85138980128e033f271998794605
--- /dev/null
+++ b/avs.code/v2.code/dataloader/audio/preprocess_vgg/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from dataloader.audio.preprocess_vgg import mel_features
+from dataloader.audio.preprocess_vgg import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/avs.code/v2.code/dataloader/audio/preprocess_vgg/vggish_params.py b/avs.code/v2.code/dataloader/audio/preprocess_vgg/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/avs.code/v2.code/dataloader/audio/preprocess_vgg/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/avs.code/v2.code/dataloader/dataset.py b/avs.code/v2.code/dataloader/dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..cb266ac17dea1fc3415b2f83da04be5aff982c05
--- /dev/null
+++ b/avs.code/v2.code/dataloader/dataset.py
@@ -0,0 +1,79 @@
+"""Fused audio-visual dataset for AVSBench-style indexing."""
+import os
+import random
+import PIL.Image
+import numpy
+import torch
+from dataloader.visual.visual_dataset import Visual
+from dataloader.audio.audio_dataset import Audio
+import pandas
+
+
+class AV(torch.utils.data.Dataset):
+ """Pairs video frames + labels from `Visual` with log-mel spectrograms from `Audio` via `metadata.csv`."""
+
+ def __init__(self, split, augmentation, param, root_path=''):
+ # v2.code entry: always merge v1s + v1m + v2 from `avss_index/metadata.csv` (artifacts v2 pool).
+ # Visual/Audio get `root_path/v2` as base path; per-sample `load_data` uses full `file_path` (v1s|v1m|v2/uid).
+ v2_root = os.path.join(root_path, 'v2')
+ self.visual_dataset = Visual(
+ augmentation['visual'],
+ v2_root,
+ split,
+ param.image_size,
+ param.image_embedding_size,
+ )
+ self.audio_dataset = Audio(augmentation['audio'], v2_root, split)
+ self.augment = augmentation
+ self.split = split
+ self.file_path = self.organise_files(self.split, root_path, csv_name_='avss_index/metadata.csv')
+
+ def __getitem__(self, index):
+ mixing_prob = 0. # we omit this option.
+ other_index = random.randint(1, self.__len__()) - 1 if random.random() < mixing_prob and self.split == 'train' else None
+ frame, label, prompts = self.visual_dataset.load_data(self.file_path[index])
+ if other_index is not None:
+ other_frame, other_label, other_prompts = self.visual_dataset.load_data(self.file_path[other_index])
+ frame, label, prompts = self.visual_mix(frame, other_frame, label, other_label, prompts, other_prompts)
+ audio_mel = self.audio_dataset.load_audio_wave(self.file_path[index], self.file_path[other_index])
+ else:
+ audio_mel = self.audio_dataset.load_audio_wave(self.file_path[index], None)
+
+ assert other_index is None if self.split == 'test' else 1, print('no mix in validation.')
+
+ return {'frame': frame, 'label': label, 'spectrogram': audio_mel, 'id': self.file_path[index],
+ 'prompts': prompts}
+
+ def __len__(self):
+ return len(self.file_path)
+
+ @staticmethod
+ def organise_files(split_, root_path_, csv_name_):
+ total_files = pandas.read_csv(os.path.join(root_path_, csv_name_))
+ files_info_v2 = total_files[(total_files["split"] == split_) & (total_files["label"] == 'v2')]['uid']
+ files_path_v2 = [os.path.join(root_path_, 'v2', files_name) for files_name in files_info_v2]
+ files_info_v1s = total_files[(total_files["split"] == split_) & (total_files["label"] == 'v1s')]['uid']
+ files_path_v1s = [os.path.join(root_path_, 'v1s', files_name) for files_name in files_info_v1s]
+ files_info_v1m = total_files[(total_files["split"] == split_) & (total_files["label"] == 'v1m')]['uid']
+ files_path_v1m = [os.path.join(root_path_, 'v1m', files_name) for files_name in files_info_v1m]
+ files_path = files_path_v1s + files_path_v1m + files_path_v2
+ del total_files
+ return files_path
+
+ @staticmethod
+ def visual_mix(frame1, frame2, label1, label2, prompts1, prompts2):
+ mix_frame = frame1.clone()
+ mix_label = label1.clone()
+ bbx1, bby1, bbx2, bby2 = 0, 0, mix_label.shape[1] - 1, mix_label.shape[2] - 1
+
+ for i in range(0, mix_frame.shape[0]):
+ label_canvas_foreground = label2[i, bbx1:bbx2, bby1:bby2] > 0.
+ mix_frame[i, :, bbx1:bbx2, bby1:bby2][:, label_canvas_foreground] = (
+ frame2[i, :, bbx1:bbx2, bby1:bby2][:, label_canvas_foreground])
+ mix_label[i, bbx1:bbx2, bby1:bby2][label_canvas_foreground] = (
+ label2[i, bbx1:bbx2, bby1:bby2][label_canvas_foreground])
+
+ return mix_frame, mix_label, prompts1
+
+
+
diff --git a/avs.code/v2.code/dataloader/sam2_dataset/__init__.py b/avs.code/v2.code/dataloader/sam2_dataset/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v2.code/dataloader/sam2_dataset/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v2.code/dataloader/sam2_dataset/transforms.py b/avs.code/v2.code/dataloader/sam2_dataset/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..7731e59ba98a5465493e3a9c4b785eb4d4420ca2
--- /dev/null
+++ b/avs.code/v2.code/dataloader/sam2_dataset/transforms.py
@@ -0,0 +1,528 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Transforms and data augmentation for both image + bbox.
+"""
+
+import logging
+
+import random
+from typing import Iterable
+
+import torch
+import torchvision.transforms as T
+import torchvision.transforms.functional as F
+import torchvision.transforms.v2.functional as Fv2
+from PIL import Image as PILImage
+# from docutils.nodes import label
+import numpy
+from torchvision.transforms import InterpolationMode
+
+# from utils.data_utils import VideoDatapoint
+
+
+def hflip(frames, labels, index):
+ # print(index)
+ # print(len(frames), frames[index].size, type(frames[index]))
+ # print(len(labels), labels[index].size, type(labels[index]))
+ frames[index] = F.hflip(frames[index])
+ labels[index] = F.hflip(labels[index])
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.hflip(obj.segment)
+
+ return frames, labels
+
+
+def get_size_with_aspect_ratio(image_size, size, max_size=None):
+ w, h = image_size
+ if max_size is not None:
+ min_original_size = float(min((w, h)))
+ max_original_size = float(max((w, h)))
+ if max_original_size / min_original_size * size > max_size:
+ size = max_size * min_original_size / max_original_size
+
+ if (w <= h and w == size) or (h <= w and h == size):
+ return (h, w)
+
+ if w < h:
+ ow = int(round(size))
+ oh = int(round(size * h / w))
+ else:
+ oh = int(round(size))
+ ow = int(round(size * w / h))
+
+ return (oh, ow)
+
+
+def resize(frames, labels, index, size, max_size=None, square=False, v2=False):
+ # size can be min_size (scalar) or (w, h) tuple
+ def get_size(image_size, size, max_size=None):
+ if isinstance(size, (list, tuple)):
+ return size[::-1]
+ else:
+ return get_size_with_aspect_ratio(image_size, size, max_size)
+
+ if square:
+ size = size, size
+ else:
+ raise NotImplementedError
+ # cur_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ # size = get_size(cur_size, size, max_size)
+
+ # old_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ if v2:
+ frames[index].data = Fv2.resize(
+ frames[index].data, size, antialias=True
+ )
+ else:
+ frames[index] = F.resize(frames[index], size)
+ labels[index] = F.resize(labels[index], size)
+ # new_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.resize(obj.segment[None, None], size).squeeze()
+
+ # h, w = size
+ # frames[index].size = (h, w)
+ return frames, labels
+
+
+def pad(frames, index, padding, v2=False):
+ old_h, old_w = frames[index].size
+ h, w = old_h, old_w
+ if len(padding) == 2:
+ # assumes that we only pad on the bottom right corners
+ frames[index].data = F.pad(
+ frames[index].data, (0, 0, padding[0], padding[1])
+ )
+ h += padding[1]
+ w += padding[0]
+ else:
+ # left, top, right, bottom
+ frames[index].data = F.pad(
+ frames[index].data,
+ (padding[0], padding[1], padding[2], padding[3]),
+ )
+ h += padding[1] + padding[3]
+ w += padding[0] + padding[2]
+
+ frames[index].size = (h, w)
+
+ for obj in frames[index].objects:
+ if obj.segment is not None:
+ if v2:
+ if len(padding) == 2:
+ obj.segment = Fv2.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = Fv2.pad(obj.segment, tuple(padding))
+ else:
+ if len(padding) == 2:
+ obj.segment = F.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = F.pad(obj.segment, tuple(padding))
+ return frames
+
+
+class RandomHorizontalFlip:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for i in range(len(frames)):
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+ for i in range(len(frames)):
+ if random.random() < self.p:
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+
+
+class RandomResizeAPI:
+ def __init__(
+ self, sizes, consistent_transform, max_size=None, square=False, v2=False
+ ):
+ if isinstance(sizes, int):
+ sizes = (sizes,)
+ assert isinstance(sizes, Iterable)
+ self.sizes = list(sizes)
+ self.max_size = max_size
+ self.square = square
+ self.consistent_transform = consistent_transform
+ self.v2 = v2
+
+ def __call__(self, frames, labels):
+ if self.consistent_transform:
+ size = random.choice(self.sizes)
+ for i in range(len(frames)):
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+ for i in range(len(frames)):
+ size = random.choice(self.sizes)
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+
+
+class ToTensorAPI:
+ def __init__(self, v2=False):
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ if self.v2:
+ raise NotImplementedError
+ # frames[img_idx] = Fv2.to_tensor(frames[img_idx])
+ else:
+ frames[img_idx] = F.to_tensor(frames[img_idx])
+ labels[img_idx] = torch.tensor(numpy.array(labels[img_idx]), dtype=torch.float)
+ return frames, labels
+
+
+class NormalizeAPI:
+ def __init__(self, mean, std, v2=False):
+ self.mean = mean
+ self.std = std
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ # if self.v2:
+ # img.data = Fv2.convert_image_dtype(img.data, torch.float32)
+ # img.data = Fv2.normalize(img.data, mean=self.mean, std=self.std)
+ # else:
+ frames[img_idx] = F.normalize(frames[img_idx], mean=self.mean, std=self.std)
+
+ return frames, labels
+
+'''
+
+
+
+
+
+
+
+
+'''
+class ComposeAPI:
+ def __init__(self, transforms):
+ self.transforms = transforms
+
+ def __call__(self, frames, labels, **kwargs):
+ for t in self.transforms:
+ frames, labels = t(frames, labels, **kwargs)
+ return frames, labels
+
+ def __repr__(self):
+ format_string = self.__class__.__name__ + "("
+ for t in self.transforms:
+ format_string += "\n"
+ format_string += " {0}".format(t)
+ format_string += "\n)"
+ return format_string
+
+
+class RandomGrayscale:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+ self.Grayscale = T.Grayscale(num_output_channels=3)
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for img_idx in range(len(frames)):
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+ for img_idx in range(len(frames)):
+ if random.random() < self.p:
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+
+
+class ColorJitter:
+ def __init__(self, consistent_transform, brightness, contrast, saturation, hue):
+ self.consistent_transform = consistent_transform
+ self.brightness = (
+ brightness
+ if isinstance(brightness, list)
+ else [max(0, 1 - brightness), 1 + brightness]
+ )
+ self.contrast = (
+ contrast
+ if isinstance(contrast, list)
+ else [max(0, 1 - contrast), 1 + contrast]
+ )
+ self.saturation = (
+ saturation
+ if isinstance(saturation, list)
+ else [max(0, 1 - saturation), 1 + saturation]
+ )
+ self.hue = hue if isinstance(hue, list) or hue is None else ([-hue, hue])
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ # Create a color jitter transformation params
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for img in frames:
+ if not self.consistent_transform:
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for fn_id in fn_idx:
+ if fn_id == 0 and brightness_factor is not None:
+ img = F.adjust_brightness(img, brightness_factor)
+ elif fn_id == 1 and contrast_factor is not None:
+ img = F.adjust_contrast(img, contrast_factor)
+ elif fn_id == 2 and saturation_factor is not None:
+ img = F.adjust_saturation(img, saturation_factor)
+ elif fn_id == 3 and hue_factor is not None:
+ img = F.adjust_hue(img, hue_factor)
+ return frames, labels
+
+
+class RandomAffine:
+ def __init__(
+ self,
+ degrees,
+ consistent_transform,
+ scale=None,
+ translate=None,
+ shear=None,
+ image_mean=(123, 116, 103),
+ label_fill_value=0.,
+ log_warning=True,
+ num_tentatives=1,
+ image_interpolation="bicubic",
+ ):
+ """
+ The mask is required for this transform.
+ if consistent_transform if True, then the same random affine is applied to all frames and masks.
+ """
+ self.degrees = degrees if isinstance(degrees, list) else ([-degrees, degrees])
+ self.scale = scale
+ self.shear = (
+ shear if isinstance(shear, list) else ([-shear, shear] if shear else None)
+ )
+ self.translate = translate
+ self.fill_img = image_mean
+ self.fill_label = label_fill_value
+ self.consistent_transform = consistent_transform
+ self.log_warning = log_warning
+ self.num_tentatives = num_tentatives
+ assert self.num_tentatives >= 1., 'must have at least one if we utilise the augmentation.'
+
+ if image_interpolation == "bicubic":
+ self.image_interpolation = InterpolationMode.BICUBIC
+ elif image_interpolation == "bilinear":
+ self.image_interpolation = InterpolationMode.BILINEAR
+ else:
+ raise NotImplementedError
+
+ def __call__(self, frames, labels, **kwargs):
+ for _tentative in range(self.num_tentatives):
+ res_img, res_labels = self.transform_frames(frames, labels)
+ # if res is not None:
+ return res_img, res_labels
+
+ # raise NotImplementedError
+ # if self.log_warning:
+ # logging.warning(
+ # f"Skip RandomAffine for zero-area mask in first frame after {self.num_tentatives} tentatives"
+ # )
+ # return frames
+
+ def transform_frames(self, frames, labels):
+ _, height, width = F.get_dimensions(frames[0])
+ img_size = [width, height]
+
+ if self.consistent_transform:
+ # Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+
+ for img_idx, img in enumerate(frames):
+ if not self.consistent_transform:
+ # if not consistent we create a new affine params for every frame&mask pair Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+ frames[img_idx] = F.affine(
+ img,
+ *affine_params,
+ interpolation=self.image_interpolation,
+ fill=self.fill_img,
+ )
+ labels[img_idx] = F.affine(
+ labels[img_idx],
+ *affine_params,
+ # default: interpolation='nearest',
+ fill=self.fill_label,
+ )
+ return frames, labels
+
+
+'''
+def random_mosaic_frame(
+ datapoint,
+ index,
+ grid_h,
+ grid_w,
+ target_grid_y,
+ target_grid_x,
+ should_hflip,
+):
+ # Step 1: downsize the images and paste them into a mosaic
+ image_data = datapoint.frames[index].data
+ is_pil = isinstance(image_data, PILImage.Image)
+ if is_pil:
+ H_im = image_data.height
+ W_im = image_data.width
+ image_data_output = PILImage.new("RGB", (W_im, H_im))
+ else:
+ H_im = image_data.size(-2)
+ W_im = image_data.size(-1)
+ image_data_output = torch.zeros_like(image_data)
+
+ downsize_cache = {}
+ for grid_y in range(grid_h):
+ for grid_x in range(grid_w):
+ y_offset_b = grid_y * H_im // grid_h
+ x_offset_b = grid_x * W_im // grid_w
+ y_offset_e = (grid_y + 1) * H_im // grid_h
+ x_offset_e = (grid_x + 1) * W_im // grid_w
+ H_im_downsize = y_offset_e - y_offset_b
+ W_im_downsize = x_offset_e - x_offset_b
+
+ if (H_im_downsize, W_im_downsize) in downsize_cache:
+ image_data_downsize = downsize_cache[(H_im_downsize, W_im_downsize)]
+ else:
+ image_data_downsize = F.resize(
+ image_data,
+ size=(H_im_downsize, W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )
+ downsize_cache[(H_im_downsize, W_im_downsize)] = image_data_downsize
+ if should_hflip[grid_y, grid_x].item():
+ image_data_downsize = F.hflip(image_data_downsize)
+
+ if is_pil:
+ image_data_output.paste(image_data_downsize, (x_offset_b, y_offset_b))
+ else:
+ image_data_output[:, y_offset_b:y_offset_e, x_offset_b:x_offset_e] = (
+ image_data_downsize
+ )
+
+ datapoint.frames[index].data = image_data_output
+
+ # Step 2: downsize the masks and paste them into the target grid of the mosaic
+ for obj in datapoint.frames[index].objects:
+ if obj.segment is None:
+ continue
+ assert obj.segment.shape == (H_im, W_im) and obj.segment.dtype == torch.uint8
+ segment_output = torch.zeros_like(obj.segment)
+
+ target_y_offset_b = target_grid_y * H_im // grid_h
+ target_x_offset_b = target_grid_x * W_im // grid_w
+ target_y_offset_e = (target_grid_y + 1) * H_im // grid_h
+ target_x_offset_e = (target_grid_x + 1) * W_im // grid_w
+ target_H_im_downsize = target_y_offset_e - target_y_offset_b
+ target_W_im_downsize = target_x_offset_e - target_x_offset_b
+
+ segment_downsize = F.resize(
+ obj.segment[None, None],
+ size=(target_H_im_downsize, target_W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )[0, 0]
+ if should_hflip[target_grid_y, target_grid_x].item():
+ segment_downsize = F.hflip(segment_downsize[None, None])[0, 0]
+
+ segment_output[
+ target_y_offset_b:target_y_offset_e, target_x_offset_b:target_x_offset_e
+ ] = segment_downsize
+ obj.segment = segment_output
+
+ return datapoint
+
+
+class RandomMosaicVideoAPI:
+ def __init__(self, prob=0.15, grid_h=2, grid_w=2, use_random_hflip=False):
+ self.prob = prob
+ self.grid_h = grid_h
+ self.grid_w = grid_w
+ self.use_random_hflip = use_random_hflip
+
+ def __call__(self, frames, **kwargs):
+ if random.random() > self.prob:
+ return datapoint
+
+ # select a random location to place the target mask in the mosaic
+ target_grid_y = random.randint(0, self.grid_h - 1)
+ target_grid_x = random.randint(0, self.grid_w - 1)
+ # whether to flip each grid in the mosaic horizontally
+ if self.use_random_hflip:
+ should_hflip = torch.rand(self.grid_h, self.grid_w) < 0.5
+ else:
+ should_hflip = torch.zeros(self.grid_h, self.grid_w, dtype=torch.bool)
+ for i in range(len(datapoint.frames)):
+ datapoint = random_mosaic_frame(
+ datapoint,
+ i,
+ grid_h=self.grid_h,
+ grid_w=self.grid_w,
+ target_grid_y=target_grid_y,
+ target_grid_x=target_grid_x,
+ should_hflip=should_hflip,
+ )
+
+ return datapoint
+'''
\ No newline at end of file
diff --git a/avs.code/v2.code/dataloader/visual/visual_augmentation.py b/avs.code/v2.code/dataloader/visual/visual_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d40aed7c8b8c08d50a46db122e1213bd4878afd
--- /dev/null
+++ b/avs.code/v2.code/dataloader/visual/visual_augmentation.py
@@ -0,0 +1,140 @@
+import random
+
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision.transforms.functional as F
+import torchvision.transforms as transforms
+
+
+class Augmentation(object):
+ def __init__(self, image_mean, image_std, image_width, image_height, scale_list, ignore_index=255):
+ self.image_size = (image_height, image_width)
+ # self.image_norm = (image_mean, image_std)
+ # self.get_crop_pos = transforms.RandomCrop(self.image_size)
+ self.color_jitter = transforms.ColorJitter(brightness=.5, contrast=.5, saturation=.5, hue=.25)
+ self.gaussian_blurring = transforms.GaussianBlur((3, 3))
+ self.scale_list = scale_list
+
+ self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+ self.to_tensor = transforms.ToTensor()
+
+ self.ignore_index = ignore_index
+
+ # self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+
+ # if setup == "avs" or setup == "avss" or setup == "avss_binary":
+ # # AVS
+ # self.scale_list = [.5, .75, 1.]
+ # self.color_jitter = None
+ # else:
+ # # COCO
+ # # self.scale_list = [.75, 1., 1.25, 1.5, 1.75, 2.]
+ # self.scale_list = [0.5,0.75,1.0,1.25,1.5,1.75,2.0]
+
+ # def normalise(self, image):
+ # image = image / 255.0
+ # image = image - self.image_norm[0]
+ # image = image / self.image_norm[1]
+ # return image
+
+ def resize(self, image_, label_, size=None):
+ h_, w_ = self.image_size if size is None else size
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ def random_crop_with_padding(self, image_, label_):
+ w_, h_ = image_.size
+ if min(h_, w_) < min(self.image_size):
+ res_w_ = max(self.image_size[0] - w_, 0)
+ res_h_ = max(self.image_size[1] - h_, 0)
+ image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=(numpy.array(self.image_norm[0]) * 255.).tolist())
+ # image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=self.ignore_index) # if error, define the padding value.
+ label_ = F.pad(label_, [0, 0, res_w_, res_h_], fill=self.ignore_index)
+
+ pos_ = self.get_crop_pos.get_params(image_, self.image_size)
+ image_ = F.crop(image_, *pos_)
+ label_ = F.crop(label_, *pos_)
+
+ return image_, label_
+
+ # @staticmethod
+ def random_scales(self, image_, label_):
+ w_, h_ = image_.size
+ chosen_scale = random.choice(self.scale_list)
+ w_, h_ = int(w_ * chosen_scale), int(h_ * chosen_scale)
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ @staticmethod
+ def random_flip_h(image_, label_):
+ chosen_flip = random.random() > 0.5
+ image_ = F.hflip(image_) if chosen_flip else image_
+ label_ = F.hflip(label_) if chosen_flip else label_
+ return image_, label_
+
+ def augment_entire_clip(self, x_list, y_list):
+ degree_ = float(torch.empty(1).uniform_(float(-25.), float(25.)).item())
+ shear_ = [float(torch.empty(1).uniform_(float(-20.), float(20.)).item()),
+ torch.empty(1).uniform_(float(-20.), float(20.)).item()]
+ dice = random.random()
+ for index, single_x in enumerate(x_list):
+ if dice <= 0.1:
+ single_x = F.rgb_to_grayscale(single_x, num_output_channels=3)
+
+ single_x = F.affine(single_x, angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.BILINEAR, fill=[0., 0., 0.])
+ single_y = F.affine(y_list[index], angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.NEAREST, fill=[0.])
+ x_list[index] = single_x
+ y_list[index] = single_y
+
+ return x_list, y_list
+
+
+
+
+ def train_aug(self, x_, y_):
+ x_, y_ = self.random_flip_h(x_, y_)
+ # # x, y = self.random_scales(x, y)
+ x_, y_ = self.resize(x_, y_)
+
+ if self.color_jitter is not None and random.random() < 0.5:
+ x_ = self.color_jitter(x_)
+ if self.gaussian_blurring is not None and random.random() < 0.5:
+ x_ = self.gaussian_blurring(x_)
+
+ # x, y = self.random_crop_with_padding(x, y)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ # receive pseudo labels.
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def test_process(self, x_, y_):
+ # x = self.to_tensor(x)
+ # y = torch.tensor(numpy.asarray(y)).long()
+
+ # following AVSbench setup, we fix image size (224, 224)
+ x_, y_ = self.resize(x_, y_)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def __call__(self, x, y, split):
+ return self.train_aug(x, y) if split == "train" \
+ else self.test_process(x, y)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/avs.code/v2.code/dataloader/visual/visual_dataset.py b/avs.code/v2.code/dataloader/visual/visual_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..922aa12196dc74b0c3a6d957d10d19f842c4f97b
--- /dev/null
+++ b/avs.code/v2.code/dataloader/visual/visual_dataset.py
@@ -0,0 +1,124 @@
+import os
+import re
+import PIL.Image
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import pandas
+import torchvision
+
+
+class Visual(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split, image_size, image_embedding_size):
+ self.augment = augmentation
+ self.directory_path = directory_path
+ self.split = split
+ self.image_size = image_size
+ self.embedding_size = image_embedding_size
+
+ def load_data(self, file_prefix):
+ frame_path = os.path.join(file_prefix, 'frames')
+ frame_path = [os.path.join(frame_path, i) for i in os.listdir(frame_path)]
+ label_path = os.path.join(file_prefix, 'labels_rgb')
+ label_path = [os.path.join(label_path, i) for i in os.listdir(label_path)]
+
+ # if self.split == 'train':
+ # label_path += [os.path.join(file_prefix.replace('v1s', 'v1s_sam2_pseudo_labels'), i) for i in
+ # os.listdir(file_prefix.replace('v1s', 'v1s_sam2_pseudo_labels'))]
+
+ frame_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.jpg')[0])))
+ label_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.png')[0])))
+
+ frame = [PIL.Image.open(i) for i in frame_path]
+ label = [PIL.Image.open(i).convert('L') for i in label_path]
+ if self.split == 'train' and '/v1s/' in file_prefix:
+ # v1s: only first frame has mask files; pad with empty masks to match frame count (artifacts).
+ label += [PIL.Image.new('L', frame[0].size)] * (len(frame) - len(label))
+
+ # Length must match clip length (e.g. v2 @ 10 frames); first slot True matches artifacts' "frame 0" hint.
+ label_idx = torch.tensor([True] + [False] * (len(frame) - 1), dtype=torch.bool)
+
+ # receive the prompts from the ground truth.
+ # prompts = {"point_coords": torch.nan, "point_labels": torch.nan,
+ # "masks": [None]*len(frame), "box_coords": [None]*len(frame)}
+
+ prompts = {}
+ image_batch = [None]*len(frame)
+ label_batch = [None]*len(frame)
+
+ if self.split == 'train':
+ # frame, label = self.augment.augment_entire_clip(frame, label)
+ frame, label = self.augment(frame, label)
+
+
+ for i in range(len(frame)):
+ if self.split == 'test':
+ curr_frame, curr_label = self.augment(frame[i], label[i], split=self.split)
+ else:
+ curr_frame, curr_label = frame[i], label[i]
+ # if self.split == 'train' and i > 0:
+ # curr_label = curr_label / 255.
+ # curr_label[curr_label > 0.5] = 1
+ # curr_label[curr_label < 0.5] = 0
+ # # curr_label[(0.05 < curr_label) & (curr_label < 0.95)] = 255
+ # # we temporarily make it to be hard mask;
+ # # curr_label = ((curr_label / 255.) - 0.5) * 2
+ # # curr_label[curr_label >= 0.] = 1.
+ # # curr_label[curr_label < 0.] = 0.
+ # else:
+ curr_label[curr_label > 0.] = 1.
+ image_batch[i], label_batch[i] = curr_frame, curr_label
+
+ # image_batch[i], label_batch[i] = self.augment(frame[i], label[i], split=self.split)
+ # note: we simply convert the code to binary mask in v1s, v1m;
+ # to some reason, we failed to load the label in `L' format and had to hardcoding here.
+ # label_batch[i][label_batch[i] > 0.] = 1.
+
+ # prompts['box_coords'][i], prompts['masks'][i] = self.receive_other_prompts(label_batch[i])
+
+ # organise the prompts
+ # prompts.update({'masks': torch.stack(prompts['masks'], dim=0)})
+ # prompts.update({'box_coords': torch.stack(prompts['box_coords'], dim=0)})
+ # prompts.update({'point_labels': torch.stack(prompts['point_labels'], dim=0)})
+ prompts.update({'label_index': label_idx})
+ return torch.stack(image_batch, dim=0), torch.stack(label_batch, dim=0), prompts
+
+ def receive_other_prompts(self, y_):
+ # y_ = torch.zeros_like(y_)
+ if len(torch.unique(y_)) > 1:
+ # foreground point
+ points_foreground = torch.stack(torch.where(y_ > 0)[::-1], dim=0).transpose(1, 0)
+
+ # bbox prompt (left-top corner & right-bottom corner)
+ bbox_one = torch.min(points_foreground[:, 0]), torch.min(points_foreground[:, 1])
+ bbox_fou = torch.max(points_foreground[:, 0]), torch.max(points_foreground[:, 1])
+ bbox_coord = torch.tensor(bbox_one + bbox_fou, dtype=torch.float)
+ bbox_coord = self.transform_coords(bbox_coord, orig_hw=y_.squeeze().shape)
+ # mask prompt
+ low_mask = torchvision.transforms.functional.resize(y_.clone(), [self.embedding_size*4, self.embedding_size*4],
+ torchvision.transforms.InterpolationMode.NEAREST)
+ else:
+ # for the pure background situation.
+ bbox_coord = torch.zeros([4], dtype=torch.float).fill_(float('nan'))
+ low_mask = torch.zeros([1, self.embedding_size*4, self.embedding_size*4], dtype=torch.float).fill_(float('nan'))
+
+ return bbox_coord, low_mask
+
+ # we transfer the coords to SAM's input resolution (1024, 1024).
+ def transform_coords(self, coords: torch.Tensor, orig_hw=None) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the sam2 model.
+ """
+ h, w = orig_hw
+ coords = coords.clone().reshape(-1, 2, 2)
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+ coords = coords * self.image_size # unnormalize coords
+ return coords.reshape(4)
+
+
+
diff --git a/avs.code/v2.code/inference.py b/avs.code/v2.code/inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..b8040ed9e7d011381d28bd8fc9701f554a2fb1fb
--- /dev/null
+++ b/avs.code/v2.code/inference.py
@@ -0,0 +1,193 @@
+"""Distributed inference on the test set; runs the same three `process` modes as training validation."""
+import os
+import pathlib
+import torch
+import numpy
+import random
+import argparse
+from easydict import EasyDict
+
+# Avoid import failure when configs.config creates saved_dir without write permission.
+_real_mkdir = pathlib.Path.mkdir
+
+
+def _safe_mkdir(self, mode=0o777, parents=False, exist_ok=False):
+ try:
+ return _real_mkdir(self, mode, parents=parents, exist_ok=exist_ok)
+ except PermissionError:
+ pass
+
+
+pathlib.Path.mkdir = _safe_mkdir
+
+
+def seed_it(seed):
+ random.seed(seed)
+ os.environ["PYTHONSEED"] = str(seed)
+ numpy.random.seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.deterministic = True
+ torch.backends.cudnn.benchmark = False
+ torch.backends.cudnn.enabled = True
+ torch.manual_seed(seed)
+
+
+class _DummyTensorboard:
+ """Minimal Tensorboard stub so Trainer.valid runs without wandb logging."""
+
+ def upload_wandb_info(self, info_dict):
+ pass
+
+ def upload_wandb_image(self, *args, **kwargs):
+ pass
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus * 1
+ )
+ seed_it(local_rank + hyp_param.seed)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra `configs`
+ from hydra import compose
+ from omegaconf import OmegaConf
+
+ arch_h = compose(config_name='auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ train_cfg = compose(config_name='training/sam2_training_config.yaml')
+ OmegaConf.resolve(train_cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(train_cfg.contrastive_learning, resolve=True)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda()
+ torch.cuda.set_device(hyp_param.local_rank)
+ ckpt_sd = torch.load(hyp_param.inference_ckpt, map_location="cpu")
+ if not isinstance(ckpt_sd, dict):
+ raise TypeError("Checkpoint must be a state_dict dictionary.")
+ # Support both formats:
+ # 1) full-model checkpoint (keys like `v_model.*`, `aural_fuser.*`)
+ # 2) train-only checkpoint for aural_fuser (keys without `aural_fuser.` prefix)
+ if any(k.startswith("v_model.") or k.startswith("aural_fuser.") for k in ckpt_sd.keys()):
+ av_model.load_state_dict(ckpt_sd, strict=True)
+ else:
+ av_model.aural_fuser.load_state_dict(ckpt_sd, strict=True)
+
+ av_model = torch.nn.parallel.distributed.DistributedDataParallel(av_model, device_ids=[hyp_param.local_rank],
+ find_unused_parameters=False)
+ av_model = torch.nn.SyncBatchNorm.convert_sync_batchnorm(av_model)
+ av_model.eval()
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data import DataLoader, Subset
+ from torch.utils.data.distributed import DistributedSampler
+
+ visual_augmentation = VisualAugmentation(hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index)
+ audio_augmentation = AudioAugmentation(mono=True)
+
+ dataset = AV(split='test', augmentation={"visual": visual_augmentation, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path)
+
+ max_batches = getattr(hyp_param, "inference_max_batches", 0) or 0
+ if max_batches > 0:
+ n_samples = min(max_batches * hyp_param.batch_size, len(dataset))
+ dataset = Subset(dataset, range(n_samples))
+
+ sampler = DistributedSampler(dataset, shuffle=False)
+ test_dataloader = DataLoader(dataset, batch_size=hyp_param.batch_size, sampler=sampler,
+ num_workers=hyp_param.num_workers)
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+
+ metrics = {
+ "foreground_iou": ForegroundIoU(),
+ "foreground_f-score": ForegroundFScore(hyp_param.local_rank),
+ }
+ trainer = Trainer(hyp_param, loss=None, tensorboard=_DummyTensorboard(), metrics=metrics)
+
+ # Same three modes as main.py validation: default first mask / iou_select / iou_occ_select
+ runs = [
+ ("", "default (logits[:,0])"),
+ ("iou_select", "iou_select"),
+ ("iou_occ_select", "iou_occ_select"),
+ ]
+ results = []
+ for process, label in runs:
+ fiou, ffscore = trainer.valid(epoch=0, dataloader=test_dataloader, model=av_model, process=process)
+ results.append((label, fiou, ffscore))
+ torch.cuda.empty_cache()
+
+ if hyp_param.local_rank <= 0:
+ print("\n========== inference (same three process flags as training valid) ==========")
+ for label, fiou, ffscore in results:
+ print(" {:32s} f_iou={} f_f-score={}".format(label, fiou, ffscore))
+ print("=======================================================\n")
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Inference: full test set + three process modes')
+
+ parser.add_argument('-n', '--nodes', default=1, type=int, metavar='N')
+
+ parser.add_argument("--local_rank", type=int, default=-1,
+ help='multi-process training for DDP')
+
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+
+ parser.add_argument('--batch_size', default=1, type=int,
+ help='Batch size (match training if needed)')
+
+ parser.add_argument('--epochs', default=80, type=int,
+ help="unused")
+
+ parser.add_argument('--lr', default=1e-5, type=float,
+ help="unused")
+
+ parser.add_argument('--online', action="store_true",
+ help='unused')
+
+ parser.add_argument(
+ '--inference_ckpt', type=str, default=None,
+ help='Trained AuralSAM2 checkpoint (.pth state_dict: full model or aural_fuser-only). '
+ 'SAM2 backbone is loaded from backbone_weight in configs (same path as training: repo_root/ckpts/sam_ckpts/). '
+ 'Default if unset: avs.code/training_details/.../hiera_l.pth',
+ )
+ parser.add_argument('--inference_max_batches', type=int, default=0,
+ help='0 = full test; >0 = first N batches only (debug)')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+
+ args = EasyDict({**C, **vars(args)})
+
+ _repo = pathlib.Path(__file__).resolve().parent
+ # Repo root: .../AuralSAM2 (parent of avs.code)
+ _workspace = _repo.parent.parent
+ args.data_root_path = str(_workspace / 'AVSBench')
+ args.backbone_weight = str(_workspace / 'ckpts' / 'sam_ckpts' / 'sam2_hiera_large.pt')
+ args.audio.PRETRAINED_VGGISH_MODEL_PATH = str(_workspace / 'ckpts' / 'vggish-10086976.pth')
+ args.saved_dir = '/tmp/v2_infer_ckpt'
+ pathlib.Path(args.saved_dir).mkdir(parents=True, exist_ok=True)
+ if args.inference_ckpt is None:
+ args.inference_ckpt = str(
+ _repo.parent / 'training_details' / 'v2' / 'hiera_l' / 'hiera_l.pth'
+ )
+
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9901'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/avs.code/v2.code/loss/training/__init__.py b/avs.code/v2.code/loss/training/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..da8932ea6e0916b9f16cb514f1e64704440d554e
--- /dev/null
+++ b/avs.code/v2.code/loss/training/__init__.py
@@ -0,0 +1,2 @@
+"""Training loss modules."""
+
diff --git a/avs.code/v2.code/loss/training/contrastive_learning.py b/avs.code/v2.code/loss/training/contrastive_learning.py
new file mode 100644
index 0000000000000000000000000000000000000000..b4097c017ab93e2cf1d5b4e27d8b74a8ce26f134
--- /dev/null
+++ b/avs.code/v2.code/loss/training/contrastive_learning.py
@@ -0,0 +1,209 @@
+from abc import ABC
+
+import torch
+import torch.nn as nn
+
+
+class ContrastLoss(nn.Module, ABC):
+ def __init__(self, hyp_param):
+ super().__init__()
+ self.param = hyp_param
+ _defaults = {
+ "temperature": 0.10,
+ "ignore_idx": 255,
+ "ood_idx": 254,
+ "max_views": 512,
+ "proj_dim": 512,
+ "sample_limits": 128,
+ "total_limits": 64,
+ }
+ _raw = getattr(hyp_param, "contrastive_learning", None) or {}
+ _cfg = {**_defaults, **_raw}
+ self.temperature = _cfg["temperature"]
+ self.ignore_idx = _cfg["ignore_idx"]
+ self.ood_idx = _cfg["ood_idx"]
+ self.max_views = _cfg["max_views"]
+ self.proj_dim = _cfg["proj_dim"]
+ self.sample_limits = _cfg["sample_limits"]
+ self.total_limits = _cfg["total_limits"]
+
+ def select_class_wise_samples(self, embeddings, audio_embeddings, predictions, masks, batch_idx):
+ embedding_sample_list = []
+ label_list = []
+ embedding_sample_list_a = []
+ label_list_a = []
+ class_index_list = torch.unique(masks)
+
+ if len(class_index_list) > 1:
+ for class_index in class_index_list[1:]:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(class_index.unsqueeze(0) + batch_idx * 1e3)
+ else:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(torch.zeros([1], device=embeddings.device) + batch_idx * 1e3)
+
+ sample_limits = self.sample_limits
+ embeddings = embeddings.permute(1, 0)
+ for class_index in class_index_list:
+ hard_indices = embeddings[((masks != predictions) & (masks == class_index)).nonzero()]
+ easy_indices = embeddings[((masks == predictions) & (masks == class_index)).nonzero()]
+
+ hard_indices_num, easy_indices_num = hard_indices.shape[0], easy_indices.shape[0]
+ selective_num_hard = min(sample_limits, hard_indices_num)
+ selective_num_easy = min(sample_limits, easy_indices_num)
+
+ if (selective_num_hard + selective_num_easy) < sample_limits * 2:
+ if selective_num_hard > selective_num_easy:
+ selective_num_hard += sample_limits * 2 - selective_num_easy
+ else:
+ selective_num_easy += sample_limits * 2 - selective_num_hard
+
+ hard_chosen_indices = torch.randperm(hard_indices_num)[:selective_num_hard]
+ embedding_sample_list.append(hard_indices[hard_chosen_indices])
+ label_list.append(masks[hard_chosen_indices] + batch_idx * 1e3)
+
+ easy_chosen_indices = torch.randperm(easy_indices_num)[:selective_num_easy]
+ embedding_sample_list.append(easy_indices[easy_chosen_indices])
+ label_list.append(masks[easy_chosen_indices] + batch_idx * 1e3)
+ return embedding_sample_list, label_list, embedding_sample_list_a, label_list_a
+
+ def forward_audio_visual(self, visual_embeddings, audio_embeddings, masks, predictions):
+ masks = masks.flatten(start_dim=1)
+ predictions = predictions.flatten(start_dim=1)
+ visual_embeddings = visual_embeddings.flatten(start_dim=-2)
+
+ visual_embedding_sample_list = []
+ visual_label_list = []
+ audio_embedding_sample_list = []
+ audio_label_list = []
+
+ for frame_idx in range(masks.shape[0]):
+ current_vision_feats = visual_embeddings[frame_idx]
+ current_masks = masks[frame_idx]
+ current_predictions = predictions[frame_idx]
+ current_audio_feats = audio_embeddings[frame_idx]
+ for layer_idx in range(3):
+ (
+ selected_vision_embeddings,
+ selected_vision_labels,
+ selected_audio_embeddings,
+ selected_audio_labels,
+ ) = self.select_class_wise_samples(
+ current_vision_feats[layer_idx],
+ current_audio_feats[layer_idx],
+ current_predictions,
+ current_masks,
+ 0,
+ )
+ visual_embedding_sample_list += selected_vision_embeddings
+ visual_label_list += selected_vision_labels
+ audio_embedding_sample_list += selected_audio_embeddings
+ audio_label_list += selected_audio_labels
+
+ if len(visual_embedding_sample_list) == 0:
+ return 0.0
+
+ # Same as artifacts `loss/cl.py`: cat then squeeze. If only one row, squeeze drops batch dim and
+ # `info_nce` hits "2 vs 1" — keep at least 2D without adding a helper.
+ visual_embedding_sample_list = torch.cat(visual_embedding_sample_list, dim=0).squeeze()
+ if visual_embedding_sample_list.dim() == 1:
+ visual_embedding_sample_list = visual_embedding_sample_list.unsqueeze(0)
+ visual_label_list = torch.cat(visual_label_list, dim=0).unsqueeze(-1)
+ audio_embedding_sample_list = torch.cat(audio_embedding_sample_list, dim=0).squeeze()
+ if audio_embedding_sample_list.dim() == 1:
+ audio_embedding_sample_list = audio_embedding_sample_list.unsqueeze(0)
+ audio_label_list = torch.cat(audio_label_list).unsqueeze(1)
+
+ total_limits = self.total_limits
+ if visual_embedding_sample_list.shape[0] > total_limits:
+ rand_index = torch.randperm(visual_embedding_sample_list.shape[0])[total_limits]
+ visual_embedding_sample_list = visual_embedding_sample_list[:rand_index]
+ visual_label_list = visual_label_list[:rand_index]
+ loss = self.info_nce(
+ visual_embedding_sample_list,
+ visual_label_list,
+ audio_embedding_sample_list,
+ audio_label_list,
+ )
+ return loss
+
+ def forward(self, embeddings, output_dicts, masks):
+ # Align with artifacts `loss/cl.py` forward: squeeze(1) on interp, loop over masks.shape[0], squeeze(-1) on audio.
+ predictions = torch.cat([i["multistep_pred_masks"] for i in output_dicts])
+ predictions = torch.nn.functional.interpolate(
+ predictions,
+ size=(int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ mode="bilinear",
+ align_corners=False,
+ ).squeeze(1)
+ masks = torch.nn.functional.interpolate(
+ masks.unsqueeze(1),
+ size=(int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ mode="nearest",
+ ).squeeze(1)
+ visual_embeddings, audio_embeddings = embeddings
+ visual_embeddings = torch.cat(
+ [
+ torch.cat(
+ [
+ visual_embeddings[0][i].unsqueeze(0),
+ visual_embeddings[1][i].unsqueeze(0),
+ visual_embeddings[2][i].unsqueeze(0),
+ ]
+ ).unsqueeze(0)
+ for i in range(masks.shape[0])
+ ]
+ )
+ audio_embeddings = torch.cat(
+ [
+ torch.cat(
+ [
+ audio_embeddings[0][i].unsqueeze(0),
+ audio_embeddings[1][i].unsqueeze(0),
+ audio_embeddings[2][i].unsqueeze(0),
+ ]
+ ).unsqueeze(0)
+ for i in range(masks.shape[0])
+ ]
+ )
+ return self.forward_audio_visual(
+ visual_embeddings, audio_embeddings.squeeze(-1), masks, predictions
+ )
+
+ @staticmethod
+ def manipulate_cover_mask(a_label, current_mask):
+ a_label = a_label + 1
+ visual_mask = torch.matmul(a_label, torch.transpose(a_label, 0, 1))
+ current_mask[: visual_mask.shape[1], : visual_mask.shape[0]][visual_mask == 1.0] = 0
+ current_mask[: visual_mask.shape[1], : visual_mask.shape[0]][visual_mask == 4.0] = 0
+ return current_mask
+
+ def info_nce(self, anchors_, a_labels_, contras_, c_labels_):
+ c_labels_ = torch.cat([a_labels_, c_labels_])
+ contras_ = torch.cat([anchors_, contras_])
+ mask = torch.eq(a_labels_, torch.transpose(c_labels_, 0, 1)).float()
+
+ anchor_dot_contrast = torch.div(
+ torch.matmul(anchors_, torch.transpose(contras_, 0, 1)),
+ self.temperature,
+ )
+
+ logits_max, _ = torch.max(anchor_dot_contrast, dim=1, keepdim=True)
+ logits = anchor_dot_contrast - logits_max.detach()
+ neg_mask = 1 - mask
+
+ mask = self.manipulate_cover_mask(a_label=a_labels_, current_mask=mask)
+ mask = mask.fill_diagonal_(0.0)
+
+ neg_logits = torch.exp(logits) * neg_mask
+ neg_logits = neg_logits.sum(1, keepdim=True)
+ exp_logits = torch.exp(logits)
+ log_prob = logits - torch.log(exp_logits + neg_logits)
+
+ mask_pos_pairs = mask.sum(1)
+ mask_pos_pairs = torch.where(mask_pos_pairs < 1e-6, 1, mask_pos_pairs)
+ mean_log_prob_pos = (mask * log_prob).sum(1) / mask_pos_pairs
+ assert not torch.isnan(mean_log_prob_pos).any(), print(torch.isnan(log_prob).any())
+ return -mean_log_prob_pos.mean()
+
+
diff --git a/avs.code/v2.code/loss/training/sam2_training_loss.py b/avs.code/v2.code/loss/training/sam2_training_loss.py
new file mode 100644
index 0000000000000000000000000000000000000000..f6ce1b02c0dbbf5d7e771b314a4a537145e28978
--- /dev/null
+++ b/avs.code/v2.code/loss/training/sam2_training_loss.py
@@ -0,0 +1,220 @@
+from collections import defaultdict
+from typing import Dict, List
+
+import torch
+import torch.distributed
+import torch.nn as nn
+import torch.nn.functional as F
+
+CORE_LOSS_KEY = "core_loss"
+
+
+def dice_loss(inputs, targets, num_objects, loss_on_multimask=False):
+ inputs = inputs.sigmoid()
+ if loss_on_multimask:
+ assert inputs.dim() == 4 and targets.dim() == 4
+ inputs = inputs.flatten(2)
+ targets = targets.flatten(2)
+ numerator = 2 * (inputs * targets).sum(-1)
+ else:
+ inputs = inputs.flatten(1)
+ numerator = 2 * (inputs * targets).sum(1)
+ denominator = inputs.sum(-1) + targets.sum(-1)
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+def sigmoid_focal_loss(
+ inputs,
+ targets,
+ num_objects,
+ alpha: float = 0.25,
+ gamma: float = 2,
+ loss_on_multimask=False,
+):
+ prob = inputs.sigmoid()
+ ce_loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction="none")
+ p_t = prob * targets + (1 - prob) * (1 - targets)
+ loss = ce_loss * ((1 - p_t) ** gamma)
+
+ if alpha >= 0:
+ alpha_t = alpha * targets + (1 - alpha) * (1 - targets)
+ loss = alpha_t * loss
+
+ if loss_on_multimask:
+ assert loss.dim() == 4
+ return loss.flatten(2).mean(-1) / num_objects
+ return loss.mean(1).sum() / num_objects
+
+
+def iou_loss(
+ inputs, targets, pred_ious, num_objects, loss_on_multimask=False, use_l1_loss=False
+):
+ assert inputs.dim() == 4 and targets.dim() == 4
+ pred_mask = inputs.flatten(2) > 0
+ gt_mask = targets.flatten(2) > 0
+ area_i = torch.sum(pred_mask & gt_mask, dim=-1).float()
+ area_u = torch.sum(pred_mask | gt_mask, dim=-1).float()
+ actual_ious = area_i / torch.clamp(area_u, min=1.0)
+
+ if use_l1_loss:
+ loss = F.l1_loss(pred_ious, actual_ious, reduction="none")
+ else:
+ loss = F.mse_loss(pred_ious, actual_ious, reduction="none")
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+class MultiStepMultiMasksAndIous(nn.Module):
+ def __init__(
+ self,
+ weight_dict,
+ focal_alpha=0.25,
+ focal_gamma=2,
+ supervise_all_iou=False,
+ iou_use_l1_loss=False,
+ pred_obj_scores=False,
+ focal_gamma_obj_score=0.0,
+ focal_alpha_obj_score=-1,
+ gpu_num=1,
+ ):
+ super().__init__()
+ self.weight_dict = weight_dict
+ self.focal_alpha = focal_alpha
+ self.focal_gamma = focal_gamma
+ self.world_size = gpu_num
+ assert "loss_mask" in self.weight_dict
+ assert "loss_dice" in self.weight_dict
+ assert "loss_iou" in self.weight_dict
+ if "loss_class" not in self.weight_dict:
+ self.weight_dict["loss_class"] = 0.0
+
+ self.focal_alpha_obj_score = focal_alpha_obj_score
+ self.focal_gamma_obj_score = focal_gamma_obj_score
+ self.supervise_all_iou = supervise_all_iou
+ self.iou_use_l1_loss = iou_use_l1_loss
+ self.pred_obj_scores = pred_obj_scores
+
+ def forward(self, outs_batch: List[Dict], targets_batch: torch.Tensor):
+ assert len(outs_batch) == len(targets_batch)
+ num_objects = torch.tensor(
+ targets_batch.shape[1], device=targets_batch.device, dtype=torch.float
+ )
+ torch.distributed.all_reduce(num_objects)
+ num_objects = torch.clamp(num_objects / self.world_size, min=1).item()
+
+ losses = defaultdict(int)
+ for outs, targets in zip(outs_batch, targets_batch):
+ cur_losses = self._forward(outs, targets, num_objects)
+ for k, v in cur_losses.items():
+ losses[k] += v
+ return losses
+
+ def _forward(self, outputs: Dict, targets: torch.Tensor, num_objects):
+ target_masks = targets.unsqueeze(1).float()
+ assert target_masks.dim() == 4
+
+ src_masks_list = outputs["multistep_pred_multimasks_high_res"]
+ ious_list = outputs["multistep_pred_ious"]
+ object_score_logits_list = outputs["multistep_object_score_logits"]
+ assert len(src_masks_list) == len(ious_list)
+ assert len(object_score_logits_list) == len(ious_list)
+
+ losses = {"loss_mask": 0, "loss_dice": 0, "loss_iou": 0, "loss_class": 0}
+ for src_masks, ious, object_score_logits in zip(
+ src_masks_list, ious_list, object_score_logits_list
+ ):
+ self._update_losses(
+ losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ )
+ losses[CORE_LOSS_KEY] = self.reduce_loss(losses)
+ return losses
+
+ def _update_losses(
+ self, losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ ):
+ target_masks = target_masks.expand_as(src_masks)
+ loss_multimask = sigmoid_focal_loss(
+ src_masks,
+ target_masks,
+ num_objects,
+ alpha=self.focal_alpha,
+ gamma=self.focal_gamma,
+ loss_on_multimask=True,
+ )
+ loss_multidice = dice_loss(
+ src_masks, target_masks, num_objects, loss_on_multimask=True
+ )
+ if not self.pred_obj_scores:
+ loss_class = torch.tensor(
+ 0.0, dtype=loss_multimask.dtype, device=loss_multimask.device
+ )
+ target_obj = torch.ones(
+ loss_multimask.shape[0],
+ 1,
+ dtype=loss_multimask.dtype,
+ device=loss_multimask.device,
+ )
+ else:
+ target_obj = torch.any((target_masks[:, 0] > 0).flatten(1), dim=-1)[
+ ..., None
+ ].float()
+ loss_class = sigmoid_focal_loss(
+ object_score_logits,
+ target_obj,
+ num_objects,
+ alpha=self.focal_alpha_obj_score,
+ gamma=self.focal_gamma_obj_score,
+ )
+
+ loss_multiiou = iou_loss(
+ src_masks,
+ target_masks,
+ ious,
+ num_objects,
+ loss_on_multimask=True,
+ use_l1_loss=self.iou_use_l1_loss,
+ )
+ assert loss_multimask.dim() == 2
+ assert loss_multidice.dim() == 2
+ assert loss_multiiou.dim() == 2
+ if loss_multimask.size(1) > 1:
+ loss_combo = (
+ loss_multimask * self.weight_dict["loss_mask"]
+ + loss_multidice * self.weight_dict["loss_dice"]
+ )
+ best_loss_inds = torch.argmin(loss_combo, dim=-1)
+ batch_inds = torch.arange(loss_combo.size(0), device=loss_combo.device)
+
+ loss_mask = loss_multimask[batch_inds, best_loss_inds].unsqueeze(1)
+ loss_dice = loss_multidice[batch_inds, best_loss_inds].unsqueeze(1)
+ if self.supervise_all_iou:
+ loss_iou = loss_multiiou.mean(dim=-1).unsqueeze(1)
+ else:
+ loss_iou = loss_multiiou[batch_inds, best_loss_inds].unsqueeze(1)
+ else:
+ loss_mask = loss_multimask
+ loss_dice = loss_multidice
+ loss_iou = loss_multiiou
+
+ loss_mask = loss_mask * target_obj
+ loss_dice = loss_dice * target_obj
+ loss_iou = loss_iou * target_obj
+
+ losses["loss_mask"] += loss_mask.sum()
+ losses["loss_dice"] += loss_dice.sum()
+ losses["loss_iou"] += loss_iou.sum()
+ losses["loss_class"] += loss_class
+
+ def reduce_loss(self, losses):
+ reduced_loss = 0.0
+ for loss_key, weight in self.weight_dict.items():
+ if loss_key not in losses:
+ raise ValueError(f"{type(self)} doesn't compute {loss_key}")
+ if weight != 0:
+ reduced_loss += losses[loss_key] * weight
+ return reduced_loss
+
diff --git a/avs.code/v2.code/main.py b/avs.code/v2.code/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..90151d9412514ad79281d6a0ff12b5b9c98ecb5c
--- /dev/null
+++ b/avs.code/v2.code/main.py
@@ -0,0 +1,166 @@
+"""DDP training entry: AV model with SAM2 frozen, AuralFuser trainable, Hydra transforms and loss."""
+import os
+import torch
+import numpy
+import random
+import argparse
+from easydict import EasyDict
+
+
+def seed_it(seed):
+ """Fix RNGs and cuDNN for reproducible runs (rank offsets seed in DDP)."""
+ os.environ["PYTHONSEED"] = str(seed)
+ random.seed(seed)
+ numpy.random.seed(seed)
+ torch.manual_seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.enabled = True
+ torch.backends.cudnn.deterministic = True
+
+ torch.backends.cudnn.benchmark = False
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ # NCCL process group; world size = GPUs on this node
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus * 1
+ )
+ seed_it(local_rank + hyp_param.seed)
+
+ torch.cuda.set_device(hyp_param.local_rank)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra `configs` (initialize_config_module)
+
+ from hydra import compose
+ from hydra.utils import instantiate
+ from omegaconf import OmegaConf
+
+ # Hydra configs under v1m.code/configs (same pattern as training/sam2_training_config.yaml)
+ transform_config_path = 'training/sam2_training_config.yaml'
+
+ if 'hiera_t' in hyp_param.sam_config_path:
+ hyp_param.image_size = 224
+ hyp_param.image_embedding_size = int(hyp_param.image_size / 16)
+ print('\n upload image size to be {}x{} \n'.format(224, 224), flush=True)
+
+ cfg = compose(config_name=transform_config_path)
+ OmegaConf.resolve(cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(cfg.contrastive_learning, resolve=True)
+
+ arch_h = compose(config_name='auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda(hyp_param.local_rank)
+
+ av_model = torch.nn.parallel.distributed.DistributedDataParallel(av_model, device_ids=[hyp_param.local_rank],
+ find_unused_parameters=True)
+
+ # Optimizer: parameter groups from AuralFuser only (train_* vs VGG backbone)
+ from utils.utils import manipulate_params
+ parameter_list = manipulate_params(hyp_param, av_model.module.aural_fuser)
+ optimiser = torch.optim.AdamW(parameter_list, betas=(0.9, 0.999))
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data.distributed import DistributedSampler
+
+ compose_api = instantiate(cfg.train_transforms, _recursive_=True)[0]
+
+ audio_augmentation = AudioAugmentation(mono=True)
+ train_dataset = AV(split='train', augmentation={"visual": compose_api, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path)
+
+
+ visual_augmentation = VisualAugmentation(hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index)
+
+ audio_augmentation = AudioAugmentation(mono=True)
+
+ random_sampler = DistributedSampler(train_dataset, shuffle=True)
+ train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=hyp_param.batch_size,
+ sampler=random_sampler,
+ num_workers=hyp_param.num_workers, drop_last=True)
+
+ test_dataset = AV(split='test', augmentation={"visual": visual_augmentation, "audio": audio_augmentation},
+ param=hyp_param, root_path=hyp_param.data_root_path)
+
+ order_sampler = DistributedSampler(test_dataset, shuffle=False)
+ test_dataloader = torch.utils.data.DataLoader(test_dataset, batch_size=1, sampler=order_sampler,
+ num_workers=hyp_param.num_workers)
+
+
+ criterion = instantiate(cfg.loss, _recursive_=True)['all']
+ from utils.tensorboard import Tensorboard
+ tensorboard = Tensorboard(config=hyp_param) if hyp_param.local_rank <= 0 else None
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+ metrics = {"foreground_iou": ForegroundIoU(), "foreground_f-score": ForegroundFScore(0 if hyp_param.local_rank <= 0 else hyp_param.local_rank)}
+
+ trainer = Trainer(hyp_param, loss=criterion, tensorboard=tensorboard, metrics=metrics)
+
+
+ curr_best = 0. # checkpoint when IoU (iou_select mode) improves
+
+ for epoch in range(hyp_param.epochs):
+ av_model.train()
+ av_model.module.freeze_sam_parameters()
+ random_sampler.set_epoch(epoch)
+ trainer.train(epoch=epoch, dataloader=train_dataloader, model=av_model, optimiser=optimiser)
+
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+ av_model.eval()
+ # Three validation modes: default first mask / IoU-selected mask / IoU + objectness gate
+ curr_results1, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='first_index')
+ curr_results, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='iou_select')
+ curr_results3, _ = trainer.valid(epoch=epoch, dataloader=test_dataloader, model=av_model, process='iou_occ_select')
+ if hyp_param.local_rank <= 0 and curr_results > curr_best:
+ curr_best = curr_results
+ torch.save(av_model.module.aural_fuser.state_dict(), os.path.join(hyp_param.saved_dir, str(curr_results) + ".pth"))
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='PyTorch Training')
+ parser.add_argument('-n', '--nodes', default=1, type=int, metavar='N')
+
+ parser.add_argument("--local_rank", type=int, default=-1,
+ help='multi-process training for DDP')
+
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+
+ parser.add_argument('--batch_size', default=1, type=int)
+
+ parser.add_argument('--epochs', default=80, type=int,
+ help="total epochs that used for the training")
+
+ parser.add_argument('--lr', default=1e-4, type=float,
+ help='Default HEAD Learning rate is same as others, '
+ '*Note: in ddp training, lr will automatically times by n_gpu')
+
+ parser.add_argument('--online', action="store_true",
+ help='switch on for visualization; switch off for debug')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+
+ args = EasyDict({**C, **vars(args)})
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9902'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/avs.code/v2.code/model/audio/torchvggish/mel_features.py b/avs.code/v2.code/model/audio/torchvggish/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/avs.code/v2.code/model/audio/torchvggish/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/avs.code/v2.code/model/audio/torchvggish/vggish.py b/avs.code/v2.code/model/audio/torchvggish/vggish.py
new file mode 100644
index 0000000000000000000000000000000000000000..f01c22867c713bfd8713eee5665120b92602761d
--- /dev/null
+++ b/avs.code/v2.code/model/audio/torchvggish/vggish.py
@@ -0,0 +1,193 @@
+import numpy as np
+import torch
+import torch.nn as nn
+from torch import hub
+
+from . import vggish_input, vggish_params
+
+
+class VGG(nn.Module):
+ def __init__(self, features):
+ super(VGG, self).__init__()
+ self.features = features
+ self.embeddings = nn.Sequential(
+ nn.Linear(512 * 4 * 6, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 128),
+ nn.ReLU(True))
+
+ def forward(self, x):
+ x = self.features(x)
+
+ # Transpose the output from features to
+ # remain compatible with vggish embeddings
+ x = torch.transpose(x, 1, 3)
+ x = torch.transpose(x, 1, 2)
+ x = x.contiguous()
+ x = x.view(x.size(0), -1)
+
+ return self.embeddings(x)
+
+
+class Postprocessor(nn.Module):
+ """Post-processes VGGish embeddings. Returns a torch.Tensor instead of a
+ numpy array in order to preserve the gradient.
+
+ "The initial release of AudioSet included 128-D VGGish embeddings for each
+ segment of AudioSet. These released embeddings were produced by applying
+ a PCA transformation (technically, a whitening transform is included as well)
+ and 8-bit quantization to the raw embedding output from VGGish, in order to
+ stay compatible with the YouTube-8M project which provides visual embeddings
+ in the same format for a large set of YouTube videos. This class implements
+ the same PCA (with whitening) and quantization transformations."
+ """
+
+ def __init__(self):
+ """Constructs a postprocessor."""
+ super(Postprocessor, self).__init__()
+ # Create empty matrix, for user's state_dict to load
+ self.pca_eigen_vectors = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, vggish_params.EMBEDDING_SIZE,),
+ dtype=torch.float,
+ )
+ self.pca_means = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, 1), dtype=torch.float
+ )
+
+ self.pca_eigen_vectors = nn.Parameter(self.pca_eigen_vectors, requires_grad=False)
+ self.pca_means = nn.Parameter(self.pca_means, requires_grad=False)
+
+ def postprocess(self, embeddings_batch):
+ """Applies tensor postprocessing to a batch of embeddings.
+
+ Args:
+ embeddings_batch: An tensor of shape [batch_size, embedding_size]
+ containing output from the embedding layer of VGGish.
+
+ Returns:
+ A tensor of the same shape as the input, containing the PCA-transformed,
+ quantized, and clipped version of the input.
+ """
+ assert len(embeddings_batch.shape) == 2, "Expected 2-d batch, got %r" % (
+ embeddings_batch.shape,
+ )
+ assert (
+ embeddings_batch.shape[1] == vggish_params.EMBEDDING_SIZE
+ ), "Bad batch shape: %r" % (embeddings_batch.shape,)
+
+ # Apply PCA.
+ # - Embeddings come in as [batch_size, embedding_size].
+ # - Transpose to [embedding_size, batch_size].
+ # - Subtract pca_means column vector from each column.
+ # - Premultiply by PCA matrix of shape [output_dims, input_dims]
+ # where both are are equal to embedding_size in our case.
+ # - Transpose result back to [batch_size, embedding_size].
+ pca_applied = torch.mm(self.pca_eigen_vectors, (embeddings_batch.t() - self.pca_means)).t()
+
+ # Quantize by:
+ # - clipping to [min, max] range
+ clipped_embeddings = torch.clamp(
+ pca_applied, vggish_params.QUANTIZE_MIN_VAL, vggish_params.QUANTIZE_MAX_VAL
+ )
+ # - convert to 8-bit in range [0.0, 255.0]
+ quantized_embeddings = torch.round(
+ (clipped_embeddings - vggish_params.QUANTIZE_MIN_VAL)
+ * (
+ 255.0
+ / (vggish_params.QUANTIZE_MAX_VAL - vggish_params.QUANTIZE_MIN_VAL)
+ )
+ )
+ return torch.squeeze(quantized_embeddings)
+
+ def forward(self, x):
+ return self.postprocess(x)
+
+
+def make_layers():
+ layers = []
+ in_channels = 1
+ for v in [64, "M", 128, "M", 256, 256, "M", 512, 512, "M"]:
+ if v == "M":
+ layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
+ else:
+ conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1)
+ layers += [conv2d, nn.ReLU(inplace=True)]
+ in_channels = v
+ return nn.Sequential(*layers)
+
+
+def _vgg():
+ return VGG(make_layers())
+
+
+# def _spectrogram():
+# config = dict(
+# sr=16000,
+# n_fft=400,
+# n_mels=64,
+# hop_length=160,
+# window="hann",
+# center=False,
+# pad_mode="reflect",
+# htk=True,
+# fmin=125,
+# fmax=7500,
+# output_format='Magnitude',
+# # device=device,
+# )
+# return Spectrogram.MelSpectrogram(**config)
+
+
+class VGGish(VGG):
+ def __init__(self, cfg, device=None):
+ super().__init__(make_layers())
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_VGGISH_MODEL_PATH)
+ super().load_state_dict(state_dict)
+ print(f'==> Load pretrained VGGish parameters from {cfg.PRETRAINED_VGGISH_MODEL_PATH}')
+
+ if device is None:
+ device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
+ print("device: ", device)
+ self.device = device
+
+ self.preprocess = cfg.PREPROCESS_AUDIO_TO_LOG_MEL
+ self.postprocess = cfg.POSTPROCESS_LOG_MEL_WITH_PCA
+ if self.postprocess:
+ self.pproc = Postprocessor()
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_PCA_PARAMS_PATH)
+ # TODO: Convert the state_dict to torch
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME], dtype=torch.float
+ )
+ state_dict[vggish_params.PCA_MEANS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_MEANS_NAME].reshape(-1, 1), dtype=torch.float
+ )
+ self.pproc.load_state_dict(state_dict)
+ self.to(self.device)
+
+ def forward(self, x):
+ if self.preprocess:
+ print(">>> pre processing...")
+ x = self._preprocess(x)
+ x = x.to(self.device)
+ x = VGG.forward(self, x)
+ if self.postprocess:
+ print(">>> post processing...")
+ x = self._postprocess(x)
+ return x
+
+ def _preprocess(self, x):
+ # if isinstance(x, np.ndarray):
+ # x = vggish_input.waveform_to_examples(x, fs)
+ if isinstance(x, str):
+ x = vggish_input.wavfile_to_examples(x)
+ else:
+ raise AttributeError
+ return x
+
+ def _postprocess(self, x):
+ return self.pproc(x)
diff --git a/avs.code/v2.code/model/audio/torchvggish/vggish_input.py b/avs.code/v2.code/model/audio/torchvggish/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..ede228b1fb630180f1f49244355d373fb3300f03
--- /dev/null
+++ b/avs.code/v2.code/model/audio/torchvggish/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from . import mel_features
+from . import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/avs.code/v2.code/model/audio/torchvggish/vggish_params.py b/avs.code/v2.code/model/audio/torchvggish/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/avs.code/v2.code/model/audio/torchvggish/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/avs.code/v2.code/model/aural_fuser.py b/avs.code/v2.code/model/aural_fuser.py
new file mode 100644
index 0000000000000000000000000000000000000000..924810bfcf8bee5e285cab7d54e477daf254b85a
--- /dev/null
+++ b/avs.code/v2.code/model/aural_fuser.py
@@ -0,0 +1,567 @@
+import math
+
+import torch
+import torch.nn as nn
+from model.audio.torchvggish import vggish
+from timm.models.layers import DropPath, trunc_normal_
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+
+class ProjectionHead(nn.Module):
+ def __init__(self, dim_in, proj_dim=256, norm_act=nn.BatchNorm2d, conv_layer=nn.Conv2d):
+ super().__init__()
+ self.proj = nn.Sequential(
+ conv_layer(dim_in, proj_dim, kernel_size=1),
+ norm_act(proj_dim),
+ conv_layer(proj_dim, proj_dim, kernel_size=1),
+ )
+
+ def forward(self, x):
+ return torch.nn.functional.normalize(self.proj(x), p=2, dim=1)
+
+class AuralFuser(torch.nn.Module):
+ """Fuses VGGish audio with SAM2 FPN maps via patch embeds, fusion blocks, and projection heads."""
+
+ def __init__(self, hyp_param):
+ self.hyp_param = hyp_param
+ super().__init__()
+ self.vgg = vggish.VGGish(self.hyp_param.audio)
+ if not getattr(self.hyp_param, "train_vggish", False):
+ for p in self.vgg.parameters():
+ p.requires_grad = False
+
+ self.position_encoding_func = PositionEmbeddingSine(num_pos_feats=256, normalize=True, scale=None,
+ temperature=10000)
+
+ # Populated in main.py / inference.py via Hydra compose('auralfuser/architecture.yaml') → hyp_param.aural_fuser
+ if not hasattr(self.hyp_param, "aural_fuser") or self.hyp_param.aural_fuser is None:
+ raise ValueError(
+ "hyp_param.aural_fuser is missing; load it with Hydra compose before constructing AuralFuser."
+ )
+ arch_cfg = self.hyp_param.aural_fuser
+
+ _patch_cfgs = [tuple(i) for i in arch_cfg["patch_cfgs"]]
+ _f_depths = arch_cfg["f_depths"]
+ _block_kw = dict(arch_cfg["block_kw"])
+ _block_kw["norm_layer"] = nn.LayerNorm
+ _one_d_kw = dict(arch_cfg["one_d_kw"])
+ _one_d_kw["norm_layer"] = nn.LayerNorm
+ self.patch_embeds = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=k, stride=s) for k, s in _patch_cfgs
+ )
+
+ self.f_blocks = nn.ModuleList(
+ nn.ModuleList([Block(**_block_kw) for _ in range(n)]) for n in _f_depths
+ )
+
+ self.a_blocks = nn.ModuleList(
+ nn.ModuleList([OneDBlock(**_one_d_kw) for _ in range(3)]) for _ in range(3)
+ )
+
+ self.fusion_modules = nn.ModuleList(
+ AudioVisualFusionModule(in_channels=256, mode='dot') for _ in range(3)
+ )
+ self.smooth_convs = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=1, stride=1, padding=0) for _ in range(2)
+ )
+
+ self.train_proj_v1 = ProjectionHead(dim_in=256, proj_dim=128)
+
+ self.train_proj_a1 = ProjectionHead(dim_in=256, norm_act=nn.BatchNorm1d, conv_layer=nn.Conv1d, proj_dim=128)
+
+ @staticmethod
+ def positionalencoding1d(d_model, length):
+ if d_model % 2 != 0:
+ raise ValueError("Cannot use sin/cos positional encoding with "
+ "odd dim (got dim={:d})".format(d_model))
+ pe = torch.zeros(length, d_model)
+ position = torch.arange(0, length).unsqueeze(1)
+ div_term = torch.exp((torch.arange(0, d_model, 2, dtype=torch.float) *
+ -(math.log(10000.0) / d_model)))
+ pe[:, 0::2] = torch.sin(position.float() * div_term)
+ pe[:, 1::2] = torch.cos(position.float() * div_term)
+
+ return pe
+
+ def forward(self, feature_dicts, spect=None):
+ image_embed_shape = [self.hyp_param.image_embedding_size] * 2
+ H, W = image_embed_shape[0], image_embed_shape[1]
+ d = torch.cat(
+ [
+ self.vgg(spect[:, 0, ...].unsqueeze(1)),
+ self.vgg(spect[:, 1, ...].unsqueeze(1)),
+ ],
+ dim=-1,
+ )
+ length = d.shape[-1]
+ fix_audio_pos = self.positionalencoding1d(length, 1).squeeze().to(spect.device)
+ fpn = list(feature_dicts["backbone_fpn"])
+ patch_embeds = list(self.patch_embeds)
+ f_blocks = list(self.f_blocks)
+ a_blocks = list(self.a_blocks)
+ tpavi = list(self.fusion_modules)
+ smooths = [None, self.smooth_convs[0], self.smooth_convs[1]]
+
+ feats = [None, None, None]
+ d_outputs = []
+
+ for i in range(3):
+ x = fpn[i]
+ x = patch_embeds[i](x)
+ x_pos = self.position_encoding_func(x)
+ x = x.flatten(2).permute(0, 2, 1)
+ x_pos = x_pos.flatten(2).permute(0, 2, 1)
+
+ if i == 0:
+ x = x + x_pos
+ d = d + fix_audio_pos
+ else:
+ x = x + feats[i - 1]
+ x = smooths[i](
+ x.permute(0, 2, 1).reshape(x.shape[0], 256, H, W)
+ ).flatten(2).permute(0, 2, 1)
+ x = x + x_pos
+ d = d + fix_audio_pos
+
+ for blks in f_blocks[i]:
+ x = blks(x, H, W, x_pos)
+ for blks in a_blocks[i]:
+ d = blks(d, fix_audio_pos)
+
+ x = x + x_pos
+ d = d + fix_audio_pos
+ x, d_out, _, _ = tpavi[i](x, H, W, x_pos, d, length)
+ d = d_out
+ feats[i] = x
+ d_outputs.append(d_out)
+
+ a, b, c = feats
+ d1, d2, d3 = d_outputs
+
+ feature_residual = [a, b, c]
+ audio_out = [d1, d2, d3]
+
+ proj_feature_out = [
+ [
+ self.train_proj_v1(a.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ self.train_proj_v1(b.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ self.train_proj_v1(c.permute(0, 2, 1).reshape(-1, 256, *image_embed_shape)),
+ ],
+ [
+ self.train_proj_a1(d1.unsqueeze(-1)),
+ self.train_proj_a1(d2.unsqueeze(-1)),
+ self.train_proj_a1(d3.unsqueeze(-1)),
+ ],
+ ]
+
+ return feature_residual, audio_out, proj_feature_out
+
+
+class AudioVisualFusionModule(nn.Module):
+ def __init__(self, in_channels, inter_channels=None, mode='dot',
+ dimension=3):
+ super().__init__()
+ assert mode == 'dot'
+ self.mode = mode
+ self.dimension = dimension
+
+ self.in_channels = in_channels
+ self.inter_channels = in_channels // 2
+
+ self.align_channel = nn.Conv1d(256, in_channels, kernel_size=1)
+ self.align_channel_back = nn.Conv1d(in_channels, 128, kernel_size=1)
+
+ self.norm_layer = nn.LayerNorm(in_channels)
+
+ if dimension == 3:
+ conv_nd = nn.Conv3d
+ bn = nn.BatchNorm3d
+ elif dimension == 2:
+ conv_nd = nn.Conv2d
+ bn = nn.BatchNorm2d
+ else:
+ conv_nd = nn.Conv1d
+ bn = nn.BatchNorm1d
+
+ self.g = conv_nd(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.W_z = nn.Sequential(
+ conv_nd(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ bn(self.in_channels)
+ )
+ nn.init.constant_(self.W_z[1].weight, 0)
+ nn.init.constant_(self.W_z[1].bias, 0)
+
+ self.W_z2 = nn.Sequential(
+ nn.Conv1d(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ nn.BatchNorm1d(self.in_channels)
+ )
+ nn.init.constant_(self.W_z2[1].weight, 0)
+ nn.init.constant_(self.W_z2[1].bias, 0)
+ self.norm_layer2 = nn.LayerNorm(self.in_channels)
+
+ self.q_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.k_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.v_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.q_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.k_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.v_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+
+ def forward(self, frame, H_x, W_x, tmp1, audio, tmp2):
+ frame = frame.permute(0, 2, 1)
+ frame = frame.reshape(frame.shape[0], frame.shape[1], H_x, W_x)
+ frame = frame.unsqueeze(2)
+ audio = self.align_channel(audio.unsqueeze(-1))
+
+ batch_size, _ = frame.size(0), frame.size(1)
+ q_frame = self.q_frame(frame).reshape(1, -1, self.inter_channels)
+ k_frame = self.k_frame(frame).reshape(1, -1, self.inter_channels)
+ v_frame = self.v_frame(frame).reshape(1, -1, self.inter_channels)
+ q_audio = self.q_audio(audio).reshape(1, -1, self.inter_channels)
+ k_audio = self.k_audio(audio).reshape(1, -1, self.inter_channels)
+ v_audio = self.v_audio(audio).reshape(1, -1, self.inter_channels)
+ f = torch.matmul(q_frame, k_audio.mT)
+ f_normalise = f / f.size(1)
+
+ frame_attn = torch.matmul(f_normalise, v_audio)
+
+ frame_attn = frame_attn.permute(0, 2, 1).contiguous()
+ frame_attn = frame_attn.view(batch_size, self.inter_channels, *frame.size()[2:])
+ frame_attn = self.W_z(frame_attn)
+ frame = frame_attn + frame
+
+ frame = frame.permute(0, 2, 3, 4, 1)
+ frame = self.norm_layer(frame)
+ frame = frame.permute(0, 4, 1, 2, 3)
+ frame = frame.squeeze().flatten(start_dim=2).permute(0, 2, 1)
+
+ a = torch.matmul(q_audio, k_frame.mT)
+ a_normalise = a / a.size(-1)
+
+ audio_attn = torch.matmul(a_normalise, v_frame)
+ audio_attn = audio_attn.permute(0, 2, 1).contiguous()
+
+ audio_attn = audio_attn.view(batch_size, self.inter_channels).unsqueeze(-1)
+ audio_attn = self.W_z2(audio_attn)
+
+ audio = audio_attn + audio
+
+ audio = self.norm_layer2(audio.squeeze()).squeeze()
+
+ return frame, audio, frame_attn, audio_attn
+
+
+class OneDBlock(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = OneDAttention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = OneDMlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop,
+ linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, _pos):
+ x = x + self.drop_path(self.attn(self.norm1(x)))
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+
+ return x
+
+
+class OneDAttention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = x.unsqueeze(0)
+
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ x = x.squeeze()
+ return x
+
+
+class OneDMlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class Block(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = Attention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W, _pos):
+ x = x + self.drop_path(self.attn(self.norm1(x), H, W))
+ x = x + self.drop_path(self.mlp(self.norm2(x), H, W))
+
+ return x
+
+
+class Attention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ if not self.linear:
+ if self.sr_ratio > 1:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(self.pool(x_)).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ x_ = self.act(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ return x
+
+
+class Mlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.dwconv(x, H, W)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class DWConv(nn.Module):
+ def __init__(self, dim=768):
+ super(DWConv, self).__init__()
+ self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, bias=True, groups=dim)
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ x = x.transpose(1, 2).view(B, C, H, W)
+ x = self.dwconv(x)
+ x = x.flatten(2).transpose(1, 2)
+ return x
diff --git a/avs.code/v2.code/model/mymodel.py b/avs.code/v2.code/model/mymodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..35194cd584a4786f713447829592b15c7a366095
--- /dev/null
+++ b/avs.code/v2.code/model/mymodel.py
@@ -0,0 +1,102 @@
+import logging
+
+from typing import List, Optional, Tuple, Union
+
+import numpy
+import numpy as np
+import torch
+from PIL.Image import Image
+
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+
+from model.visual.sam2.modeling.backbones.hieradet import Hiera
+from model.visual.sam2.modeling.backbones.image_encoder import FpnNeck
+from model.visual.sam2.modeling.backbones.image_encoder import ImageEncoder
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+from model.visual.sam2.modeling.memory_attention import MemoryAttention
+from model.visual.sam2.modeling.memory_attention import MemoryAttentionLayer
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+from model.visual.sam2.modeling.memory_encoder import MemoryEncoder
+from model.visual.sam2.modeling.memory_encoder import MaskDownSampler
+from model.visual.sam2.modeling.memory_encoder import Fuser
+from model.visual.sam2.modeling.memory_encoder import CXBlock
+
+from model.visual.sam2.utils.transforms import SAM2Transforms
+from model.visual.sam2.modeling.backbones.hieradet import do_pool
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+
+class AVmodel(torch.nn.Module):
+ """End-to-end AV segmentation: SAM2 visual backbone + AuralFuser audio-visual fusion + tracking head."""
+
+ def __init__(self, param, mask_threshold=0.0, max_hole_area=0.0, max_sprinkle_area=0.0, ):
+ super().__init__()
+ self.param = param
+ self.mask_threshold = mask_threshold
+ self._bb_feat_sizes = [(int(self.param.image_size / 4), int(self.param.image_size / 4)),
+ (int(self.param.image_size / 8), int(self.param.image_size / 8)),
+ (int(self.param.image_size / 16), int(self.param.image_size / 16))]
+
+ from model.visual.sam2.build_sam import build_sam2_visual_predictor
+ self.v_model = build_sam2_visual_predictor(self.param.sam_config_path, self.param.backbone_weight,
+ apply_postprocessing=True, mode='train')
+ self._transforms = SAM2Transforms(
+ resolution=self.v_model.image_size,
+ mask_threshold=mask_threshold,
+ max_hole_area=max_hole_area,
+ max_sprinkle_area=max_sprinkle_area,
+ )
+ from model.aural_fuser import AuralFuser
+ self.aural_fuser = AuralFuser(hyp_param=self.param)
+
+
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.v_model.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.v_model.num_feature_levels:]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.v_model.num_feature_levels:]
+
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def forward_frame(self, frame_):
+ frame = torch.nn.functional.interpolate(frame_, (self.param.image_size, self.param.image_size),
+ antialias=True, align_corners=False, mode='bilinear')
+ return self.v_model.image_encoder(frame)
+
+ def forward(self, frames, spect, prompts, sam_process=False):
+ """Fuse audio into FPN features, then run SAM2 tracking. `sam_process` is reserved for prompt path."""
+ backbone_feats = self.v_model.forward_image(frames, pre_compute=False)
+ audio_residual_feats = self.aural_fuser(backbone_feats, spect)
+ visual_resfeats, audio_resfeats, proj_feats = audio_residual_feats
+
+ map_res = visual_resfeats[::-1]
+ vec_res = audio_resfeats[::-1]
+
+ av_feats = (map_res, vec_res)
+ backbone_feats = self.v_model.precompute_high_res_features(backbone_feats)
+ backbone_feats = self.v_model.dont_prepare_prompt_inputs(backbone_feats, num_frames=frames.shape[0],
+ cond_frame=int(frames.shape[0]/2) if self.training else 0)
+ outputs = self.v_model.forward_tracking_wo_prompt(backbone_feats, audio_res=av_feats)
+ return outputs, proj_feats
+
+ @property
+ def device(self) -> torch.device:
+ return self.v_model.device
+
+ def freeze_sam_parameters(self):
+ self.v_model.eval()
+ for name, parameter in self.v_model.named_parameters():
+ parameter.requires_grad = False
diff --git a/avs.code/v2.code/model/visual/sam2/__init__.py b/avs.code/v2.code/model/visual/sam2/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..46a1cecc55b6fd02a5ce6c66d9cc8a77343156db
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/__init__.py
@@ -0,0 +1,11 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from hydra import initialize_config_module
+from hydra.core.global_hydra import GlobalHydra
+
+if not GlobalHydra.instance().is_initialized():
+ initialize_config_module("configs", version_base="1.2")
diff --git a/avs.code/v2.code/model/visual/sam2/build_sam.py b/avs.code/v2.code/model/visual/sam2/build_sam.py
new file mode 100644
index 0000000000000000000000000000000000000000..69f68c2e672d35d925aeb496cac918c1ee913dde
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/build_sam.py
@@ -0,0 +1,171 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+import os
+
+import torch
+from hydra import compose
+from hydra.utils import instantiate
+from omegaconf import OmegaConf
+'''
+import sam2
+
+# Check if the user is running Python from the parent directory of the sam2 repo
+# (i.e. the directory where this repo is cloned into) -- this is not supported since
+# it could shadow the sam2 package and cause issues.
+if os.path.isdir(os.path.join(sam2.__path__[0], "sam2")):
+ # If the user has "sam2/sam2" in their path, they are likey importing the repo itself
+ # as "sam2" rather than importing the "sam2" python package (i.e. "sam2/sam2" directory).
+ # This typically happens because the user is running Python from the parent directory
+ # that contains the sam2 repo they cloned.
+ raise RuntimeError(
+ "You're likely running Python from the parent directory of the sam2 repository "
+ "(i.e. the directory where https://github.com/facebookresearch/sam2 is cloned into). "
+ "This is not supported since the `sam2` Python package could be shadowed by the "
+ "repository name (the repository is also named `sam2` and contains the Python package "
+ "in `sam2/sam2`). Please run Python from another directory (e.g. from the repo dir "
+ "rather than its parent dir, or from your home directory) after installing SAM 2."
+ )
+'''
+
+HF_MODEL_ID_TO_FILENAMES = {
+ "facebook/sam2-hiera-tiny": (
+ "sam2/sam2_hiera_t.yaml",
+ "sam2_hiera_tiny.pt",
+ ),
+ "facebook/sam2-hiera-small": (
+ "sam2/sam2_hiera_s.yaml",
+ "sam2_hiera_small.pt",
+ ),
+ "facebook/sam2-hiera-base-plus": (
+ "sam2/sam2_hiera_b+.yaml",
+ "sam2_hiera_base_plus.pt",
+ ),
+ "facebook/sam2-hiera-large": (
+ "sam2/sam2_hiera_l.yaml",
+ "sam2_hiera_large.pt",
+ ),
+ "facebook/sam2.1-hiera-tiny": (
+ "sam2.1/sam2.1_hiera_t.yaml",
+ "sam2.1_hiera_tiny.pt",
+ ),
+ "facebook/sam2.1-hiera-small": (
+ "sam2.1/sam2.1_hiera_s.yaml",
+ "sam2.1_hiera_small.pt",
+ ),
+ "facebook/sam2.1-hiera-base-plus": (
+ "sam2.1/sam2.1_hiera_b+.yaml",
+ "sam2.1_hiera_base_plus.pt",
+ ),
+ "facebook/sam2.1-hiera-large": (
+ "sam2.1/sam2.1_hiera_l.yaml",
+ "sam2.1_hiera_large.pt",
+ ),
+}
+
+
+def build_sam2(
+ config_file,
+ ckpt_path=None,
+ device="cuda",
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+ # dynamically fall back to multi-mask if the single mask is not stable
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+ ]
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides_extra)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ model = model.to(device)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def build_sam2_visual_predictor(
+ config_file,
+ ckpt_path=None,
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+ # visual
+ hydra_overrides = []
+ # "++model._target_=model.visual.sam2.organised_sam2_train.SAM2Train",
+ # ]
+ # hydra_overrides = [
+ # "++model._target_=sam2.sam2_video_predictor.SAM2VideoPredictor",
+ # ]
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+
+ # dynamically fall back to multi-mask if the single mask is not stable
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+
+ # the sigmoid mask logits on interacted frames with clicks in the memory encoder so that the encoded masks are exactly as what users see from clicking
+ "++model.binarize_mask_from_pts_for_mem_enc=true",
+ # fill small holes in the low-res masks up to `fill_hole_area` (before resizing them to the original video resolution)
+ # "++model.fill_hole_area=8",
+ ]
+ hydra_overrides.extend(hydra_overrides_extra)
+
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def _hf_download(model_id):
+ from huggingface_hub import hf_hub_download
+
+ config_name, checkpoint_name = HF_MODEL_ID_TO_FILENAMES[model_id]
+ ckpt_path = hf_hub_download(repo_id=model_id, filename=checkpoint_name)
+ return config_name, ckpt_path
+
+
+def build_sam2_hf(model_id, **kwargs):
+ config_name, ckpt_path = _hf_download(model_id)
+ return build_sam2(config_file=config_name, ckpt_path=ckpt_path, **kwargs)
+
+
+# def build_sam2_video_predictor_hf(model_id, **kwargs):
+# config_name, ckpt_path = _hf_download(model_id)
+# return build_sam2_video_predictor(
+# config_file=config_name, ckpt_path=ckpt_path, **kwargs
+# )
+
+
+def _load_checkpoint(model, ckpt_path):
+ if ckpt_path is not None:
+ sd = torch.load(ckpt_path, map_location="cpu", weights_only=True)["model"]
+ missing_keys, unexpected_keys = model.load_state_dict(sd)
+ if missing_keys:
+ logging.error(missing_keys)
+ raise RuntimeError()
+ if unexpected_keys:
+ logging.error(unexpected_keys)
+ raise RuntimeError()
+ logging.info("Loaded checkpoint sucessfully")
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/__init__.py b/avs.code/v2.code/model/visual/sam2/modeling/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/backbones/__init__.py b/avs.code/v2.code/model/visual/sam2/modeling/backbones/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/backbones/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/backbones/hieradet.py b/avs.code/v2.code/model/visual/sam2/modeling/backbones/hieradet.py
new file mode 100644
index 0000000000000000000000000000000000000000..3fb6633c9c752cbefe2fc6043c81fb79bc659465
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/backbones/hieradet.py
@@ -0,0 +1,317 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+from functools import partial
+from typing import List, Tuple, Union
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from iopath.common.file_io import g_pathmgr
+
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, MLP
+
+
+def do_pool(x: torch.Tensor, pool: nn.Module, norm: nn.Module = None) -> torch.Tensor:
+ if pool is None:
+ return x
+ # (B, H, W, C) -> (B, C, H, W)
+ x = x.permute(0, 3, 1, 2)
+ x = pool(x)
+ # (B, C, H', W') -> (B, H', W', C)
+ x = x.permute(0, 2, 3, 1)
+ if norm:
+ x = norm(x)
+
+ return x
+
+
+class MultiScaleAttention(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ q_pool: nn.Module = None,
+ ):
+ super().__init__()
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.num_heads = num_heads
+ self.q_pool = q_pool
+ self.qkv = nn.Linear(dim, dim_out * 3)
+ self.proj = nn.Linear(dim_out, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ B, H, W, _ = x.shape
+ # qkv with shape (B, H * W, 3, nHead, C)
+ qkv = self.qkv(x).reshape(B, H * W, 3, self.num_heads, -1)
+ # q, k, v with shape (B, H * W, nheads, C)
+ q, k, v = torch.unbind(qkv, 2)
+
+ # Q pooling (for downsample at stage changes)
+ if self.q_pool:
+ q = do_pool(q.reshape(B, H, W, -1), self.q_pool)
+ H, W = q.shape[1:3] # downsampled shape
+ q = q.reshape(B, H * W, self.num_heads, -1)
+
+ # Torch's SDPA expects [B, nheads, H*W, C] so we transpose
+ x = F.scaled_dot_product_attention(
+ q.transpose(1, 2),
+ k.transpose(1, 2),
+ v.transpose(1, 2),
+ )
+ # Transpose back
+ x = x.transpose(1, 2)
+ x = x.reshape(B, H, W, -1)
+
+ x = self.proj(x)
+
+ return x
+
+
+class MultiScaleBlock(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ mlp_ratio: float = 4.0,
+ drop_path: float = 0.0,
+ norm_layer: Union[nn.Module, str] = "LayerNorm",
+ q_stride: Tuple[int, int] = None,
+ act_layer: nn.Module = nn.GELU,
+ window_size: int = 0,
+ ):
+ super().__init__()
+
+ if isinstance(norm_layer, str):
+ norm_layer = partial(getattr(nn, norm_layer), eps=1e-6)
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.norm1 = norm_layer(dim)
+
+ self.window_size = window_size
+
+ self.pool, self.q_stride = None, q_stride
+ if self.q_stride:
+ self.pool = nn.MaxPool2d(
+ kernel_size=q_stride, stride=q_stride, ceil_mode=False
+ )
+
+ self.attn = MultiScaleAttention(
+ dim,
+ dim_out,
+ num_heads=num_heads,
+ q_pool=self.pool,
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ self.norm2 = norm_layer(dim_out)
+ self.mlp = MLP(
+ dim_out,
+ int(dim_out * mlp_ratio),
+ dim_out,
+ num_layers=2,
+ activation=act_layer,
+ )
+
+ if dim != dim_out:
+ self.proj = nn.Linear(dim, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ shortcut = x # B, H, W, C
+ x = self.norm1(x)
+
+ # Skip connection
+ if self.dim != self.dim_out:
+ shortcut = do_pool(self.proj(x), self.pool)
+
+ # Window partition
+ window_size = self.window_size
+ if window_size > 0:
+ H, W = x.shape[1], x.shape[2]
+ x, pad_hw = window_partition(x, window_size)
+
+ # Window Attention + Q Pooling (if stage change)
+ x = self.attn(x)
+ if self.q_stride:
+ # Shapes have changed due to Q pooling
+ window_size = self.window_size // self.q_stride[0]
+ H, W = shortcut.shape[1:3]
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ pad_hw = (H + pad_h, W + pad_w)
+
+ # Reverse window partition
+ if self.window_size > 0:
+ x = window_unpartition(x, window_size, pad_hw, (H, W))
+
+ x = shortcut + self.drop_path(x)
+ # MLP
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+ return x
+
+
+class Hiera(nn.Module):
+ """
+ Reference: https://arxiv.org/abs/2306.00989
+ """
+
+ def __init__(
+ self,
+ embed_dim: int = 96, # initial embed dim
+ num_heads: int = 1, # initial number of heads
+ drop_path_rate: float = 0.0, # stochastic depth
+ q_pool: int = 3, # number of q_pool stages
+ q_stride: Tuple[int, int] = (2, 2), # downsample stride bet. stages
+ stages: Tuple[int, ...] = (2, 3, 16, 3), # blocks per stage
+ dim_mul: float = 2.0, # dim_mul factor at stage shift
+ head_mul: float = 2.0, # head_mul factor at stage shift
+ window_pos_embed_bkg_spatial_size: Tuple[int, int] = (14, 14),
+ # window size per stage, when not using global att.
+ window_spec: Tuple[int, ...] = (
+ 8,
+ 4,
+ 14,
+ 7,
+ ),
+ # global attn in these blocks
+ global_att_blocks: Tuple[int, ...] = (
+ 12,
+ 16,
+ 20,
+ ),
+ weights_path=None,
+ return_interm_layers=True, # return feats from every stage
+ ):
+ super().__init__()
+
+ assert len(stages) == len(window_spec)
+ self.window_spec = window_spec
+
+ depth = sum(stages)
+ self.q_stride = q_stride
+ self.stage_ends = [sum(stages[:i]) - 1 for i in range(1, len(stages) + 1)]
+ assert 0 <= q_pool <= len(self.stage_ends[:-1])
+ self.q_pool_blocks = [x + 1 for x in self.stage_ends[:-1]][:q_pool]
+ self.return_interm_layers = return_interm_layers
+
+ self.patch_embed = PatchEmbed(
+ embed_dim=embed_dim,
+ )
+ # Which blocks have global att?
+ self.global_att_blocks = global_att_blocks
+
+ # Windowed positional embedding (https://arxiv.org/abs/2311.05613)
+ self.window_pos_embed_bkg_spatial_size = window_pos_embed_bkg_spatial_size
+ self.pos_embed = nn.Parameter(
+ torch.zeros(1, embed_dim, *self.window_pos_embed_bkg_spatial_size)
+ )
+ self.pos_embed_window = nn.Parameter(
+ torch.zeros(1, embed_dim, self.window_spec[0], self.window_spec[0])
+ )
+
+ dpr = [
+ x.item() for x in torch.linspace(0, drop_path_rate, depth)
+ ] # stochastic depth decay rule
+
+ cur_stage = 1
+ self.blocks = nn.ModuleList()
+
+ for i in range(depth):
+ dim_out = embed_dim
+ # lags by a block, so first block of
+ # next stage uses an initial window size
+ # of previous stage and final window size of current stage
+ window_size = self.window_spec[cur_stage - 1]
+
+ if self.global_att_blocks is not None:
+ window_size = 0 if i in self.global_att_blocks else window_size
+
+ if i - 1 in self.stage_ends:
+ dim_out = int(embed_dim * dim_mul)
+ num_heads = int(num_heads * head_mul)
+ cur_stage += 1
+
+ block = MultiScaleBlock(
+ dim=embed_dim,
+ dim_out=dim_out,
+ num_heads=num_heads,
+ drop_path=dpr[i],
+ q_stride=self.q_stride if i in self.q_pool_blocks else None,
+ window_size=window_size,
+ )
+
+ embed_dim = dim_out
+ self.blocks.append(block)
+
+ self.channel_list = (
+ [self.blocks[i].dim_out for i in self.stage_ends[::-1]]
+ if return_interm_layers
+ else [self.blocks[-1].dim_out]
+ )
+
+ if weights_path is not None:
+ with g_pathmgr.open(weights_path, "rb") as f:
+ chkpt = torch.load(f, map_location="cpu")
+ logging.info("loading Hiera", self.load_state_dict(chkpt, strict=False))
+
+ def _get_pos_embed(self, hw: Tuple[int, int]) -> torch.Tensor:
+ h, w = hw
+ window_embed = self.pos_embed_window
+ pos_embed = F.interpolate(self.pos_embed, size=(h, w), mode="bicubic")
+ pos_embed = pos_embed + window_embed.tile(
+ [x // y for x, y in zip(pos_embed.shape, window_embed.shape)]
+ )
+ pos_embed = pos_embed.permute(0, 2, 3, 1)
+ return pos_embed
+
+ def forward(self, x: torch.Tensor) -> List[torch.Tensor]:
+ x = self.patch_embed(x)
+ # x: (B, H, W, C)
+
+ # Add pos embed
+ x = x + self._get_pos_embed(x.shape[1:3])
+
+ outputs = []
+ for i, blk in enumerate(self.blocks):
+ x = blk(x)
+ if (i == self.stage_ends[-1]) or (
+ i in self.stage_ends and self.return_interm_layers
+ ):
+ feats = x.permute(0, 3, 1, 2)
+ outputs.append(feats)
+
+ return outputs
+
+ def get_layer_id(self, layer_name):
+ # https://github.com/microsoft/unilm/blob/master/beit/optim_factory.py#L33
+ num_layers = self.get_num_layers()
+
+ if layer_name.find("rel_pos") != -1:
+ return num_layers + 1
+ elif layer_name.find("pos_embed") != -1:
+ return 0
+ elif layer_name.find("patch_embed") != -1:
+ return 0
+ elif layer_name.find("blocks") != -1:
+ return int(layer_name.split("blocks")[1].split(".")[1]) + 1
+ else:
+ return num_layers + 1
+
+ def get_num_layers(self) -> int:
+ return len(self.blocks)
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/backbones/image_encoder.py b/avs.code/v2.code/model/visual/sam2/modeling/backbones/image_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..37e9266bc98596e97ca303118c910ed24f6cee2c
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/backbones/image_encoder.py
@@ -0,0 +1,134 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+class ImageEncoder(nn.Module):
+ def __init__(
+ self,
+ trunk: nn.Module,
+ neck: nn.Module,
+ scalp: int = 0,
+ ):
+ super().__init__()
+ self.trunk = trunk
+ self.neck = neck
+ self.scalp = scalp
+ assert (
+ self.trunk.channel_list == self.neck.backbone_channel_list
+ ), f"Channel dims of trunk and neck do not match. Trunk: {self.trunk.channel_list}, neck: {self.neck.backbone_channel_list}"
+
+ def forward(self, sample: torch.Tensor):
+ # Forward through backbone
+ features, pos = self.neck(self.trunk(sample))
+ if self.scalp > 0:
+ # Discard the lowest resolution features
+ features, pos = features[: -self.scalp], pos[: -self.scalp]
+
+ src = features[-1]
+ output = {
+ "vision_features": src,
+ "vision_pos_enc": pos,
+ "backbone_fpn": features,
+ }
+ return output
+
+
+class FpnNeck(nn.Module):
+ """
+ A modified variant of Feature Pyramid Network (FPN) neck
+ (we remove output conv and also do bicubic interpolation similar to ViT
+ pos embed interpolation)
+ """
+
+ def __init__(
+ self,
+ position_encoding: nn.Module,
+ d_model: int,
+ backbone_channel_list: List[int],
+ kernel_size: int = 1,
+ stride: int = 1,
+ padding: int = 0,
+ fpn_interp_model: str = "bilinear",
+ fuse_type: str = "sum",
+ fpn_top_down_levels: Optional[List[int]] = None,
+ ):
+ """Initialize the neck
+ :param trunk: the backbone
+ :param position_encoding: the positional encoding to use
+ :param d_model: the dimension of the model
+ :param neck_norm: the normalization to use
+ """
+ super().__init__()
+ self.position_encoding = position_encoding
+ self.convs = nn.ModuleList()
+ self.backbone_channel_list = backbone_channel_list
+ self.d_model = d_model
+ for dim in backbone_channel_list:
+ current = nn.Sequential()
+ current.add_module(
+ "conv",
+ nn.Conv2d(
+ in_channels=dim,
+ out_channels=d_model,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ ),
+ )
+
+ self.convs.append(current)
+ self.fpn_interp_model = fpn_interp_model
+ assert fuse_type in ["sum", "avg"]
+ self.fuse_type = fuse_type
+
+ # levels to have top-down features in its outputs
+ # e.g. if fpn_top_down_levels is [2, 3], then only outputs of level 2 and 3
+ # have top-down propagation, while outputs of level 0 and level 1 have only
+ # lateral features from the same backbone level.
+ if fpn_top_down_levels is None:
+ # default is to have top-down features on all levels
+ fpn_top_down_levels = range(len(self.convs))
+ self.fpn_top_down_levels = list(fpn_top_down_levels)
+
+ def forward(self, xs: List[torch.Tensor]):
+
+ out = [None] * len(self.convs)
+ pos = [None] * len(self.convs)
+ assert len(xs) == len(self.convs)
+ # fpn forward pass
+ # see https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/backbone/fpn.py
+ prev_features = None
+ # forward in top-down order (from low to high resolution)
+ n = len(self.convs) - 1
+ for i in range(n, -1, -1):
+ x = xs[i]
+ lateral_features = self.convs[n - i](x)
+ if i in self.fpn_top_down_levels and prev_features is not None:
+ top_down_features = F.interpolate(
+ prev_features.to(dtype=torch.float32),
+ scale_factor=2.0,
+ mode=self.fpn_interp_model,
+ align_corners=(
+ None if self.fpn_interp_model == "nearest" else False
+ ),
+ antialias=False,
+ )
+ prev_features = lateral_features + top_down_features
+ if self.fuse_type == "avg":
+ prev_features /= 2
+ else:
+ prev_features = lateral_features
+ x_out = prev_features
+ out[i] = x_out
+ pos[i] = self.position_encoding(x_out).to(x_out.dtype)
+
+ return out, pos
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/backbones/utils.py b/avs.code/v2.code/model/visual/sam2/modeling/backbones/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..32d55c7545f064de133a5ff0200ba1ece9b504b7
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/backbones/utils.py
@@ -0,0 +1,95 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""Some utilities for backbones, in particular for windowing"""
+
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+def window_partition(x, window_size):
+ """
+ Partition into non-overlapping windows with padding if needed.
+ Args:
+ x (tensor): input tokens with [B, H, W, C].
+ window_size (int): window size.
+ Returns:
+ windows: windows after partition with [B * num_windows, window_size, window_size, C].
+ (Hp, Wp): padded height and width before partition
+ """
+ B, H, W, C = x.shape
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ if pad_h > 0 or pad_w > 0:
+ x = F.pad(x, (0, 0, 0, pad_w, 0, pad_h))
+ Hp, Wp = H + pad_h, W + pad_w
+
+ x = x.view(B, Hp // window_size, window_size, Wp // window_size, window_size, C)
+ windows = (
+ x.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, C)
+ )
+ return windows, (Hp, Wp)
+
+
+def window_unpartition(windows, window_size, pad_hw, hw):
+ """
+ Window unpartition into original sequences and removing padding.
+ Args:
+ x (tensor): input tokens with [B * num_windows, window_size, window_size, C].
+ window_size (int): window size.
+ pad_hw (Tuple): padded height and width (Hp, Wp).
+ hw (Tuple): original height and width (H, W) before padding.
+ Returns:
+ x: unpartitioned sequences with [B, H, W, C].
+ """
+ Hp, Wp = pad_hw
+ H, W = hw
+ B = windows.shape[0] // (Hp * Wp // window_size // window_size)
+ x = windows.view(
+ B, Hp // window_size, Wp // window_size, window_size, window_size, -1
+ )
+ x = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(B, Hp, Wp, -1)
+
+ if Hp > H or Wp > W:
+ x = x[:, :H, :W, :].contiguous()
+ return x
+
+
+class PatchEmbed(nn.Module):
+ """
+ Image to Patch Embedding.
+ """
+
+ def __init__(
+ self,
+ kernel_size: Tuple[int, ...] = (7, 7),
+ stride: Tuple[int, ...] = (4, 4),
+ padding: Tuple[int, ...] = (3, 3),
+ in_chans: int = 3,
+ embed_dim: int = 768,
+ ):
+ """
+ Args:
+ kernel_size (Tuple): kernel size of the projection layer.
+ stride (Tuple): stride of the projection layer.
+ padding (Tuple): padding size of the projection layer.
+ in_chans (int): Number of input image channels.
+ embed_dim (int): embed_dim (int): Patch embedding dimension.
+ """
+ super().__init__()
+ self.proj = nn.Conv2d(
+ in_chans, embed_dim, kernel_size=kernel_size, stride=stride, padding=padding
+ )
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = self.proj(x)
+ # B C H W -> B H W C
+ x = x.permute(0, 2, 3, 1)
+ return x
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/memory_attention.py b/avs.code/v2.code/model/visual/sam2/modeling/memory_attention.py
new file mode 100644
index 0000000000000000000000000000000000000000..11f4ccb1904f022c18f8a02b9590a66bd57bb8f1
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/memory_attention.py
@@ -0,0 +1,169 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional
+
+import torch
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+
+from model.visual.sam2.modeling.sam2_utils import get_activation_fn, get_clones
+
+
+class MemoryAttentionLayer(nn.Module):
+
+ def __init__(
+ self,
+ activation: str,
+ cross_attention: nn.Module,
+ d_model: int,
+ dim_feedforward: int,
+ dropout: float,
+ pos_enc_at_attn: bool,
+ pos_enc_at_cross_attn_keys: bool,
+ pos_enc_at_cross_attn_queries: bool,
+ self_attention: nn.Module,
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.dim_feedforward = dim_feedforward
+ self.dropout_value = dropout
+ self.self_attn = self_attention
+ self.cross_attn_image = cross_attention
+
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm1 = nn.LayerNorm(d_model)
+ self.norm2 = nn.LayerNorm(d_model)
+ self.norm3 = nn.LayerNorm(d_model)
+ self.dropout1 = nn.Dropout(dropout)
+ self.dropout2 = nn.Dropout(dropout)
+ self.dropout3 = nn.Dropout(dropout)
+
+ self.activation_str = activation
+ self.activation = get_activation_fn(activation)
+
+ # Where to add pos enc
+ self.pos_enc_at_attn = pos_enc_at_attn
+ self.pos_enc_at_cross_attn_queries = pos_enc_at_cross_attn_queries
+ self.pos_enc_at_cross_attn_keys = pos_enc_at_cross_attn_keys
+
+ def _forward_sa(self, tgt, query_pos):
+ # Self-Attention
+ tgt2 = self.norm1(tgt)
+ q = k = tgt2 + query_pos if self.pos_enc_at_attn else tgt2
+ tgt2 = self.self_attn(q, k, v=tgt2)
+ tgt = tgt + self.dropout1(tgt2)
+ return tgt
+
+ def _forward_ca(self, tgt, memory, query_pos, pos, num_k_exclude_rope=0):
+ kwds = {}
+ if num_k_exclude_rope > 0:
+ assert isinstance(self.cross_attn_image, RoPEAttention)
+ kwds = {"num_k_exclude_rope": num_k_exclude_rope}
+
+ # Cross-Attention
+ tgt2 = self.norm2(tgt)
+ tgt2 = self.cross_attn_image(
+ q=tgt2 + query_pos if self.pos_enc_at_cross_attn_queries else tgt2,
+ k=memory + pos if self.pos_enc_at_cross_attn_keys else memory,
+ v=memory,
+ **kwds,
+ )
+ tgt = tgt + self.dropout2(tgt2)
+ return tgt
+
+ def forward(
+ self,
+ tgt,
+ memory,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ num_k_exclude_rope: int = 0,
+ ) -> torch.Tensor:
+
+ # Self-Attn, Cross-Attn
+ tgt = self._forward_sa(tgt, query_pos)
+ tgt = self._forward_ca(tgt, memory, query_pos, pos, num_k_exclude_rope)
+ # MLP
+ tgt2 = self.norm3(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout3(tgt2)
+ return tgt
+
+
+class MemoryAttention(nn.Module):
+ def __init__(
+ self,
+ d_model: int,
+ pos_enc_at_input: bool,
+ layer: nn.Module,
+ num_layers: int,
+ batch_first: bool = True, # Do layers expect batch first input?
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.layers = get_clones(layer, num_layers)
+ self.num_layers = num_layers
+ self.norm = nn.LayerNorm(d_model)
+ self.pos_enc_at_input = pos_enc_at_input
+ self.batch_first = batch_first
+
+ def forward(
+ self,
+ curr: torch.Tensor, # self-attention inputs
+ memory: torch.Tensor, # cross-attention inputs
+ curr_pos: Optional[Tensor] = None, # pos_enc for self-attention inputs
+ memory_pos: Optional[Tensor] = None, # pos_enc for cross-attention inputs
+ num_obj_ptr_tokens: int = 0, # number of object pointer *tokens*
+ ):
+ if isinstance(curr, list):
+ assert isinstance(curr_pos, list)
+ assert len(curr) == len(curr_pos) == 1
+ curr, curr_pos = (
+ curr[0],
+ curr_pos[0],
+ )
+
+ assert (
+ curr.shape[1] == memory.shape[1]
+ ), "Batch size must be the same for curr and memory"
+
+ output = curr
+ if self.pos_enc_at_input and curr_pos is not None:
+ output = output + 0.1 * curr_pos
+
+ if self.batch_first:
+ # Convert to batch first
+ output = output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+ memory = memory.transpose(0, 1)
+ memory_pos = memory_pos.transpose(0, 1)
+
+ for layer in self.layers:
+ kwds = {}
+ if isinstance(layer.cross_attn_image, RoPEAttention):
+ kwds = {"num_k_exclude_rope": num_obj_ptr_tokens}
+
+ output = layer(
+ tgt=output,
+ memory=memory,
+ pos=memory_pos,
+ query_pos=curr_pos,
+ **kwds,
+ )
+ normed_output = self.norm(output)
+
+ if self.batch_first:
+ # Convert back to seq first
+ normed_output = normed_output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+
+ return normed_output
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/memory_encoder.py b/avs.code/v2.code/model/visual/sam2/modeling/memory_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e1143cc0d5774ff96108203e404f678f14b0a23
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/memory_encoder.py
@@ -0,0 +1,181 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, get_clones, LayerNorm2d
+
+
+class MaskDownSampler(nn.Module):
+ """
+ Progressively downsample a mask by total_stride, each time by stride.
+ Note that LayerNorm is applied per *token*, like in ViT.
+
+ With each downsample (by a factor stride**2), channel capacity increases by the same factor.
+ In the end, we linearly project to embed_dim channels.
+ """
+
+ def __init__(
+ self,
+ embed_dim=256,
+ kernel_size=4,
+ stride=4,
+ padding=0,
+ total_stride=16,
+ activation=nn.GELU,
+ ):
+ super().__init__()
+ num_layers = int(math.log2(total_stride) // math.log2(stride))
+ assert stride**num_layers == total_stride
+ self.encoder = nn.Sequential()
+ mask_in_chans, mask_out_chans = 1, 1
+ for _ in range(num_layers):
+ mask_out_chans = mask_in_chans * (stride**2)
+ self.encoder.append(
+ nn.Conv2d(
+ mask_in_chans,
+ mask_out_chans,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ )
+ )
+ self.encoder.append(LayerNorm2d(mask_out_chans))
+ self.encoder.append(activation())
+ mask_in_chans = mask_out_chans
+
+ self.encoder.append(nn.Conv2d(mask_out_chans, embed_dim, kernel_size=1))
+
+ def forward(self, x):
+ return self.encoder(x)
+
+
+# Lightly adapted from ConvNext (https://github.com/facebookresearch/ConvNeXt)
+class CXBlock(nn.Module):
+ r"""ConvNeXt Block. There are two equivalent implementations:
+ (1) DwConv -> LayerNorm (channels_first) -> 1x1 Conv -> GELU -> 1x1 Conv; all in (N, C, H, W)
+ (2) DwConv -> Permute to (N, H, W, C); LayerNorm (channels_last) -> Linear -> GELU -> Linear; Permute back
+ We use (2) as we find it slightly faster in PyTorch
+
+ Args:
+ dim (int): Number of input channels.
+ drop_path (float): Stochastic depth rate. Default: 0.0
+ layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
+ """
+
+ def __init__(
+ self,
+ dim,
+ kernel_size=7,
+ padding=3,
+ drop_path=0.0,
+ layer_scale_init_value=1e-6,
+ use_dwconv=True,
+ ):
+ super().__init__()
+ self.dwconv = nn.Conv2d(
+ dim,
+ dim,
+ kernel_size=kernel_size,
+ padding=padding,
+ groups=dim if use_dwconv else 1,
+ ) # depthwise conv
+ self.norm = LayerNorm2d(dim, eps=1e-6)
+ self.pwconv1 = nn.Linear(
+ dim, 4 * dim
+ ) # pointwise/1x1 convs, implemented with linear layers
+ self.act = nn.GELU()
+ self.pwconv2 = nn.Linear(4 * dim, dim)
+ self.gamma = (
+ nn.Parameter(layer_scale_init_value * torch.ones((dim)), requires_grad=True)
+ if layer_scale_init_value > 0
+ else None
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ def forward(self, x):
+ input = x
+ x = self.dwconv(x)
+ x = self.norm(x)
+ x = x.permute(0, 2, 3, 1) # (N, C, H, W) -> (N, H, W, C)
+ x = self.pwconv1(x)
+ x = self.act(x)
+ x = self.pwconv2(x)
+ if self.gamma is not None:
+ x = self.gamma * x
+ x = x.permute(0, 3, 1, 2) # (N, H, W, C) -> (N, C, H, W)
+
+ x = input + self.drop_path(x)
+ return x
+
+
+class Fuser(nn.Module):
+ def __init__(self, layer, num_layers, dim=None, input_projection=False):
+ super().__init__()
+ self.proj = nn.Identity()
+ self.layers = get_clones(layer, num_layers)
+
+ if input_projection:
+ assert dim is not None
+ self.proj = nn.Conv2d(dim, dim, kernel_size=1)
+
+ def forward(self, x):
+ # normally x: (N, C, H, W)
+ x = self.proj(x)
+ for layer in self.layers:
+ x = layer(x)
+ return x
+
+
+class MemoryEncoder(nn.Module):
+ def __init__(
+ self,
+ out_dim,
+ mask_downsampler,
+ fuser,
+ position_encoding,
+ in_dim=256, # in_dim of pix_feats
+ ):
+ super().__init__()
+
+ self.mask_downsampler = mask_downsampler
+
+ self.pix_feat_proj = nn.Conv2d(in_dim, in_dim, kernel_size=1)
+ self.fuser = fuser
+ self.position_encoding = position_encoding
+ self.out_proj = nn.Identity()
+ if out_dim != in_dim:
+ self.out_proj = nn.Conv2d(in_dim, out_dim, kernel_size=1)
+
+ def forward(
+ self,
+ pix_feat: torch.Tensor,
+ masks: torch.Tensor,
+ skip_mask_sigmoid: bool = False,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ ## Process masks
+ # sigmoid, so that less domain shift from gt masks which are bool
+ if not skip_mask_sigmoid:
+ masks = F.sigmoid(masks)
+ masks = self.mask_downsampler(masks)
+
+ ## Fuse pix_feats and downsampled masks
+ # in case the visual features are on CPU, cast them to CUDA
+ pix_feat = pix_feat.to(masks.device)
+
+ x = self.pix_feat_proj(pix_feat)
+ x = x + masks
+ x = self.fuser(x)
+ x = self.out_proj(x)
+
+ pos = self.position_encoding(x).to(x.dtype)
+
+ return {"vision_features": x, "vision_pos_enc": [pos]}
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/position_encoding.py b/avs.code/v2.code/model/visual/sam2/modeling/position_encoding.py
new file mode 100644
index 0000000000000000000000000000000000000000..52ac22674d5d4fdd9e83b6bdf034bff56d04bc0d
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/position_encoding.py
@@ -0,0 +1,221 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Any, Optional, Tuple
+
+import numpy as np
+
+import torch
+from torch import nn
+
+
+class PositionEmbeddingSine(nn.Module):
+ """
+ This is a more standard version of the position embedding, very similar to the one
+ used by the Attention Is All You Need paper, generalized to work on images.
+ """
+
+ def __init__(
+ self,
+ num_pos_feats,
+ temperature: int = 10000,
+ normalize: bool = True,
+ scale: Optional[float] = None,
+ ):
+ super().__init__()
+ assert num_pos_feats % 2 == 0, "Expecting even model width"
+ self.num_pos_feats = num_pos_feats // 2
+ self.temperature = temperature
+ self.normalize = normalize
+ if scale is not None and normalize is False:
+ raise ValueError("normalize should be True if scale is passed")
+ if scale is None:
+ scale = 2 * math.pi
+ self.scale = scale
+
+ self.cache = {}
+
+ def _encode_xy(self, x, y):
+ # The positions are expected to be normalized
+ assert len(x) == len(y) and x.ndim == y.ndim == 1
+ x_embed = x * self.scale
+ y_embed = y * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, None] / dim_t
+ pos_y = y_embed[:, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, 0::2].sin(), pos_x[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ pos_y = torch.stack(
+ (pos_y[:, 0::2].sin(), pos_y[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ return pos_x, pos_y
+
+ @torch.no_grad()
+ def encode_boxes(self, x, y, w, h):
+ pos_x, pos_y = self._encode_xy(x, y)
+ pos = torch.cat((pos_y, pos_x, h[:, None], w[:, None]), dim=1)
+ return pos
+
+ encode = encode_boxes # Backwards compatibility
+
+ @torch.no_grad()
+ def encode_points(self, x, y, labels):
+ (bx, nx), (by, ny), (bl, nl) = x.shape, y.shape, labels.shape
+ assert bx == by and nx == ny and bx == bl and nx == nl
+ pos_x, pos_y = self._encode_xy(x.flatten(), y.flatten())
+ pos_x, pos_y = pos_x.reshape(bx, nx, -1), pos_y.reshape(by, ny, -1)
+ pos = torch.cat((pos_y, pos_x, labels[:, :, None]), dim=2)
+ return pos
+
+ @torch.no_grad()
+ def forward(self, x: torch.Tensor):
+ cache_key = (x.shape[-2], x.shape[-1])
+ if cache_key in self.cache:
+ return self.cache[cache_key][None].repeat(x.shape[0], 1, 1, 1)
+ y_embed = (
+ torch.arange(1, x.shape[-2] + 1, dtype=torch.float32, device=x.device)
+ .view(1, -1, 1)
+ .repeat(x.shape[0], 1, x.shape[-1])
+ )
+ x_embed = (
+ torch.arange(1, x.shape[-1] + 1, dtype=torch.float32, device=x.device)
+ .view(1, 1, -1)
+ .repeat(x.shape[0], x.shape[-2], 1)
+ )
+
+ if self.normalize:
+ eps = 1e-6
+ y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
+ x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, :, :, None] / dim_t
+ pos_y = y_embed[:, :, :, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos_y = torch.stack(
+ (pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
+ self.cache[cache_key] = pos[0]
+ return pos
+
+
+class PositionEmbeddingRandom(nn.Module):
+ """
+ Positional encoding using random spatial frequencies.
+ """
+
+ def __init__(self, num_pos_feats: int = 64, scale: Optional[float] = None) -> None:
+ super().__init__()
+ if scale is None or scale <= 0.0:
+ scale = 1.0
+ self.register_buffer(
+ "positional_encoding_gaussian_matrix",
+ scale * torch.randn((2, num_pos_feats)),
+ )
+
+ def _pe_encoding(self, coords: torch.Tensor) -> torch.Tensor:
+ """Positionally encode points that are normalized to [0,1]."""
+ # assuming coords are in [0, 1]^2 square and have d_1 x ... x d_n x 2 shape
+ coords = 2 * coords - 1
+ coords = coords @ self.positional_encoding_gaussian_matrix
+ coords = 2 * np.pi * coords
+ # outputs d_1 x ... x d_n x C shape
+ return torch.cat([torch.sin(coords), torch.cos(coords)], dim=-1)
+
+ def forward(self, size: Tuple[int, int]) -> torch.Tensor:
+ """Generate positional encoding for a grid of the specified size."""
+ h, w = size
+ device: Any = self.positional_encoding_gaussian_matrix.device
+ grid = torch.ones((h, w), device=device, dtype=torch.float32)
+ y_embed = grid.cumsum(dim=0) - 0.5
+ x_embed = grid.cumsum(dim=1) - 0.5
+ y_embed = y_embed / h
+ x_embed = x_embed / w
+
+ pe = self._pe_encoding(torch.stack([x_embed, y_embed], dim=-1))
+ return pe.permute(2, 0, 1) # C x H x W
+
+ def forward_with_coords(
+ self, coords_input: torch.Tensor, image_size: Tuple[int, int]
+ ) -> torch.Tensor:
+ """Positionally encode points that are not normalized to [0,1]."""
+ coords = coords_input.clone()
+ coords[:, :, 0] = coords[:, :, 0] / image_size[1]
+ coords[:, :, 1] = coords[:, :, 1] / image_size[0]
+ return self._pe_encoding(coords.to(torch.float)) # B x N x C
+
+
+# Rotary Positional Encoding, adapted from:
+# 1. https://github.com/meta-llama/codellama/blob/main/llama/model.py
+# 2. https://github.com/naver-ai/rope-vit
+# 3. https://github.com/lucidrains/rotary-embedding-torch
+
+
+def init_t_xy(end_x: int, end_y: int):
+ t = torch.arange(end_x * end_y, dtype=torch.float32)
+ t_x = (t % end_x).float()
+ t_y = torch.div(t, end_x, rounding_mode="floor").float()
+ return t_x, t_y
+
+
+def compute_axial_cis(dim: int, end_x: int, end_y: int, theta: float = 10000.0):
+ freqs_x = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+ freqs_y = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+
+ t_x, t_y = init_t_xy(end_x, end_y)
+ freqs_x = torch.outer(t_x, freqs_x)
+ freqs_y = torch.outer(t_y, freqs_y)
+ freqs_cis_x = torch.polar(torch.ones_like(freqs_x), freqs_x)
+ freqs_cis_y = torch.polar(torch.ones_like(freqs_y), freqs_y)
+ return torch.cat([freqs_cis_x, freqs_cis_y], dim=-1)
+
+
+def reshape_for_broadcast(freqs_cis: torch.Tensor, x: torch.Tensor):
+ ndim = x.ndim
+ assert 0 <= 1 < ndim
+ assert freqs_cis.shape == (x.shape[-2], x.shape[-1])
+ shape = [d if i >= ndim - 2 else 1 for i, d in enumerate(x.shape)]
+ return freqs_cis.view(*shape)
+
+
+def apply_rotary_enc(
+ xq: torch.Tensor,
+ xk: torch.Tensor,
+ freqs_cis: torch.Tensor,
+ repeat_freqs_k: bool = False,
+):
+ xq_ = torch.view_as_complex(xq.float().reshape(*xq.shape[:-1], -1, 2))
+ xk_ = (
+ torch.view_as_complex(xk.float().reshape(*xk.shape[:-1], -1, 2))
+ if xk.shape[-2] != 0
+ else None
+ )
+ freqs_cis = reshape_for_broadcast(freqs_cis, xq_)
+ xq_out = torch.view_as_real(xq_ * freqs_cis).flatten(3)
+ if xk_ is None:
+ # no keys to rotate, due to dropout
+ return xq_out.type_as(xq).to(xq.device), xk
+ # repeat freqs along seq_len dim to match k seq_len
+ if repeat_freqs_k:
+ r = xk_.shape[-2] // xq_.shape[-2]
+ if freqs_cis.is_cuda:
+ freqs_cis = freqs_cis.repeat(*([1] * (freqs_cis.ndim - 2)), r, 1)
+ else:
+ # torch.repeat on complex numbers may not be supported on non-CUDA devices
+ # (freqs_cis has 4 dims and we repeat on dim 2) so we use expand + flatten
+ freqs_cis = freqs_cis.unsqueeze(2).expand(-1, -1, r, -1, -1).flatten(2, 3)
+ xk_out = torch.view_as_real(xk_ * freqs_cis).flatten(3)
+ return xq_out.type_as(xq).to(xq.device), xk_out.type_as(xk).to(xk.device)
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/sam/__init__.py b/avs.code/v2.code/model/visual/sam2/modeling/sam/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/sam/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/sam/mask_decoder.py b/avs.code/v2.code/model/visual/sam2/modeling/sam/mask_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..078f21cc2ec41805eebec677e6e27771335deaa4
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/sam/mask_decoder.py
@@ -0,0 +1,300 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d, MLP
+
+
+class MaskDecoder(nn.Module):
+ def __init__(
+ self,
+ *,
+ transformer_dim: int,
+ transformer: nn.Module,
+ num_multimask_outputs: int = 3,
+ activation: Type[nn.Module] = nn.GELU,
+ iou_head_depth: int = 3,
+ iou_head_hidden_dim: int = 256,
+ use_high_res_features: bool = False,
+ iou_prediction_use_sigmoid=False,
+ dynamic_multimask_via_stability=False,
+ dynamic_multimask_stability_delta=0.05,
+ dynamic_multimask_stability_thresh=0.98,
+ pred_obj_scores: bool = False,
+ pred_obj_scores_mlp: bool = False,
+ use_multimask_token_for_obj_ptr: bool = False,
+ ) -> None:
+ """
+ Predicts masks given an image and prompt embeddings, using a
+ transformer architecture.
+
+ Arguments:
+ transformer_dim (int): the channel dimension of the transformer
+ transformer (nn.Module): the transformer used to predict masks
+ num_multimask_outputs (int): the number of masks to predict
+ when disambiguating masks
+ activation (nn.Module): the type of activation to use when
+ upscaling masks
+ iou_head_depth (int): the depth of the MLP used to predict
+ mask quality
+ iou_head_hidden_dim (int): the hidden dimension of the MLP
+ used to predict mask quality
+ """
+ super().__init__()
+ self.transformer_dim = transformer_dim
+ self.transformer = transformer
+
+ self.num_multimask_outputs = num_multimask_outputs
+
+ self.iou_token = nn.Embedding(1, transformer_dim)
+ self.num_mask_tokens = num_multimask_outputs + 1
+ self.mask_tokens = nn.Embedding(self.num_mask_tokens, transformer_dim)
+
+ self.pred_obj_scores = pred_obj_scores
+ if self.pred_obj_scores:
+ self.obj_score_token = nn.Embedding(1, transformer_dim)
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+
+ self.output_upscaling = nn.Sequential(
+ nn.ConvTranspose2d(
+ transformer_dim, transformer_dim // 4, kernel_size=2, stride=2
+ ),
+ LayerNorm2d(transformer_dim // 4),
+ activation(),
+ nn.ConvTranspose2d(
+ transformer_dim // 4, transformer_dim // 8, kernel_size=2, stride=2
+ ),
+ activation(),
+ )
+ self.use_high_res_features = use_high_res_features
+ if use_high_res_features:
+ self.conv_s0 = nn.Conv2d(
+ transformer_dim, transformer_dim // 8, kernel_size=1, stride=1
+ )
+ self.conv_s1 = nn.Conv2d(
+ transformer_dim, transformer_dim // 4, kernel_size=1, stride=1
+ )
+
+ self.output_hypernetworks_mlps = nn.ModuleList(
+ [
+ MLP(transformer_dim, transformer_dim, transformer_dim // 8, 3)
+ for i in range(self.num_mask_tokens)
+ ]
+ )
+
+ self.iou_prediction_head = MLP(
+ transformer_dim,
+ iou_head_hidden_dim,
+ self.num_mask_tokens,
+ iou_head_depth,
+ sigmoid_output=iou_prediction_use_sigmoid,
+ )
+ if self.pred_obj_scores:
+ self.pred_obj_score_head = nn.Linear(transformer_dim, 1)
+ if pred_obj_scores_mlp:
+ self.pred_obj_score_head = MLP(transformer_dim, transformer_dim, 1, 3)
+
+ # When outputting a single mask, optionally we can dynamically fall back to the best
+ # multimask output token if the single mask output token gives low stability scores.
+ self.dynamic_multimask_via_stability = dynamic_multimask_via_stability
+ self.dynamic_multimask_stability_delta = dynamic_multimask_stability_delta
+ self.dynamic_multimask_stability_thresh = dynamic_multimask_stability_thresh
+
+ def forward(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ multimask_output: bool,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features: Optional[List[torch.Tensor]] = None,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Predict masks given image and prompt embeddings.
+
+ Arguments:
+ image_embeddings (torch.Tensor): the embeddings from the image encoder
+ image_pe (torch.Tensor): positional encoding with the shape of image_embeddings
+ sparse_prompt_embeddings (torch.Tensor): the embeddings of the points and boxes
+ dense_prompt_embeddings (torch.Tensor): the embeddings of the mask inputs
+ multimask_output (bool): Whether to return multiple masks or a single
+ mask.
+
+ Returns:
+ torch.Tensor: batched predicted masks
+ torch.Tensor: batched predictions of mask quality
+ torch.Tensor: batched SAM token for mask output
+ """
+ masks, iou_pred, mask_tokens_out, object_score_logits = self.predict_masks(
+ image_embeddings=image_embeddings,
+ image_pe=image_pe,
+ sparse_prompt_embeddings=sparse_prompt_embeddings,
+ dense_prompt_embeddings=dense_prompt_embeddings,
+ repeat_image=repeat_image,
+ high_res_features=high_res_features,
+ audio_res_features_=audio_res_features
+ )
+
+ # Select the correct mask or masks for output
+ if multimask_output:
+ masks = masks[:, 1:, :, :]
+ iou_pred = iou_pred[:, 1:]
+ elif self.dynamic_multimask_via_stability and not self.training:
+ masks, iou_pred = self._dynamic_multimask_via_stability(masks, iou_pred)
+ else:
+ masks = masks[:, 0:1, :, :]
+ iou_pred = iou_pred[:, 0:1]
+
+
+ if multimask_output and self.use_multimask_token_for_obj_ptr:
+ sam_tokens_out = mask_tokens_out[:, 1:] # [b, 3, c] shape
+ else:
+ # Take the mask output token. Here we *always* use the token for single mask output.
+ # At test time, even if we track after 1-click (and using multimask_output=True),
+ # we still take the single mask token here. The rationale is that we always track
+ # after multiple clicks during training, so the past tokens seen during training
+ # are always the single mask token (and we'll let it be the object-memory token).
+ sam_tokens_out = mask_tokens_out[:, 0:1] # [b, 1, c] shape
+
+ # Prepare output
+ return masks, iou_pred, sam_tokens_out, object_score_logits
+
+ def predict_masks(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features_: Optional[List[torch.Tensor]] = None
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """Predicts masks. See 'forward' for more details."""
+ # Concatenate output tokens
+ s = 0
+ if self.pred_obj_scores:
+ output_tokens = torch.cat(
+ [
+ self.obj_score_token.weight,
+ self.iou_token.weight,
+ self.mask_tokens.weight,
+ ],
+ dim=0,
+ )
+ s = 1
+ else:
+ output_tokens = torch.cat(
+ [self.iou_token.weight, self.mask_tokens.weight], dim=0
+ )
+ output_tokens = output_tokens.unsqueeze(0).expand(
+ sparse_prompt_embeddings.size(0), -1, -1
+ )
+ tokens = torch.cat((output_tokens, sparse_prompt_embeddings), dim=1)
+
+ # Expand per-image data in batch direction to be per-mask
+ if repeat_image:
+ src = torch.repeat_interleave(image_embeddings, tokens.shape[0], dim=0)
+ else:
+ assert image_embeddings.shape[0] == tokens.shape[0]
+ src = image_embeddings
+ src = src + dense_prompt_embeddings
+ assert (
+ image_pe.size(0) == 1
+ ), "image_pe should have size 1 in batch dim (from `get_dense_pe()`)"
+ pos_src = torch.repeat_interleave(image_pe, tokens.shape[0], dim=0)
+ b, c, h, w = src.shape
+
+ # Run the transformer
+ hs, src = self.transformer(src, pos_src, tokens, audio_res_features_)
+ iou_token_out = hs[:, s, :]
+ mask_tokens_out = hs[:, s + 1 : (s + 1 + self.num_mask_tokens), :]
+
+ # Upscale mask embeddings and predict masks using the mask tokens
+ src = src.transpose(1, 2).view(b, c, h, w)
+
+ if not self.use_high_res_features:
+ upscaled_embedding = self.output_upscaling(src)
+ else:
+ dc1, ln1, act1, dc2, act2 = self.output_upscaling
+ feat_s0, feat_s1 = high_res_features
+ upscaled_embedding = act1(ln1(dc1(src) + feat_s1))
+ upscaled_embedding = act2(dc2(upscaled_embedding) + feat_s0)
+
+ hyper_in_list: List[torch.Tensor] = []
+ for i in range(self.num_mask_tokens):
+ hyper_in_list.append(
+ self.output_hypernetworks_mlps[i](mask_tokens_out[:, i, :])
+ )
+ hyper_in = torch.stack(hyper_in_list, dim=1)
+ b, c, h, w = upscaled_embedding.shape
+ masks = (hyper_in @ upscaled_embedding.view(b, c, h * w)).view(b, -1, h, w)
+
+ # Generate mask quality predictions
+ iou_pred = self.iou_prediction_head(iou_token_out)
+ if self.pred_obj_scores:
+ assert s == 1
+ object_score_logits = self.pred_obj_score_head(hs[:, 0, :])
+ else:
+ # Obj scores logits - default to 10.0, i.e. assuming the object is present, sigmoid(10)=1
+ object_score_logits = 10.0 * iou_pred.new_ones(iou_pred.shape[0], 1)
+
+ return masks, iou_pred, mask_tokens_out, object_score_logits
+
+ def _get_stability_scores(self, mask_logits):
+ """
+ Compute stability scores of the mask logits based on the IoU between upper and
+ lower thresholds.
+ """
+ mask_logits = mask_logits.flatten(-2)
+ stability_delta = self.dynamic_multimask_stability_delta
+ area_i = torch.sum(mask_logits > stability_delta, dim=-1).float()
+ area_u = torch.sum(mask_logits > -stability_delta, dim=-1).float()
+ stability_scores = torch.where(area_u > 0, area_i / area_u, 1.0)
+ return stability_scores
+
+ def _dynamic_multimask_via_stability(self, all_mask_logits, all_iou_scores):
+ """
+ When outputting a single mask, if the stability score from the current single-mask
+ output (based on output token 0) falls below a threshold, we instead select from
+ multi-mask outputs (based on output token 1~3) the mask with the highest predicted
+ IoU score. This is intended to ensure a valid mask for both clicking and tracking.
+ """
+ # The best mask from multimask output tokens (1~3)
+ multimask_logits = all_mask_logits[:, 1:, :, :]
+ multimask_iou_scores = all_iou_scores[:, 1:]
+ best_scores_inds = torch.argmax(multimask_iou_scores, dim=-1)
+ batch_inds = torch.arange(
+ multimask_iou_scores.size(0), device=all_iou_scores.device
+ )
+ best_multimask_logits = multimask_logits[batch_inds, best_scores_inds]
+ best_multimask_logits = best_multimask_logits.unsqueeze(1)
+ best_multimask_iou_scores = multimask_iou_scores[batch_inds, best_scores_inds]
+ best_multimask_iou_scores = best_multimask_iou_scores.unsqueeze(1)
+
+ # The mask from singlemask output token 0 and its stability score
+ singlemask_logits = all_mask_logits[:, 0:1, :, :]
+ singlemask_iou_scores = all_iou_scores[:, 0:1]
+ stability_scores = self._get_stability_scores(singlemask_logits)
+ is_stable = stability_scores >= self.dynamic_multimask_stability_thresh
+
+ # Dynamically fall back to best multimask output upon low stability scores.
+ mask_logits_out = torch.where(
+ is_stable[..., None, None].expand_as(singlemask_logits),
+ singlemask_logits,
+ best_multimask_logits,
+ )
+ iou_scores_out = torch.where(
+ is_stable.expand_as(singlemask_iou_scores),
+ singlemask_iou_scores,
+ best_multimask_iou_scores,
+ )
+ return mask_logits_out, iou_scores_out
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/sam/prompt_encoder.py b/avs.code/v2.code/model/visual/sam2/modeling/sam/prompt_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..038cebcc072ae7c0f3f83061061be3edba04d0f8
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/sam/prompt_encoder.py
@@ -0,0 +1,188 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingRandom
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d
+
+
+class PromptEncoder(nn.Module):
+ def __init__(
+ self,
+ embed_dim: int,
+ image_embedding_size: Tuple[int, int],
+ input_image_size: Tuple[int, int],
+ mask_in_chans: int,
+ activation: Type[nn.Module] = nn.GELU,
+ ) -> None:
+ """
+ Encodes prompts for input to SAM's mask decoder.
+
+ Arguments:
+ embed_dim (int): The prompts' embedding dimension
+ image_embedding_size (tuple(int, int)): The spatial size of the
+ image embedding, as (H, W).
+ input_image_size (int): The padded size of the image as input
+ to the image encoder, as (H, W).
+ mask_in_chans (int): The number of hidden channels used for
+ encoding input masks.
+ activation (nn.Module): The activation to use when encoding
+ input masks.
+ """
+ super().__init__()
+ self.embed_dim = embed_dim
+ self.input_image_size = input_image_size
+ self.image_embedding_size = image_embedding_size
+ self.pe_layer = PositionEmbeddingRandom(embed_dim // 2)
+
+ self.num_point_embeddings: int = 4 # pos/neg point + 2 box corners
+ point_embeddings = [
+ nn.Embedding(1, embed_dim) for i in range(self.num_point_embeddings)
+ ]
+ self.point_embeddings = nn.ModuleList(point_embeddings)
+ self.not_a_point_embed = nn.Embedding(1, embed_dim)
+
+ self.mask_input_size = (
+ 4 * image_embedding_size[0],
+ 4 * image_embedding_size[1],
+ )
+ self.mask_downscaling = nn.Sequential(
+ nn.Conv2d(1, mask_in_chans // 4, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans // 4),
+ activation(),
+ nn.Conv2d(mask_in_chans // 4, mask_in_chans, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans),
+ activation(),
+ nn.Conv2d(mask_in_chans, embed_dim, kernel_size=1),
+ )
+ self.no_mask_embed = nn.Embedding(1, embed_dim)
+
+ def get_dense_pe(self) -> torch.Tensor:
+ """
+ Returns the positional encoding used to encode point prompts,
+ applied to a dense set of points the shape of the image encoding.
+
+ Returns:
+ torch.Tensor: Positional encoding with shape
+ 1x(embed_dim)x(embedding_h)x(embedding_w)
+ """
+ return self.pe_layer(self.image_embedding_size).unsqueeze(0)
+
+ def _embed_points(
+ self,
+ points: torch.Tensor,
+ labels: torch.Tensor,
+ pad: bool,
+ ) -> torch.Tensor:
+ """Embeds point prompts."""
+ points = points + 0.5 # Shift to center of pixel
+ if pad:
+ padding_point = torch.zeros((points.shape[0], 1, 2), device=points.device)
+ padding_label = -torch.ones((labels.shape[0], 1), device=labels.device)
+ points = torch.cat([points, padding_point], dim=1)
+ labels = torch.cat([labels, padding_label], dim=1)
+ point_embedding = self.pe_layer.forward_with_coords(
+ points, self.input_image_size
+ )
+ point_embedding[labels == -1] = 0.0
+ point_embedding[labels == -1] += self.not_a_point_embed.weight
+ point_embedding[labels == 0] += self.point_embeddings[0].weight
+ point_embedding[labels == 1] += self.point_embeddings[1].weight
+ point_embedding[labels == 2] += self.point_embeddings[2].weight
+ point_embedding[labels == 3] += self.point_embeddings[3].weight
+ return point_embedding
+
+ def _embed_boxes(self, boxes: torch.Tensor) -> torch.Tensor:
+ """Embeds box prompts."""
+ boxes = boxes + 0.5 # Shift to center of pixel
+ coords = boxes.reshape(-1, 2, 2)
+ corner_embedding = self.pe_layer.forward_with_coords(
+ coords, self.input_image_size
+ )
+ corner_embedding[:, 0, :] += self.point_embeddings[2].weight
+ corner_embedding[:, 1, :] += self.point_embeddings[3].weight
+ return corner_embedding
+
+ def _embed_masks(self, masks: torch.Tensor) -> torch.Tensor:
+ """Embeds mask inputs."""
+ mask_embedding = self.mask_downscaling(masks)
+ return mask_embedding
+
+ def _get_batch_size(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> int:
+ """
+ Gets the batch size of the output given the batch size of the input prompts.
+ """
+ if points is not None:
+ return points[0].shape[0]
+ elif boxes is not None:
+ return boxes.shape[0]
+ elif masks is not None:
+ return masks.shape[0]
+ else:
+ return 1
+
+ def _get_device(self) -> torch.device:
+ return self.point_embeddings[0].weight.device
+
+ def forward(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Embeds different types of prompts, returning both sparse and dense
+ embeddings.
+
+ Arguments:
+ points (tuple(torch.Tensor, torch.Tensor) or none): point coordinates
+ and labels to embed.
+ boxes (torch.Tensor or none): boxes to embed
+ masks (torch.Tensor or none): masks to embed
+
+ Returns:
+ torch.Tensor: sparse embeddings for the points and boxes, with shape
+ BxNx(embed_dim), where N is determined by the number of input points
+ and boxes.
+ torch.Tensor: dense embeddings for the masks, in the shape
+ Bx(embed_dim)x(embed_H)x(embed_W)
+ """
+ # we only utilise sounding as prompt.
+ bs = self._get_batch_size(points, boxes, masks)
+ sparse_embeddings = torch.empty(
+ (bs, 0, self.embed_dim), device=self._get_device()
+ )
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ if points is not None:
+ coords, labels = points
+ point_embeddings = self._embed_points(coords, labels, pad=(boxes is None))
+ sparse_embeddings = torch.cat([sparse_embeddings, point_embeddings], dim=1)
+ if boxes is not None:
+ box_embeddings = self._embed_boxes(boxes)
+ sparse_embeddings = torch.cat([sparse_embeddings, box_embeddings], dim=1)
+
+ if masks is not None:
+ dense_embeddings = self._embed_masks(masks)
+ else:
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ return sparse_embeddings, dense_embeddings
+
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/sam/transformer.py b/avs.code/v2.code/model/visual/sam2/modeling/sam/transformer.py
new file mode 100644
index 0000000000000000000000000000000000000000..31916550afeccb66f4427cee7ec4a7a2d66913a5
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/sam/transformer.py
@@ -0,0 +1,367 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import contextlib
+import math
+import warnings
+from functools import partial
+from typing import Tuple, Type
+
+import torch
+import torch.nn.functional as F
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.position_encoding import apply_rotary_enc, compute_axial_cis
+from model.visual.sam2.modeling.sam2_utils import MLP
+from model.visual.sam2.utils.misc import get_sdpa_settings
+
+warnings.simplefilter(action="ignore", category=FutureWarning)
+# Check whether Flash Attention is available (and use it by default)
+OLD_GPU, USE_FLASH_ATTN, MATH_KERNEL_ON = get_sdpa_settings()
+# A fallback setting to allow all available kernels if Flash Attention fails
+ALLOW_ALL_KERNELS = False
+
+
+def sdp_kernel_context(dropout_p):
+ """
+ Get the context for the attention scaled dot-product kernel. We use Flash Attention
+ by default, but fall back to all available kernels if Flash Attention fails.
+ """
+ if ALLOW_ALL_KERNELS:
+ return contextlib.nullcontext()
+
+ return torch.backends.cuda.sdp_kernel(
+ enable_flash=USE_FLASH_ATTN,
+ # if Flash attention kernel is off, then math kernel needs to be enabled
+ enable_math=(OLD_GPU and dropout_p > 0.0) or MATH_KERNEL_ON,
+ enable_mem_efficient=OLD_GPU,
+ )
+
+
+class TwoWayTransformer(nn.Module):
+ def __init__(
+ self,
+ depth: int,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ ) -> None:
+ """
+ A transformer decoder that attends to an input image using
+ queries whose positional embedding is supplied.
+
+ Args:
+ depth (int): number of layers in the transformer
+ embedding_dim (int): the channel dimension for the input embeddings
+ num_heads (int): the number of heads for multihead attention. Must
+ divide embedding_dim
+ mlp_dim (int): the channel dimension internal to the MLP block
+ activation (nn.Module): the activation to use in the MLP block
+ """
+ super().__init__()
+ self.depth = depth
+ self.embedding_dim = embedding_dim
+ self.num_heads = num_heads
+ self.mlp_dim = mlp_dim
+ self.layers = nn.ModuleList()
+
+ for i in range(depth):
+ self.layers.append(
+ TwoWayAttentionBlock(
+ embedding_dim=embedding_dim,
+ num_heads=num_heads,
+ mlp_dim=mlp_dim,
+ activation=activation,
+ attention_downsample_rate=attention_downsample_rate,
+ skip_first_layer_pe=(i == 0),
+ )
+ )
+
+ self.final_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm_final_attn = nn.LayerNorm(embedding_dim)
+
+ def forward(
+ self,
+ image_embedding: Tensor,
+ image_pe: Tensor,
+ point_embedding: Tensor,
+ audio_res: [],
+ ) -> Tuple[Tensor, Tensor]:
+ """
+ Args:
+ image_embedding (torch.Tensor): image to attend to. Should be shape
+ B x embedding_dim x h x w for any h and w.
+ image_pe (torch.Tensor): the positional encoding to add to the image. Must
+ have the same shape as image_embedding.
+ point_embedding (torch.Tensor): the embedding to add to the query points.
+ Must have shape B x N_points x embedding_dim for any N_points.
+
+ Returns:
+ torch.Tensor: the processed point_embedding
+ torch.Tensor: the processed image_embedding
+ """
+ # BxCxHxW -> BxHWxC == B x N_image_tokens x C
+ bs, c, h, w = image_embedding.shape
+ image_embedding = image_embedding.flatten(2).permute(0, 2, 1)
+ image_pe = image_pe.flatten(2).permute(0, 2, 1)
+
+ visual_res, audio_res = audio_res
+
+ # Prepare queries
+ queries = point_embedding
+ keys = image_embedding
+ # Apply transformer blocks and final layernorm
+ for i, layer in enumerate(self.layers):
+ keys = keys + visual_res[i]
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[i]
+ queries, keys = layer(
+ queries=queries,
+ keys=keys,
+ query_pe=point_embedding,
+ key_pe=image_pe,
+ )
+
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[-1]
+ keys = keys + visual_res[-1]
+
+ # Apply the final attention layer from the points to the image
+ q = queries + point_embedding
+ k = keys + image_pe
+ attn_out = self.final_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm_final_attn(queries)
+
+ return queries, keys
+
+
+class TwoWayAttentionBlock(nn.Module):
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int = 2048,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ skip_first_layer_pe: bool = False,
+ ) -> None:
+ """
+ A transformer block with four layers: (1) self-attention of sparse
+ inputs, (2) cross attention of sparse inputs to dense inputs, (3) mlp
+ block on sparse inputs, and (4) cross attention of dense inputs to sparse
+ inputs.
+
+ Arguments:
+ embedding_dim (int): the channel dimension of the embeddings
+ num_heads (int): the number of heads in the attention layers
+ mlp_dim (int): the hidden dimension of the mlp block
+ activation (nn.Module): the activation of the mlp block
+ skip_first_layer_pe (bool): skip the PE on the first layer
+ """
+ super().__init__()
+ self.self_attn = Attention(embedding_dim, num_heads)
+ self.norm1 = nn.LayerNorm(embedding_dim)
+
+ self.cross_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm2 = nn.LayerNorm(embedding_dim)
+
+ self.mlp = MLP(
+ embedding_dim, mlp_dim, embedding_dim, num_layers=2, activation=activation
+ )
+ self.norm3 = nn.LayerNorm(embedding_dim)
+
+ self.norm4 = nn.LayerNorm(embedding_dim)
+ self.cross_attn_image_to_token = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+
+ self.skip_first_layer_pe = skip_first_layer_pe
+
+ def forward(
+ self, queries: Tensor, keys: Tensor, query_pe: Tensor, key_pe: Tensor
+ ) -> Tuple[Tensor, Tensor]:
+ # Self attention block
+ if self.skip_first_layer_pe:
+ queries = self.self_attn(q=queries, k=queries, v=queries)
+ else:
+ q = queries + query_pe
+ attn_out = self.self_attn(q=q, k=q, v=queries)
+ queries = queries + attn_out
+ queries = self.norm1(queries)
+
+ # Cross attention block, tokens attending to image embedding
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm2(queries)
+
+ # MLP block
+ mlp_out = self.mlp(queries)
+ queries = queries + mlp_out
+ queries = self.norm3(queries)
+
+ # Cross attention block, image embedding attending to tokens
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_image_to_token(q=k, k=q, v=queries)
+ keys = keys + attn_out
+ keys = self.norm4(keys)
+
+ return queries, keys
+
+
+class Attention(nn.Module):
+ """
+ An attention layer that allows for downscaling the size of the embedding
+ after projection to queries, keys, and values.
+ """
+
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ downsample_rate: int = 1,
+ dropout: float = 0.0,
+ kv_in_dim: int = None,
+ ) -> None:
+ super().__init__()
+ self.embedding_dim = embedding_dim
+ self.kv_in_dim = kv_in_dim if kv_in_dim is not None else embedding_dim
+ self.internal_dim = embedding_dim // downsample_rate
+ self.num_heads = num_heads
+ assert (
+ self.internal_dim % num_heads == 0
+ ), "num_heads must divide embedding_dim."
+
+ self.q_proj = nn.Linear(embedding_dim, self.internal_dim)
+ self.k_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.v_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.out_proj = nn.Linear(self.internal_dim, embedding_dim)
+
+ self.dropout_p = dropout
+
+ def _separate_heads(self, x: Tensor, num_heads: int) -> Tensor:
+ b, n, c = x.shape
+ x = x.reshape(b, n, num_heads, c // num_heads)
+ return x.transpose(1, 2) # B x N_heads x N_tokens x C_per_head
+
+ def _recombine_heads(self, x: Tensor) -> Tensor:
+ b, n_heads, n_tokens, c_per_head = x.shape
+ x = x.transpose(1, 2)
+ return x.reshape(b, n_tokens, n_heads * c_per_head) # B x N_tokens x C
+
+ def forward(self, q: Tensor, k: Tensor, v: Tensor) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
+
+
+class RoPEAttention(Attention):
+ """Attention with rotary position encoding."""
+
+ def __init__(
+ self,
+ *args,
+ rope_theta=10000.0,
+ # whether to repeat q rope to match k length
+ # this is needed for cross-attention to memories
+ rope_k_repeat=False,
+ feat_sizes=(32, 32), # [w, h] for stride 16 feats at 512 resolution
+ **kwargs,
+ ):
+ super().__init__(*args, **kwargs)
+
+ self.compute_cis = partial(
+ compute_axial_cis, dim=self.internal_dim // self.num_heads, theta=rope_theta
+ )
+ freqs_cis = self.compute_cis(end_x=feat_sizes[0], end_y=feat_sizes[1])
+ self.freqs_cis = freqs_cis
+ self.rope_k_repeat = rope_k_repeat
+
+ def forward(
+ self, q: Tensor, k: Tensor, v: Tensor, num_k_exclude_rope: int = 0
+ ) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ # Apply rotary position encoding
+ w = h = math.sqrt(q.shape[-2])
+ self.freqs_cis = self.freqs_cis.to(q.device)
+ if self.freqs_cis.shape[0] != q.shape[-2]:
+ self.freqs_cis = self.compute_cis(end_x=w, end_y=h).to(q.device)
+ if q.shape[-2] != k.shape[-2]:
+ assert self.rope_k_repeat
+
+ num_k_rope = k.size(-2) - num_k_exclude_rope
+ q, k[:, :, :num_k_rope] = apply_rotary_enc(
+ q,
+ k[:, :, :num_k_rope],
+ freqs_cis=self.freqs_cis,
+ repeat_freqs_k=self.rope_k_repeat,
+ )
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/sam2_base.py b/avs.code/v2.code/model/visual/sam2/modeling/sam2_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..2ab890394064172b8719e8a06ee0a47d995fd585
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/sam2_base.py
@@ -0,0 +1,940 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import torch
+import torch.distributed
+import torch.nn.functional as F
+
+from torch.nn.init import trunc_normal_
+
+from model.visual.sam2.modeling.sam.mask_decoder import MaskDecoder
+from model.visual.sam2.modeling.sam.prompt_encoder import PromptEncoder
+from model.visual.sam2.modeling.sam.transformer import TwoWayTransformer
+from model.visual.sam2.modeling.sam2_utils import get_1d_sine_pe, MLP, select_closest_cond_frames
+
+# a large negative value as a placeholder score for missing objects
+NO_OBJ_SCORE = -1024.0
+
+
+class SAM2Base(torch.nn.Module):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention,
+ memory_encoder,
+ num_maskmem=7, # default 1 input frame + 6 previous frames
+ image_size=512,
+ backbone_stride=16, # stride of the image backbone output
+ sigmoid_scale_for_mem_enc=1.0, # scale factor for mask sigmoid prob
+ sigmoid_bias_for_mem_enc=0.0, # bias factor for mask sigmoid prob
+ # During evaluation, whether to binarize the sigmoid mask logits on interacted frames with clicks
+ binarize_mask_from_pts_for_mem_enc=False,
+ use_mask_input_as_output_without_sam=False, # on frames with mask input, whether to directly output the input mask without using a SAM prompt encoder + mask decoder
+ # The maximum number of conditioning frames to participate in the memory attention (-1 means no limit; if there are more conditioning frames than this limit,
+ # we only cross-attend to the temporally closest `max_cond_frames_in_attn` conditioning frames in the encoder when tracking each frame). This gives the model
+ # a temporal locality when handling a large number of annotated frames (since closer frames should be more important) and also avoids GPU OOM.
+ max_cond_frames_in_attn=-1,
+ # on the first frame, whether to directly add the no-memory embedding to the image feature
+ # (instead of using the transformer encoder)
+ directly_add_no_mem_embed=False,
+ # whether to use high-resolution feature maps in the SAM mask decoder
+ use_high_res_features_in_sam=False,
+ # whether to output multiple (3) masks for the first click on initial conditioning frames
+ multimask_output_in_sam=False,
+ # the minimum and maximum number of clicks to use multimask_output_in_sam (only relevant when `multimask_output_in_sam=True`;
+ # default is 1 for both, meaning that only the first click gives multimask output; also note that a box counts as two points)
+ multimask_min_pt_num=1,
+ multimask_max_pt_num=1,
+ # whether to also use multimask output for tracking (not just for the first click on initial conditioning frames; only relevant when `multimask_output_in_sam=True`)
+ multimask_output_for_tracking=False,
+ # Whether to use multimask tokens for obj ptr; Only relevant when both
+ # use_obj_ptrs_in_encoder=True and multimask_output_for_tracking=True
+ use_multimask_token_for_obj_ptr: bool = False,
+ # whether to use sigmoid to restrict ious prediction to [0-1]
+ iou_prediction_use_sigmoid=False,
+ # The memory bank's temporal stride during evaluation (i.e. the `r` parameter in XMem and Cutie; XMem and Cutie use r=5).
+ # For r>1, the (self.num_maskmem - 1) non-conditioning memory frames consist of
+ # (self.num_maskmem - 2) nearest frames from every r-th frames, plus the last frame.
+ memory_temporal_stride_for_eval=1,
+ # whether to apply non-overlapping constraints on the object masks in the memory encoder during evaluation (to avoid/alleviate superposing masks)
+ non_overlap_masks_for_mem_enc=False,
+ # whether to cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder=False,
+ # the maximum number of object pointers from other frames in encoder cross attention (only relevant when `use_obj_ptrs_in_encoder=True`)
+ max_obj_ptrs_in_encoder=16,
+ # whether to add temporal positional encoding to the object pointers in the encoder (only relevant when `use_obj_ptrs_in_encoder=True`)
+ add_tpos_enc_to_obj_ptrs=True,
+ # whether to add an extra linear projection layer for the temporal positional encoding in the object pointers to avoid potential interference
+ # with spatial positional encoding (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ proj_tpos_enc_in_obj_ptrs=False,
+ # whether to use signed distance (instead of unsigned absolute distance) in the temporal positional encoding in the object pointers
+ # (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ use_signed_tpos_enc_to_obj_ptrs=False,
+ # whether to only attend to object pointers in the past (before the current frame) in the encoder during evaluation
+ # (only relevant when `use_obj_ptrs_in_encoder=True`; this might avoid pointer information too far in the future to distract the initial tracking)
+ only_obj_ptrs_in_the_past_for_eval=False,
+ # Whether to predict if there is an object in the frame
+ pred_obj_scores: bool = False,
+ # Whether to use an MLP to predict object scores
+ pred_obj_scores_mlp: bool = False,
+ # Only relevant if pred_obj_scores=True and use_obj_ptrs_in_encoder=True;
+ # Whether to have a fixed no obj pointer when there is no object present
+ # or to use it as an additive embedding with obj_ptr produced by decoder
+ fixed_no_obj_ptr: bool = False,
+ # Soft no object, i.e. mix in no_obj_ptr softly,
+ # hope to make recovery easier if there is a mistake and mitigate accumulation of errors
+ soft_no_obj_ptr: bool = False,
+ use_mlp_for_obj_ptr_proj: bool = False,
+ # add no obj embedding to spatial frames
+ no_obj_embed_spatial: bool = False,
+ # extra arguments used to construct the SAM mask decoder; if not None, it should be a dict of kwargs to be passed into `MaskDecoder` class.
+ sam_mask_decoder_extra_args=None,
+ compile_image_encoder: bool = False,
+ ):
+ super().__init__()
+
+ # Part 1: the image backbone
+ self.image_encoder = image_encoder
+ # Use level 0, 1, 2 for high-res setting, or just level 2 for the default setting
+ self.use_high_res_features_in_sam = use_high_res_features_in_sam
+ self.num_feature_levels = 3 if use_high_res_features_in_sam else 1
+ self.use_obj_ptrs_in_encoder = use_obj_ptrs_in_encoder
+ self.max_obj_ptrs_in_encoder = max_obj_ptrs_in_encoder
+ if use_obj_ptrs_in_encoder:
+ # A conv layer to downsample the mask prompt to stride 4 (the same stride as
+ # low-res SAM mask logits) and to change its scales from 0~1 to SAM logit scale,
+ # so that it can be fed into the SAM mask decoder to generate a pointer.
+ self.mask_downsample = torch.nn.Conv2d(1, 1, kernel_size=4, stride=4)
+ self.add_tpos_enc_to_obj_ptrs = add_tpos_enc_to_obj_ptrs
+ if proj_tpos_enc_in_obj_ptrs:
+ assert add_tpos_enc_to_obj_ptrs # these options need to be used together
+ self.proj_tpos_enc_in_obj_ptrs = proj_tpos_enc_in_obj_ptrs
+ self.use_signed_tpos_enc_to_obj_ptrs = use_signed_tpos_enc_to_obj_ptrs
+ self.only_obj_ptrs_in_the_past_for_eval = only_obj_ptrs_in_the_past_for_eval
+
+ # Part 2: memory attention to condition current frame's visual features
+ # with memories (and obj ptrs) from past frames
+ self.memory_attention = memory_attention
+
+ #### this is for Version 2.0
+ # self.hidden_dim = memory_attention.d_model
+ #### this is for Version 2.1
+ # self.hidden_dim = image_encoder.neck.d_model
+ self.hidden_dim = 256 # well, it is always 256 anyway.
+
+ # Part 3: memory encoder for the previous frame's outputs
+ self.memory_encoder = memory_encoder
+ self.mem_dim = self.hidden_dim
+ if hasattr(self.memory_encoder, "out_proj") and hasattr(
+ self.memory_encoder.out_proj, "weight"
+ ):
+ # if there is compression of memories along channel dim
+ self.mem_dim = self.memory_encoder.out_proj.weight.shape[0]
+ self.num_maskmem = num_maskmem # Number of memories accessible
+ # Temporal encoding of the memories
+ self.maskmem_tpos_enc = torch.nn.Parameter(
+ torch.zeros(num_maskmem, 1, 1, self.mem_dim)
+ )
+ trunc_normal_(self.maskmem_tpos_enc, std=0.02)
+ # a single token to indicate no memory embedding from previous frames
+ self.no_mem_embed = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ self.no_mem_pos_enc = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ trunc_normal_(self.no_mem_embed, std=0.02)
+ trunc_normal_(self.no_mem_pos_enc, std=0.02)
+ self.directly_add_no_mem_embed = directly_add_no_mem_embed
+ # Apply sigmoid to the output raw mask logits (to turn them from
+ # range (-inf, +inf) to range (0, 1)) before feeding them into the memory encoder
+ self.sigmoid_scale_for_mem_enc = sigmoid_scale_for_mem_enc
+ self.sigmoid_bias_for_mem_enc = sigmoid_bias_for_mem_enc
+ self.binarize_mask_from_pts_for_mem_enc = binarize_mask_from_pts_for_mem_enc
+ self.non_overlap_masks_for_mem_enc = non_overlap_masks_for_mem_enc
+ self.memory_temporal_stride_for_eval = memory_temporal_stride_for_eval
+ # On frames with mask input, whether to directly output the input mask without
+ # using a SAM prompt encoder + mask decoder
+ self.use_mask_input_as_output_without_sam = use_mask_input_as_output_without_sam
+ self.multimask_output_in_sam = multimask_output_in_sam
+ self.multimask_min_pt_num = multimask_min_pt_num
+ self.multimask_max_pt_num = multimask_max_pt_num
+ self.multimask_output_for_tracking = multimask_output_for_tracking
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+ self.iou_prediction_use_sigmoid = iou_prediction_use_sigmoid
+
+ # Part 4: SAM-style prompt encoder (for both mask and point inputs)
+ # and SAM-style mask decoder for the final mask output
+ self.image_size = image_size
+ self.backbone_stride = backbone_stride
+ self.sam_mask_decoder_extra_args = sam_mask_decoder_extra_args
+ self.pred_obj_scores = pred_obj_scores
+ self.pred_obj_scores_mlp = pred_obj_scores_mlp
+ self.fixed_no_obj_ptr = fixed_no_obj_ptr
+ self.soft_no_obj_ptr = soft_no_obj_ptr
+ if self.fixed_no_obj_ptr:
+ assert self.pred_obj_scores
+ assert self.use_obj_ptrs_in_encoder
+ if self.pred_obj_scores and self.use_obj_ptrs_in_encoder:
+ self.no_obj_ptr = torch.nn.Parameter(torch.zeros(1, self.hidden_dim))
+ trunc_normal_(self.no_obj_ptr, std=0.02)
+ self.use_mlp_for_obj_ptr_proj = use_mlp_for_obj_ptr_proj
+ self.no_obj_embed_spatial = None
+ if no_obj_embed_spatial:
+ self.no_obj_embed_spatial = torch.nn.Parameter(torch.zeros(1, self.mem_dim))
+ trunc_normal_(self.no_obj_embed_spatial, std=0.02)
+
+ self._build_sam_heads()
+ self.max_cond_frames_in_attn = max_cond_frames_in_attn
+
+ # Model compilation
+ if compile_image_encoder:
+ # Compile the forward function (not the full module) to allow loading checkpoints.
+ print(
+ "Image encoder compilation is enabled. First forward pass will be slow."
+ )
+ self.image_encoder.forward = torch.compile(
+ self.image_encoder.forward,
+ mode="max-autotune",
+ fullgraph=True,
+ dynamic=False,
+ )
+
+ ### we fix the use_mask_input_as_output_without_sam to be turned off.
+ self.use_mask_input_as_output_without_sam = False
+
+
+ @property
+ def device(self):
+ return next(self.parameters()).device
+
+ def forward(self, *args, **kwargs):
+ raise NotImplementedError(
+ "Please use the corresponding methods in SAM2VideoPredictor for inference or SAM2Train for training/fine-tuning"
+ "See notebooks/video_predictor_example.ipynb for an inference example."
+ )
+
+ def _build_sam_heads(self):
+ """Build SAM-style prompt encoder and mask decoder."""
+ self.sam_prompt_embed_dim = self.hidden_dim
+ self.sam_image_embedding_size = self.image_size // self.backbone_stride
+
+ # build PromptEncoder and MaskDecoder from SAM
+ # (their hyperparameters like `mask_in_chans=16` are from SAM code)
+ self.sam_prompt_encoder = PromptEncoder(
+ embed_dim=self.sam_prompt_embed_dim,
+ image_embedding_size=(
+ self.sam_image_embedding_size,
+ self.sam_image_embedding_size,
+ ),
+ input_image_size=(self.image_size, self.image_size),
+ mask_in_chans=16,
+ )
+ self.sam_mask_decoder = MaskDecoder(
+ num_multimask_outputs=3,
+ transformer=TwoWayTransformer(
+ depth=2,
+ embedding_dim=self.sam_prompt_embed_dim,
+ mlp_dim=2048,
+ num_heads=8,
+ ),
+ transformer_dim=self.sam_prompt_embed_dim,
+ iou_head_depth=3,
+ iou_head_hidden_dim=256,
+ use_high_res_features=self.use_high_res_features_in_sam,
+ iou_prediction_use_sigmoid=self.iou_prediction_use_sigmoid,
+ pred_obj_scores=self.pred_obj_scores,
+ pred_obj_scores_mlp=self.pred_obj_scores_mlp,
+ use_multimask_token_for_obj_ptr=self.use_multimask_token_for_obj_ptr,
+ **(self.sam_mask_decoder_extra_args or {}),
+ )
+ if self.use_obj_ptrs_in_encoder:
+ # a linear projection on SAM output tokens to turn them into object pointers
+ self.obj_ptr_proj = torch.nn.Linear(self.hidden_dim, self.hidden_dim)
+ if self.use_mlp_for_obj_ptr_proj:
+ self.obj_ptr_proj = MLP(
+ self.hidden_dim, self.hidden_dim, self.hidden_dim, 3
+ )
+ else:
+ self.obj_ptr_proj = torch.nn.Identity()
+ if self.proj_tpos_enc_in_obj_ptrs:
+ # a linear projection on temporal positional encoding in object pointers to
+ # avoid potential interference with spatial positional encoding
+ self.obj_ptr_tpos_proj = torch.nn.Linear(self.hidden_dim, self.mem_dim)
+ else:
+ self.obj_ptr_tpos_proj = torch.nn.Identity()
+
+ def _forward_sam_heads(
+ self,
+ backbone_features,
+ point_inputs=None,
+ mask_inputs=None,
+ high_res_features=None,
+ multimask_output=False,
+ audio_res=None
+ ):
+ """
+ Forward SAM prompt encoders and mask heads.
+
+ Inputs:
+ - backbone_features: image features of [B, C, H, W] shape
+ - point_inputs: a dictionary with "point_coords" and "point_labels", where
+ 1) "point_coords" has [B, P, 2] shape and float32 dtype and contains the
+ absolute pixel-unit coordinate in (x, y) format of the P input points
+ 2) "point_labels" has shape [B, P] and int32 dtype, where 1 means
+ positive clicks, 0 means negative clicks, and -1 means padding
+ - mask_inputs: a mask of [B, 1, H*16, W*16] shape, float or bool, with the
+ same spatial size as the image.
+ - high_res_features: either 1) None or 2) or a list of length 2 containing
+ two feature maps of [B, C, 4*H, 4*W] and [B, C, 2*H, 2*W] shapes respectively,
+ which will be used as high-resolution feature maps for SAM decoder.
+ - multimask_output: if it's True, we output 3 candidate masks and their 3
+ corresponding IoU estimates, and if it's False, we output only 1 mask and
+ its corresponding IoU estimate.
+
+ Outputs:
+ - low_res_multimasks: [B, M, H*4, W*4] shape (where M = 3 if
+ `multimask_output=True` and M = 1 if `multimask_output=False`), the SAM
+ output mask logits (before sigmoid) for the low-resolution masks, with 4x
+ the resolution (1/4 stride) of the input backbone_features.
+ - high_res_multimasks: [B, M, H*16, W*16] shape (where M = 3
+ if `multimask_output=True` and M = 1 if `multimask_output=False`),
+ upsampled from the low-resolution masks, with shape size as the image
+ (stride is 1 pixel).
+ - ious, [B, M] shape, where (where M = 3 if `multimask_output=True` and M = 1
+ if `multimask_output=False`), the estimated IoU of each output mask.
+ - low_res_masks: [B, 1, H*4, W*4] shape, the best mask in `low_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `low_res_multimasks`.
+ - high_res_masks: [B, 1, H*16, W*16] shape, the best mask in `high_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `high_res_multimasks`.
+ - obj_ptr: [B, C] shape, the object pointer vector for the output mask, extracted
+ based on the output token from the SAM mask decoder.
+ """
+ B = backbone_features.size(0)
+ device = backbone_features.device
+ assert backbone_features.size(1) == self.sam_prompt_embed_dim
+ assert backbone_features.size(2) == self.sam_image_embedding_size
+ assert backbone_features.size(3) == self.sam_image_embedding_size
+
+ '''
+ # a) Handle point prompts
+ if point_inputs is not None:
+ sam_point_coords = point_inputs["point_coords"]
+ sam_point_labels = point_inputs["point_labels"]
+ assert sam_point_coords.size(0) == B and sam_point_labels.size(0) == B
+ raise NotImplementedError
+ else:
+ # If no points are provide, pad with an empty point (with label -1)
+ sam_point_coords = torch.zeros(B, 1, 2, device=device)
+ sam_point_labels = -torch.ones(B, 1, dtype=torch.int32, device=device)
+
+ # b) Handle mask prompts
+ if mask_inputs is not None:
+ # If mask_inputs is provided, downsize it into low-res mask input if needed
+ # and feed it as a dense mask prompt into the SAM mask encoder
+ assert len(mask_inputs.shape) == 4 and mask_inputs.shape[:2] == (B, 1)
+ if mask_inputs.shape[-2:] != self.sam_prompt_encoder.mask_input_size:
+ sam_mask_prompt = F.interpolate(
+ mask_inputs.float(),
+ size=self.sam_prompt_encoder.mask_input_size,
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ else:
+ sam_mask_prompt = mask_inputs
+ raise NotImplementedError
+ else:
+ # Otherwise, simply feed None (and SAM's prompt encoder will add
+ # a learned `no_mask_embed` to indicate no mask input in this case).
+ sam_mask_prompt = None
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=(sam_point_coords, sam_point_labels),
+ boxes=None,
+ masks=sam_mask_prompt,
+ )
+ '''
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=None,
+ boxes=None,
+ masks=None,
+ )
+
+ (
+ low_res_multimasks,
+ ious,
+ sam_output_tokens,
+ object_score_logits,
+ ) = self.sam_mask_decoder(
+ image_embeddings=backbone_features,
+ image_pe=self.sam_prompt_encoder.get_dense_pe(),
+ sparse_prompt_embeddings=sparse_embeddings,
+ dense_prompt_embeddings=dense_embeddings,
+ multimask_output=multimask_output,
+ repeat_image=False, # the image is already batched
+ high_res_features=high_res_features,
+ audio_res_features=audio_res
+ )
+ '''
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+
+ # Mask used for spatial memories is always a *hard* choice between obj and no obj,
+ # consistent with the actual mask prediction
+ low_res_multimasks = torch.where(
+ is_obj_appearing[:, None, None],
+ low_res_multimasks,
+ NO_OBJ_SCORE,
+ )
+ '''
+ # convert masks from possibly bfloat16 (or float16) to float32
+ # (older PyTorch versions before 2.1 don't support `interpolate` on bf16)
+ low_res_multimasks = low_res_multimasks.float()
+ high_res_multimasks = F.interpolate(
+ low_res_multimasks,
+ size=(self.image_size, self.image_size),
+ mode="bilinear",
+ align_corners=False,
+ )
+ sam_output_token = sam_output_tokens[:, 0]
+ if multimask_output:
+ # comment this line temporarily.
+ # take the best mask prediction (with the highest IoU estimation)
+ best_iou_inds = torch.argmax(ious, dim=-1)
+ batch_inds = torch.arange(B, device=device)
+ low_res_masks = low_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ high_res_masks = high_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ if sam_output_tokens.size(1) > 1:
+ sam_output_token = sam_output_tokens[batch_inds, best_iou_inds]
+ else:
+ low_res_masks, high_res_masks = low_res_multimasks, high_res_multimasks
+
+ # Extract object pointer from the SAM output token (with occlusion handling)
+ obj_ptr = self.obj_ptr_proj(sam_output_token)
+
+ # don't train occlusion at the moment, command temporarily.
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+ # Allow *soft* no obj ptr, unlike for masks
+ if self.soft_no_obj_ptr:
+ lambda_is_obj_appearing = object_score_logits.sigmoid()
+ else:
+ lambda_is_obj_appearing = is_obj_appearing.float()
+
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+ return (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def _use_mask_as_output(self, backbone_features, high_res_features, mask_inputs):
+ """
+ Directly turn binary `mask_inputs` into a output mask logits without using SAM.
+ (same input and output shapes as in _forward_sam_heads above).
+ """
+ # Use -10/+10 as logits for neg/pos pixels (very close to 0/1 in prob after sigmoid).
+ out_scale, out_bias = 20.0, -10.0 # sigmoid(-10.0)=4.5398e-05
+ mask_inputs_float = mask_inputs.float()
+ high_res_masks = mask_inputs_float * out_scale + out_bias
+ low_res_masks = F.interpolate(
+ high_res_masks,
+ size=(high_res_masks.size(-2) // 4, high_res_masks.size(-1) // 4),
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ # a dummy IoU prediction of all 1's under mask input
+ ious = mask_inputs.new_ones(mask_inputs.size(0), 1).float()
+ if not self.use_obj_ptrs_in_encoder:
+ # all zeros as a dummy object pointer (of shape [B, C])
+ obj_ptr = torch.zeros(
+ mask_inputs.size(0), self.hidden_dim, device=mask_inputs.device
+ )
+ else:
+ # produce an object pointer using the SAM decoder from the mask input
+ _, _, _, _, _, obj_ptr, _ = self._forward_sam_heads(
+ backbone_features=backbone_features,
+ mask_inputs=self.mask_downsample(mask_inputs_float),
+ high_res_features=high_res_features,
+ )
+ # In this method, we are treating mask_input as output, e.g. using it directly to create spatial mem;
+ # Below, we follow the same design axiom to use mask_input to decide if obj appears or not instead of relying
+ # on the object_scores from the SAM decoder.
+ is_obj_appearing = torch.any(mask_inputs.flatten(1).float() > 0.0, dim=1)
+ is_obj_appearing = is_obj_appearing[..., None]
+ lambda_is_obj_appearing = is_obj_appearing.float()
+ object_score_logits = out_scale * lambda_is_obj_appearing + out_bias
+ if self.pred_obj_scores:
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+
+ return (
+ low_res_masks,
+ high_res_masks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def precompute_high_res_features(self, backbone_out):
+ if self.use_high_res_features_in_sam:
+ # precompute projected level 0 and level 1 features in SAM decoder
+ # to avoid running it again on every SAM click
+ backbone_out["backbone_fpn"][0] = self.sam_mask_decoder.conv_s0(
+ backbone_out["backbone_fpn"][0]
+ )
+ backbone_out["backbone_fpn"][1] = self.sam_mask_decoder.conv_s1(
+ backbone_out["backbone_fpn"][1]
+ )
+ return backbone_out
+
+ def forward_image(self, img_batch: torch.Tensor, pre_compute=True):
+ """Get the image feature on the input batch."""
+ backbone_out = self.image_encoder(img_batch)
+ return backbone_out if not pre_compute else self.precompute_high_res_features(backbone_out)
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.num_feature_levels :]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.num_feature_levels :]
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ # flatten NxCxHxW to HWxNxC
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def _prepare_memory_conditioned_features(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ ):
+ """Fuse the current frame's visual feature map with previous memory."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ device = current_vision_feats[-1].device
+ # The case of `self.num_maskmem == 0` below is primarily used for reproducing SAM on images.
+ # In this case, we skip the fusion with any memory.
+ if self.num_maskmem == 0: # Disable memory and skip fusion
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat
+
+ num_obj_ptr_tokens = 0
+ tpos_sign_mul = -1 if track_in_reverse else 1
+ # Step 1: condition the visual features of the current frame on previous memories
+ if not is_init_cond_frame:
+ # Retrieve the memories encoded with the maskmem backbone
+ to_cat_memory, to_cat_memory_pos_embed = [], []
+ # Add conditioning frames's output first (all cond frames have t_pos=0 for
+ # when getting temporal positional embedding below)
+ assert len(output_dict["cond_frame_outputs"]) > 0
+ # Select a maximum number of temporally closest cond frames for cross attention
+ cond_outputs = output_dict["cond_frame_outputs"]
+ selected_cond_outputs, unselected_cond_outputs = select_closest_cond_frames(
+ frame_idx, cond_outputs, self.max_cond_frames_in_attn
+ )
+ t_pos_and_prevs = [(0, out) for out in selected_cond_outputs.values()]
+ # for t_pos in range(1, min(self.num_maskmem, frame_idx)):
+ # out = output_dict["non_cond_frame_outputs"].get(t_pos, None)
+ # t_pos_and_prevs.append((t_pos, out))
+ # Add last (self.num_maskmem - 1) frames before current frame for non-conditioning memory
+ # the earliest one has t_pos=1 and the latest one has t_pos=self.num_maskmem-1
+ # We also allow taking the memory frame non-consecutively (with stride>1), in which case
+ # we take (self.num_maskmem - 2) frames among every stride-th frames plus the last frame.
+ stride = 1 if self.training else self.memory_temporal_stride_for_eval
+
+ for t_pos in range(1, self.num_maskmem):
+ t_rel = self.num_maskmem - t_pos # how many frames before current frame
+ if t_rel == 1:
+ # for t_rel == 1, we take the last frame (regardless of r)
+ if not track_in_reverse:
+ # the frame immediately before this frame (i.e. frame_idx - 1)
+ prev_frame_idx = frame_idx - t_rel
+ else:
+ # the frame immediately after this frame (i.e. frame_idx + 1)
+ prev_frame_idx = frame_idx + t_rel
+ else:
+ # for t_rel >= 2, we take the memory frame from every r-th frames
+ if not track_in_reverse:
+ # first find the nearest frame among every r-th frames before this frame
+ # for r=1, this would be (frame_idx - 2)
+ prev_frame_idx = ((frame_idx - 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx - (t_rel - 2) * stride
+ else:
+ # first find the nearest frame among every r-th frames after this frame
+ # for r=1, this would be (frame_idx + 2)
+ prev_frame_idx = -(-(frame_idx + 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx + (t_rel - 2) * stride
+ out = output_dict["non_cond_frame_outputs"].get(prev_frame_idx, None)
+ if out is None:
+ # If an unselected conditioning frame is among the last (self.num_maskmem - 1)
+ # frames, we still attend to it as if it's a non-conditioning frame.
+ out = unselected_cond_outputs.get(prev_frame_idx, None)
+ t_pos_and_prevs.append((t_pos, out))
+
+ for t_pos, prev in t_pos_and_prevs:
+ if prev is None:
+ continue # skip padding frames
+ # "maskmem_features" might have been offloaded to CPU in demo use cases,
+ # so we load it back to GPU (it's a no-op if it's already on GPU).
+ feats = prev["maskmem_features"].to(device, non_blocking=True)
+ to_cat_memory.append(feats.flatten(2).permute(2, 0, 1))
+ # Spatial positional encoding (it might have been offloaded to CPU in eval)
+ maskmem_enc = prev["maskmem_pos_enc"][-1].to(device)
+ maskmem_enc = maskmem_enc.flatten(2).permute(2, 0, 1)
+ # Temporal positional encoding
+ maskmem_enc = (
+ maskmem_enc + self.maskmem_tpos_enc[self.num_maskmem - t_pos - 1]
+ )
+ to_cat_memory_pos_embed.append(maskmem_enc)
+ # Construct the list of past object pointers
+ if self.use_obj_ptrs_in_encoder:
+ max_obj_ptrs_in_encoder = min(num_frames, self.max_obj_ptrs_in_encoder)
+ # First add those object pointers from selected conditioning frames
+ # (optionally, only include object pointers in the past during evaluation)
+ if not self.training and self.only_obj_ptrs_in_the_past_for_eval:
+ ptr_cond_outputs = {
+ t: out
+ for t, out in selected_cond_outputs.items()
+ if (t >= frame_idx if track_in_reverse else t <= frame_idx)
+ }
+ else:
+ ptr_cond_outputs = selected_cond_outputs
+ pos_and_ptrs = [
+ # Temporal pos encoding contains how far away each pointer is from current frame
+ (
+ (
+ (frame_idx - t) * tpos_sign_mul
+ if self.use_signed_tpos_enc_to_obj_ptrs
+ else abs(frame_idx - t)
+ ),
+ out["obj_ptr"],
+ )
+ for t, out in ptr_cond_outputs.items()
+ ]
+ # Add up to (max_obj_ptrs_in_encoder - 1) non-conditioning frames before current frame
+ for t_diff in range(1, max_obj_ptrs_in_encoder):
+ t = frame_idx + t_diff if track_in_reverse else frame_idx - t_diff
+ if t < 0 or (num_frames is not None and t >= num_frames):
+ break
+ out = output_dict["non_cond_frame_outputs"].get(
+ t, unselected_cond_outputs.get(t, None)
+ )
+ if out is not None:
+ pos_and_ptrs.append((t_diff, out["obj_ptr"]))
+ # If we have at least one object pointer, add them to the across attention
+ if len(pos_and_ptrs) > 0:
+ pos_list, ptrs_list = zip(*pos_and_ptrs)
+ # stack object pointers along dim=0 into [ptr_seq_len, B, C] shape
+ obj_ptrs = torch.stack(ptrs_list, dim=0)
+ # a temporal positional embedding based on how far each object pointer is from
+ # the current frame (sine embedding normalized by the max pointer num).
+ # default false.
+ if self.add_tpos_enc_to_obj_ptrs:
+ t_diff_max = max_obj_ptrs_in_encoder - 1
+ tpos_dim = C if self.proj_tpos_enc_in_obj_ptrs else self.mem_dim
+ obj_pos = torch.tensor(pos_list, device=device)
+ obj_pos = get_1d_sine_pe(obj_pos / t_diff_max, dim=tpos_dim)
+ obj_pos = self.obj_ptr_tpos_proj(obj_pos)
+ obj_pos = obj_pos.unsqueeze(1).expand(-1, B, self.mem_dim)
+ else:
+ obj_pos = obj_ptrs.new_zeros(len(pos_list), B, self.mem_dim)
+ if self.mem_dim < C:
+ # split a pointer into (C // self.mem_dim) tokens for self.mem_dim < C
+ obj_ptrs = obj_ptrs.reshape(
+ -1, B, C // self.mem_dim, self.mem_dim
+ )
+ obj_ptrs = obj_ptrs.permute(0, 2, 1, 3).flatten(0, 1)
+ obj_pos = obj_pos.repeat_interleave(C // self.mem_dim, dim=0)
+ to_cat_memory.append(obj_ptrs)
+ to_cat_memory_pos_embed.append(obj_pos)
+ num_obj_ptr_tokens = obj_ptrs.shape[0]
+ else:
+ num_obj_ptr_tokens = 0
+ else:
+ # for initial conditioning frames, encode them without using any previous memory
+ if self.directly_add_no_mem_embed:
+ # directly add no-mem embedding (instead of using the transformer encoder)
+ pix_feat_with_mem = current_vision_feats[-1] + self.no_mem_embed
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+ # Use a dummy token on the first frame (to avoid empty memory input to tranformer encoder)
+ # the Following lines will never be triggered.
+ raise NotImplementedError
+ to_cat_memory = [self.no_mem_embed.expand(1, B, self.mem_dim)]
+ to_cat_memory_pos_embed = [self.no_mem_pos_enc.expand(1, B, self.mem_dim)]
+
+ # Step 2: Concatenate the memories and forward through the transformer encoder
+ memory = torch.cat(to_cat_memory, dim=0)
+ memory_pos_embed = torch.cat(to_cat_memory_pos_embed, dim=0)
+
+ pix_feat_with_mem = self.memory_attention(
+ curr=current_vision_feats,
+ curr_pos=current_vision_pos_embeds,
+ memory=memory,
+ memory_pos=memory_pos_embed,
+ num_obj_ptr_tokens=num_obj_ptr_tokens,
+ )
+ # reshape the output (HW)BC => BCHW
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+
+ def _encode_new_memory(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ pred_masks_high_res,
+ object_score_logits,
+ is_mask_from_pts,
+ ):
+ """Encode the current image and its prediction into a memory feature."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ # top-level feature, (HW)BC => BCHW
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ if self.non_overlap_masks_for_mem_enc and not self.training:
+ # optionally, apply non-overlapping constraints to the masks (it's applied
+ # in the batch dimension and should only be used during eval, where all
+ # the objects come from the same video under batch size 1).
+ pred_masks_high_res = self._apply_non_overlapping_constraints(
+ pred_masks_high_res
+ )
+ raise NotImplementedError
+ # scale the raw mask logits with a temperature before applying sigmoid
+ binarize = self.binarize_mask_from_pts_for_mem_enc and is_mask_from_pts
+ if binarize and not self.training:
+ mask_for_mem = (pred_masks_high_res > 0).float()
+ else:
+ # apply sigmoid on the raw mask logits to turn them into range (0, 1)
+ mask_for_mem = torch.sigmoid(pred_masks_high_res)
+ # apply scale and bias terms to the sigmoid probabilities
+ if self.sigmoid_scale_for_mem_enc != 1.0:
+ mask_for_mem = mask_for_mem * self.sigmoid_scale_for_mem_enc
+ if self.sigmoid_bias_for_mem_enc != 0.0:
+ mask_for_mem = mask_for_mem + self.sigmoid_bias_for_mem_enc
+ maskmem_out = self.memory_encoder(
+ pix_feat, mask_for_mem, skip_mask_sigmoid=True # sigmoid already applied
+ )
+ maskmem_features = maskmem_out["vision_features"]
+ maskmem_pos_enc = maskmem_out["vision_pos_enc"]
+ # add a no-object embedding to the spatial memory to indicate that the frame
+ # is predicted to be occluded (i.e. no object is appearing in the frame)
+ if self.no_obj_embed_spatial is not None:
+ is_obj_appearing = (object_score_logits > 0).float()
+ maskmem_features += (
+ 1 - is_obj_appearing[..., None, None]
+ ) * self.no_obj_embed_spatial[..., None, None].expand(
+ *maskmem_features.shape
+ )
+ # it will be used in sam2.1
+ # raise NotImplementedError
+
+ return maskmem_features, maskmem_pos_enc
+
+ def _track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam:
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ if prev_sam_mask_logits is not None:
+ assert point_inputs is not None and mask_inputs is None
+ mask_inputs = prev_sam_mask_logits
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def _encode_memory_in_output(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+ if run_mem_encoder and self.num_maskmem > 0:
+ high_res_masks_for_mem_enc = high_res_masks
+ maskmem_features, maskmem_pos_enc = self._encode_new_memory(
+ current_vision_feats=current_vision_feats,
+ feat_sizes=feat_sizes,
+ pred_masks_high_res=high_res_masks_for_mem_enc,
+ object_score_logits=object_score_logits,
+ is_mask_from_pts=(point_inputs is not None),
+ )
+ current_out["maskmem_features"] = maskmem_features
+ current_out["maskmem_pos_enc"] = maskmem_pos_enc
+ else:
+ current_out["maskmem_features"] = None
+ current_out["maskmem_pos_enc"] = None
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ # Whether to run the memory encoder on the predicted masks. Sometimes we might want
+ # to skip the memory encoder with `run_mem_encoder=False`. For example,
+ # in demo we might call `track_step` multiple times for each user click,
+ # and only encode the memory when the user finalizes their clicks. And in ablation
+ # settings like SAM training on static images, we don't need the memory encoder.
+ run_mem_encoder=True,
+ # The previously predicted SAM mask logits (which can be fed together with new clicks in demo).
+ prev_sam_mask_logits=None,
+ ):
+ current_out, sam_outputs, _, _ = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+ if not self.training:
+ # Only add this in inference (to avoid unused param in activation checkpointing;
+ # it's mainly used in the demo to encode spatial memories w/ consolidated masks)
+ current_out["object_score_logits"] = object_score_logits
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+
+ return current_out
+
+ def _use_multimask(self, is_init_cond_frame, point_inputs):
+ """Whether to use multimask output in the SAM head."""
+ num_pts = 0 if point_inputs is None else point_inputs["point_labels"].size(1)
+ multimask_output = (
+ self.multimask_output_in_sam
+ and (is_init_cond_frame or self.multimask_output_for_tracking)
+ and (self.multimask_min_pt_num <= num_pts <= self.multimask_max_pt_num)
+ )
+ return multimask_output
+
+ def _apply_non_overlapping_constraints(self, pred_masks):
+ """
+ Apply non-overlapping constraints to the object scores in pred_masks. Here we
+ keep only the highest scoring object at each spatial location in pred_masks.
+ """
+ batch_size = pred_masks.size(0)
+ if batch_size == 1:
+ return pred_masks
+
+ device = pred_masks.device
+ # "max_obj_inds": object index of the object with the highest score at each location
+ max_obj_inds = torch.argmax(pred_masks, dim=0, keepdim=True)
+ # "batch_obj_inds": object index of each object slice (along dim 0) in `pred_masks`
+ batch_obj_inds = torch.arange(batch_size, device=device)[:, None, None, None]
+ keep = max_obj_inds == batch_obj_inds
+ # suppress overlapping regions' scores below -10.0 so that the foreground regions
+ # don't overlap (here sigmoid(-10.0)=4.5398e-05)
+ pred_masks = torch.where(keep, pred_masks, torch.clamp(pred_masks, max=-10.0))
+ return pred_masks
diff --git a/avs.code/v2.code/model/visual/sam2/modeling/sam2_utils.py b/avs.code/v2.code/model/visual/sam2/modeling/sam2_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..19133558dd657bbcf67f851011d45bd4999cab0a
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/modeling/sam2_utils.py
@@ -0,0 +1,323 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import copy
+from typing import Tuple
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.utils.misc import mask_to_box
+
+
+def select_closest_cond_frames(frame_idx, cond_frame_outputs, max_cond_frame_num):
+ """
+ Select up to `max_cond_frame_num` conditioning frames from `cond_frame_outputs`
+ that are temporally closest to the current frame at `frame_idx`. Here, we take
+ - a) the closest conditioning frame before `frame_idx` (if any);
+ - b) the closest conditioning frame after `frame_idx` (if any);
+ - c) any other temporally closest conditioning frames until reaching a total
+ of `max_cond_frame_num` conditioning frames.
+
+ Outputs:
+ - selected_outputs: selected items (keys & values) from `cond_frame_outputs`.
+ - unselected_outputs: items (keys & values) not selected in `cond_frame_outputs`.
+ """
+ if max_cond_frame_num == -1 or len(cond_frame_outputs) <= max_cond_frame_num:
+ selected_outputs = cond_frame_outputs
+ unselected_outputs = {}
+ else:
+ assert max_cond_frame_num >= 2, "we should allow using 2+ conditioning frames"
+ selected_outputs = {}
+
+ # the closest conditioning frame before `frame_idx` (if any)
+ idx_before = max((t for t in cond_frame_outputs if t < frame_idx), default=None)
+ if idx_before is not None:
+ selected_outputs[idx_before] = cond_frame_outputs[idx_before]
+
+ # the closest conditioning frame after `frame_idx` (if any)
+ idx_after = min((t for t in cond_frame_outputs if t >= frame_idx), default=None)
+ if idx_after is not None:
+ selected_outputs[idx_after] = cond_frame_outputs[idx_after]
+
+ # add other temporally closest conditioning frames until reaching a total
+ # of `max_cond_frame_num` conditioning frames.
+ num_remain = max_cond_frame_num - len(selected_outputs)
+ inds_remain = sorted(
+ (t for t in cond_frame_outputs if t not in selected_outputs),
+ key=lambda x: abs(x - frame_idx),
+ )[:num_remain]
+ selected_outputs.update((t, cond_frame_outputs[t]) for t in inds_remain)
+ unselected_outputs = {
+ t: v for t, v in cond_frame_outputs.items() if t not in selected_outputs
+ }
+
+ return selected_outputs, unselected_outputs
+
+
+def get_1d_sine_pe(pos_inds, dim, temperature=10000):
+ """
+ Get 1D sine positional embedding as in the original Transformer paper.
+ """
+ pe_dim = dim // 2
+ dim_t = torch.arange(pe_dim, dtype=torch.float32, device=pos_inds.device)
+ dim_t = temperature ** (2 * (dim_t // 2) / pe_dim)
+
+ pos_embed = pos_inds.unsqueeze(-1) / dim_t
+ pos_embed = torch.cat([pos_embed.sin(), pos_embed.cos()], dim=-1)
+ return pos_embed
+
+
+def get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(f"activation should be relu/gelu, not {activation}.")
+
+
+def get_clones(module, N):
+ return nn.ModuleList([copy.deepcopy(module) for i in range(N)])
+
+
+class DropPath(nn.Module):
+ # adapted from https://github.com/huggingface/pytorch-image-models/blob/main/timm/layers/drop.py
+ def __init__(self, drop_prob=0.0, scale_by_keep=True):
+ super(DropPath, self).__init__()
+ self.drop_prob = drop_prob
+ self.scale_by_keep = scale_by_keep
+
+ def forward(self, x):
+ if self.drop_prob == 0.0 or not self.training:
+ return x
+ keep_prob = 1 - self.drop_prob
+ shape = (x.shape[0],) + (1,) * (x.ndim - 1)
+ random_tensor = x.new_empty(shape).bernoulli_(keep_prob)
+ if keep_prob > 0.0 and self.scale_by_keep:
+ random_tensor.div_(keep_prob)
+ return x * random_tensor
+
+
+# Lightly adapted from
+# https://github.com/facebookresearch/MaskFormer/blob/main/mask_former/modeling/transformer/transformer_predictor.py # noqa
+class MLP(nn.Module):
+ def __init__(
+ self,
+ input_dim: int,
+ hidden_dim: int,
+ output_dim: int,
+ num_layers: int,
+ activation: nn.Module = nn.ReLU,
+ sigmoid_output: bool = False,
+ ) -> None:
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(
+ nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim])
+ )
+ self.sigmoid_output = sigmoid_output
+ self.act = activation()
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = self.act(layer(x)) if i < self.num_layers - 1 else layer(x)
+ if self.sigmoid_output:
+ x = F.sigmoid(x)
+ return x
+
+
+# From https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py # noqa
+# Itself from https://github.com/facebookresearch/ConvNeXt/blob/d1fa8f6fef0a165b27399986cc2bdacc92777e40/models/convnext.py#L119 # noqa
+class LayerNorm2d(nn.Module):
+ def __init__(self, num_channels: int, eps: float = 1e-6) -> None:
+ super().__init__()
+ self.weight = nn.Parameter(torch.ones(num_channels))
+ self.bias = nn.Parameter(torch.zeros(num_channels))
+ self.eps = eps
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ u = x.mean(1, keepdim=True)
+ s = (x - u).pow(2).mean(1, keepdim=True)
+ x = (x - u) / torch.sqrt(s + self.eps)
+ x = self.weight[:, None, None] * x + self.bias[:, None, None]
+ return x
+
+
+def sample_box_points(
+ masks: torch.Tensor,
+ noise: float = 0.1, # SAM default
+ noise_bound: int = 20, # SAM default
+ top_left_label: int = 2,
+ bottom_right_label: int = 3,
+) -> Tuple[np.array, np.array]:
+ """
+ Sample a noised version of the top left and bottom right corners of a given `bbox`
+
+ Inputs:
+ - masks: [B, 1, H,W] boxes, dtype=torch.Tensor
+ - noise: noise as a fraction of box width and height, dtype=float
+ - noise_bound: maximum amount of noise (in pure pixesl), dtype=int
+
+ Returns:
+ - box_coords: [B, num_pt, 2], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.float
+ - box_labels: [B, num_pt], label 2 is reserverd for top left and 3 for bottom right corners, dtype=torch.int32
+ """
+ device = masks.device
+ box_coords = mask_to_box(masks)
+ B, _, H, W = masks.shape
+ box_labels = torch.tensor(
+ [top_left_label, bottom_right_label], dtype=torch.int, device=device
+ ).repeat(B)
+ if noise > 0.0:
+ if not isinstance(noise_bound, torch.Tensor):
+ noise_bound = torch.tensor(noise_bound, device=device)
+ bbox_w = box_coords[..., 2] - box_coords[..., 0]
+ bbox_h = box_coords[..., 3] - box_coords[..., 1]
+ max_dx = torch.min(bbox_w * noise, noise_bound)
+ max_dy = torch.min(bbox_h * noise, noise_bound)
+ box_noise = 2 * torch.rand(B, 1, 4, device=device) - 1
+ box_noise = box_noise * torch.stack((max_dx, max_dy, max_dx, max_dy), dim=-1)
+
+ box_coords = box_coords + box_noise
+ img_bounds = (
+ torch.tensor([W, H, W, H], device=device) - 1
+ ) # uncentered pixel coords
+ box_coords.clamp_(torch.zeros_like(img_bounds), img_bounds) # In place clamping
+
+ box_coords = box_coords.reshape(-1, 2, 2) # always 2 points
+ box_labels = box_labels.reshape(-1, 2)
+ return box_coords, box_labels
+
+
+def sample_random_points_from_errors(gt_masks, pred_masks, num_pt=1):
+ """
+ Sample `num_pt` random points (along with their labels) independently from the error regions.
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - num_pt: int, number of points to sample independently for each of the B error maps
+
+ Outputs:
+ - points: [B, num_pt, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, num_pt], dtype=torch.int32, where 1 means positive clicks and 0 means
+ negative clicks
+ """
+ if pred_masks is None: # if pred_masks is not provided, treat it as empty
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+ assert num_pt >= 0
+
+ B, _, H_im, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+ # whether the prediction completely match the ground-truth on each mask
+ all_correct = torch.all((gt_masks == pred_masks).flatten(2), dim=2)
+ all_correct = all_correct[..., None, None]
+
+ # channel 0 is FP map, while channel 1 is FN map
+ pts_noise = torch.rand(B, num_pt, H_im, W_im, 2, device=device)
+ # sample a negative new click from FP region or a positive new click
+ # from FN region, depend on where the maximum falls,
+ # and in case the predictions are all correct (no FP or FN), we just
+ # sample a negative click from the background region
+ pts_noise[..., 0] *= fp_masks | (all_correct & ~gt_masks)
+ pts_noise[..., 1] *= fn_masks
+ pts_idx = pts_noise.flatten(2).argmax(dim=2)
+ labels = (pts_idx % 2).to(torch.int32)
+ pts_idx = pts_idx // 2
+ pts_x = pts_idx % W_im
+ pts_y = pts_idx // W_im
+ points = torch.stack([pts_x, pts_y], dim=2).to(torch.float)
+ return points, labels
+
+
+def sample_one_point_from_error_center(gt_masks, pred_masks, padding=True):
+ """
+ Sample 1 random point (along with its label) from the center of each error region,
+ that is, the point with the largest distance to the boundary of each error region.
+ This is the RITM sampling method from https://github.com/saic-vul/ritm_interactive_segmentation/blob/master/isegm/inference/clicker.py
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - padding: if True, pad with boundary of 1 px for distance transform
+
+ Outputs:
+ - points: [B, 1, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, 1], dtype=torch.int32, where 1 means positive clicks and 0 means negative clicks
+ """
+ import cv2
+
+ if pred_masks is None:
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+
+ B, _, _, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+
+ fp_masks = fp_masks.cpu().numpy()
+ fn_masks = fn_masks.cpu().numpy()
+ points = torch.zeros(B, 1, 2, dtype=torch.float)
+ labels = torch.ones(B, 1, dtype=torch.int32)
+ for b in range(B):
+ fn_mask = fn_masks[b, 0]
+ fp_mask = fp_masks[b, 0]
+ if padding:
+ fn_mask = np.pad(fn_mask, ((1, 1), (1, 1)), "constant")
+ fp_mask = np.pad(fp_mask, ((1, 1), (1, 1)), "constant")
+ # compute the distance of each point in FN/FP region to its boundary
+ fn_mask_dt = cv2.distanceTransform(fn_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ fp_mask_dt = cv2.distanceTransform(fp_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ if padding:
+ fn_mask_dt = fn_mask_dt[1:-1, 1:-1]
+ fp_mask_dt = fp_mask_dt[1:-1, 1:-1]
+
+ # take the point in FN/FP region with the largest distance to its boundary
+ fn_mask_dt_flat = fn_mask_dt.reshape(-1)
+ fp_mask_dt_flat = fp_mask_dt.reshape(-1)
+ fn_argmax = np.argmax(fn_mask_dt_flat)
+ fp_argmax = np.argmax(fp_mask_dt_flat)
+ is_positive = fn_mask_dt_flat[fn_argmax] > fp_mask_dt_flat[fp_argmax]
+ pt_idx = fn_argmax if is_positive else fp_argmax
+ points[b, 0, 0] = pt_idx % W_im # x
+ points[b, 0, 1] = pt_idx // W_im # y
+ labels[b, 0] = int(is_positive)
+
+ points = points.to(device)
+ labels = labels.to(device)
+ return points, labels
+
+
+def get_next_point(gt_masks, pred_masks, method):
+ if method == "uniform":
+ return sample_random_points_from_errors(gt_masks, pred_masks)
+ elif method == "center":
+ return sample_one_point_from_error_center(gt_masks, pred_masks)
+ else:
+ raise ValueError(f"unknown sampling method {method}")
diff --git a/avs.code/v2.code/model/visual/sam2/organised_sam2_train.py b/avs.code/v2.code/model/visual/sam2/organised_sam2_train.py
new file mode 100644
index 0000000000000000000000000000000000000000..607c3ad22ba7dcb7eb74c30e1283f68c4808450e
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/organised_sam2_train.py
@@ -0,0 +1,811 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+
+import numpy as np
+import torch
+import torch.distributed
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+from model.visual.sam2.modeling.sam2_utils import (
+ get_1d_sine_pe,
+ get_next_point,
+ sample_box_points,
+ select_closest_cond_frames,
+)
+
+from utils.misc import concat_points
+
+from utils.data_utils import BatchedVideoDatapoint
+
+
+class SAM2Train(SAM2Base):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention=None,
+ memory_encoder=None,
+ prob_to_use_pt_input_for_train=0.0,
+ prob_to_use_pt_input_for_eval=0.0,
+ prob_to_use_box_input_for_train=0.0,
+ prob_to_use_box_input_for_eval=0.0,
+ # if it is greater than 1, we interactive point sampling in the 1st frame and other randomly selected frames
+ num_frames_to_correct_for_train=1, # default: only iteratively sample on first frame
+ num_frames_to_correct_for_eval=1, # default: only iteratively sample on first frame
+ rand_frames_to_correct_for_train=False,
+ rand_frames_to_correct_for_eval=False,
+ # how many frames to use as initial conditioning frames (for both point input and mask input; the first frame is always used as an initial conditioning frame)
+ # - if `rand_init_cond_frames` below is True, we randomly sample 1~num_init_cond_frames initial conditioning frames
+ # - otherwise we sample a fixed number of num_init_cond_frames initial conditioning frames
+ # note: for point input, we sample correction points on all such initial conditioning frames, and we require that `num_frames_to_correct` >= `num_init_cond_frames`;
+ # these are initial conditioning frames because as we track the video, more conditioning frames might be added
+ # when a frame receives correction clicks under point input if `add_all_frames_to_correct_as_cond=True`
+ num_init_cond_frames_for_train=1, # default: only use the first frame as initial conditioning frame
+ num_init_cond_frames_for_eval=1, # default: only use the first frame as initial conditioning frame
+ rand_init_cond_frames_for_train=True, # default: random 1~num_init_cond_frames_for_train cond frames (to be constent w/ previous TA data loader)
+ rand_init_cond_frames_for_eval=False,
+ # if `add_all_frames_to_correct_as_cond` is True, we also append to the conditioning frame list any frame that receives a later correction click
+ # if `add_all_frames_to_correct_as_cond` is False, we conditioning frame list to only use those initial conditioning frames
+ add_all_frames_to_correct_as_cond=False,
+ # how many additional correction points to sample (on each frame selected to be corrected)
+ # note that the first frame receives an initial input click (in addition to any correction clicks)
+ num_correction_pt_per_frame=7,
+ # method for point sampling during evaluation
+ # "uniform" (sample uniformly from error region) or "center" (use the point with the largest distance to error region boundary)
+ # default to "center" to be consistent with evaluation in the SAM paper
+ pt_sampling_for_eval="center",
+ # During training, we optionally allow sampling the correction points from GT regions
+ # instead of the prediction error regions with a small probability. This might allow the
+ # model to overfit less to the error regions in training datasets
+ prob_to_sample_from_gt_for_train=0.0,
+ use_act_ckpt_iterative_pt_sampling=False,
+ # whether to forward image features per frame (as it's being tracked) during evaluation, instead of forwarding image features
+ # of all frames at once. This avoids backbone OOM errors on very long videos in evaluation, but could be slightly slower.
+ forward_backbone_per_frame_for_eval=False,
+ freeze_image_encoder=False,
+ **kwargs,
+ ):
+ super().__init__(image_encoder, memory_attention, memory_encoder, **kwargs)
+ self.use_act_ckpt_iterative_pt_sampling = use_act_ckpt_iterative_pt_sampling
+ self.forward_backbone_per_frame_for_eval = forward_backbone_per_frame_for_eval
+
+ # Point sampler and conditioning frames
+ self.prob_to_use_pt_input_for_train = prob_to_use_pt_input_for_train
+ self.prob_to_use_box_input_for_train = prob_to_use_box_input_for_train
+ self.prob_to_use_pt_input_for_eval = prob_to_use_pt_input_for_eval
+ self.prob_to_use_box_input_for_eval = prob_to_use_box_input_for_eval
+ if prob_to_use_pt_input_for_train > 0 or prob_to_use_pt_input_for_eval > 0:
+ logging.info(
+ f"Training with points (sampled from masks) as inputs with p={prob_to_use_pt_input_for_train}"
+ )
+ assert num_frames_to_correct_for_train >= num_init_cond_frames_for_train
+ assert num_frames_to_correct_for_eval >= num_init_cond_frames_for_eval
+
+ self.num_frames_to_correct_for_train = num_frames_to_correct_for_train
+ self.num_frames_to_correct_for_eval = num_frames_to_correct_for_eval
+ self.rand_frames_to_correct_for_train = rand_frames_to_correct_for_train
+ self.rand_frames_to_correct_for_eval = rand_frames_to_correct_for_eval
+ # Initial multi-conditioning frames
+ self.num_init_cond_frames_for_train = num_init_cond_frames_for_train
+ self.num_init_cond_frames_for_eval = num_init_cond_frames_for_eval
+ self.rand_init_cond_frames_for_train = rand_init_cond_frames_for_train
+ self.rand_init_cond_frames_for_eval = rand_init_cond_frames_for_eval
+ self.add_all_frames_to_correct_as_cond = add_all_frames_to_correct_as_cond
+ self.num_correction_pt_per_frame = num_correction_pt_per_frame
+ self.pt_sampling_for_eval = pt_sampling_for_eval
+ self.prob_to_sample_from_gt_for_train = prob_to_sample_from_gt_for_train
+ # A random number generator with a fixed initial seed across GPUs
+ self.rng = np.random.default_rng(seed=42)
+ if freeze_image_encoder:
+ for p in self.image_encoder.parameters():
+ p.requires_grad = False
+
+
+ def forward(self, input: BatchedVideoDatapoint):
+ if self.training or not self.forward_backbone_per_frame_for_eval:
+ # precompute image features on all frames before tracking
+ backbone_out = self.forward_image(input.flat_img_batch)
+ else:
+ # defer image feature computation on a frame until it's being tracked
+ backbone_out = {"backbone_fpn": None, "vision_pos_enc": None}
+ backbone_out = self.prepare_prompt_inputs(backbone_out, input)
+ previous_stages_out = self.forward_tracking(backbone_out, input)
+
+ return previous_stages_out
+
+ def _prepare_backbone_features_per_frame(self, img_batch, img_ids):
+ """Compute the image backbone features on the fly for the given img_ids."""
+ # Only forward backbone on unique image ids to avoid repetitive computation
+ # (if `img_ids` has only one element, it's already unique so we skip this step).
+ if img_ids.numel() > 1:
+ unique_img_ids, inv_ids = torch.unique(img_ids, return_inverse=True)
+ else:
+ unique_img_ids, inv_ids = img_ids, None
+
+ # Compute the image features on those unique image ids
+ image = img_batch[unique_img_ids]
+ backbone_out = self.forward_image(image)
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+ '''
+ vision_feats
+ torch.Size([65536, 5, 32])
+ torch.Size([16384, 5, 64])
+ torch.Size([4096, 5, 256])
+ '''
+ # Inverse-map image features for `unique_img_ids` to the final image features
+ # for the original input `img_ids`.
+ if inv_ids is not None:
+ image = image[inv_ids]
+ vision_feats = [x[:, inv_ids] for x in vision_feats]
+ vision_pos_embeds = [x[:, inv_ids] for x in vision_pos_embeds]
+
+ return image, vision_feats, vision_pos_embeds, feat_sizes
+
+ @staticmethod
+ def dont_prepare_prompt_inputs(backbone_out, num_frames=5, cond_frame=0):
+ backbone_out["gt_masks_per_frame"] = {}
+ backbone_out["num_frames"] = num_frames
+ backbone_out["use_pt_input"] = False
+ # always start from the first frame.
+ backbone_out["init_cond_frames"] = [cond_frame]
+ backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames) if i != cond_frame]
+ # backbone_out["init_cond_frames"] = []
+ # backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames)]
+
+ backbone_out["mask_inputs_per_frame"] = {}
+ backbone_out["point_inputs_per_frame"] = {}
+ backbone_out["frames_to_add_correction_pt"] = []
+ return backbone_out
+
+ def prepare_prompt_inputs(self, backbone_out, input, start_frame_idx=0):
+ """
+ Prepare input mask, point or box prompts. Optionally, we allow tracking from
+ a custom `start_frame_idx` to the end of the video (for evaluation purposes).
+ """
+ # Load the ground-truth masks on all frames (so that we can later
+ # sample correction points from them)
+ # gt_masks_per_frame = {
+ # stage_id: targets.segments.unsqueeze(1) # [B, 1, H_im, W_im]
+ # for stage_id, targets in enumerate(input.find_targets)
+ # }
+ gt_masks_per_frame = {
+ stage_id: masks.unsqueeze(1) # [B, 1, H_im, W_im]
+ for stage_id, masks in enumerate(input.masks)
+ }
+ # gt_masks_per_frame = input.masks.unsqueeze(2) # [T,B,1,H_im,W_im] keep everything in tensor form
+ backbone_out["gt_masks_per_frame"] = gt_masks_per_frame
+ num_frames = input.num_frames
+ backbone_out["num_frames"] = num_frames
+
+ # Randomly decide whether to use point inputs or mask inputs
+ if self.training:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_train
+ prob_to_use_box_input = self.prob_to_use_box_input_for_train
+ num_frames_to_correct = self.num_frames_to_correct_for_train
+ rand_frames_to_correct = self.rand_frames_to_correct_for_train
+ num_init_cond_frames = self.num_init_cond_frames_for_train
+ rand_init_cond_frames = self.rand_init_cond_frames_for_train
+ else:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_eval
+ prob_to_use_box_input = self.prob_to_use_box_input_for_eval
+ num_frames_to_correct = self.num_frames_to_correct_for_eval
+ rand_frames_to_correct = self.rand_frames_to_correct_for_eval
+ num_init_cond_frames = self.num_init_cond_frames_for_eval
+ rand_init_cond_frames = self.rand_init_cond_frames_for_eval
+ if num_frames == 1:
+ # here we handle a special case for mixing video + SAM on image training,
+ # where we force using point input for the SAM task on static images
+ prob_to_use_pt_input = 1.0
+ num_frames_to_correct = 1
+ num_init_cond_frames = 1
+ assert num_init_cond_frames >= 1
+ # (here `self.rng.random()` returns value in range 0.0 <= X < 1.0)
+ use_pt_input = self.rng.random() < prob_to_use_pt_input
+ if rand_init_cond_frames and num_init_cond_frames > 1:
+ # randomly select 1 to `num_init_cond_frames` frames as initial conditioning frames
+ num_init_cond_frames = self.rng.integers(
+ 1, num_init_cond_frames, endpoint=True
+ )
+ if (
+ use_pt_input
+ and rand_frames_to_correct
+ and num_frames_to_correct > num_init_cond_frames
+ ):
+ # randomly select `num_init_cond_frames` to `num_frames_to_correct` frames to sample
+ # correction clicks (only for the case of point input)
+ num_frames_to_correct = self.rng.integers(
+ num_init_cond_frames, num_frames_to_correct, endpoint=True
+ )
+ backbone_out["use_pt_input"] = use_pt_input
+
+ # Sample initial conditioning frames
+ if num_init_cond_frames == 1:
+ init_cond_frames = [start_frame_idx] # starting frame
+ else:
+ # starting frame + randomly selected remaining frames (without replacement)
+ init_cond_frames = [start_frame_idx] + self.rng.choice(
+ range(start_frame_idx + 1, num_frames),
+ num_init_cond_frames - 1,
+ replace=False,
+ ).tolist()
+ backbone_out["init_cond_frames"] = init_cond_frames
+ backbone_out["frames_not_in_init_cond"] = [
+ t for t in range(start_frame_idx, num_frames) if t not in init_cond_frames
+ ]
+ # Prepare mask or point inputs on initial conditioning frames
+ backbone_out["mask_inputs_per_frame"] = {} # {frame_idx: }
+ backbone_out["point_inputs_per_frame"] = {} # {frame_idx: }
+ for t in init_cond_frames:
+ if not use_pt_input:
+ backbone_out["mask_inputs_per_frame"][t] = gt_masks_per_frame[t]
+ else:
+ # During training # P(box) = prob_to_use_pt_input * prob_to_use_box_input
+ use_box_input = self.rng.random() < prob_to_use_box_input
+ if use_box_input:
+ points, labels = sample_box_points(
+ gt_masks_per_frame[t],
+ )
+ else:
+ # (here we only sample **one initial point** on initial conditioning frames from the
+ # ground-truth mask; we may sample more correction points on the fly)
+ points, labels = get_next_point(
+ gt_masks=gt_masks_per_frame[t],
+ pred_masks=None,
+ method=(
+ "uniform" if self.training else self.pt_sampling_for_eval
+ ),
+ )
+
+ point_inputs = {"point_coords": points, "point_labels": labels}
+ backbone_out["point_inputs_per_frame"][t] = point_inputs
+
+ # Sample frames where we will add correction clicks on the fly
+ # based on the error between prediction and ground-truth masks
+ if not use_pt_input:
+ # no correction points will be sampled when using mask inputs
+ frames_to_add_correction_pt = []
+ elif num_frames_to_correct == num_init_cond_frames:
+ frames_to_add_correction_pt = init_cond_frames
+ else:
+ assert num_frames_to_correct > num_init_cond_frames
+ # initial cond frame + randomly selected remaining frames (without replacement)
+ extra_num = num_frames_to_correct - num_init_cond_frames
+ frames_to_add_correction_pt = (
+ init_cond_frames
+ + self.rng.choice(
+ backbone_out["frames_not_in_init_cond"], extra_num, replace=False
+ ).tolist()
+ )
+ backbone_out["frames_to_add_correction_pt"] = frames_to_add_correction_pt
+
+ return backbone_out
+
+ def forward_tracking_wo_prompt(self, backbone_out, audio_res=None, return_dict=False):
+ # img_feats_already_computed = True.
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+
+ av_v_feats, av_a_feats = audio_res
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ img_ids = stage_id
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids].unsqueeze(1) for x in vision_feats] # add unsqueeze to maintain single sample.
+ current_vision_pos_embeds = [x[:, img_ids].unsqueeze(1) for x in vision_pos_embeds] # add unsqueeze to maintain single sample.
+ current_av_v_feats = [x[img_ids] for x in av_v_feats]
+ current_av_a_feats = [x[img_ids] for x in av_a_feats]
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step_wo_prompt(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=None, # backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=None, # backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=None, # backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=None, # frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ audio_res=(current_av_v_feats, current_av_a_feats),
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+
+ return all_frame_outputs
+
+ def track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ audio_res=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step_wo_prompt(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ '''
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+ '''
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ 666., # point_inputs,
+ run_mem_encoder,
+ # we follow SAM2 predictor, if we have multiple masks output, we only utilise the first one to perform
+ # the memory rope attention.
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res=None
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam: # False
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # current_vision_feats[-1] = current_vision_feats[-1] + self.no_mem_embed
+ # pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ # pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+
+ # we do not apply any prompts except audio.
+ '''
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ # if prev_sam_mask_logits is not None:
+ # assert point_inputs is not None and mask_inputs is None
+ # mask_inputs = prev_sam_mask_logits
+
+ ## comment this line, as we don't use points as prompts.
+ # multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ '''
+
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=True,
+ audio_res=audio_res
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def forward_tracking(
+ self, backbone_out, input: BatchedVideoDatapoint, return_dict=False
+ ):
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ img_feats_already_computed = backbone_out["backbone_fpn"] is not None
+ if img_feats_already_computed:
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ # img_ids = input.find_inputs[stage_id].img_ids
+ img_ids = input.flat_obj_to_img_idx[stage_id]
+ if img_feats_already_computed:
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids] for x in vision_feats]
+ current_vision_pos_embeds = [x[:, img_ids] for x in vision_pos_embeds]
+ else:
+ # Otherwise, compute the image features on the fly for the given img_ids
+ # (this might be used for evaluation on long videos to avoid backbone OOM).
+ (
+ _,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features_per_frame(
+ input.flat_img_batch, img_ids
+ )
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+ return all_frame_outputs
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _iter_correct_pt_sampling(
+ self,
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat_with_mem,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+
+ assert gt_masks is not None
+ all_pred_masks = [low_res_masks]
+ all_pred_high_res_masks = [high_res_masks]
+ all_pred_multimasks = [low_res_multimasks]
+ all_pred_high_res_multimasks = [high_res_multimasks]
+ all_pred_ious = [ious]
+ all_point_inputs = [point_inputs]
+ all_object_score_logits = [object_score_logits]
+ for _ in range(self.num_correction_pt_per_frame):
+ # sample a new point from the error between prediction and ground-truth
+ # (with a small probability, directly sample from GT masks instead of errors)
+ if self.training and self.prob_to_sample_from_gt_for_train > 0:
+ sample_from_gt = (
+ self.rng.random() < self.prob_to_sample_from_gt_for_train
+ )
+ else:
+ sample_from_gt = False
+ # if `pred_for_new_pt` is None, only GT masks will be used for point sampling
+ pred_for_new_pt = None if sample_from_gt else (high_res_masks > 0)
+ new_points, new_labels = get_next_point(
+ gt_masks=gt_masks,
+ pred_masks=pred_for_new_pt,
+ method="uniform" if self.training else self.pt_sampling_for_eval,
+ )
+ point_inputs = concat_points(point_inputs, new_points, new_labels)
+ # Feed the mask logits of the previous SAM outputs in the next SAM decoder step.
+ # For tracking, this means that when the user adds a correction click, we also feed
+ # the tracking output mask logits along with the click as input to the SAM decoder.
+ mask_inputs = low_res_masks
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ if self.use_act_ckpt_iterative_pt_sampling and not multimask_output:
+ sam_outputs = torch.utils.checkpoint.checkpoint(
+ self._forward_sam_heads,
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ use_reentrant=False,
+ )
+ else:
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ _,
+ object_score_logits,
+ ) = sam_outputs
+ all_pred_masks.append(low_res_masks)
+ all_pred_high_res_masks.append(high_res_masks)
+ all_pred_multimasks.append(low_res_multimasks)
+ all_pred_high_res_multimasks.append(high_res_multimasks)
+ all_pred_ious.append(ious)
+ all_point_inputs.append(point_inputs)
+ all_object_score_logits.append(object_score_logits)
+
+ # Concatenate the masks along channel (to compute losses on all of them,
+ # using `MultiStepIteractiveMasks`)
+ current_out["multistep_pred_masks"] = torch.cat(all_pred_masks, dim=1)
+ current_out["multistep_pred_masks_high_res"] = torch.cat(
+ all_pred_high_res_masks, dim=1
+ )
+ current_out["multistep_pred_multimasks"] = all_pred_multimasks
+ current_out["multistep_pred_multimasks_high_res"] = all_pred_high_res_multimasks
+ current_out["multistep_pred_ious"] = all_pred_ious
+ current_out["multistep_point_inputs"] = all_point_inputs
+ current_out["multistep_object_score_logits"] = all_object_score_logits
+
+ return point_inputs, sam_outputs
diff --git a/avs.code/v2.code/model/visual/sam2/utils/__init__.py b/avs.code/v2.code/model/visual/sam2/utils/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/utils/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/avs.code/v2.code/model/visual/sam2/utils/misc.py b/avs.code/v2.code/model/visual/sam2/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..b65ee825732ff85137805be650edd4cbe8e6f6d4
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/utils/misc.py
@@ -0,0 +1,349 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
diff --git a/avs.code/v2.code/model/visual/sam2/utils/transforms.py b/avs.code/v2.code/model/visual/sam2/utils/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d4fa6a3e4d2e2a0dde7f87e4991daff338467c4
--- /dev/null
+++ b/avs.code/v2.code/model/visual/sam2/utils/transforms.py
@@ -0,0 +1,118 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import warnings
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from torchvision.transforms import Normalize, Resize, ToTensor
+
+
+class SAM2Transforms(nn.Module):
+ def __init__(
+ self, resolution, mask_threshold, max_hole_area=0.0, max_sprinkle_area=0.0
+ ):
+ """
+ Transforms for SAM2.
+ """
+ super().__init__()
+ self.resolution = resolution
+ self.mask_threshold = mask_threshold
+ self.max_hole_area = max_hole_area
+ self.max_sprinkle_area = max_sprinkle_area
+ self.mean = [0.485, 0.456, 0.406]
+ self.std = [0.229, 0.224, 0.225]
+ self.to_tensor = ToTensor()
+ self.transforms = torch.jit.script(
+ nn.Sequential(
+ Resize((self.resolution, self.resolution)),
+ Normalize(self.mean, self.std),
+ )
+ )
+
+ def __call__(self, x):
+ x = self.to_tensor(x)
+ return self.transforms(x)
+
+ def forward_batch(self, img_list):
+ img_batch = [self.transforms(self.to_tensor(img)) for img in img_list]
+ img_batch = torch.stack(img_batch, dim=0)
+ return img_batch
+
+ def transform_coords(
+ self, coords: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the SAM2 model.
+ """
+ if normalize:
+ assert orig_hw is not None
+ h, w = orig_hw
+ coords = coords.clone()
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+
+ coords = coords * self.resolution # unnormalize coords
+ return coords
+
+ def transform_boxes(
+ self, boxes: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a tensor of shape Bx4. The coordinates can be in absolute image or normalized coordinates,
+ if the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+ """
+ boxes = self.transform_coords(boxes.reshape(-1, 2, 2), normalize, orig_hw)
+ return boxes
+
+ def postprocess_masks(self, masks: torch.Tensor, orig_hw) -> torch.Tensor:
+ """
+ Perform PostProcessing on output masks.
+ """
+ from model.visual.sam2.utils.misc import get_connected_components
+
+ masks = masks.float()
+ input_masks = masks
+ mask_flat = masks.flatten(0, 1).unsqueeze(1) # flatten as 1-channel image
+ try:
+ if self.max_hole_area > 0:
+ # Holes are those connected components in background with area <= self.fill_hole_area
+ # (background regions are those with mask scores <= self.mask_threshold)
+ labels, areas = get_connected_components(
+ mask_flat <= self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_hole_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with a small positive mask score (10.0) to change them to foreground.
+ masks = torch.where(is_hole, self.mask_threshold + 10.0, masks)
+
+ if self.max_sprinkle_area > 0:
+ labels, areas = get_connected_components(
+ mask_flat > self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_sprinkle_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with negative mask score (-10.0) to change them to background.
+ masks = torch.where(is_hole, self.mask_threshold - 10.0, masks)
+ except Exception as e:
+ # Skip the post-processing step if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ masks = input_masks
+
+ masks = F.interpolate(masks, orig_hw, mode="bilinear", align_corners=False)
+ return masks
diff --git a/avs.code/v2.code/tools/build_avsbench_v2_merge_subset.py b/avs.code/v2.code/tools/build_avsbench_v2_merge_subset.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a172492ead739c736ea5acd4d8df7df68bfa928
--- /dev/null
+++ b/avs.code/v2.code/tools/build_avsbench_v2_merge_subset.py
@@ -0,0 +1,153 @@
+#!/usr/bin/env python3
+"""
+Build merge-debug tree under AVSBench/v2/ (name = v2):
+
+ AVSBench/v2/avss_index/metadata.csv
+ AVSBench/v2/v1s/<20 uids>/
+ AVSBench/v2/v1m/<20 uids>/
+ AVSBench/v2/v2/<20 uids>/ # v2-protocol clips from ~/Downloads/v2.zip
+
+Each modality: 16 train + 4 test rows (20 clips). Full AVSBench is used as source for v1s/v1m copies.
+"""
+from __future__ import annotations
+
+import csv
+import os
+import shutil
+import zipfile
+
+import pandas as pd
+
+_WORKSPACE = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
+AVSBENCH = os.path.join(_WORKSPACE, "AVSBench")
+SUBSET_ROOT = os.path.join(AVSBENCH, "v2") # data_root for merge run
+FULL_META = os.path.join(AVSBENCH, "avss_index", "metadata.csv")
+ZIP_PATH = os.path.expanduser("~/Downloads/v2.zip")
+PER_LABEL = 20
+TRAIN_N, TEST_N = 16, 4
+
+
+def _pick_rows_from_full_metadata(label: str) -> list[dict]:
+ df = pd.read_csv(FULL_META)
+ picked: list[dict] = []
+ for split, need in ("train", TRAIN_N), ("test", TEST_N):
+ got = 0
+ sub = df[(df["split"] == split) & (df["label"] == label)]
+ for _, row in sub.iterrows():
+ uid = str(row["uid"])
+ src = os.path.join(AVSBENCH, label, uid)
+ if not os.path.isdir(src):
+ continue
+ picked.append({k: row[k] for k in row.index})
+ got += 1
+ if got >= need:
+ break
+ if got < need:
+ raise SystemExit(
+ f"not enough existing {label}/{split} under {AVSBENCH}: need {need}, got {got}"
+ )
+ return picked
+
+
+def _list_v2_uids(z: zipfile.ZipFile) -> list[str]:
+ uids: set[str] = set()
+ for name in z.namelist():
+ if not name.startswith("v2/") or name.endswith("/"):
+ continue
+ parts = name.split("/")
+ if len(parts) >= 3 and parts[1]:
+ uids.add(parts[1])
+ return sorted(uids)
+
+
+def _extract_v2_from_zip(uids: list[str]) -> None:
+ allowed = set(uids)
+ with zipfile.ZipFile(ZIP_PATH, "r") as z:
+ for info in z.infolist():
+ n = info.filename
+ if not n.startswith("v2/"):
+ continue
+ parts = n.split("/")
+ if len(parts) < 3 or parts[1] not in allowed:
+ continue
+ if "/labels_semantic/" in n:
+ continue
+ if "/frames/" in n and n.endswith(".jpg"):
+ pass
+ elif "/labels_rgb/" in n and n.endswith(".png"):
+ pass
+ elif n.endswith("/audio.wav"):
+ pass
+ else:
+ continue
+ dest = os.path.join(SUBSET_ROOT, "v2", parts[1], *parts[2:])
+ os.makedirs(os.path.dirname(dest), exist_ok=True)
+ with z.open(info, "r") as src, open(dest, "wb") as out:
+ shutil.copyfileobj(src, out)
+
+
+def _copy_clip(label: str, uid: str) -> None:
+ src = os.path.join(AVSBENCH, label, uid)
+ dst = os.path.join(SUBSET_ROOT, label, uid)
+ if os.path.isdir(dst):
+ shutil.rmtree(dst)
+ shutil.copytree(src, dst)
+
+
+def main() -> None:
+ if not os.path.isfile(FULL_META):
+ raise SystemExit(f"missing full metadata: {FULL_META}")
+ if not os.path.isfile(ZIP_PATH):
+ raise SystemExit(f"missing v2 zip: {ZIP_PATH}")
+
+ shutil.rmtree(SUBSET_ROOT, ignore_errors=True)
+ os.makedirs(os.path.join(SUBSET_ROOT, "avss_index"), exist_ok=True)
+ for sub in ("v1s", "v1m", "v2"):
+ os.makedirs(os.path.join(SUBSET_ROOT, sub), exist_ok=True)
+
+ all_rows: list[dict] = []
+
+ for label in ("v1s", "v1m"):
+ rows = _pick_rows_from_full_metadata(label)
+ assert len(rows) == PER_LABEL
+ for r in rows:
+ _copy_clip(label, str(r["uid"]))
+ all_rows.extend(rows)
+
+ with zipfile.ZipFile(ZIP_PATH, "r") as z:
+ uids_all = _list_v2_uids(z)
+ if len(uids_all) < PER_LABEL:
+ raise SystemExit(f"v2.zip has only {len(uids_all)} clips")
+ v2_uids = uids_all[:PER_LABEL]
+ _extract_v2_from_zip(v2_uids)
+
+ for i, uid in enumerate(v2_uids):
+ split = "train" if i < TRAIN_N else "test"
+ vid = uid.rsplit("_", 2)[0] if uid.count("_") >= 2 else uid
+ all_rows.append(
+ {
+ "vid": vid,
+ "uid": uid,
+ "s_min": 0,
+ "s_sec": 0,
+ "a_obj": "v2subset",
+ "split": split,
+ "label": "v2",
+ }
+ )
+
+ meta_out = os.path.join(SUBSET_ROOT, "avss_index", "metadata.csv")
+ with open(meta_out, "w", newline="") as f:
+ w = csv.DictWriter(f, fieldnames=["vid", "uid", "s_min", "s_sec", "a_obj", "split", "label"])
+ w.writeheader()
+ for r in all_rows:
+ w.writerow({k: r.get(k, "") for k in w.fieldnames})
+
+ print("subset data_root:", SUBSET_ROOT)
+ print("metadata:", meta_out)
+ print("v2 uids:", v2_uids)
+ print("rows:", len(all_rows))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/avs.code/v2.code/tools/mini_debug_train.py b/avs.code/v2.code/tools/mini_debug_train.py
new file mode 100644
index 0000000000000000000000000000000000000000..a73f1bdf645441d6c4fa4c8d906b59287016e0be
--- /dev/null
+++ b/avs.code/v2.code/tools/mini_debug_train.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+"""DDP smoke test: 1 epoch on AVSBench/v2 merge subset (20+20+20 clips).
+
+Build first::
+
+ cd /path/to/v2.code && python3 tools/build_avsbench_v2_merge_subset.py
+
+Then::
+
+ cd /path/to/v2.code && python3 tools/mini_debug_train.py
+"""
+from __future__ import annotations
+
+import os
+import sys
+
+# Avoid MKL + libgomp conflict on some conda stacks before numpy/torch import.
+os.environ.setdefault("MKL_THREADING_LAYER", "GNU")
+import numpy # noqa: F401, E402
+
+_REPO = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
+os.chdir(_REPO)
+sys.path.insert(0, _REPO)
+_WORKSPACE = os.path.dirname(_REPO)
+_MERGE_DATA = os.path.join(_WORKSPACE, "AVSBench", "v2")
+
+
+def _patch_config() -> None:
+ import configs.config as cfg # noqa: E402
+
+ cfg.C.data_root_path = _MERGE_DATA
+ cfg.C.saved_dir = os.path.join("/tmp", "v2_mini_debug_ckpt")
+ os.makedirs(cfg.C.saved_dir, exist_ok=True)
+ cfg.C.epochs = 1
+ cfg.C.batch_size = 1
+ cfg.C.num_workers = 0
+ cfg.C.wandb_online = False
+ cfg.C.gpus = 1
+
+
+if __name__ == "__main__":
+ if not os.path.isdir(_MERGE_DATA):
+ raise SystemExit(
+ f"missing {_MERGE_DATA} — run: python3 {_REPO}/tools/build_avsbench_v2_merge_subset.py"
+ )
+ if not os.path.isfile(os.path.join(_MERGE_DATA, "avss_index", "metadata.csv")):
+ raise SystemExit(f"missing metadata.csv under {_MERGE_DATA}")
+
+ _patch_config()
+
+ import torch # noqa: E402
+ from easydict import EasyDict # noqa: E402
+
+ from configs.config import C # noqa: E402
+
+ hyp = EasyDict(dict(C))
+ hyp.gpus = 1
+ hyp.batch_size = 1
+ hyp.epochs = 1
+ hyp.num_workers = 0
+ hyp.wandb_online = False
+ hyp.data_root_path = _MERGE_DATA
+ hyp.saved_dir = os.path.join("/tmp", "v2_mini_debug_ckpt")
+ os.makedirs(hyp.saved_dir, exist_ok=True)
+
+ os.environ.setdefault("MASTER_ADDR", "127.0.0.1")
+ os.environ.setdefault("MASTER_PORT", "9912")
+
+ from main import main as train_main # noqa: E402
+
+ torch.multiprocessing.spawn(train_main, nprocs=hyp.gpus, args=(hyp.gpus, hyp))
diff --git a/avs.code/v2.code/tools/remap_aural_ckpt_keys.py b/avs.code/v2.code/tools/remap_aural_ckpt_keys.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbb8d6086a854b1b0ab011542eafd99f4bf8a3bf
--- /dev/null
+++ b/avs.code/v2.code/tools/remap_aural_ckpt_keys.py
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+"""
+Remap legacy checkpoint keys: rename audio_prompter.* to the current AuralFuser layout (aural_fuser.*),
+and drop duplicate weights under training_layers / finetuning_layers.
+
+Usage:
+ python tools/remap_aural_ckpt_keys.py /path/to/model.pth [--in-place] [--no-backup]
+
+By default writes _remapped.pth; --in-place overwrites the input (after a .bak backup unless --no-backup).
+"""
+from __future__ import annotations
+
+import argparse
+import shutil
+from pathlib import Path
+
+import torch
+
+# Matches AuralFuser ModuleList names (old train_* indices start at 1; new indices are 0-based).
+_REPLACEMENTS: list[tuple[str, str]] = [
+ ("train_f_patch_embed1", "patch_embeds.0"),
+ ("train_f_patch_embed2", "patch_embeds.1"),
+ ("train_f_patch_embed3", "patch_embeds.2"),
+ ("train_f_a_block1", "fusion_modules.0"),
+ ("train_f_a_block2", "fusion_modules.1"),
+ ("train_f_a_block3", "fusion_modules.2"),
+ ("train_f_block1", "f_blocks.0"),
+ ("train_f_block2", "f_blocks.1"),
+ ("train_f_block3", "f_blocks.2"),
+ ("train_a_block1", "a_blocks.0"),
+ ("train_a_block2", "a_blocks.1"),
+ ("train_a_block3", "a_blocks.2"),
+ ("train_smooth1", "smooth_convs.0"),
+ ("train_smooth2", "smooth_convs.1"),
+]
+
+
+def remap_state_dict(sd: dict) -> dict:
+ out: dict = {}
+ dropped = 0
+ for k, v in sd.items():
+ if k.startswith("audio_prompter."):
+ if ".training_layers." in k or ".finetuning_layers." in k:
+ dropped += 1
+ continue
+ nk = k.replace("audio_prompter.", "aural_fuser.", 1)
+ for old, new in _REPLACEMENTS:
+ nk = nk.replace(old, new)
+ out[nk] = v
+ else:
+ out[k] = v
+ if dropped:
+ print(f"Dropped duplicate keys: {dropped} (training_layers / finetuning_layers)")
+ return out
+
+
+def main() -> None:
+ ap = argparse.ArgumentParser()
+ ap.add_argument("ckpt", type=Path, help="Input .pth (full-model state_dict)")
+ ap.add_argument(
+ "-o", "--output", type=Path, default=None,
+ help="Output path; default _remapped.pth",
+ )
+ ap.add_argument("--in-place", action="store_true", help="Overwrite input file")
+ ap.add_argument("--no-backup", action="store_true", help="Skip .bak when using --in-place")
+ args = ap.parse_args()
+
+ ckpt_path: Path = args.ckpt.resolve()
+ if not ckpt_path.is_file():
+ raise SystemExit(f"File not found: {ckpt_path}")
+
+ print(f"Loading: {ckpt_path}")
+ sd = torch.load(ckpt_path, map_location="cpu")
+ if not isinstance(sd, dict):
+ raise SystemExit("Expected top-level checkpoint to be a state_dict dict")
+
+ n_old_ap = sum(1 for k in sd if k.startswith("audio_prompter."))
+ if n_old_ap == 0:
+ print("Warning: no audio_prompter.* keys found; checkpoint may already be remapped.")
+
+ new_sd = remap_state_dict(sd)
+ n_af = sum(1 for k in new_sd if k.startswith("aural_fuser."))
+ print(f"aural_fuser key count: {n_af}")
+
+ if args.in_place:
+ out = ckpt_path
+ if not args.no_backup:
+ bak = ckpt_path.with_suffix(ckpt_path.suffix + ".bak")
+ print(f"Backup -> {bak}")
+ shutil.copy2(ckpt_path, bak)
+ else:
+ out = args.output or ckpt_path.with_name(ckpt_path.stem + "_remapped.pth")
+
+ torch.save(new_sd, out)
+ print(f"Saved: {out} ({len(new_sd)} tensor keys)")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/avs.code/v2.code/trainer/train.py b/avs.code/v2.code/trainer/train.py
new file mode 100644
index 0000000000000000000000000000000000000000..71d6d16caa9350c7f114189ef1b68c8f793039d9
--- /dev/null
+++ b/avs.code/v2.code/trainer/train.py
@@ -0,0 +1,166 @@
+"""Training and validation loop for the AV segmentation model."""
+import numpy
+import torch
+from torch.utils.data import DataLoader
+from tqdm import tqdm
+
+
+class Trainer:
+ """Wraps train/valid steps with optional loss, metrics, and logging."""
+
+ def __init__(self, hyp_param, loss, tensorboard, metrics):
+ self.param = hyp_param
+ self.loss = loss
+ self.tensorboard = tensorboard
+ self.metrics = metrics
+ from loss.training.contrastive_learning import ContrastLoss
+ self.cl = ContrastLoss(self.param)
+
+ @torch.no_grad()
+ def valid(self, epoch, dataloader, model, process=''):
+ """Evaluate foreground IoU / F-score. `process` selects SAM multimask decoding (see branch below)."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError(
+ "valid() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first)."
+ )
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+ iou_pool = [None] * self.param.gpus
+ fscore_pool = [None] * self.param.gpus
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ items = next(data_iter)
+ frame, spect, label, prompt_dicts = items['frame'], items['spectrogram'], items['label'], items['prompts']
+
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, _ = model.module(frame, spect, prompt_dicts, sam_process=True)
+ logits = torch.cat([torch.cat(i['multistep_pred_multimasks_high_res']) for i in outputs])
+ ious_scores = torch.cat([torch.cat(i['multistep_pred_ious']) for i in outputs])
+ occ_scores = torch.cat([torch.cat(i['multistep_object_score_logits']) for i in outputs])
+ # process: '' = first multimask; iou_select = argmax IoU head; iou_occ_select = + objectness gate
+ if process == 'iou_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits = logits[torch.arange(0, frame.shape[0]), ious_scores, ...]
+ elif process == 'iou_occ_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits = logits[torch.arange(0, frame.shape[0]), ious_scores, ...]
+ logits[occ_scores.squeeze() < 0, ...] = 0.
+ else:
+ logits = logits[:, 0, ...]
+
+ masks = logits > 0.
+ foreground_iou_rank = self.metrics['foreground_iou'].calculate_iou(masks.squeeze().long(),
+ label.squeeze().long(),
+ get_entire_list=True)
+
+ foreground_f_score_rank = self.metrics['foreground_f-score'].calculate_f_score(logits.squeeze(),
+ label.squeeze(),
+ get_entire_list=True)
+ torch.distributed.all_gather_object(iou_pool, foreground_iou_rank)
+ torch.distributed.all_gather_object(fscore_pool, foreground_f_score_rank)
+ foreground_iou = sum([i['foreground_iou'][0].cpu() for i in iou_pool]) / sum(
+ [i['foreground_iou'][1] for i in iou_pool])
+ foreground_f_score = sum([i['foreground_f-score'][0] for i in fscore_pool]) / sum(
+ [i['foreground_f-score'][1] for i in fscore_pool])
+
+ if self.param.local_rank <= 0:
+ tbar.set_description('epoch {} | valid.f_iou {}, valid.f_f-score {}'.format(epoch,
+ numpy.round(
+ foreground_iou.cpu().numpy(),
+ 5),
+ numpy.round(
+ foreground_f_score,
+ 5)))
+ torch.cuda.empty_cache()
+
+ final_iou = foreground_iou
+ final_fscore = foreground_f_score
+ if self.param.local_rank <= 0 and self.tensorboard is not None:
+ self.tensorboard.upload_wandb_info({"valid.f_iou/{}".format(process): final_iou,
+ "valid.f_f-score/{}".format(process): final_fscore})
+
+ def _to_float(x):
+ if isinstance(x, torch.Tensor):
+ return float(x.detach().cpu().item())
+ return float(x)
+
+ return numpy.round(_to_float(final_iou), 5), numpy.round(_to_float(final_fscore), 5)
+
+ def train(self, epoch, dataloader, model, optimiser):
+ """One epoch: SAM frozen, AuralFuser + heads trained with composite loss + contrastive term."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError(
+ "train() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first)."
+ )
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ current_index = dataloader_length * epoch + batch_index
+ items = next(data_iter)
+
+ frame, spect, label, prompt_dicts = items['frame'], items['spectrogram'], items['label'], items['prompts']
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, proj_feats = model(frame, spect, prompt_dicts, sam_process=False)
+
+ # v1s: only first frame is supervised (artifacts). Any sample in the batch may be v1s (shuffle order).
+ _ids = items['id']
+ _id_list = _ids if isinstance(_ids, (list, tuple)) else [_ids]
+ if any("/v1s/" in str(x) for x in _id_list):
+ outputs = outputs[0:1]
+ label = label[0:1, ...]
+ vision_feats, audio_feats = proj_feats
+ proj_feats = ([t[0:1] for t in vision_feats], [t[0:1] for t in audio_feats])
+
+ loss_dict = self.loss(outputs, label.unsqueeze(1))
+ cl_loss = self.cl(proj_feats, outputs, label)
+
+ optimiser.zero_grad()
+ (loss_dict['core_loss'] + cl_loss).backward()
+ optimiser.step()
+
+ current_lr = self.param.lr * (1 - current_index / (dataloader_length * self.param.epochs)) ** 0.9
+ for params_lr in optimiser.param_groups:
+ names = params_lr.get("name", [])
+ if names and any("vgg" in n for n in names):
+ params_lr['lr'] = current_lr * 0.1
+ else:
+ params_lr['lr'] = current_lr
+
+ if self.param.local_rank <= 0:
+ logits = torch.cat([i['multistep_pred_multimasks_high_res'][0] for i in outputs])
+ foreground_iou = self.metrics['foreground_iou'].calculate_iou((logits > 0)[:, 0, ...].long(),
+ label.long())
+
+ self.tensorboard.upload_wandb_info({"loss": loss_dict['core_loss'].item(), "f_iou": foreground_iou.item(),
+ "lr": optimiser.param_groups[0]['lr'],
+ "loss_dice": loss_dict['loss_dice'],
+ "loss_focal": loss_dict['loss_mask'],
+ "loss_contras": cl_loss.item()})
+ tbar.set_description('epoch {} | loss {}, f_iou {}'.format(epoch, loss_dict['core_loss'].item(),
+ foreground_iou.item()))
+ '''
+ if batch_index % 200 == 0:
+ pred_mask = (logits > 0)[:, 0, ...].long()
+ n_vis = min(4, frame.shape[0], pred_mask.shape[0], label.shape[0])
+ self.tensorboard.upload_wandb_image(
+ frame[:n_vis], pred_mask[:n_vis], label[:n_vis].long()
+ )
+ '''
+ return
diff --git a/avs.code/v2.code/utils/data_utils.py b/avs.code/v2.code/utils/data_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e7a98f8ec73e6e5dafd1e395b48a98575e5afb1
--- /dev/null
+++ b/avs.code/v2.code/utils/data_utils.py
@@ -0,0 +1,176 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Misc functions, including distributed helpers.
+
+Mostly copy-paste from torchvision references.
+"""
+
+from dataclasses import dataclass
+from typing import List, Optional, Tuple, Union
+
+import torch
+
+from PIL import Image as PILImage
+
+
+class BatchedVideoMetaData:
+ """
+ This class represents metadata about a batch of videos.
+ Attributes:
+ unique_objects_identifier: A tensor of shape Bx3 containing unique identifiers for each object in the batch. Index consists of (video_id, obj_id, frame_id)
+ frame_orig_size: A tensor of shape Bx2 containing the original size of each frame in the batch.
+ """
+
+ unique_objects_identifier: torch.LongTensor
+ frame_orig_size: torch.LongTensor
+
+
+class BatchedVideoDatapoint:
+ """
+ This class represents a batch of videos with associated annotations and metadata.
+ Attributes:
+ img_batch: A [TxBxCxHxW] tensor containing the image data for each frame in the batch, where T is the number of frames per video, and B is the number of videos in the batch.
+ obj_to_frame_idx: A [TxOx2] tensor containing the image_batch index which the object belongs to. O is the number of objects in the batch.
+ masks: A [TxOxHxW] tensor containing binary masks for each object in the batch.
+ metadata: An instance of BatchedVideoMetaData containing metadata about the batch.
+ dict_key: A string key used to identify the batch.
+ """
+
+ img_batch: torch.FloatTensor
+ obj_to_frame_idx: torch.IntTensor
+ masks: torch.BoolTensor
+ metadata: BatchedVideoMetaData
+
+ dict_key: str
+
+ def pin_memory(self, device=None):
+ return self.apply(torch.Tensor.pin_memory, device=device)
+
+ @property
+ def num_frames(self) -> int:
+ """
+ Returns the number of frames per video.
+ """
+ return self.batch_size[0]
+
+ @property
+ def num_videos(self) -> int:
+ """
+ Returns the number of videos in the batch.
+ """
+ return self.img_batch.shape[1]
+
+ @property
+ def flat_obj_to_img_idx(self) -> torch.IntTensor:
+ """
+ Returns a flattened tensor containing the object to img index.
+ The flat index can be used to access a flattened img_batch of shape [(T*B)xCxHxW]
+ """
+ frame_idx, video_idx = self.obj_to_frame_idx.unbind(dim=-1)
+ flat_idx = video_idx * self.num_frames + frame_idx
+ return flat_idx
+
+ @property
+ def flat_img_batch(self) -> torch.FloatTensor:
+ """
+ Returns a flattened img_batch_tensor of shape [(B*T)xCxHxW]
+ """
+
+ return self.img_batch.transpose(0, 1).flatten(0, 1)
+
+
+@dataclass
+class Object:
+ # Id of the object in the media
+ object_id: int
+ # Index of the frame in the media (0 if single image)
+ frame_index: int
+ segment: Union[torch.Tensor, dict] # RLE dict or binary mask
+
+
+@dataclass
+class Frame:
+ data: Union[torch.Tensor, PILImage.Image]
+ objects: List[Object]
+
+
+@dataclass
+class VideoDatapoint:
+ """Refers to an image/video and all its annotations"""
+
+ frames: List[Frame]
+ video_id: int
+ size: Tuple[int, int]
+
+
+def collate_fn(
+ batch: List[VideoDatapoint],
+ dict_key,
+) -> BatchedVideoDatapoint:
+ """
+ Args:
+ batch: A list of VideoDatapoint instances.
+ dict_key (str): A string key used to identify the batch.
+ """
+ img_batch = []
+ for video in batch:
+ img_batch += [torch.stack([frame.data for frame in video.frames], dim=0)]
+
+ img_batch = torch.stack(img_batch, dim=0).permute((1, 0, 2, 3, 4))
+ T = img_batch.shape[0]
+ # Prepare data structures for sequential processing. Per-frame processing but batched across videos.
+ step_t_objects_identifier = [[] for _ in range(T)]
+ step_t_frame_orig_size = [[] for _ in range(T)]
+
+ step_t_masks = [[] for _ in range(T)]
+ step_t_obj_to_frame_idx = [
+ [] for _ in range(T)
+ ] # List to store frame indices for each time step
+
+ for video_idx, video in enumerate(batch):
+ orig_video_id = video.video_id
+ orig_frame_size = video.size
+ for t, frame in enumerate(video.frames):
+ objects = frame.objects
+ for obj in objects:
+ orig_obj_id = obj.object_id
+ orig_frame_idx = obj.frame_index
+ step_t_obj_to_frame_idx[t].append(
+ torch.tensor([t, video_idx], dtype=torch.int)
+ )
+ step_t_masks[t].append(obj.segment.to(torch.bool))
+ step_t_objects_identifier[t].append(
+ torch.tensor([orig_video_id, orig_obj_id, orig_frame_idx])
+ )
+ step_t_frame_orig_size[t].append(torch.tensor(orig_frame_size))
+
+ obj_to_frame_idx = torch.stack(
+ [
+ torch.stack(obj_to_frame_idx, dim=0)
+ for obj_to_frame_idx in step_t_obj_to_frame_idx
+ ],
+ dim=0,
+ )
+ masks = torch.stack([torch.stack(masks, dim=0) for masks in step_t_masks], dim=0)
+ objects_identifier = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_objects_identifier], dim=0
+ )
+ frame_orig_size = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_frame_orig_size], dim=0
+ )
+ return BatchedVideoDatapoint(
+ img_batch=img_batch,
+ obj_to_frame_idx=obj_to_frame_idx,
+ masks=masks,
+ metadata=BatchedVideoMetaData(
+ unique_objects_identifier=objects_identifier,
+ frame_orig_size=frame_orig_size,
+ ),
+ dict_key=dict_key,
+ batch_size=[T],
+ )
diff --git a/avs.code/v2.code/utils/foreground_fscore.py b/avs.code/v2.code/utils/foreground_fscore.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea20b84d2304ca0bd9981fd1a3c254111e3d0ac4
--- /dev/null
+++ b/avs.code/v2.code/utils/foreground_fscore.py
@@ -0,0 +1,90 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundFScore(AverageMeter):
+ def __init__(self, rank):
+ self.local_rank = rank
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+ def _eval_pr(self, y_pred, y, num, cuda_flag=True):
+ if cuda_flag:
+ prec, recall = torch.zeros(num).cuda(self.local_rank), torch.zeros(num).cuda(self.local_rank)
+ thlist = torch.linspace(0, 1 - 1e-10, num).cuda(self.local_rank)
+ else:
+ prec, recall = torch.zeros(num), torch.zeros(num)
+ thlist = torch.linspace(0, 1 - 1e-10, num)
+ for i in range(num):
+ y_temp = (y_pred >= thlist[i]).float()
+ tp = (y_temp * y).sum()
+ prec[i], recall[i] = tp / (y_temp.sum() + 1e-20), tp / (y.sum() + 1e-20)
+ return prec, recall
+
+ def calculate_f_score(self, pred, gt, pr_num=255, get_entire_list=False):
+
+ r"""
+ param:
+ pred: size [N x H x W]
+ gt: size [N x H x W]
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ # print('=> eval [FMeasure]..')
+ pred = torch.sigmoid(pred) # =======================================[important]
+ N = pred.size(0)
+ beta2 = 0.3
+ avg_f, img_num = 0.0, 0
+ score = torch.zeros(pr_num)
+ # fLog = open(os.path.join(measure_path, 'FMeasure.txt'), 'w')
+ # print("{} videos in this batch".format(N))
+
+ for img_id in range(N):
+ # examples with totally black GTs are out of consideration
+ if torch.mean(gt[img_id].float()) == 0.0:
+ continue
+ prec, recall = self._eval_pr(pred[img_id], gt[img_id], pr_num)
+ f_score = (1 + beta2) * prec * recall / (beta2 * prec + recall)
+ f_score[f_score != f_score] = 0 # for Nan
+ avg_f += f_score
+ img_num += 1
+ score = avg_f / img_num
+ # print('score: ', score)
+ # fLog.close()
+ self.add({'foreground_f-score': score.max().item()})
+ return self.get('foreground_f-score') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+
diff --git a/avs.code/v2.code/utils/foreground_iou.py b/avs.code/v2.code/utils/foreground_iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..e01eeb081eee8ebfa1fcb6618d05b9d57c02f817
--- /dev/null
+++ b/avs.code/v2.code/utils/foreground_iou.py
@@ -0,0 +1,69 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundIoU(AverageMeter):
+ def __init__(self):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
+ def calculate_iou(self, pred, target, eps=1e-7, get_entire_list=False):
+ r"""
+ param (both hard mask):
+ pred: size [N x H x W], type: int
+ target: size [N x H x W], type: int
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ assert len(pred.shape) == 3 and pred.shape == target.shape, 'shape mismatch.'
+ assert pred.dtype is torch.long and target.dtype is torch.long, 'type mismatch.'
+
+ N = pred.size(0)
+ num_pixels = pred.size(-1) * pred.size(-2)
+ no_obj_flag = (target.sum(2).sum(1) == 0)
+
+ inter = (pred * target).sum(2).sum(1)
+ union = torch.max(pred, target).sum(2).sum(1)
+
+ inter_no_obj = ((1 - target) * (1 - pred)).sum(2).sum(1)
+ inter[no_obj_flag] = inter_no_obj[no_obj_flag]
+ union[no_obj_flag] = num_pixels
+
+ iou = torch.sum(inter / (union+eps)) / N
+
+ self.add({'foreground_iou': iou})
+ return self.get('foreground_iou') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
diff --git a/avs.code/v2.code/utils/iou.py b/avs.code/v2.code/utils/iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..211488b780887a8efd84361bafc6b09bfad4c345
--- /dev/null
+++ b/avs.code/v2.code/utils/iou.py
@@ -0,0 +1,76 @@
+import torch
+import numpy
+
+
+class BinaryMIoU(object):
+ def __init__(self, ignore_index):
+ self.num_classes = 2
+ self.ignore_index = ignore_index
+ self.inter, self.union = 0, 0
+ self.correct, self.label = 0, 0
+ self.iou = numpy.array([0 for _ in range(self.num_classes)])
+ self.acc = 0.0
+
+ def get_metric_results(self, curr_correct_, curr_label_, curr_inter_, curr_union_):
+ # calculates the overall miou and acc
+ self.correct = self.correct + curr_correct_
+ self.label = self.label + curr_label_
+ self.inter = self.inter + curr_inter_
+ self.union = self.union + curr_union_
+ self.acc = 1.0 * self.correct / (numpy.spacing(1) + self.label)
+ self.iou = 1.0 * self.inter / (numpy.spacing(1) + self.union)
+ return numpy.round(self.iou, 4), numpy.round(self.acc, 4)
+ # if class_list is None:
+ # return numpy.round(self.iou.mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+ # else:
+ # return numpy.round(self.iou[class_list].mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+
+ @staticmethod
+ def get_current_image_results(curr_correct_, curr_label_, curr_inter_, curr_union_):
+ curr_acc = 1.0 * curr_correct_ / (numpy.spacing(1) + curr_label_)
+ curr_iou = 1.0 * curr_inter_ / (numpy.spacing(1) + curr_union_)
+ return curr_iou, curr_acc
+
+ def __call__(self, x, y):
+ curr_correct, curr_label, curr_inter, curr_union = self.calculate_current_sample(x, y)
+ return (self.get_metric_results(curr_correct, curr_label, curr_inter, curr_union),
+ self.get_current_image_results(curr_correct, curr_label, curr_inter, curr_union))
+
+ def calculate_current_sample(self, output, target):
+ # output => BxCxHxW (logits)
+ # target => Bx1xHxW
+ target[target == self.ignore_index] = -1
+ correct, labeled = self.batch_pix_accuracy(output.data, target)
+ inter, union = self.batch_intersection_union(output.data, target, self.num_classes)
+ return [numpy.round(correct, 5), numpy.round(labeled, 5), numpy.round(inter, 5), numpy.round(union, 5)]
+
+ @ staticmethod
+ def batch_pix_accuracy(predict, target):
+ # _, predict = torch.max(output, 1)
+
+ predict = predict.int() + 1
+ target = target.int() + 1
+
+ pixel_labeled = (target > 0).sum()
+ pixel_correct = ((predict == target) * (target > 0)).sum()
+ assert pixel_correct <= pixel_labeled, "Correct area should be smaller than Labeled"
+ return pixel_correct.cpu().numpy(), pixel_labeled.cpu().numpy()
+
+ @ staticmethod
+ def batch_intersection_union(predict, target, num_class):
+ # _, predict = torch.max(output, 1)
+ predict = predict + 1
+ target = target + 1
+
+ predict = predict * (target > 0).long()
+ intersection = predict * (predict == target).long()
+
+ area_inter = torch.histc(intersection.float(), bins=num_class, max=num_class, min=1)
+ area_pred = torch.histc(predict.float(), bins=num_class, max=num_class, min=1)
+ area_lab = torch.histc(target.float(), bins=num_class, max=num_class, min=1)
+ area_union = area_pred + area_lab - area_inter
+ assert (area_inter <= area_union).all(), "Intersection area should be smaller than Union area"
+ return area_inter.cpu().numpy(), area_union.cpu().numpy()
+
diff --git a/avs.code/v2.code/utils/misc.py b/avs.code/v2.code/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..5eb9d66c31a4b9209b81a5b615386d29f246135c
--- /dev/null
+++ b/avs.code/v2.code/utils/misc.py
@@ -0,0 +1,350 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
+
diff --git a/avs.code/v2.code/utils/tensorboard.py b/avs.code/v2.code/utils/tensorboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..75fdceabf8f9bcefb3e3c00aa1136097197afdf5
--- /dev/null
+++ b/avs.code/v2.code/utils/tensorboard.py
@@ -0,0 +1,140 @@
+import os
+
+import PIL
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision
+try:
+ import wandb
+except ImportError: # pragma: no cover
+ wandb = None
+
+# from utils.visualize import show_img
+
+
+color_map = {"background": (0, 0, 0), "longitudinal": (128, 0, 0), "pothole": (0, 128, 0),
+ "alligator": (128, 128, 0), "transverse": (128, 0, 128), "ignore": (255, 255, 255)}
+
+
+class _DummyWandb:
+ def log(self, *args, **kwargs):
+ return None
+
+
+class Tensorboard:
+ def __init__(self, config):
+ self._log_images = bool(config.get('wandb_online', False))
+ if not self._log_images or wandb is None or not hasattr(wandb, "init"):
+ self.tensor_board = _DummyWandb()
+ self._log_images = False
+ elif config.get('wandb_online', False):
+ key = config.get('wandb_key') or os.environ.get('WANDB_API_KEY', '')
+ if key:
+ os.environ['WANDB_API_KEY'] = key
+ wandb.login(key=key, relogin=False)
+ self.tensor_board = wandb.init(project=config['proj_name'], name=config['experiment_name'],
+ config=config, settings=wandb.Settings(code_dir="."))
+
+ self.restore_transform = torchvision.transforms.Compose([
+ DeNormalize(config['image_mean'], config['image_std']),
+ torchvision.transforms.ToPILImage()])
+
+ def upload_wandb_info(self, info_dict):
+ for i, info in enumerate(info_dict):
+ self.tensor_board.log({info: info_dict[info]})
+ return
+
+
+ def upload_wandb_image(self, frames, pseudo_label_from_pred, pseudo_label_from_sam, img_number=4):
+ if not self._log_images:
+ return
+
+ def _batched_rgb(t):
+ """[N,C,H,W] or [C,H,W] float tensor on CPU."""
+ if not isinstance(t, torch.Tensor):
+ t = torch.as_tensor(t)
+ t = t.detach().cpu().float()
+ if t.dim() == 3:
+ return t.unsqueeze(0)
+ if t.dim() == 4:
+ return t
+ raise ValueError("frames must be [C,H,W] or [N,C,H,W], got shape {}".format(tuple(t.shape)))
+
+ def _batched_mask(t):
+ """[N,H,W] or [N,1,H,W] or [H,W]."""
+ if not isinstance(t, torch.Tensor):
+ t = torch.as_tensor(t)
+ t = t.detach().cpu().float()
+ while t.dim() > 3:
+ t = t.squeeze(1)
+ if t.dim() == 2:
+ t = t.unsqueeze(0)
+ if t.dim() != 3:
+ raise ValueError("masks must be [H,W], [N,H,W] or [N,1,H,W], got shape {}".format(tuple(t.shape)))
+ return t
+
+ frames = _batched_rgb(frames)
+ pseudo_label_from_pred = _batched_mask(pseudo_label_from_pred)
+ pseudo_label_from_sam = _batched_mask(pseudo_label_from_sam)
+
+ n = min(frames.shape[0], pseudo_label_from_pred.shape[0], pseudo_label_from_sam.shape[0], img_number)
+ frames = frames[:n]
+ pseudo_label_from_pred = pseudo_label_from_pred[:n]
+ pseudo_label_from_sam = pseudo_label_from_sam[:n]
+
+ pseudo_label_from_sam = pseudo_label_from_sam.clone()
+ pseudo_label_from_pred = pseudo_label_from_pred.clone()
+ pseudo_label_from_sam[pseudo_label_from_sam == 255.] = 0.5
+ pseudo_label_from_pred[pseudo_label_from_pred == 255.] = 0.5
+
+ denorm = self.restore_transform.transforms[0]
+ image_list = []
+ label_list = []
+ logits_list = []
+ for i in range(n):
+ fi = frames[i].clone()
+ if fi.shape[0] == 3:
+ denorm(fi)
+ fi.clamp_(0.0, 1.0)
+ image_list.append(wandb.Image(fi, caption="id {}".format(str(i))))
+ # wandb.Image expects torch tensors as [C, H, W] (it permutes CHW→HWC)
+ ms = pseudo_label_from_sam[i].squeeze()
+ mp = pseudo_label_from_pred[i].squeeze()
+ if ms.dim() == 2:
+ ms = ms.unsqueeze(0)
+ if mp.dim() == 2:
+ mp = mp.unsqueeze(0)
+ label_list.append(wandb.Image(ms, caption="id {}".format(str(i))))
+ logits_list.append(wandb.Image(mp, caption="id {}".format(str(i))))
+
+ self.tensor_board.log({"image": image_list, "label": label_list, "logits": logits_list})
+
+ def de_normalize(self, image):
+ return [self.restore_transform(i.detach().cpu()) if (isinstance(i, torch.Tensor) and len(i.shape) == 3)
+ else colorize_mask(i.detach().cpu().numpy(), self.palette)
+ for i in image]
+
+ def finish(self):
+ self.tensor_board.finish()
+
+
+class DeNormalize(object):
+ def __init__(self, mean, std):
+ self.mean = mean
+ self.std = std
+
+ def __call__(self, tensor):
+ for t, m, s in zip(tensor, self.mean, self.std):
+ t.mul_(s).add_(m)
+ return tensor
+
+
+def colorize_mask(mask, palette):
+ zero_pad = 256 * 3 - len(palette)
+ for i in range(zero_pad):
+ palette.append(0)
+ # palette[-6:-3] = [183, 65, 14]
+ new_mask = PIL.Image.fromarray(mask.astype(numpy.uint8)).convert('P')
+ new_mask.putpalette(palette)
+ return new_mask
diff --git a/avs.code/v2.code/utils/utils.py b/avs.code/v2.code/utils/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..e72f27a7e2be77cea271001230195ef79f685351
--- /dev/null
+++ b/avs.code/v2.code/utils/utils.py
@@ -0,0 +1,119 @@
+"""Optimizer helpers: split learning rates for AuralFuser train_* vs VGG backbone."""
+import torch
+import copy
+from typing import List, Dict, Set, Any
+
+
+def manipulate_params(cfg, model):
+ weight_decay_norm = 0
+ weight_decay_embed = 0
+ defaults = {}
+ defaults["lr"] = cfg.lr
+ defaults["weight_decay"] = cfg.weight_decay
+
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ params_training: List[Dict[str, Any]] = []
+ params_finetuning: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+
+ train_prefixes = (
+ "patch_embeds",
+ "f_blocks",
+ "a_blocks",
+ "fusion_modules",
+ "smooth_convs",
+ "train_proj_v1",
+ "train_proj_a1",
+ )
+
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ # Avoid duplicating parameters
+ if value in memo:
+ continue
+ memo.add(value)
+ hyperparams = copy.copy(defaults)
+ if 'vgg' in module_name or 'vgg' in module_param_name:
+ hyperparams['lr'] *= 0.1
+ params_finetuning.append({"params": [value], "name": [module_name], **hyperparams})
+ elif (
+ 'train' in module_name
+ or 'train' in module_param_name
+ or module_name.startswith(train_prefixes)
+ ):
+ if (
+ "relative_position_bias_table" in module_param_name
+ or "pos_embed" in module_param_name
+ ):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, norm_module_types):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, torch.nn.Embedding):
+ hyperparams["weight_decay"] = 0.0
+ params_training.append({"params": [value], "name": [module_name], **hyperparams})
+ else:
+ print('undefined layer type.')
+ raise NotImplementedError
+ final_list = params_training + params_finetuning
+ assert len([p for p in model.parameters() if p.requires_grad]) == len(final_list), 'checksum confirmed not pass.'
+ return final_list
+
+
+def group_weight(weight_group, module, weight_decay_value, lr):
+ group_decay = []
+ group_no_decay = []
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ for m in module.modules():
+ if isinstance(m, torch.nn.Linear):
+ group_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, (torch.nn.Conv1d, torch.nn.Conv2d, torch.nn.Conv3d, torch.nn.ConvTranspose2d,
+ torch.nn.ConvTranspose3d)):
+ group_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, norm_module_types):
+ if m.weight is not None:
+ group_no_decay.append(m.weight)
+ if m.bias is not None:
+ group_no_decay.append(m.bias)
+ elif isinstance(m, torch.nn.Parameter):
+ group_no_decay.append(m)
+ elif isinstance(m, torch.nn.Embedding):
+ group_no_decay.append(m)
+ else:
+ print('undefined layer type find.')
+ raise NotImplementedError
+
+ assert len(list(module.parameters())) == len(group_decay) + len(
+ group_no_decay)
+ weight_group.append(dict(params=group_decay, weight_deacy=weight_decay_value, lr=lr))
+ weight_group.append(dict(params=group_no_decay, weight_decay=.0, lr=lr))
+ return weight_group
\ No newline at end of file
diff --git a/ckpts/avs/v1m/0.75336.pth b/ckpts/avs/v1m/0.75336.pth
new file mode 100644
index 0000000000000000000000000000000000000000..0890e540e44aff444c3006b9ac89598efc72026c
--- /dev/null
+++ b/ckpts/avs/v1m/0.75336.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a9e9007862d95dd2705a1b873bf942fa08a931eab2c8f3556316995516f7c1b5
+size 521935136
diff --git a/ckpts/avs/v1m/nohup.out b/ckpts/avs/v1m/nohup.out
new file mode 100644
index 0000000000000000000000000000000000000000..218ec622f8eee3736129877a4197c577e866934f
--- /dev/null
+++ b/ckpts/avs/v1m/nohup.out
@@ -0,0 +1,596 @@
+wandb: Using wandb-core as the SDK backend. Please refer to https://wandb.me/wandb-core for more information.
+==> Load pretrained VGGish parameters from /root/autodl-tmp/avs/v1/v1m.code/ckpts/vggish-10086976.pth
+device: cuda
+==> Load pretrained VGGish parameters from /root/autodl-tmp/avs/v1/v1m.code/ckpts/vggish-10086976.pth
+device: cuda
+==> Load pretrained VGGish parameters from /root/autodl-tmp/avs/v1/v1m.code/ckpts/vggish-10086976.pth
+device: cuda
+wandb: Currently logged in as: pyedog1976. Use `wandb login --relogin` to force relogin
+wandb: Appending key for api.wandb.ai to your netrc file: /root/.netrc
+wandb: - Waiting for wandb.init()...
wandb: \ Waiting for wandb.init()...
wandb: Tracking run with wandb version 0.18.3
+wandb: Run data is saved locally in /root/autodl-tmp/avs/v1/wandb/run-20260421_050129-gzp5dmwi
+wandb: Run `wandb offline` to turn off syncing.
+wandb: Syncing run v1m-hiera-l
+wandb: ⭐️ View project at https://wandb.ai/pyedog1976/AVS-final-report
+wandb: 🚀 View run at https://wandb.ai/pyedog1976/AVS-final-report/runs/gzp5dmwi
+==> Load pretrained VGGish parameters from /root/autodl-tmp/avs/v1/v1m.code/ckpts/vggish-10086976.pth
+device: cuda
+
0%| | 0/74 [00:00, ?it/s]/root/miniconda3/lib/python3.10/site-packages/torch/autograd/graph.py:823: UserWarning: Grad strides do not match bucket view strides. This may indicate grad was not created according to the gradient layout contract, or that the param's strides changed since DDP was constructed. This is not an error, but may impair performance.
+grad.sizes() = [128, 128, 1, 1], strides() = [128, 1, 128, 128]
+bucket_view.sizes() = [128, 128, 1, 1], strides() = [128, 1, 1, 1] (Triggered internally at /pytorch/torch/csrc/distributed/c10d/reducer.cpp:327.)
+ return Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass
+/root/miniconda3/lib/python3.10/site-packages/torch/autograd/graph.py:823: UserWarning: Grad strides do not match bucket view strides. This may indicate grad was not created according to the gradient layout contract, or that the param's strides changed since DDP was constructed. This is not an error, but may impair performance.
+grad.sizes() = [128, 128, 1, 1], strides() = [128, 1, 128, 128]
+bucket_view.sizes() = [128, 128, 1, 1], strides() = [128, 1, 1, 1] (Triggered internally at /pytorch/torch/csrc/distributed/c10d/reducer.cpp:327.)
+ return Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass
+/root/miniconda3/lib/python3.10/site-packages/torch/autograd/graph.py:823: UserWarning: Grad strides do not match bucket view strides. This may indicate grad was not created according to the gradient layout contract, or that the param's strides changed since DDP was constructed. This is not an error, but may impair performance.
+grad.sizes() = [128, 128, 1, 1], strides() = [128, 1, 128, 128]
+bucket_view.sizes() = [128, 128, 1, 1], strides() = [128, 1, 1, 1] (Triggered internally at /pytorch/torch/csrc/distributed/c10d/reducer.cpp:327.)
+ return Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass
+/root/miniconda3/lib/python3.10/site-packages/torch/autograd/graph.py:823: UserWarning: Grad strides do not match bucket view strides. This may indicate grad was not created according to the gradient layout contract, or that the param's strides changed since DDP was constructed. This is not an error, but may impair performance.
+grad.sizes() = [128, 128, 1, 1], strides() = [128, 1, 128, 128]
+bucket_view.sizes() = [128, 128, 1, 1], strides() = [128, 1, 1, 1] (Triggered internally at /pytorch/torch/csrc/distributed/c10d/reducer.cpp:327.)
+ return Variable._execution_engine.run_backward( # Calls into the C++ engine to run the backward pass
+
epoch 0 | loss 17.387977600097656, f_iou 0.002621101215481758: 0%| | 0/74 [00:06, ?it/s]
epoch 0 | loss 17.387977600097656, f_iou 0.002621101215481758: 1%|▍ | 1/74 [00:06<08:23, 6.90s/it]
epoch 0 | loss 6.372556209564209, f_iou 0.002792002633213997: 1%|▌ | 1/74 [00:07<08:23, 6.90s/it]
epoch 0 | loss 6.372556209564209, f_iou 0.002792002633213997: 3%|█ | 2/74 [00:07<03:58, 3.31s/it]
epoch 0 | loss 18.1556339263916, f_iou 0.0019301058491691947: 3%|█ | 2/74 [00:08<03:58, 3.31s/it]
epoch 0 | loss 18.1556339263916, f_iou 0.0019301058491691947: 4%|█▌ | 3/74 [00:08<02:33, 2.16s/it]
epoch 0 | loss 15.041982650756836, f_iou 0.001650526188313961: 4%|█▍ | 3/74 [00:09<02:33, 2.16s/it]
epoch 0 | loss 15.041982650756836, f_iou 0.001650526188313961: 5%|█▉ | 4/74 [00:09<01:53, 1.62s/it]
epoch 0 | loss 13.217401504516602, f_iou 0.001551806810311973: 5%|█▉ | 4/74 [00:10<01:53, 1.62s/it]
epoch 0 | loss 13.217401504516602, f_iou 0.001551806810311973: 7%|██▍ | 5/74 [00:10<01:31, 1.33s/it]
epoch 0 | loss 10.167859077453613, f_iou 0.0012934593250975013: 7%|██▎ | 5/74 [00:10<01:31, 1.33s/it]
epoch 0 | loss 10.167859077453613, f_iou 0.0012934593250975013: 8%|██▊ | 6/74 [00:10<01:18, 1.16s/it]
epoch 0 | loss 7.807488441467285, f_iou 0.0011086794547736645: 8%|██▉ | 6/74 [00:11<01:18, 1.16s/it]
epoch 0 | loss 7.807488441467285, f_iou 0.0011086794547736645: 9%|███▍ | 7/74 [00:11<01:08, 1.03s/it]
epoch 0 | loss 10.706718444824219, f_iou 0.0009810113115236163: 9%|███▎ | 7/74 [00:12<01:08, 1.03s/it]
epoch 0 | loss 10.706718444824219, f_iou 0.0009810113115236163: 11%|███▊ | 8/74 [00:12<01:01, 1.07it/s]
epoch 0 | loss 9.760910034179688, f_iou 0.0008720100740902126: 11%|███▉ | 8/74 [00:13<01:01, 1.07it/s]
epoch 0 | loss 9.760910034179688, f_iou 0.0008720100740902126: 12%|████▍ | 9/74 [00:13<00:56, 1.15it/s]
epoch 0 | loss 7.746007442474365, f_iou 0.0007848090608604252: 12%|████▍ | 9/74 [00:13<00:56, 1.15it/s]
epoch 0 | loss 7.746007442474365, f_iou 0.0007848090608604252: 14%|████▋ | 10/74 [00:13<00:52, 1.22it/s]
epoch 0 | loss 10.386319160461426, f_iou 0.00071346276672557: 14%|████▊ | 10/74 [00:14<00:52, 1.22it/s]
epoch 0 | loss 10.386319160461426, f_iou 0.00071346276672557: 15%|█████▎ | 11/74 [00:14<00:51, 1.21it/s]
epoch 0 | loss 7.161194324493408, f_iou 0.017320673912763596: 15%|█████▎ | 11/74 [00:15<00:51, 1.21it/s]
epoch 0 | loss 7.161194324493408, f_iou 0.017320673912763596: 16%|█████▊ | 12/74 [00:15<00:50, 1.24it/s]
epoch 0 | loss 9.102993965148926, f_iou 0.031372930854558945: 16%|█████▊ | 12/74 [00:16<00:50, 1.24it/s]
epoch 0 | loss 9.102993965148926, f_iou 0.031372930854558945: 18%|██████▎ | 13/74 [00:16<00:47, 1.28it/s]
epoch 0 | loss 5.534370422363281, f_iou 0.02913200855255127: 18%|██████▌ | 13/74 [00:16<00:47, 1.28it/s]
epoch 0 | loss 5.534370422363281, f_iou 0.02913200855255127: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 0 | loss 5.998254299163818, f_iou 0.027189873158931732: 19%|██████▊ | 14/74 [00:17<00:45, 1.32it/s]
epoch 0 | loss 5.998254299163818, f_iou 0.027189873158931732: 20%|███████▎ | 15/74 [00:17<00:43, 1.34it/s]
epoch 0 | loss 9.275391578674316, f_iou 0.0379905067384243: 20%|███████▋ | 15/74 [00:18<00:43, 1.34it/s]
epoch 0 | loss 9.275391578674316, f_iou 0.0379905067384243: 22%|████████▏ | 16/74 [00:18<00:42, 1.37it/s]
epoch 0 | loss 8.086538314819336, f_iou 0.03575577214360237: 22%|████████ | 16/74 [00:19<00:42, 1.37it/s]
epoch 0 | loss 8.086538314819336, f_iou 0.03575577214360237: 23%|████████▌ | 17/74 [00:19<00:42, 1.35it/s]
epoch 0 | loss 7.8576436042785645, f_iou 0.03376933932304382: 23%|████████▎ | 17/74 [00:19<00:42, 1.35it/s]
epoch 0 | loss 7.8576436042785645, f_iou 0.03376933932304382: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 0 | loss 8.109782218933105, f_iou 0.03199200704693794: 24%|█████████ | 18/74 [00:20<00:43, 1.30it/s]
epoch 0 | loss 8.109782218933105, f_iou 0.03199200704693794: 26%|█████████▌ | 19/74 [00:20<00:43, 1.27it/s]
epoch 0 | loss 7.061799049377441, f_iou 0.03039240650832653: 26%|█████████▌ | 19/74 [00:21<00:43, 1.27it/s]
epoch 0 | loss 7.061799049377441, f_iou 0.03039240650832653: 27%|██████████ | 20/74 [00:21<00:42, 1.27it/s]
epoch 0 | loss 6.770117282867432, f_iou 0.02894529327750206: 27%|██████████ | 20/74 [00:22<00:42, 1.27it/s]
epoch 0 | loss 6.770117282867432, f_iou 0.02894529327750206: 28%|██████████▌ | 21/74 [00:22<00:42, 1.26it/s]
epoch 0 | loss 6.660336494445801, f_iou 0.027629639953374863: 28%|██████████▏ | 21/74 [00:23<00:42, 1.26it/s]
epoch 0 | loss 6.660336494445801, f_iou 0.027629639953374863: 30%|██████████▋ | 22/74 [00:23<00:41, 1.24it/s]
epoch 0 | loss 6.761687278747559, f_iou 0.026428349316120148: 30%|██████████▋ | 22/74 [00:23<00:41, 1.24it/s]
epoch 0 | loss 6.761687278747559, f_iou 0.026428349316120148: 31%|███████████▏ | 23/74 [00:23<00:41, 1.23it/s]
epoch 0 | loss 7.562595367431641, f_iou 0.02532747946679592: 31%|███████████▌ | 23/74 [00:24<00:41, 1.23it/s]
epoch 0 | loss 7.562595367431641, f_iou 0.02532747946679592: 32%|████████████ | 24/74 [00:24<00:40, 1.24it/s]
epoch 0 | loss 6.891643524169922, f_iou 0.024315400049090385: 32%|███████████▋ | 24/74 [00:25<00:40, 1.24it/s]
epoch 0 | loss 6.891643524169922, f_iou 0.024315400049090385: 34%|████████████▏ | 25/74 [00:25<00:39, 1.25it/s]
epoch 0 | loss 6.306051731109619, f_iou 0.02338019385933876: 34%|████████████▌ | 25/74 [00:26<00:39, 1.25it/s]
epoch 0 | loss 6.306051731109619, f_iou 0.02338019385933876: 35%|█████████████ | 26/74 [00:26<00:38, 1.26it/s]
epoch 0 | loss 5.766691207885742, f_iou 0.022514259442687035: 35%|████████████▋ | 26/74 [00:27<00:38, 1.26it/s]
epoch 0 | loss 5.766691207885742, f_iou 0.022514259442687035: 36%|█████████████▏ | 27/74 [00:27<00:37, 1.26it/s]
epoch 0 | loss 8.980535507202148, f_iou 0.028851110488176346: 36%|█████████████▏ | 27/74 [00:27<00:37, 1.26it/s]
epoch 0 | loss 8.980535507202148, f_iou 0.028851110488176346: 38%|█████████████▌ | 28/74 [00:27<00:36, 1.26it/s]
epoch 0 | loss 5.789315223693848, f_iou 0.027904534712433815: 38%|█████████████▌ | 28/74 [00:28<00:36, 1.26it/s]
epoch 0 | loss 5.789315223693848, f_iou 0.027904534712433815: 39%|██████████████ | 29/74 [00:28<00:35, 1.25it/s]
epoch 0 | loss 9.289424896240234, f_iou 0.03365248441696167: 39%|██████████████▌ | 29/74 [00:29<00:35, 1.25it/s]
epoch 0 | loss 9.289424896240234, f_iou 0.03365248441696167: 41%|███████████████ | 30/74 [00:29<00:34, 1.27it/s]
epoch 0 | loss 6.749798774719238, f_iou 0.0325673371553421: 41%|███████████████▍ | 30/74 [00:30<00:34, 1.27it/s]
epoch 0 | loss 6.749798774719238, f_iou 0.0325673371553421: 42%|███████████████▉ | 31/74 [00:30<00:32, 1.30it/s]
epoch 0 | loss 6.591845989227295, f_iou 0.03156331181526184: 42%|███████████████▌ | 31/74 [00:30<00:32, 1.30it/s]
epoch 0 | loss 6.591845989227295, f_iou 0.03156331181526184: 43%|████████████████ | 32/74 [00:30<00:31, 1.33it/s]
epoch 0 | loss 9.07437515258789, f_iou 0.030758075416088104: 43%|████████████████ | 32/74 [00:31<00:31, 1.33it/s]
epoch 0 | loss 9.07437515258789, f_iou 0.030758075416088104: 45%|████████████████▌ | 33/74 [00:31<00:31, 1.30it/s]
epoch 0 | loss 8.660386085510254, f_iou 0.029945839196443558: 45%|████████████████ | 33/74 [00:32<00:31, 1.30it/s]
epoch 0 | loss 8.660386085510254, f_iou 0.029945839196443558: 46%|████████████████▌ | 34/74 [00:32<00:30, 1.32it/s]
epoch 0 | loss 6.759652137756348, f_iou 0.02912319079041481: 46%|█████████████████ | 34/74 [00:33<00:30, 1.32it/s]
epoch 0 | loss 6.759652137756348, f_iou 0.02912319079041481: 47%|█████████████████▌ | 35/74 [00:33<00:29, 1.34it/s]
epoch 0 | loss 7.128533363342285, f_iou 0.028562171384692192: 47%|█████████████████ | 35/74 [00:34<00:29, 1.34it/s]
epoch 0 | loss 7.128533363342285, f_iou 0.028562171384692192: 49%|█████████████████▌ | 36/74 [00:34<00:29, 1.30it/s]
epoch 0 | loss 6.19201135635376, f_iou 0.0303100124001503: 49%|██████████████████▉ | 36/74 [00:34<00:29, 1.30it/s]
epoch 0 | loss 6.19201135635376, f_iou 0.0303100124001503: 50%|███████████████████▌ | 37/74 [00:34<00:28, 1.31it/s]
epoch 0 | loss 6.455564975738525, f_iou 0.030399881303310394: 50%|██████████████████ | 37/74 [00:35<00:28, 1.31it/s]
epoch 0 | loss 6.455564975738525, f_iou 0.030399881303310394: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.33it/s]
epoch 0 | loss 6.491427421569824, f_iou 0.031055603176355362: 51%|██████████████████▍ | 38/74 [00:36<00:27, 1.33it/s]
epoch 0 | loss 6.491427421569824, f_iou 0.031055603176355362: 53%|██████████████████▉ | 39/74 [00:36<00:26, 1.34it/s]
epoch 0 | loss 8.01138973236084, f_iou 0.03048824332654476: 53%|████████████████████ | 39/74 [00:36<00:26, 1.34it/s]
epoch 0 | loss 8.01138973236084, f_iou 0.03048824332654476: 54%|████████████████████▌ | 40/74 [00:36<00:25, 1.35it/s]
epoch 0 | loss 6.021214485168457, f_iou 0.030333703383803368: 54%|███████████████████▍ | 40/74 [00:37<00:25, 1.35it/s]
epoch 0 | loss 6.021214485168457, f_iou 0.030333703383803368: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.35it/s]
epoch 0 | loss 7.92714786529541, f_iou 0.0296223983168602: 55%|█████████████████████▌ | 41/74 [00:38<00:24, 1.35it/s]
epoch 0 | loss 7.92714786529541, f_iou 0.0296223983168602: 57%|██████████████████████▏ | 42/74 [00:38<00:23, 1.36it/s]
epoch 0 | loss 5.457432746887207, f_iou 0.03030359372496605: 57%|█████████████████████ | 42/74 [00:39<00:23, 1.36it/s]
epoch 0 | loss 5.457432746887207, f_iou 0.03030359372496605: 58%|█████████████████████▍ | 43/74 [00:39<00:22, 1.36it/s]
epoch 0 | loss 6.974429607391357, f_iou 0.02961808815598488: 58%|█████████████████████▍ | 43/74 [00:39<00:22, 1.36it/s]
epoch 0 | loss 6.974429607391357, f_iou 0.02961808815598488: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.36it/s]
epoch 0 | loss 4.873201370239258, f_iou 0.029040496796369553: 59%|█████████████████████▍ | 44/74 [00:40<00:22, 1.36it/s]
epoch 0 | loss 4.873201370239258, f_iou 0.029040496796369553: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.37it/s]
epoch 0 | loss 5.388787269592285, f_iou 0.02846710942685604: 61%|██████████████████████▌ | 45/74 [00:41<00:21, 1.37it/s]
epoch 0 | loss 5.388787269592285, f_iou 0.02846710942685604: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.36it/s]
epoch 0 | loss 5.226943016052246, f_iou 0.028867069631814957: 62%|██████████████████████▍ | 46/74 [00:42<00:20, 1.36it/s]
epoch 0 | loss 5.226943016052246, f_iou 0.028867069631814957: 64%|██████████████████████▊ | 47/74 [00:42<00:19, 1.37it/s]
epoch 0 | loss 8.486136436462402, f_iou 0.02835584431886673: 64%|███████████████████████▌ | 47/74 [00:42<00:19, 1.37it/s]
epoch 0 | loss 8.486136436462402, f_iou 0.02835584431886673: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.37it/s]
epoch 0 | loss 6.553927421569824, f_iou 0.028046583756804466: 65%|███████████████████████▎ | 48/74 [00:43<00:19, 1.37it/s]
epoch 0 | loss 6.553927421569824, f_iou 0.028046583756804466: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.37it/s]
epoch 0 | loss 6.470992088317871, f_iou 0.028211692348122597: 66%|███████████████████████▊ | 49/74 [00:44<00:18, 1.37it/s]
epoch 0 | loss 6.470992088317871, f_iou 0.028211692348122597: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.37it/s]
epoch 0 | loss 7.999532699584961, f_iou 0.027849901467561722: 68%|████████████████████████▎ | 50/74 [00:45<00:17, 1.37it/s]
epoch 0 | loss 7.999532699584961, f_iou 0.027849901467561722: 69%|████████████████████████▊ | 51/74 [00:45<00:16, 1.37it/s]
epoch 0 | loss 8.295478820800781, f_iou 0.027346275746822357: 69%|████████████████████████▊ | 51/74 [00:45<00:16, 1.37it/s]
epoch 0 | loss 8.295478820800781, f_iou 0.027346275746822357: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.37it/s]
epoch 0 | loss 6.249697208404541, f_iou 0.026963157579302788: 70%|█████████████████████████▎ | 52/74 [00:46<00:16, 1.37it/s]
epoch 0 | loss 6.249697208404541, f_iou 0.026963157579302788: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.37it/s]
epoch 0 | loss 7.622949123382568, f_iou 0.026464927941560745: 72%|█████████████████████████▊ | 53/74 [00:47<00:15, 1.37it/s]
epoch 0 | loss 7.622949123382568, f_iou 0.026464927941560745: 73%|██████████████████████████▎ | 54/74 [00:47<00:14, 1.37it/s]
epoch 0 | loss 8.401267051696777, f_iou 0.025983747094869614: 73%|██████████████████████████▎ | 54/74 [00:47<00:14, 1.37it/s]
epoch 0 | loss 8.401267051696777, f_iou 0.025983747094869614: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.37it/s]
epoch 0 | loss 5.9735236167907715, f_iou 0.025519752874970436: 74%|██████████████████████████ | 55/74 [00:48<00:13, 1.37it/s]
epoch 0 | loss 5.9735236167907715, f_iou 0.025519752874970436: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.37it/s]
epoch 0 | loss 6.914923667907715, f_iou 0.02507254108786583: 76%|████████████████████████████ | 56/74 [00:49<00:13, 1.37it/s]
epoch 0 | loss 6.914923667907715, f_iou 0.02507254108786583: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.37it/s]
epoch 0 | loss 6.814208507537842, f_iou 0.02464025653898716: 77%|████████████████████████████▌ | 57/74 [00:50<00:12, 1.37it/s]
epoch 0 | loss 6.814208507537842, f_iou 0.02464025653898716: 78%|█████████████████████████████ | 58/74 [00:50<00:11, 1.37it/s]
epoch 0 | loss 7.4063801765441895, f_iou 0.024222709238529205: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.37it/s]
epoch 0 | loss 7.4063801765441895, f_iou 0.024222709238529205: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.37it/s]
epoch 0 | loss 7.04052734375, f_iou 0.023822763934731483: 80%|███████████████████████████████▉ | 59/74 [00:51<00:10, 1.37it/s]
epoch 0 | loss 7.04052734375, f_iou 0.023822763934731483: 81%|████████████████████████████████▍ | 60/74 [00:51<00:10, 1.37it/s]
epoch 0 | loss 5.657820701599121, f_iou 0.023637235164642334: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.37it/s]
epoch 0 | loss 5.657820701599121, f_iou 0.023637235164642334: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.37it/s]
epoch 0 | loss 6.105673313140869, f_iou 0.024308878928422928: 82%|█████████████████████████████▋ | 61/74 [00:53<00:09, 1.37it/s]
epoch 0 | loss 6.105673313140869, f_iou 0.024308878928422928: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.38it/s]
epoch 0 | loss 4.877122402191162, f_iou 0.024012768641114235: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.38it/s]
epoch 0 | loss 4.877122402191162, f_iou 0.024012768641114235: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 0 | loss 5.975115776062012, f_iou 0.02430811896920204: 85%|███████████████████████████████▌ | 63/74 [00:54<00:08, 1.37it/s]
epoch 0 | loss 5.975115776062012, f_iou 0.02430811896920204: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.37it/s]
epoch 0 | loss 8.317437171936035, f_iou 0.02395007386803627: 86%|████████████████████████████████ | 64/74 [00:55<00:07, 1.37it/s]
epoch 0 | loss 8.317437171936035, f_iou 0.02395007386803627: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.37it/s]
epoch 0 | loss 6.316483020782471, f_iou 0.023594673722982407: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.37it/s]
epoch 0 | loss 6.316483020782471, f_iou 0.023594673722982407: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.37it/s]
epoch 0 | loss 6.06252384185791, f_iou 0.02324310876429081: 89%|█████████████████████████████████▉ | 66/74 [00:56<00:05, 1.37it/s]
epoch 0 | loss 6.06252384185791, f_iou 0.02324310876429081: 91%|██████████████████████████████████▍ | 67/74 [00:56<00:05, 1.37it/s]
epoch 0 | loss 8.184757232666016, f_iou 0.022907018661499023: 91%|████████████████████████████████▌ | 67/74 [00:57<00:05, 1.37it/s]
epoch 0 | loss 8.184757232666016, f_iou 0.022907018661499023: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.37it/s]
epoch 0 | loss 6.9985270500183105, f_iou 0.02549230121076107: 92%|█████████████████████████████████ | 68/74 [00:58<00:04, 1.37it/s]
epoch 0 | loss 6.9985270500183105, f_iou 0.02549230121076107: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.37it/s]
epoch 0 | loss 6.565506935119629, f_iou 0.025357380509376526: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.37it/s]
epoch 0 | loss 6.565506935119629, f_iou 0.025357380509376526: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.37it/s]
epoch 0 | loss 10.447216987609863, f_iou 0.025001494213938713: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.37it/s]
epoch 0 | loss 10.447216987609863, f_iou 0.025001494213938713: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.37it/s]
epoch 0 | loss 8.268388748168945, f_iou 0.024690799415111542: 96%|██████████████████████████████████▌ | 71/74 [01:00<00:02, 1.37it/s]
epoch 0 | loss 8.268388748168945, f_iou 0.024690799415111542: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.37it/s]
epoch 0 | loss 6.693816184997559, f_iou 0.02440928854048252: 97%|████████████████████████████████████ | 72/74 [01:01<00:01, 1.37it/s]
epoch 0 | loss 6.693816184997559, f_iou 0.02440928854048252: 99%|████████████████████████████████████▌| 73/74 [01:01<00:00, 1.37it/s]
epoch 0 | loss 6.549821853637695, f_iou 0.024238957092165947: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.37it/s]
epoch 0 | loss 6.549821853637695, f_iou 0.024238957092165947: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.38it/s]
epoch 0 | loss 6.549821853637695, f_iou 0.024238957092165947: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 0 | valid.f_iou 0.18501000106334686, valid.f_f-score 0.35428: 0%| | 0/16 [00:08, ?it/s]
epoch 0 | valid.f_iou 0.18501000106334686, valid.f_f-score 0.35428: 6%|█▉ | 1/16 [00:08<02:00, 8.03s/it]
epoch 0 | valid.f_iou 0.1523900032043457, valid.f_f-score 0.55312: 6%|██ | 1/16 [00:08<02:00, 8.03s/it]
epoch 0 | valid.f_iou 0.1523900032043457, valid.f_f-score 0.55312: 12%|████ | 2/16 [00:08<00:50, 3.61s/it]
epoch 0 | valid.f_iou 0.11969999969005585, valid.f_f-score 0.46806: 12%|███▉ | 2/16 [00:09<00:50, 3.61s/it]
epoch 0 | valid.f_iou 0.11969999969005585, valid.f_f-score 0.46806: 19%|█████▊ | 3/16 [00:09<00:28, 2.19s/it]
epoch 0 | valid.f_iou 0.15838000178337097, valid.f_f-score 0.44241: 19%|█████▊ | 3/16 [00:09<00:28, 2.19s/it]
epoch 0 | valid.f_iou 0.15838000178337097, valid.f_f-score 0.44241: 25%|███████▊ | 4/16 [00:09<00:17, 1.50s/it]
epoch 0 | valid.f_iou 0.14490999281406403, valid.f_f-score 0.41327: 25%|███████▊ | 4/16 [00:09<00:17, 1.50s/it]
epoch 0 | valid.f_iou 0.14490999281406403, valid.f_f-score 0.41327: 31%|█████████▋ | 5/16 [00:09<00:12, 1.13s/it]
epoch 0 | valid.f_iou 0.14598999917507172, valid.f_f-score 0.39482: 31%|█████████▋ | 5/16 [00:10<00:12, 1.13s/it]
epoch 0 | valid.f_iou 0.14598999917507172, valid.f_f-score 0.39482: 38%|███████████▋ | 6/16 [00:10<00:09, 1.11it/s]
epoch 0 | valid.f_iou 0.16756999492645264, valid.f_f-score 0.41233: 38%|███████████▋ | 6/16 [00:10<00:09, 1.11it/s]
epoch 0 | valid.f_iou 0.16756999492645264, valid.f_f-score 0.41233: 44%|█████████████▌ | 7/16 [00:10<00:06, 1.33it/s]
epoch 0 | valid.f_iou 0.15854999423027039, valid.f_f-score 0.4009: 44%|██████████████ | 7/16 [00:11<00:06, 1.33it/s]
epoch 0 | valid.f_iou 0.15854999423027039, valid.f_f-score 0.4009: 50%|████████████████ | 8/16 [00:11<00:05, 1.53it/s]
epoch 0 | valid.f_iou 0.17956000566482544, valid.f_f-score 0.43497: 50%|███████████████▌ | 8/16 [00:11<00:05, 1.53it/s]
epoch 0 | valid.f_iou 0.17956000566482544, valid.f_f-score 0.43497: 56%|█████████████████▍ | 9/16 [00:11<00:04, 1.74it/s]
epoch 0 | valid.f_iou 0.18499000370502472, valid.f_f-score 0.45423: 56%|█████████████████▍ | 9/16 [00:12<00:04, 1.74it/s]
epoch 0 | valid.f_iou 0.18499000370502472, valid.f_f-score 0.45423: 62%|██████████████████▊ | 10/16 [00:12<00:03, 1.86it/s]
epoch 0 | valid.f_iou 0.17996999621391296, valid.f_f-score 0.43596: 62%|██████████████████▊ | 10/16 [00:12<00:03, 1.86it/s]
epoch 0 | valid.f_iou 0.17996999621391296, valid.f_f-score 0.43596: 69%|████████████████████▋ | 11/16 [00:12<00:02, 1.93it/s]
epoch 0 | valid.f_iou 0.16996000707149506, valid.f_f-score 0.43667: 69%|████████████████████▋ | 11/16 [00:13<00:02, 1.93it/s]
epoch 0 | valid.f_iou 0.16996000707149506, valid.f_f-score 0.43667: 75%|██████████████████████▌ | 12/16 [00:13<00:01, 2.00it/s]
epoch 0 | valid.f_iou 0.15902000665664673, valid.f_f-score 0.44949: 75%|██████████████████████▌ | 12/16 [00:13<00:01, 2.00it/s]
epoch 0 | valid.f_iou 0.15902000665664673, valid.f_f-score 0.44949: 81%|████████████████████████▍ | 13/16 [00:13<00:01, 2.05it/s]
epoch 0 | valid.f_iou 0.16433000564575195, valid.f_f-score 0.46016: 81%|████████████████████████▍ | 13/16 [00:14<00:01, 2.05it/s]
epoch 0 | valid.f_iou 0.16433000564575195, valid.f_f-score 0.46016: 88%|██████████████████████████▎ | 14/16 [00:14<00:00, 2.08it/s]
epoch 0 | valid.f_iou 0.16398000717163086, valid.f_f-score 0.47291: 88%|██████████████████████████▎ | 14/16 [00:14<00:00, 2.08it/s]
epoch 0 | valid.f_iou 0.16398000717163086, valid.f_f-score 0.47291: 94%|████████████████████████████▏ | 15/16 [00:14<00:00, 2.11it/s]
epoch 0 | valid.f_iou 0.16859999299049377, valid.f_f-score 0.47739: 94%|████████████████████████████▏ | 15/16 [00:14<00:00, 2.11it/s]
epoch 0 | valid.f_iou 0.16859999299049377, valid.f_f-score 0.47739: 100%|██████████████████████████████| 16/16 [00:14<00:00, 2.14it/s]
epoch 0 | valid.f_iou 0.16859999299049377, valid.f_f-score 0.47739: 100%|██████████████████████████████| 16/16 [00:14<00:00, 1.07it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 0 | valid.f_iou 0.1422400027513504, valid.f_f-score 0.27918: 0%| | 0/16 [00:05, ?it/s]
epoch 0 | valid.f_iou 0.1422400027513504, valid.f_f-score 0.27918: 6%|██ | 1/16 [00:05<01:18, 5.23s/it]
epoch 0 | valid.f_iou 0.3206599950790405, valid.f_f-score 0.54965: 6%|██ | 1/16 [00:05<01:18, 5.23s/it]
epoch 0 | valid.f_iou 0.3206599950790405, valid.f_f-score 0.54965: 12%|████ | 2/16 [00:05<00:34, 2.43s/it]
epoch 0 | valid.f_iou 0.2535800039768219, valid.f_f-score 0.46228: 12%|████ | 2/16 [00:06<00:34, 2.43s/it]
epoch 0 | valid.f_iou 0.2535800039768219, valid.f_f-score 0.46228: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 0 | valid.f_iou 0.27724000811576843, valid.f_f-score 0.45267: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 0 | valid.f_iou 0.27724000811576843, valid.f_f-score 0.45267: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 0 | valid.f_iou 0.2623800039291382, valid.f_f-score 0.42675: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 0 | valid.f_iou 0.2623800039291382, valid.f_f-score 0.42675: 31%|██████████ | 5/16 [00:06<00:09, 1.18it/s]
epoch 0 | valid.f_iou 0.24041999876499176, valid.f_f-score 0.40417: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 0 | valid.f_iou 0.24041999876499176, valid.f_f-score 0.40417: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 0 | valid.f_iou 0.26427000761032104, valid.f_f-score 0.42501: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 0 | valid.f_iou 0.26427000761032104, valid.f_f-score 0.42501: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.73it/s]
epoch 0 | valid.f_iou 0.2597399950027466, valid.f_f-score 0.41098: 44%|██████████████ | 7/16 [00:08<00:05, 1.73it/s]
epoch 0 | valid.f_iou 0.2597399950027466, valid.f_f-score 0.41098: 50%|████████████████ | 8/16 [00:08<00:04, 1.95it/s]
epoch 0 | valid.f_iou 0.3081200122833252, valid.f_f-score 0.45483: 50%|████████████████ | 8/16 [00:08<00:04, 1.95it/s]
epoch 0 | valid.f_iou 0.3081200122833252, valid.f_f-score 0.45483: 56%|██████████████████ | 9/16 [00:08<00:03, 2.17it/s]
epoch 0 | valid.f_iou 0.31685999035835266, valid.f_f-score 0.46651: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.17it/s]
epoch 0 | valid.f_iou 0.31685999035835266, valid.f_f-score 0.46651: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.32it/s]
epoch 0 | valid.f_iou 0.3028700053691864, valid.f_f-score 0.44745: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.32it/s]
epoch 0 | valid.f_iou 0.3028700053691864, valid.f_f-score 0.44745: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.43it/s]
epoch 0 | valid.f_iou 0.28301000595092773, valid.f_f-score 0.44016: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 0 | valid.f_iou 0.28301000595092773, valid.f_f-score 0.44016: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 0 | valid.f_iou 0.28922998905181885, valid.f_f-score 0.45566: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 0 | valid.f_iou 0.28922998905181885, valid.f_f-score 0.45566: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.59it/s]
epoch 0 | valid.f_iou 0.30327001214027405, valid.f_f-score 0.47069: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.59it/s]
epoch 0 | valid.f_iou 0.30327001214027405, valid.f_f-score 0.47069: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 0 | valid.f_iou 0.3221200108528137, valid.f_f-score 0.49309: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.63it/s]
epoch 0 | valid.f_iou 0.3221200108528137, valid.f_f-score 0.49309: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.66it/s]
epoch 0 | valid.f_iou 0.3395400047302246, valid.f_f-score 0.50595: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.66it/s]
epoch 0 | valid.f_iou 0.3395400047302246, valid.f_f-score 0.50595: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 0 | valid.f_iou 0.3395400047302246, valid.f_f-score 0.50595: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 0 | valid.f_iou 0.1422400027513504, valid.f_f-score 0.27918: 0%| | 0/16 [00:04, ?it/s]
epoch 0 | valid.f_iou 0.1422400027513504, valid.f_f-score 0.27918: 6%|██ | 1/16 [00:04<01:10, 4.70s/it]
epoch 0 | valid.f_iou 0.3206599950790405, valid.f_f-score 0.54965: 6%|██ | 1/16 [00:05<01:10, 4.70s/it]
epoch 0 | valid.f_iou 0.3206599950790405, valid.f_f-score 0.54965: 12%|████ | 2/16 [00:05<00:30, 2.21s/it]
epoch 0 | valid.f_iou 0.2535800039768219, valid.f_f-score 0.46228: 12%|████ | 2/16 [00:05<00:30, 2.21s/it]
epoch 0 | valid.f_iou 0.2535800039768219, valid.f_f-score 0.46228: 19%|██████ | 3/16 [00:05<00:18, 1.40s/it]
epoch 0 | valid.f_iou 0.27724000811576843, valid.f_f-score 0.45267: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 0 | valid.f_iou 0.27724000811576843, valid.f_f-score 0.45267: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 0 | valid.f_iou 0.2623800039291382, valid.f_f-score 0.42675: 25%|████████ | 4/16 [00:06<00:12, 1.01s/it]
epoch 0 | valid.f_iou 0.2623800039291382, valid.f_f-score 0.42675: 31%|██████████ | 5/16 [00:06<00:08, 1.29it/s]
epoch 0 | valid.f_iou 0.24041999876499176, valid.f_f-score 0.40417: 31%|█████████▋ | 5/16 [00:06<00:08, 1.29it/s]
epoch 0 | valid.f_iou 0.24041999876499176, valid.f_f-score 0.40417: 38%|███████████▋ | 6/16 [00:06<00:06, 1.56it/s]
epoch 0 | valid.f_iou 0.26427000761032104, valid.f_f-score 0.42501: 38%|███████████▋ | 6/16 [00:07<00:06, 1.56it/s]
epoch 0 | valid.f_iou 0.26427000761032104, valid.f_f-score 0.42501: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.83it/s]
epoch 0 | valid.f_iou 0.2597399950027466, valid.f_f-score 0.41098: 44%|██████████████ | 7/16 [00:07<00:04, 1.83it/s]
epoch 0 | valid.f_iou 0.2597399950027466, valid.f_f-score 0.41098: 50%|████████████████ | 8/16 [00:07<00:04, 1.93it/s]
epoch 0 | valid.f_iou 0.3081200122833252, valid.f_f-score 0.45483: 50%|████████████████ | 8/16 [00:07<00:04, 1.93it/s]
epoch 0 | valid.f_iou 0.3081200122833252, valid.f_f-score 0.45483: 56%|██████████████████ | 9/16 [00:07<00:03, 2.09it/s]
epoch 0 | valid.f_iou 0.31685999035835266, valid.f_f-score 0.46651: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.09it/s]
epoch 0 | valid.f_iou 0.31685999035835266, valid.f_f-score 0.46651: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.11it/s]
epoch 0 | valid.f_iou 0.3028700053691864, valid.f_f-score 0.44745: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.11it/s]
epoch 0 | valid.f_iou 0.3028700053691864, valid.f_f-score 0.44745: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.15it/s]
epoch 0 | valid.f_iou 0.28301000595092773, valid.f_f-score 0.44016: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 0 | valid.f_iou 0.28301000595092773, valid.f_f-score 0.44016: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.17it/s]
epoch 0 | valid.f_iou 0.28922998905181885, valid.f_f-score 0.45566: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.17it/s]
epoch 0 | valid.f_iou 0.28922998905181885, valid.f_f-score 0.45566: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.19it/s]
epoch 0 | valid.f_iou 0.30327001214027405, valid.f_f-score 0.47069: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.19it/s]
epoch 0 | valid.f_iou 0.30327001214027405, valid.f_f-score 0.47069: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.20it/s]
epoch 0 | valid.f_iou 0.3221200108528137, valid.f_f-score 0.49309: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.20it/s]
epoch 0 | valid.f_iou 0.3221200108528137, valid.f_f-score 0.49309: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.35it/s]
epoch 0 | valid.f_iou 0.3395400047302246, valid.f_f-score 0.50595: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.35it/s]
epoch 0 | valid.f_iou 0.3395400047302246, valid.f_f-score 0.50595: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.46it/s]
epoch 0 | valid.f_iou 0.3395400047302246, valid.f_f-score 0.50595: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 1 | loss 7.798267364501953, f_iou 0.034312691539525986: 0%| | 0/74 [00:06, ?it/s]
epoch 1 | loss 7.798267364501953, f_iou 0.034312691539525986: 1%|▌ | 1/74 [00:06<07:36, 6.25s/it]
epoch 1 | loss 8.410048484802246, f_iou 0.1357671022415161: 1%|▌ | 1/74 [00:07<07:36, 6.25s/it]
epoch 1 | loss 8.410048484802246, f_iou 0.1357671022415161: 3%|█ | 2/74 [00:07<03:38, 3.04s/it]
epoch 1 | loss 6.7795305252075195, f_iou 0.09646299481391907: 3%|█ | 2/74 [00:07<03:38, 3.04s/it]
epoch 1 | loss 6.7795305252075195, f_iou 0.09646299481391907: 4%|█▌ | 3/74 [00:07<02:22, 2.01s/it]
epoch 1 | loss 10.559467315673828, f_iou 0.07236447930335999: 4%|█▌ | 3/74 [00:08<02:22, 2.01s/it]
epoch 1 | loss 10.559467315673828, f_iou 0.07236447930335999: 5%|██ | 4/74 [00:08<01:49, 1.57s/it]
epoch 1 | loss 3.3647758960723877, f_iou 0.06279032677412033: 5%|██ | 4/74 [00:09<01:49, 1.57s/it]
epoch 1 | loss 3.3647758960723877, f_iou 0.06279032677412033: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 1 | loss 3.6485445499420166, f_iou 0.05294539034366608: 7%|██▌ | 5/74 [00:10<01:28, 1.28s/it]
epoch 1 | loss 3.6485445499420166, f_iou 0.05294539034366608: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 1 | loss 6.630905628204346, f_iou 0.04571385681629181: 8%|███ | 6/74 [00:11<01:15, 1.11s/it]
epoch 1 | loss 6.630905628204346, f_iou 0.04571385681629181: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 1 | loss 4.954675674438477, f_iou 0.05756359547376633: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 1 | loss 4.954675674438477, f_iou 0.05756359547376633: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 1 | loss 6.070770263671875, f_iou 0.05147693678736687: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 1 | loss 6.070770263671875, f_iou 0.05147693678736687: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 1 | loss 6.214125633239746, f_iou 0.046376053243875504: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 1 | loss 6.214125633239746, f_iou 0.046376053243875504: 14%|████▊ | 10/74 [00:13<00:55, 1.16it/s]
epoch 1 | loss 8.316511154174805, f_iou 0.04219244047999382: 14%|█████ | 10/74 [00:14<00:55, 1.16it/s]
epoch 1 | loss 8.316511154174805, f_iou 0.04219244047999382: 15%|█████▌ | 11/74 [00:14<00:53, 1.18it/s]
epoch 1 | loss 5.618900775909424, f_iou 0.039206795394420624: 15%|█████▎ | 11/74 [00:15<00:53, 1.18it/s]
epoch 1 | loss 5.618900775909424, f_iou 0.039206795394420624: 16%|█████▊ | 12/74 [00:15<00:51, 1.21it/s]
epoch 1 | loss 5.912343978881836, f_iou 0.03636739030480385: 16%|██████ | 12/74 [00:15<00:51, 1.21it/s]
epoch 1 | loss 5.912343978881836, f_iou 0.03636739030480385: 18%|██████▌ | 13/74 [00:15<00:48, 1.25it/s]
epoch 1 | loss 5.273471832275391, f_iou 0.033827997744083405: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 1 | loss 5.273471832275391, f_iou 0.033827997744083405: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 1 | loss 10.549553871154785, f_iou 0.07156015187501907: 19%|██████▊ | 14/74 [00:17<00:46, 1.28it/s]
epoch 1 | loss 10.549553871154785, f_iou 0.07156015187501907: 20%|███████▎ | 15/74 [00:17<00:44, 1.31it/s]
epoch 1 | loss 6.405750751495361, f_iou 0.06792233884334564: 20%|███████▌ | 15/74 [00:17<00:44, 1.31it/s]
epoch 1 | loss 6.405750751495361, f_iou 0.06792233884334564: 22%|████████ | 16/74 [00:17<00:44, 1.32it/s]
epoch 1 | loss 4.538101673126221, f_iou 0.07958931475877762: 22%|████████ | 16/74 [00:18<00:44, 1.32it/s]
epoch 1 | loss 4.538101673126221, f_iou 0.07958931475877762: 23%|████████▌ | 17/74 [00:18<00:42, 1.34it/s]
epoch 1 | loss 5.513991355895996, f_iou 0.07625224441289902: 23%|████████▌ | 17/74 [00:19<00:42, 1.34it/s]
epoch 1 | loss 5.513991355895996, f_iou 0.07625224441289902: 24%|█████████ | 18/74 [00:19<00:41, 1.35it/s]
epoch 1 | loss 4.207645416259766, f_iou 0.07486642897129059: 24%|█████████ | 18/74 [00:20<00:41, 1.35it/s]
epoch 1 | loss 4.207645416259766, f_iou 0.07486642897129059: 26%|█████████▌ | 19/74 [00:20<00:40, 1.36it/s]
epoch 1 | loss 5.83849573135376, f_iou 0.07178616523742676: 26%|█████████▊ | 19/74 [00:20<00:40, 1.36it/s]
epoch 1 | loss 5.83849573135376, f_iou 0.07178616523742676: 27%|██████████▎ | 20/74 [00:20<00:39, 1.36it/s]
epoch 1 | loss 8.212100982666016, f_iou 0.06840269267559052: 27%|██████████ | 20/74 [00:21<00:39, 1.36it/s]
epoch 1 | loss 8.212100982666016, f_iou 0.06840269267559052: 28%|██████████▌ | 21/74 [00:21<00:39, 1.35it/s]
epoch 1 | loss 9.221009254455566, f_iou 0.06532494723796844: 28%|██████████▌ | 21/74 [00:22<00:39, 1.35it/s]
epoch 1 | loss 9.221009254455566, f_iou 0.06532494723796844: 30%|███████████ | 22/74 [00:22<00:38, 1.35it/s]
epoch 1 | loss 7.128818988800049, f_iou 0.07192793488502502: 30%|███████████ | 22/74 [00:23<00:38, 1.35it/s]
epoch 1 | loss 7.128818988800049, f_iou 0.07192793488502502: 31%|███████████▌ | 23/74 [00:23<00:38, 1.33it/s]
epoch 1 | loss 4.836799144744873, f_iou 0.09069418907165527: 31%|███████████▌ | 23/74 [00:23<00:38, 1.33it/s]
epoch 1 | loss 4.836799144744873, f_iou 0.09069418907165527: 32%|████████████ | 24/74 [00:23<00:38, 1.30it/s]
epoch 1 | loss 9.616092681884766, f_iou 0.1031746044754982: 32%|████████████▎ | 24/74 [00:24<00:38, 1.30it/s]
epoch 1 | loss 9.616092681884766, f_iou 0.1031746044754982: 34%|████████████▊ | 25/74 [00:24<00:38, 1.28it/s]
epoch 1 | loss 7.354490280151367, f_iou 0.09923159331083298: 34%|████████████▌ | 25/74 [00:25<00:38, 1.28it/s]
epoch 1 | loss 7.354490280151367, f_iou 0.09923159331083298: 35%|█████████████ | 26/74 [00:25<00:37, 1.28it/s]
epoch 1 | loss 6.292619705200195, f_iou 0.09874788671731949: 35%|█████████████ | 26/74 [00:26<00:37, 1.28it/s]
epoch 1 | loss 6.292619705200195, f_iou 0.09874788671731949: 36%|█████████████▌ | 27/74 [00:26<00:37, 1.27it/s]
epoch 1 | loss 4.256560325622559, f_iou 0.09528868645429611: 36%|█████████████▌ | 27/74 [00:27<00:37, 1.27it/s]
epoch 1 | loss 4.256560325622559, f_iou 0.09528868645429611: 38%|██████████████ | 28/74 [00:27<00:35, 1.30it/s]
epoch 1 | loss 7.398148536682129, f_iou 0.0925975888967514: 38%|██████████████▍ | 28/74 [00:27<00:35, 1.30it/s]
epoch 1 | loss 7.398148536682129, f_iou 0.0925975888967514: 39%|██████████████▉ | 29/74 [00:27<00:34, 1.32it/s]
epoch 1 | loss 3.456181287765503, f_iou 0.09125685691833496: 39%|██████████████▌ | 29/74 [00:28<00:34, 1.32it/s]
epoch 1 | loss 3.456181287765503, f_iou 0.09125685691833496: 41%|███████████████ | 30/74 [00:28<00:32, 1.34it/s]
epoch 1 | loss 10.11435317993164, f_iou 0.08832429349422455: 41%|███████████████ | 30/74 [00:29<00:32, 1.34it/s]
epoch 1 | loss 10.11435317993164, f_iou 0.08832429349422455: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.35it/s]
epoch 1 | loss 6.036479473114014, f_iou 0.08574531227350235: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.35it/s]
epoch 1 | loss 6.036479473114014, f_iou 0.08574531227350235: 43%|████████████████ | 32/74 [00:29<00:31, 1.35it/s]
epoch 1 | loss 7.369835376739502, f_iou 0.08514111489057541: 43%|████████████████ | 32/74 [00:30<00:31, 1.35it/s]
epoch 1 | loss 7.369835376739502, f_iou 0.08514111489057541: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.35it/s]
epoch 1 | loss 6.103743553161621, f_iou 0.08616409450769424: 45%|████████████████▌ | 33/74 [00:31<00:30, 1.35it/s]
epoch 1 | loss 6.103743553161621, f_iou 0.08616409450769424: 46%|█████████████████ | 34/74 [00:31<00:29, 1.34it/s]
epoch 1 | loss 8.397188186645508, f_iou 0.08557096868753433: 46%|█████████████████ | 34/74 [00:32<00:29, 1.34it/s]
epoch 1 | loss 8.397188186645508, f_iou 0.08557096868753433: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.35it/s]
epoch 1 | loss 10.710646629333496, f_iou 0.0978219285607338: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.35it/s]
epoch 1 | loss 10.710646629333496, f_iou 0.0978219285607338: 49%|██████████████████ | 36/74 [00:32<00:27, 1.36it/s]
epoch 1 | loss 6.42728328704834, f_iou 0.09925941377878189: 49%|██████████████████▍ | 36/74 [00:33<00:27, 1.36it/s]
epoch 1 | loss 6.42728328704834, f_iou 0.09925941377878189: 50%|███████████████████ | 37/74 [00:33<00:27, 1.37it/s]
epoch 1 | loss 6.8593597412109375, f_iou 0.09676551818847656: 50%|██████████████████ | 37/74 [00:34<00:27, 1.37it/s]
epoch 1 | loss 6.8593597412109375, f_iou 0.09676551818847656: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.37it/s]
epoch 1 | loss 12.270150184631348, f_iou 0.11483648419380188: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.37it/s]
epoch 1 | loss 12.270150184631348, f_iou 0.11483648419380188: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.34it/s]
epoch 1 | loss 12.24198055267334, f_iou 0.13179618120193481: 53%|███████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 1 | loss 12.24198055267334, f_iou 0.13179618120193481: 54%|████████████████████ | 40/74 [00:35<00:25, 1.34it/s]
epoch 1 | loss 8.034430503845215, f_iou 0.1335434913635254: 54%|████████████████████▌ | 40/74 [00:36<00:25, 1.34it/s]
epoch 1 | loss 8.034430503845215, f_iou 0.1335434913635254: 55%|█████████████████████ | 41/74 [00:36<00:24, 1.33it/s]
epoch 1 | loss 4.273979187011719, f_iou 0.13117268681526184: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.33it/s]
epoch 1 | loss 4.273979187011719, f_iou 0.13117268681526184: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.32it/s]
epoch 1 | loss 5.318687438964844, f_iou 0.12860246002674103: 57%|█████████████████████ | 42/74 [00:38<00:24, 1.32it/s]
epoch 1 | loss 5.318687438964844, f_iou 0.12860246002674103: 58%|█████████████████████▍ | 43/74 [00:38<00:23, 1.33it/s]
epoch 1 | loss 4.643799304962158, f_iou 0.13099636137485504: 58%|█████████████████████▍ | 43/74 [00:38<00:23, 1.33it/s]
epoch 1 | loss 4.643799304962158, f_iou 0.13099636137485504: 59%|██████████████████████ | 44/74 [00:38<00:22, 1.34it/s]
epoch 1 | loss 5.959142208099365, f_iou 0.13520526885986328: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.34it/s]
epoch 1 | loss 5.959142208099365, f_iou 0.13520526885986328: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.35it/s]
epoch 1 | loss 4.69493293762207, f_iou 0.13253070414066315: 61%|███████████████████████ | 45/74 [00:40<00:21, 1.35it/s]
epoch 1 | loss 4.69493293762207, f_iou 0.13253070414066315: 62%|███████████████████████▌ | 46/74 [00:40<00:20, 1.35it/s]
epoch 1 | loss 4.778158187866211, f_iou 0.12984906136989594: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.35it/s]
epoch 1 | loss 4.778158187866211, f_iou 0.12984906136989594: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.36it/s]
epoch 1 | loss 5.6083526611328125, f_iou 0.13286671042442322: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.36it/s]
epoch 1 | loss 5.6083526611328125, f_iou 0.13286671042442322: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.36it/s]
epoch 1 | loss 9.687609672546387, f_iou 0.1323617547750473: 65%|████████████████████████▋ | 48/74 [00:42<00:19, 1.36it/s]
epoch 1 | loss 9.687609672546387, f_iou 0.1323617547750473: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.36it/s]
epoch 1 | loss 6.498868942260742, f_iou 0.13018491864204407: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.36it/s]
epoch 1 | loss 6.498868942260742, f_iou 0.13018491864204407: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.36it/s]
epoch 1 | loss 5.709918022155762, f_iou 0.1334998905658722: 68%|█████████████████████████▋ | 50/74 [00:44<00:17, 1.36it/s]
epoch 1 | loss 5.709918022155762, f_iou 0.1334998905658722: 69%|██████████████████████████▏ | 51/74 [00:44<00:16, 1.37it/s]
epoch 1 | loss 5.849340915679932, f_iou 0.13767358660697937: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.37it/s]
epoch 1 | loss 5.849340915679932, f_iou 0.13767358660697937: 70%|██████████████████████████ | 52/74 [00:44<00:16, 1.37it/s]
epoch 1 | loss 7.958217620849609, f_iou 0.1413574367761612: 70%|██████████████████████████▋ | 52/74 [00:45<00:16, 1.37it/s]
epoch 1 | loss 7.958217620849609, f_iou 0.1413574367761612: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.37it/s]
epoch 1 | loss 11.34716796875, f_iou 0.15503357350826263: 72%|████████████████████████████▋ | 53/74 [00:46<00:15, 1.37it/s]
epoch 1 | loss 11.34716796875, f_iou 0.15503357350826263: 73%|█████████████████████████████▏ | 54/74 [00:46<00:14, 1.38it/s]
epoch 1 | loss 8.251399040222168, f_iou 0.16175556182861328: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 1 | loss 8.251399040222168, f_iou 0.16175556182861328: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 1 | loss 7.9291839599609375, f_iou 0.16990520060062408: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.38it/s]
epoch 1 | loss 7.9291839599609375, f_iou 0.16990520060062408: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.37it/s]
epoch 1 | loss 4.298609733581543, f_iou 0.1688307374715805: 76%|████████████████████████████▊ | 56/74 [00:48<00:13, 1.37it/s]
epoch 1 | loss 4.298609733581543, f_iou 0.1688307374715805: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.37it/s]
epoch 1 | loss 4.974555015563965, f_iou 0.1684972643852234: 77%|█████████████████████████████▎ | 57/74 [00:49<00:12, 1.37it/s]
epoch 1 | loss 4.974555015563965, f_iou 0.1684972643852234: 78%|█████████████████████████████▊ | 58/74 [00:49<00:11, 1.37it/s]
epoch 1 | loss 8.586539268493652, f_iou 0.16742254793643951: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.37it/s]
epoch 1 | loss 8.586539268493652, f_iou 0.16742254793643951: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.36it/s]
epoch 1 | loss 6.6321330070495605, f_iou 0.16635818779468536: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.36it/s]
epoch 1 | loss 6.6321330070495605, f_iou 0.16635818779468536: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 1 | loss 5.328851222991943, f_iou 0.16366425156593323: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.37it/s]
epoch 1 | loss 5.328851222991943, f_iou 0.16366425156593323: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.37it/s]
epoch 1 | loss 5.96489143371582, f_iou 0.16121476888656616: 82%|███████████████████████████████▎ | 61/74 [00:52<00:09, 1.37it/s]
epoch 1 | loss 5.96489143371582, f_iou 0.16121476888656616: 84%|███████████████████████████████▊ | 62/74 [00:52<00:08, 1.37it/s]
epoch 1 | loss 6.285143852233887, f_iou 0.1586679071187973: 84%|███████████████████████████████▊ | 62/74 [00:52<00:08, 1.37it/s]
epoch 1 | loss 6.285143852233887, f_iou 0.1586679071187973: 85%|████████████████████████████████▎ | 63/74 [00:52<00:07, 1.38it/s]
epoch 1 | loss 6.663217544555664, f_iou 0.15635403990745544: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.38it/s]
epoch 1 | loss 6.663217544555664, f_iou 0.15635403990745544: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 1 | loss 8.649221420288086, f_iou 0.15398597717285156: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.38it/s]
epoch 1 | loss 8.649221420288086, f_iou 0.15398597717285156: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.36it/s]
epoch 1 | loss 6.486983299255371, f_iou 0.15203113853931427: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.36it/s]
epoch 1 | loss 6.486983299255371, f_iou 0.15203113853931427: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.34it/s]
epoch 1 | loss 6.81840705871582, f_iou 0.14977483451366425: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:05, 1.34it/s]
epoch 1 | loss 6.81840705871582, f_iou 0.14977483451366425: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.36it/s]
epoch 1 | loss 6.118021011352539, f_iou 0.14779627323150635: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.36it/s]
epoch 1 | loss 6.118021011352539, f_iou 0.14779627323150635: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.37it/s]
epoch 1 | loss 6.065981388092041, f_iou 0.14568668603897095: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.37it/s]
epoch 1 | loss 6.065981388092041, f_iou 0.14568668603897095: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.37it/s]
epoch 1 | loss 2.666419267654419, f_iou 0.14389356970787048: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.37it/s]
epoch 1 | loss 2.666419267654419, f_iou 0.14389356970787048: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 1 | loss 7.8670654296875, f_iou 0.14288774132728577: 95%|████████████████████████████████████▉ | 70/74 [00:58<00:02, 1.38it/s]
epoch 1 | loss 7.8670654296875, f_iou 0.14288774132728577: 96%|█████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.38it/s]
epoch 1 | loss 3.905733585357666, f_iou 0.1436702311038971: 96%|████████████████████████████████████▍ | 71/74 [00:59<00:02, 1.38it/s]
epoch 1 | loss 3.905733585357666, f_iou 0.1436702311038971: 97%|████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.38it/s]
epoch 1 | loss 9.079169273376465, f_iou 0.14792941510677338: 97%|████████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 1 | loss 9.079169273376465, f_iou 0.14792941510677338: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 1 | loss 6.116859436035156, f_iou 0.14889295399188995: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 1 | loss 6.116859436035156, f_iou 0.14889295399188995: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.38it/s]
epoch 1 | loss 6.116859436035156, f_iou 0.14889295399188995: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 1 | valid.f_iou 0.2818399965763092, valid.f_f-score 0.45598: 0%| | 0/16 [00:05, ?it/s]
epoch 1 | valid.f_iou 0.2818399965763092, valid.f_f-score 0.45598: 6%|██ | 1/16 [00:05<01:21, 5.41s/it]
epoch 1 | valid.f_iou 0.26820001006126404, valid.f_f-score 0.58526: 6%|█▉ | 1/16 [00:05<01:21, 5.41s/it]
epoch 1 | valid.f_iou 0.26820001006126404, valid.f_f-score 0.58526: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 1 | valid.f_iou 0.2385600060224533, valid.f_f-score 0.51499: 12%|████ | 2/16 [00:06<00:34, 2.46s/it]
epoch 1 | valid.f_iou 0.2385600060224533, valid.f_f-score 0.51499: 19%|██████ | 3/16 [00:06<00:19, 1.52s/it]
epoch 1 | valid.f_iou 0.28016000986099243, valid.f_f-score 0.50761: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 1 | valid.f_iou 0.28016000986099243, valid.f_f-score 0.50761: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 1 | valid.f_iou 0.24995000660419464, valid.f_f-score 0.47667: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 1 | valid.f_iou 0.24995000660419464, valid.f_f-score 0.47667: 31%|█████████▋ | 5/16 [00:06<00:08, 1.22it/s]
epoch 1 | valid.f_iou 0.24675999581813812, valid.f_f-score 0.47126: 31%|█████████▋ | 5/16 [00:07<00:08, 1.22it/s]
epoch 1 | valid.f_iou 0.24675999581813812, valid.f_f-score 0.47126: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 1 | valid.f_iou 0.26409998536109924, valid.f_f-score 0.48563: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 1 | valid.f_iou 0.26409998536109924, valid.f_f-score 0.48563: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.76it/s]
epoch 1 | valid.f_iou 0.2452699989080429, valid.f_f-score 0.46493: 44%|██████████████ | 7/16 [00:08<00:05, 1.76it/s]
epoch 1 | valid.f_iou 0.2452699989080429, valid.f_f-score 0.46493: 50%|████████████████ | 8/16 [00:08<00:04, 1.97it/s]
epoch 1 | valid.f_iou 0.25328001379966736, valid.f_f-score 0.48884: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.97it/s]
epoch 1 | valid.f_iou 0.25328001379966736, valid.f_f-score 0.48884: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 1 | valid.f_iou 0.27160000801086426, valid.f_f-score 0.51335: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 1 | valid.f_iou 0.27160000801086426, valid.f_f-score 0.51335: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 1 | valid.f_iou 0.26548001170158386, valid.f_f-score 0.49794: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.33it/s]
epoch 1 | valid.f_iou 0.26548001170158386, valid.f_f-score 0.49794: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 1 | valid.f_iou 0.27055999636650085, valid.f_f-score 0.51584: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 1 | valid.f_iou 0.27055999636650085, valid.f_f-score 0.51584: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 1 | valid.f_iou 0.25652000308036804, valid.f_f-score 0.52709: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 1 | valid.f_iou 0.25652000308036804, valid.f_f-score 0.52709: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 1 | valid.f_iou 0.249549999833107, valid.f_f-score 0.52682: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.58it/s]
epoch 1 | valid.f_iou 0.249549999833107, valid.f_f-score 0.52682: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.63it/s]
epoch 1 | valid.f_iou 0.2500700056552887, valid.f_f-score 0.53398: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.63it/s]
epoch 1 | valid.f_iou 0.2500700056552887, valid.f_f-score 0.53398: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 1 | valid.f_iou 0.2534799873828888, valid.f_f-score 0.53135: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 1 | valid.f_iou 0.2534799873828888, valid.f_f-score 0.53135: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 1 | valid.f_iou 0.2534799873828888, valid.f_f-score 0.53135: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 1 | valid.f_iou 0.2558799982070923, valid.f_f-score 0.33314: 0%| | 0/16 [00:05, ?it/s]
epoch 1 | valid.f_iou 0.2558799982070923, valid.f_f-score 0.33314: 6%|██ | 1/16 [00:05<01:21, 5.42s/it]
epoch 1 | valid.f_iou 0.42372000217437744, valid.f_f-score 0.57456: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 1 | valid.f_iou 0.42372000217437744, valid.f_f-score 0.57456: 12%|███▉ | 2/16 [00:05<00:35, 2.52s/it]
epoch 1 | valid.f_iou 0.32635000348091125, valid.f_f-score 0.47562: 12%|███▉ | 2/16 [00:06<00:35, 2.52s/it]
epoch 1 | valid.f_iou 0.32635000348091125, valid.f_f-score 0.47562: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 1 | valid.f_iou 0.3156599998474121, valid.f_f-score 0.44894: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 1 | valid.f_iou 0.3156599998474121, valid.f_f-score 0.44894: 25%|████████ | 4/16 [00:06<00:13, 1.14s/it]
epoch 1 | valid.f_iou 0.30254998803138733, valid.f_f-score 0.42566: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 1 | valid.f_iou 0.30254998803138733, valid.f_f-score 0.42566: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 1 | valid.f_iou 0.28192999958992004, valid.f_f-score 0.4062: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 1 | valid.f_iou 0.28192999958992004, valid.f_f-score 0.4062: 38%|████████████ | 6/16 [00:07<00:07, 1.34it/s]
epoch 1 | valid.f_iou 0.30302000045776367, valid.f_f-score 0.43297: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 1 | valid.f_iou 0.30302000045776367, valid.f_f-score 0.43297: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 1 | valid.f_iou 0.2946000099182129, valid.f_f-score 0.41842: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 1 | valid.f_iou 0.2946000099182129, valid.f_f-score 0.41842: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 1 | valid.f_iou 0.3527500033378601, valid.f_f-score 0.46825: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 1 | valid.f_iou 0.3527500033378601, valid.f_f-score 0.46825: 56%|██████████████████ | 9/16 [00:08<00:03, 1.96it/s]
epoch 1 | valid.f_iou 0.35760998725891113, valid.f_f-score 0.47875: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 1 | valid.f_iou 0.35760998725891113, valid.f_f-score 0.47875: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 1 | valid.f_iou 0.3486799895763397, valid.f_f-score 0.46128: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.04it/s]
epoch 1 | valid.f_iou 0.3486799895763397, valid.f_f-score 0.46128: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.10it/s]
epoch 1 | valid.f_iou 0.3307099938392639, valid.f_f-score 0.45386: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.10it/s]
epoch 1 | valid.f_iou 0.3307099938392639, valid.f_f-score 0.45386: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.25it/s]
epoch 1 | valid.f_iou 0.34751999378204346, valid.f_f-score 0.4718: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.25it/s]
epoch 1 | valid.f_iou 0.34751999378204346, valid.f_f-score 0.4718: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.37it/s]
epoch 1 | valid.f_iou 0.36390000581741333, valid.f_f-score 0.48746: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 1 | valid.f_iou 0.36390000581741333, valid.f_f-score 0.48746: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 1 | valid.f_iou 0.3767800033092499, valid.f_f-score 0.49882: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.47it/s]
epoch 1 | valid.f_iou 0.3767800033092499, valid.f_f-score 0.49882: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.54it/s]
epoch 1 | valid.f_iou 0.39458999037742615, valid.f_f-score 0.51374: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 1 | valid.f_iou 0.39458999037742615, valid.f_f-score 0.51374: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 1 | valid.f_iou 0.39458999037742615, valid.f_f-score 0.51374: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 1 | valid.f_iou 0.2558799982070923, valid.f_f-score 0.33314: 0%| | 0/16 [00:05, ?it/s]
epoch 1 | valid.f_iou 0.2558799982070923, valid.f_f-score 0.33314: 6%|██ | 1/16 [00:05<01:15, 5.05s/it]
epoch 1 | valid.f_iou 0.42372000217437744, valid.f_f-score 0.57456: 6%|█▉ | 1/16 [00:05<01:15, 5.05s/it]
epoch 1 | valid.f_iou 0.42372000217437744, valid.f_f-score 0.57456: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 1 | valid.f_iou 0.32635000348091125, valid.f_f-score 0.47562: 12%|███▉ | 2/16 [00:06<00:32, 2.35s/it]
epoch 1 | valid.f_iou 0.32635000348091125, valid.f_f-score 0.47562: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 1 | valid.f_iou 0.3156599998474121, valid.f_f-score 0.44894: 19%|██████ | 3/16 [00:06<00:19, 1.51s/it]
epoch 1 | valid.f_iou 0.3156599998474121, valid.f_f-score 0.44894: 25%|████████ | 4/16 [00:06<00:13, 1.10s/it]
epoch 1 | valid.f_iou 0.30254998803138733, valid.f_f-score 0.42566: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 1 | valid.f_iou 0.30254998803138733, valid.f_f-score 0.42566: 31%|█████████▋ | 5/16 [00:06<00:09, 1.15it/s]
epoch 1 | valid.f_iou 0.28192999958992004, valid.f_f-score 0.4062: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 1 | valid.f_iou 0.28192999958992004, valid.f_f-score 0.4062: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 1 | valid.f_iou 0.30302000045776367, valid.f_f-score 0.43297: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 1 | valid.f_iou 0.30302000045776367, valid.f_f-score 0.43297: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 1 | valid.f_iou 0.2946000099182129, valid.f_f-score 0.41842: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 1 | valid.f_iou 0.2946000099182129, valid.f_f-score 0.41842: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 1 | valid.f_iou 0.3527500033378601, valid.f_f-score 0.46825: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 1 | valid.f_iou 0.3527500033378601, valid.f_f-score 0.46825: 56%|██████████████████ | 9/16 [00:08<00:03, 1.91it/s]
epoch 1 | valid.f_iou 0.35760998725891113, valid.f_f-score 0.47875: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 1 | valid.f_iou 0.35760998725891113, valid.f_f-score 0.47875: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 1 | valid.f_iou 0.3486799895763397, valid.f_f-score 0.46128: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.03it/s]
epoch 1 | valid.f_iou 0.3486799895763397, valid.f_f-score 0.46128: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.19it/s]
epoch 1 | valid.f_iou 0.3307099938392639, valid.f_f-score 0.45386: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.19it/s]
epoch 1 | valid.f_iou 0.3307099938392639, valid.f_f-score 0.45386: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.32it/s]
epoch 1 | valid.f_iou 0.34751999378204346, valid.f_f-score 0.4718: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.32it/s]
epoch 1 | valid.f_iou 0.34751999378204346, valid.f_f-score 0.4718: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.44it/s]
epoch 1 | valid.f_iou 0.36390000581741333, valid.f_f-score 0.48746: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 1 | valid.f_iou 0.36390000581741333, valid.f_f-score 0.48746: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 1 | valid.f_iou 0.3767800033092499, valid.f_f-score 0.49882: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.52it/s]
epoch 1 | valid.f_iou 0.3767800033092499, valid.f_f-score 0.49882: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.58it/s]
epoch 1 | valid.f_iou 0.39458999037742615, valid.f_f-score 0.51374: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 1 | valid.f_iou 0.39458999037742615, valid.f_f-score 0.51374: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 1 | valid.f_iou 0.39458999037742615, valid.f_f-score 0.51374: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 2 | loss 5.278092861175537, f_iou 0.060423173010349274: 0%| | 0/74 [00:06, ?it/s]
epoch 2 | loss 5.278092861175537, f_iou 0.060423173010349274: 1%|▌ | 1/74 [00:06<07:39, 6.30s/it]
epoch 2 | loss 7.008208274841309, f_iou 0.19345074892044067: 1%|▌ | 1/74 [00:07<07:39, 6.30s/it]
epoch 2 | loss 7.008208274841309, f_iou 0.19345074892044067: 3%|█ | 2/74 [00:07<03:44, 3.12s/it]
epoch 2 | loss 8.121026039123535, f_iou 0.1577235758304596: 3%|█ | 2/74 [00:07<03:44, 3.12s/it]
epoch 2 | loss 8.121026039123535, f_iou 0.1577235758304596: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 2 | loss 6.494959831237793, f_iou 0.13074257969856262: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 2 | loss 6.494959831237793, f_iou 0.13074257969856262: 5%|██ | 4/74 [00:08<01:51, 1.59s/it]
epoch 2 | loss 2.777322292327881, f_iou 0.14123773574829102: 5%|██ | 4/74 [00:09<01:51, 1.59s/it]
epoch 2 | loss 2.777322292327881, f_iou 0.14123773574829102: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 2 | loss 5.744709014892578, f_iou 0.12254153192043304: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 2 | loss 5.744709014892578, f_iou 0.12254153192043304: 8%|███ | 6/74 [00:10<01:17, 1.13s/it]
epoch 2 | loss 3.885455846786499, f_iou 0.12308655679225922: 8%|███ | 6/74 [00:11<01:17, 1.13s/it]
epoch 2 | loss 3.885455846786499, f_iou 0.12308655679225922: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 2 | loss 3.1864144802093506, f_iou 0.1141885370016098: 9%|███▌ | 7/74 [00:12<01:08, 1.02s/it]
epoch 2 | loss 3.1864144802093506, f_iou 0.1141885370016098: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 2 | loss 5.720620155334473, f_iou 0.10748710483312607: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 2 | loss 5.720620155334473, f_iou 0.10748710483312607: 12%|████▌ | 9/74 [00:12<00:58, 1.10it/s]
epoch 2 | loss 8.437517166137695, f_iou 0.14527159929275513: 12%|████▌ | 9/74 [00:13<00:58, 1.10it/s]
epoch 2 | loss 8.437517166137695, f_iou 0.14527159929275513: 14%|█████ | 10/74 [00:13<00:55, 1.15it/s]
epoch 2 | loss 4.729487895965576, f_iou 0.18401965498924255: 14%|█████ | 10/74 [00:14<00:55, 1.15it/s]
epoch 2 | loss 4.729487895965576, f_iou 0.18401965498924255: 15%|█████▌ | 11/74 [00:14<00:52, 1.19it/s]
epoch 2 | loss 5.761446952819824, f_iou 0.17588937282562256: 15%|█████▌ | 11/74 [00:15<00:52, 1.19it/s]
epoch 2 | loss 5.761446952819824, f_iou 0.17588937282562256: 16%|██████ | 12/74 [00:15<00:50, 1.22it/s]
epoch 2 | loss 5.9589104652404785, f_iou 0.17262063920497894: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 2 | loss 5.9589104652404785, f_iou 0.17262063920497894: 18%|██████▎ | 13/74 [00:15<00:48, 1.25it/s]
epoch 2 | loss 6.831060886383057, f_iou 0.19210349023342133: 18%|██████▌ | 13/74 [00:16<00:48, 1.25it/s]
epoch 2 | loss 6.831060886383057, f_iou 0.19210349023342133: 19%|███████ | 14/74 [00:16<00:47, 1.28it/s]
epoch 2 | loss 6.562778472900391, f_iou 0.19388848543167114: 19%|███████ | 14/74 [00:17<00:47, 1.28it/s]
epoch 2 | loss 6.562778472900391, f_iou 0.19388848543167114: 20%|███████▌ | 15/74 [00:17<00:45, 1.30it/s]
epoch 2 | loss 9.61662769317627, f_iou 0.21063372492790222: 20%|███████▋ | 15/74 [00:18<00:45, 1.30it/s]
epoch 2 | loss 9.61662769317627, f_iou 0.21063372492790222: 22%|████████▏ | 16/74 [00:18<00:44, 1.29it/s]
epoch 2 | loss 3.1433515548706055, f_iou 0.19841541349887848: 22%|███████▊ | 16/74 [00:19<00:44, 1.29it/s]
epoch 2 | loss 3.1433515548706055, f_iou 0.19841541349887848: 23%|████████▎ | 17/74 [00:19<00:44, 1.28it/s]
epoch 2 | loss 4.743980407714844, f_iou 0.18819013237953186: 23%|████████▌ | 17/74 [00:19<00:44, 1.28it/s]
epoch 2 | loss 4.743980407714844, f_iou 0.18819013237953186: 24%|█████████ | 18/74 [00:19<00:44, 1.27it/s]
epoch 2 | loss 4.926322937011719, f_iou 0.18071910738945007: 24%|█████████ | 18/74 [00:20<00:44, 1.27it/s]
epoch 2 | loss 4.926322937011719, f_iou 0.18071910738945007: 26%|█████████▌ | 19/74 [00:20<00:42, 1.28it/s]
epoch 2 | loss 4.967382431030273, f_iou 0.17172710597515106: 26%|█████████▌ | 19/74 [00:21<00:42, 1.28it/s]
epoch 2 | loss 4.967382431030273, f_iou 0.17172710597515106: 27%|██████████ | 20/74 [00:21<00:42, 1.28it/s]
epoch 2 | loss 2.230501174926758, f_iou 0.16365483403205872: 27%|██████████ | 20/74 [00:22<00:42, 1.28it/s]
epoch 2 | loss 2.230501174926758, f_iou 0.16365483403205872: 28%|██████████▌ | 21/74 [00:22<00:41, 1.26it/s]
epoch 2 | loss 3.0323166847229004, f_iou 0.15826672315597534: 28%|██████████▏ | 21/74 [00:22<00:41, 1.26it/s]
epoch 2 | loss 3.0323166847229004, f_iou 0.15826672315597534: 30%|██████████▋ | 22/74 [00:22<00:41, 1.25it/s]
epoch 2 | loss 5.356686115264893, f_iou 0.15320196747779846: 30%|███████████ | 22/74 [00:23<00:41, 1.25it/s]
epoch 2 | loss 5.356686115264893, f_iou 0.15320196747779846: 31%|███████████▌ | 23/74 [00:23<00:39, 1.29it/s]
epoch 2 | loss 8.61350154876709, f_iou 0.14933167397975922: 31%|███████████▊ | 23/74 [00:24<00:39, 1.29it/s]
epoch 2 | loss 8.61350154876709, f_iou 0.14933167397975922: 32%|████████████▎ | 24/74 [00:24<00:38, 1.31it/s]
epoch 2 | loss 12.6396484375, f_iou 0.18032315373420715: 32%|█████████████▎ | 24/74 [00:25<00:38, 1.31it/s]
epoch 2 | loss 12.6396484375, f_iou 0.18032315373420715: 34%|█████████████▊ | 25/74 [00:25<00:36, 1.33it/s]
epoch 2 | loss 5.236177444458008, f_iou 0.17662347853183746: 34%|████████████▌ | 25/74 [00:25<00:36, 1.33it/s]
epoch 2 | loss 5.236177444458008, f_iou 0.17662347853183746: 35%|█████████████ | 26/74 [00:25<00:35, 1.35it/s]
epoch 2 | loss 6.680449485778809, f_iou 0.18527819216251373: 35%|█████████████ | 26/74 [00:26<00:35, 1.35it/s]
epoch 2 | loss 6.680449485778809, f_iou 0.18527819216251373: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.36it/s]
epoch 2 | loss 4.934499740600586, f_iou 0.20268699526786804: 36%|█████████████▌ | 27/74 [00:27<00:34, 1.36it/s]
epoch 2 | loss 4.934499740600586, f_iou 0.20268699526786804: 38%|██████████████ | 28/74 [00:27<00:33, 1.37it/s]
epoch 2 | loss 7.243668079376221, f_iou 0.20962783694267273: 38%|██████████████ | 28/74 [00:28<00:33, 1.37it/s]
epoch 2 | loss 7.243668079376221, f_iou 0.20962783694267273: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.37it/s]
epoch 2 | loss 6.935710906982422, f_iou 0.21391722559928894: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.37it/s]
epoch 2 | loss 6.935710906982422, f_iou 0.21391722559928894: 41%|███████████████ | 30/74 [00:28<00:32, 1.37it/s]
epoch 2 | loss 6.047833442687988, f_iou 0.21092809736728668: 41%|███████████████ | 30/74 [00:29<00:32, 1.37it/s]
epoch 2 | loss 6.047833442687988, f_iou 0.21092809736728668: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.37it/s]
epoch 2 | loss 4.46637487411499, f_iou 0.2048286348581314: 42%|████████████████▎ | 31/74 [00:30<00:31, 1.37it/s]
epoch 2 | loss 4.46637487411499, f_iou 0.2048286348581314: 43%|████████████████▊ | 32/74 [00:30<00:30, 1.38it/s]
epoch 2 | loss 11.642578125, f_iou 0.22850410640239716: 43%|██████████████████▏ | 32/74 [00:30<00:30, 1.38it/s]
epoch 2 | loss 11.642578125, f_iou 0.22850410640239716: 45%|██████████████████▋ | 33/74 [00:30<00:29, 1.38it/s]
epoch 2 | loss 5.553698539733887, f_iou 0.23504886031150818: 45%|████████████████▌ | 33/74 [00:31<00:29, 1.38it/s]
epoch 2 | loss 5.553698539733887, f_iou 0.23504886031150818: 46%|█████████████████ | 34/74 [00:31<00:28, 1.38it/s]
epoch 2 | loss 5.737502574920654, f_iou 0.22876782715320587: 46%|█████████████████ | 34/74 [00:32<00:28, 1.38it/s]
epoch 2 | loss 5.737502574920654, f_iou 0.22876782715320587: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.38it/s]
epoch 2 | loss 7.135128021240234, f_iou 0.22987614572048187: 47%|█████████████████▌ | 35/74 [00:33<00:28, 1.38it/s]
epoch 2 | loss 7.135128021240234, f_iou 0.22987614572048187: 49%|██████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 2 | loss 5.071096420288086, f_iou 0.24458922445774078: 49%|██████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 2 | loss 5.071096420288086, f_iou 0.24458922445774078: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.38it/s]
epoch 2 | loss 5.421451568603516, f_iou 0.25678351521492004: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.38it/s]
epoch 2 | loss 5.421451568603516, f_iou 0.25678351521492004: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 2 | loss 6.50001335144043, f_iou 0.25457870960235596: 51%|███████████████████▌ | 38/74 [00:35<00:26, 1.38it/s]
epoch 2 | loss 6.50001335144043, f_iou 0.25457870960235596: 53%|████████████████████ | 39/74 [00:35<00:25, 1.38it/s]
epoch 2 | loss 2.8729851245880127, f_iou 0.25016462802886963: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.38it/s]
epoch 2 | loss 2.8729851245880127, f_iou 0.25016462802886963: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 2 | loss 5.871145725250244, f_iou 0.2501799464225769: 54%|████████████████████▌ | 40/74 [00:36<00:24, 1.38it/s]
epoch 2 | loss 5.871145725250244, f_iou 0.2501799464225769: 55%|█████████████████████ | 41/74 [00:36<00:23, 1.38it/s]
epoch 2 | loss 8.440790176391602, f_iou 0.25352442264556885: 55%|████████████████████▌ | 41/74 [00:37<00:23, 1.38it/s]
epoch 2 | loss 8.440790176391602, f_iou 0.25352442264556885: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.36it/s]
epoch 2 | loss 8.03337287902832, f_iou 0.25945156812667847: 57%|█████████████████████▌ | 42/74 [00:38<00:23, 1.36it/s]
epoch 2 | loss 8.03337287902832, f_iou 0.25945156812667847: 58%|██████████████████████ | 43/74 [00:38<00:22, 1.36it/s]
epoch 2 | loss 9.325545310974121, f_iou 0.26180776953697205: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.36it/s]
epoch 2 | loss 9.325545310974121, f_iou 0.26180776953697205: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.37it/s]
epoch 2 | loss 4.349879264831543, f_iou 0.2561643123626709: 59%|██████████████████████▌ | 44/74 [00:39<00:21, 1.37it/s]
epoch 2 | loss 4.349879264831543, f_iou 0.2561643123626709: 61%|███████████████████████ | 45/74 [00:39<00:21, 1.37it/s]
epoch 2 | loss 4.100053310394287, f_iou 0.2510291039943695: 61%|███████████████████████ | 45/74 [00:40<00:21, 1.37it/s]
epoch 2 | loss 4.100053310394287, f_iou 0.2510291039943695: 62%|███████████████████████▌ | 46/74 [00:40<00:20, 1.38it/s]
epoch 2 | loss 7.507977485656738, f_iou 0.24661390483379364: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.38it/s]
epoch 2 | loss 7.507977485656738, f_iou 0.24661390483379364: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.38it/s]
epoch 2 | loss 1.8247150182724, f_iou 0.24156638979911804: 64%|████████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 2 | loss 1.8247150182724, f_iou 0.24156638979911804: 65%|█████████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 2 | loss 4.220562934875488, f_iou 0.2407855987548828: 65%|████████████████████████▋ | 48/74 [00:42<00:18, 1.38it/s]
epoch 2 | loss 4.220562934875488, f_iou 0.2407855987548828: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 2 | loss 5.807618618011475, f_iou 0.23701180517673492: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.38it/s]
epoch 2 | loss 5.807618618011475, f_iou 0.23701180517673492: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.40it/s]
epoch 2 | loss 7.15098762512207, f_iou 0.23294851183891296: 68%|█████████████████████████▋ | 50/74 [00:44<00:17, 1.40it/s]
epoch 2 | loss 7.15098762512207, f_iou 0.23294851183891296: 69%|██████████████████████████▏ | 51/74 [00:44<00:16, 1.38it/s]
epoch 2 | loss 4.8371100425720215, f_iou 0.23388364911079407: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 2 | loss 4.8371100425720215, f_iou 0.23388364911079407: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 2 | loss 4.488016605377197, f_iou 0.2306203842163086: 70%|██████████████████████████▋ | 52/74 [00:45<00:15, 1.38it/s]
epoch 2 | loss 4.488016605377197, f_iou 0.2306203842163086: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.38it/s]
epoch 2 | loss 8.79442310333252, f_iou 0.22634992003440857: 72%|███████████████████████████▏ | 53/74 [00:46<00:15, 1.38it/s]
epoch 2 | loss 8.79442310333252, f_iou 0.22634992003440857: 73%|███████████████████████████▋ | 54/74 [00:46<00:14, 1.38it/s]
epoch 2 | loss 7.582165718078613, f_iou 0.22987957298755646: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 2 | loss 7.582165718078613, f_iou 0.22987957298755646: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 2 | loss 8.197586059570312, f_iou 0.23490849137306213: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.38it/s]
epoch 2 | loss 8.197586059570312, f_iou 0.23490849137306213: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.38it/s]
epoch 2 | loss 3.0034821033477783, f_iou 0.2308131456375122: 76%|████████████████████████████ | 56/74 [00:48<00:13, 1.38it/s]
epoch 2 | loss 3.0034821033477783, f_iou 0.2308131456375122: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.38it/s]
epoch 2 | loss 4.481772422790527, f_iou 0.23339641094207764: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.38it/s]
epoch 2 | loss 4.481772422790527, f_iou 0.23339641094207764: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.39it/s]
epoch 2 | loss 3.591764211654663, f_iou 0.22949501872062683: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.39it/s]
epoch 2 | loss 3.591764211654663, f_iou 0.22949501872062683: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 2 | loss 7.636371612548828, f_iou 0.22904767096042633: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.39it/s]
epoch 2 | loss 7.636371612548828, f_iou 0.22904767096042633: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 2 | loss 5.242168426513672, f_iou 0.22637581825256348: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.39it/s]
epoch 2 | loss 5.242168426513672, f_iou 0.22637581825256348: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.39it/s]
epoch 2 | loss 2.7636172771453857, f_iou 0.22521434724330902: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 2 | loss 2.7636172771453857, f_iou 0.22521434724330902: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 2 | loss 8.42651081085205, f_iou 0.2232368439435959: 84%|████████████████████████████████▋ | 62/74 [00:52<00:08, 1.39it/s]
epoch 2 | loss 8.42651081085205, f_iou 0.2232368439435959: 85%|█████████████████████████████████▏ | 63/74 [00:52<00:07, 1.39it/s]
epoch 2 | loss 5.718402862548828, f_iou 0.22775205969810486: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.39it/s]
epoch 2 | loss 5.718402862548828, f_iou 0.22775205969810486: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.39it/s]
epoch 2 | loss 5.038569450378418, f_iou 0.23316393792629242: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.39it/s]
epoch 2 | loss 5.038569450378418, f_iou 0.23316393792629242: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 2 | loss 2.6477811336517334, f_iou 0.23138460516929626: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 2 | loss 2.6477811336517334, f_iou 0.23138460516929626: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 2 | loss 6.178739070892334, f_iou 0.2314300835132599: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:05, 1.39it/s]
epoch 2 | loss 6.178739070892334, f_iou 0.2314300835132599: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.39it/s]
epoch 2 | loss 10.02246379852295, f_iou 0.22989590466022491: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 2 | loss 10.02246379852295, f_iou 0.22989590466022491: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 2 | loss 8.291363716125488, f_iou 0.226612389087677: 92%|███████████████████████████████████▊ | 68/74 [00:56<00:04, 1.38it/s]
epoch 2 | loss 8.291363716125488, f_iou 0.226612389087677: 93%|████████████████████████████████████▎ | 69/74 [00:56<00:03, 1.39it/s]
epoch 2 | loss 7.591958999633789, f_iou 0.2235632836818695: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.39it/s]
epoch 2 | loss 7.591958999633789, f_iou 0.2235632836818695: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:02, 1.40it/s]
epoch 2 | loss 6.357728958129883, f_iou 0.22075775265693665: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 2 | loss 6.357728958129883, f_iou 0.22075775265693665: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 2 | loss 7.642590045928955, f_iou 0.21899834275245667: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 2 | loss 7.642590045928955, f_iou 0.21899834275245667: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 2 | loss 9.055132865905762, f_iou 0.21745237708091736: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 2 | loss 9.055132865905762, f_iou 0.21745237708091736: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 2 | loss 4.9982171058654785, f_iou 0.21451939642429352: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 2 | loss 4.9982171058654785, f_iou 0.21451939642429352: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 2 | loss 4.9982171058654785, f_iou 0.21451939642429352: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 2 | valid.f_iou 0.3095000088214874, valid.f_f-score 0.52187: 0%| | 0/16 [00:05, ?it/s]
epoch 2 | valid.f_iou 0.3095000088214874, valid.f_f-score 0.52187: 6%|██ | 1/16 [00:05<01:24, 5.60s/it]
epoch 2 | valid.f_iou 0.21975000202655792, valid.f_f-score 0.60117: 6%|█▉ | 1/16 [00:06<01:24, 5.60s/it]
epoch 2 | valid.f_iou 0.21975000202655792, valid.f_f-score 0.60117: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 2 | valid.f_iou 0.22870999574661255, valid.f_f-score 0.61255: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 2 | valid.f_iou 0.22870999574661255, valid.f_f-score 0.61255: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 2 | valid.f_iou 0.28874000906944275, valid.f_f-score 0.62563: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 2 | valid.f_iou 0.28874000906944275, valid.f_f-score 0.62563: 25%|███████▊ | 4/16 [00:06<00:13, 1.16s/it]
epoch 2 | valid.f_iou 0.2812800109386444, valid.f_f-score 0.61293: 25%|████████ | 4/16 [00:07<00:13, 1.16s/it]
epoch 2 | valid.f_iou 0.2812800109386444, valid.f_f-score 0.61293: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 2 | valid.f_iou 0.2757599949836731, valid.f_f-score 0.58843: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 2 | valid.f_iou 0.2757599949836731, valid.f_f-score 0.58843: 38%|████████████ | 6/16 [00:07<00:07, 1.34it/s]
epoch 2 | valid.f_iou 0.2730900049209595, valid.f_f-score 0.58848: 38%|████████████ | 6/16 [00:08<00:07, 1.34it/s]
epoch 2 | valid.f_iou 0.2730900049209595, valid.f_f-score 0.58848: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 2 | valid.f_iou 0.2571200132369995, valid.f_f-score 0.57843: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 2 | valid.f_iou 0.2571200132369995, valid.f_f-score 0.57843: 50%|████████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 2 | valid.f_iou 0.26267001032829285, valid.f_f-score 0.57955: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 2 | valid.f_iou 0.26267001032829285, valid.f_f-score 0.57955: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 2 | valid.f_iou 0.26614001393318176, valid.f_f-score 0.59168: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 2 | valid.f_iou 0.26614001393318176, valid.f_f-score 0.59168: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 2 | valid.f_iou 0.2657099962234497, valid.f_f-score 0.57781: 62%|███████████████████▍ | 10/16 [00:10<00:02, 2.03it/s]
epoch 2 | valid.f_iou 0.2657099962234497, valid.f_f-score 0.57781: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.10it/s]
epoch 2 | valid.f_iou 0.28349998593330383, valid.f_f-score 0.60029: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.10it/s]
epoch 2 | valid.f_iou 0.28349998593330383, valid.f_f-score 0.60029: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.26it/s]
epoch 2 | valid.f_iou 0.2680700123310089, valid.f_f-score 0.60627: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.26it/s]
epoch 2 | valid.f_iou 0.2680700123310089, valid.f_f-score 0.60627: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.38it/s]
epoch 2 | valid.f_iou 0.2530600130558014, valid.f_f-score 0.59441: 81%|█████████████████████████▏ | 13/16 [00:11<00:01, 2.38it/s]
epoch 2 | valid.f_iou 0.2530600130558014, valid.f_f-score 0.59441: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.47it/s]
epoch 2 | valid.f_iou 0.24169999361038208, valid.f_f-score 0.59438: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.47it/s]
epoch 2 | valid.f_iou 0.24169999361038208, valid.f_f-score 0.59438: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 2 | valid.f_iou 0.24161000549793243, valid.f_f-score 0.58285: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 2 | valid.f_iou 0.24161000549793243, valid.f_f-score 0.58285: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 2 | valid.f_iou 0.24161000549793243, valid.f_f-score 0.58285: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 2 | valid.f_iou 0.12018000334501266, valid.f_f-score 0.28935: 0%| | 0/16 [00:04, ?it/s]
epoch 2 | valid.f_iou 0.12018000334501266, valid.f_f-score 0.28935: 6%|█▉ | 1/16 [00:04<01:10, 4.71s/it]
epoch 2 | valid.f_iou 0.303739994764328, valid.f_f-score 0.55094: 6%|██ | 1/16 [00:05<01:10, 4.71s/it]
epoch 2 | valid.f_iou 0.303739994764328, valid.f_f-score 0.55094: 12%|████▏ | 2/16 [00:05<00:33, 2.37s/it]
epoch 2 | valid.f_iou 0.24153000116348267, valid.f_f-score 0.46391: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 2 | valid.f_iou 0.24153000116348267, valid.f_f-score 0.46391: 19%|█████▊ | 3/16 [00:05<00:19, 1.49s/it]
epoch 2 | valid.f_iou 0.25314000248908997, valid.f_f-score 0.44011: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 2 | valid.f_iou 0.25314000248908997, valid.f_f-score 0.44011: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 2 | valid.f_iou 0.24849000573158264, valid.f_f-score 0.42152: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 2 | valid.f_iou 0.24849000573158264, valid.f_f-score 0.42152: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 2 | valid.f_iou 0.23294000327587128, valid.f_f-score 0.4078: 31%|██████████ | 5/16 [00:07<00:09, 1.19it/s]
epoch 2 | valid.f_iou 0.23294000327587128, valid.f_f-score 0.4078: 38%|████████████ | 6/16 [00:07<00:07, 1.42it/s]
epoch 2 | valid.f_iou 0.25971999764442444, valid.f_f-score 0.42903: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 2 | valid.f_iou 0.25971999764442444, valid.f_f-score 0.42903: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.62it/s]
epoch 2 | valid.f_iou 0.2566100060939789, valid.f_f-score 0.41582: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 2 | valid.f_iou 0.2566100060939789, valid.f_f-score 0.41582: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 2 | valid.f_iou 0.31972000002861023, valid.f_f-score 0.46874: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 2 | valid.f_iou 0.31972000002861023, valid.f_f-score 0.46874: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 2 | valid.f_iou 0.31852999329566956, valid.f_f-score 0.47547: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 2 | valid.f_iou 0.31852999329566956, valid.f_f-score 0.47547: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.12it/s]
epoch 2 | valid.f_iou 0.31352999806404114, valid.f_f-score 0.459: 62%|████████████████████ | 10/16 [00:09<00:02, 2.12it/s]
epoch 2 | valid.f_iou 0.31352999806404114, valid.f_f-score 0.459: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.28it/s]
epoch 2 | valid.f_iou 0.29436999559402466, valid.f_f-score 0.45119: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 2 | valid.f_iou 0.29436999559402466, valid.f_f-score 0.45119: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 2 | valid.f_iou 0.31139999628067017, valid.f_f-score 0.46857: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 2 | valid.f_iou 0.31139999628067017, valid.f_f-score 0.46857: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 2 | valid.f_iou 0.32795000076293945, valid.f_f-score 0.4856: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 2 | valid.f_iou 0.32795000076293945, valid.f_f-score 0.4856: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 2 | valid.f_iou 0.3445099890232086, valid.f_f-score 0.50146: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 2 | valid.f_iou 0.3445099890232086, valid.f_f-score 0.50146: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.60it/s]
epoch 2 | valid.f_iou 0.36122000217437744, valid.f_f-score 0.51667: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 2 | valid.f_iou 0.36122000217437744, valid.f_f-score 0.51667: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 2 | valid.f_iou 0.36122000217437744, valid.f_f-score 0.51667: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 2 | valid.f_iou 0.12018000334501266, valid.f_f-score 0.28935: 0%| | 0/16 [00:05, ?it/s]
epoch 2 | valid.f_iou 0.12018000334501266, valid.f_f-score 0.28935: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 2 | valid.f_iou 0.303739994764328, valid.f_f-score 0.55094: 6%|██ | 1/16 [00:05<01:19, 5.29s/it]
epoch 2 | valid.f_iou 0.303739994764328, valid.f_f-score 0.55094: 12%|████▏ | 2/16 [00:05<00:34, 2.44s/it]
epoch 2 | valid.f_iou 0.24153000116348267, valid.f_f-score 0.46391: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 2 | valid.f_iou 0.24153000116348267, valid.f_f-score 0.46391: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 2 | valid.f_iou 0.25314000248908997, valid.f_f-score 0.44011: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 2 | valid.f_iou 0.25314000248908997, valid.f_f-score 0.44011: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 2 | valid.f_iou 0.24849000573158264, valid.f_f-score 0.42152: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 2 | valid.f_iou 0.24849000573158264, valid.f_f-score 0.42152: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 2 | valid.f_iou 0.23294000327587128, valid.f_f-score 0.4078: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 2 | valid.f_iou 0.23294000327587128, valid.f_f-score 0.4078: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 2 | valid.f_iou 0.25971999764442444, valid.f_f-score 0.42903: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 2 | valid.f_iou 0.25971999764442444, valid.f_f-score 0.42903: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 2 | valid.f_iou 0.2566100060939789, valid.f_f-score 0.41582: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 2 | valid.f_iou 0.2566100060939789, valid.f_f-score 0.41582: 50%|████████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 2 | valid.f_iou 0.31972000002861023, valid.f_f-score 0.46874: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 2 | valid.f_iou 0.31972000002861023, valid.f_f-score 0.46874: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 2 | valid.f_iou 0.31852999329566956, valid.f_f-score 0.47547: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.05it/s]
epoch 2 | valid.f_iou 0.31852999329566956, valid.f_f-score 0.47547: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.22it/s]
epoch 2 | valid.f_iou 0.31352999806404114, valid.f_f-score 0.459: 62%|████████████████████ | 10/16 [00:09<00:02, 2.22it/s]
epoch 2 | valid.f_iou 0.31352999806404114, valid.f_f-score 0.459: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.34it/s]
epoch 2 | valid.f_iou 0.29436999559402466, valid.f_f-score 0.45119: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 2 | valid.f_iou 0.29436999559402466, valid.f_f-score 0.45119: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.44it/s]
epoch 2 | valid.f_iou 0.31139999628067017, valid.f_f-score 0.46857: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.44it/s]
epoch 2 | valid.f_iou 0.31139999628067017, valid.f_f-score 0.46857: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 2 | valid.f_iou 0.32795000076293945, valid.f_f-score 0.4856: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.52it/s]
epoch 2 | valid.f_iou 0.32795000076293945, valid.f_f-score 0.4856: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.58it/s]
epoch 2 | valid.f_iou 0.3445099890232086, valid.f_f-score 0.50146: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.58it/s]
epoch 2 | valid.f_iou 0.3445099890232086, valid.f_f-score 0.50146: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.62it/s]
epoch 2 | valid.f_iou 0.36122000217437744, valid.f_f-score 0.51667: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 2 | valid.f_iou 0.36122000217437744, valid.f_f-score 0.51667: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 2 | valid.f_iou 0.36122000217437744, valid.f_f-score 0.51667: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 3 | loss 5.31207275390625, f_iou 0.0010623529087752104: 0%| | 0/74 [00:06, ?it/s]
epoch 3 | loss 5.31207275390625, f_iou 0.0010623529087752104: 1%|▌ | 1/74 [00:06<07:37, 6.27s/it]
epoch 3 | loss 7.2498884201049805, f_iou 0.011242099106311798: 1%|▍ | 1/74 [00:07<07:37, 6.27s/it]
epoch 3 | loss 7.2498884201049805, f_iou 0.011242099106311798: 3%|▉ | 2/74 [00:07<03:42, 3.08s/it]
epoch 3 | loss 8.13575553894043, f_iou 0.07848533242940903: 3%|█ | 2/74 [00:07<03:42, 3.08s/it]
epoch 3 | loss 8.13575553894043, f_iou 0.07848533242940903: 4%|█▌ | 3/74 [00:07<02:25, 2.05s/it]
epoch 3 | loss 9.189780235290527, f_iou 0.1384585201740265: 4%|█▌ | 3/74 [00:08<02:25, 2.05s/it]
epoch 3 | loss 9.189780235290527, f_iou 0.1384585201740265: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 3 | loss 3.7629475593566895, f_iou 0.11172103136777878: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 3 | loss 3.7629475593566895, f_iou 0.11172103136777878: 7%|██▌ | 5/74 [00:09<01:29, 1.29s/it]
epoch 3 | loss 6.220649719238281, f_iou 0.09727655351161957: 7%|██▌ | 5/74 [00:10<01:29, 1.29s/it]
epoch 3 | loss 6.220649719238281, f_iou 0.09727655351161957: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 3 | loss 6.901574611663818, f_iou 0.08667107671499252: 8%|███ | 6/74 [00:11<01:16, 1.12s/it]
epoch 3 | loss 6.901574611663818, f_iou 0.08667107671499252: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 3 | loss 3.923586130142212, f_iou 0.1665961593389511: 9%|███▋ | 7/74 [00:11<01:07, 1.01s/it]
epoch 3 | loss 3.923586130142212, f_iou 0.1665961593389511: 11%|████▏ | 8/74 [00:11<01:02, 1.06it/s]
epoch 3 | loss 6.127166748046875, f_iou 0.15071366727352142: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 3 | loss 6.127166748046875, f_iou 0.15071366727352142: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 3 | loss 5.286562919616699, f_iou 0.13604839146137238: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 3 | loss 5.286562919616699, f_iou 0.13604839146137238: 14%|█████ | 10/74 [00:13<00:55, 1.16it/s]
epoch 3 | loss 6.032683372497559, f_iou 0.1624002903699875: 14%|█████▏ | 10/74 [00:14<00:55, 1.16it/s]
epoch 3 | loss 6.032683372497559, f_iou 0.1624002903699875: 15%|█████▋ | 11/74 [00:14<00:52, 1.19it/s]
epoch 3 | loss 7.544751167297363, f_iou 0.19521908462047577: 15%|█████▌ | 11/74 [00:15<00:52, 1.19it/s]
epoch 3 | loss 7.544751167297363, f_iou 0.19521908462047577: 16%|██████ | 12/74 [00:15<00:50, 1.24it/s]
epoch 3 | loss 5.517234802246094, f_iou 0.1946375072002411: 16%|██████▏ | 12/74 [00:15<00:50, 1.24it/s]
epoch 3 | loss 5.517234802246094, f_iou 0.1946375072002411: 18%|██████▋ | 13/74 [00:15<00:47, 1.27it/s]
epoch 3 | loss 8.068666458129883, f_iou 0.1869608461856842: 18%|██████▋ | 13/74 [00:16<00:47, 1.27it/s]
epoch 3 | loss 8.068666458129883, f_iou 0.1869608461856842: 19%|███████▏ | 14/74 [00:16<00:46, 1.30it/s]
epoch 3 | loss 8.872322082519531, f_iou 0.18153247237205505: 19%|███████ | 14/74 [00:17<00:46, 1.30it/s]
epoch 3 | loss 8.872322082519531, f_iou 0.18153247237205505: 20%|███████▌ | 15/74 [00:17<00:44, 1.32it/s]
epoch 3 | loss 6.482046127319336, f_iou 0.17117996513843536: 20%|███████▌ | 15/74 [00:17<00:44, 1.32it/s]
epoch 3 | loss 6.482046127319336, f_iou 0.17117996513843536: 22%|████████ | 16/74 [00:17<00:43, 1.34it/s]
epoch 3 | loss 7.581284046173096, f_iou 0.16781963407993317: 22%|████████ | 16/74 [00:18<00:43, 1.34it/s]
epoch 3 | loss 7.581284046173096, f_iou 0.16781963407993317: 23%|████████▌ | 17/74 [00:18<00:42, 1.35it/s]
epoch 3 | loss 2.8782968521118164, f_iou 0.16442163288593292: 23%|████████▎ | 17/74 [00:19<00:42, 1.35it/s]
epoch 3 | loss 2.8782968521118164, f_iou 0.16442163288593292: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 3 | loss 7.503411293029785, f_iou 0.16763415932655334: 24%|█████████ | 18/74 [00:20<00:41, 1.36it/s]
epoch 3 | loss 7.503411293029785, f_iou 0.16763415932655334: 26%|█████████▌ | 19/74 [00:20<00:40, 1.36it/s]
epoch 3 | loss 5.838125705718994, f_iou 0.15964089334011078: 26%|█████████▌ | 19/74 [00:20<00:40, 1.36it/s]
epoch 3 | loss 5.838125705718994, f_iou 0.15964089334011078: 27%|██████████ | 20/74 [00:20<00:39, 1.37it/s]
epoch 3 | loss 8.546785354614258, f_iou 0.17021359503269196: 27%|██████████ | 20/74 [00:21<00:39, 1.37it/s]
epoch 3 | loss 8.546785354614258, f_iou 0.17021359503269196: 28%|██████████▌ | 21/74 [00:21<00:38, 1.37it/s]
epoch 3 | loss 5.2740559577941895, f_iou 0.16589796543121338: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 3 | loss 5.2740559577941895, f_iou 0.16589796543121338: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 3 | loss 10.170964241027832, f_iou 0.16125988960266113: 30%|██████████▋ | 22/74 [00:23<00:37, 1.37it/s]
epoch 3 | loss 10.170964241027832, f_iou 0.16125988960266113: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 3 | loss 6.109443664550781, f_iou 0.1545579880475998: 31%|███████████▊ | 23/74 [00:23<00:37, 1.37it/s]
epoch 3 | loss 6.109443664550781, f_iou 0.1545579880475998: 32%|████████████▎ | 24/74 [00:23<00:36, 1.37it/s]
epoch 3 | loss 3.987776279449463, f_iou 0.15478405356407166: 32%|████████████ | 24/74 [00:24<00:36, 1.37it/s]
epoch 3 | loss 3.987776279449463, f_iou 0.15478405356407166: 34%|████████████▌ | 25/74 [00:24<00:35, 1.37it/s]
epoch 3 | loss 7.583721160888672, f_iou 0.14903898537158966: 34%|████████████▌ | 25/74 [00:25<00:35, 1.37it/s]
epoch 3 | loss 7.583721160888672, f_iou 0.14903898537158966: 35%|█████████████ | 26/74 [00:25<00:34, 1.37it/s]
epoch 3 | loss 5.505928993225098, f_iou 0.15347816050052643: 35%|█████████████ | 26/74 [00:25<00:34, 1.37it/s]
epoch 3 | loss 5.505928993225098, f_iou 0.15347816050052643: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.38it/s]
epoch 3 | loss 5.184093475341797, f_iou 0.16034357249736786: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.38it/s]
epoch 3 | loss 5.184093475341797, f_iou 0.16034357249736786: 38%|██████████████ | 28/74 [00:26<00:33, 1.36it/s]
epoch 3 | loss 6.334222793579102, f_iou 0.16151033341884613: 38%|██████████████ | 28/74 [00:27<00:33, 1.36it/s]
epoch 3 | loss 6.334222793579102, f_iou 0.16151033341884613: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.37it/s]
epoch 3 | loss 5.750883102416992, f_iou 0.16623692214488983: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.37it/s]
epoch 3 | loss 5.750883102416992, f_iou 0.16623692214488983: 41%|███████████████ | 30/74 [00:28<00:32, 1.37it/s]
epoch 3 | loss 7.020595550537109, f_iou 0.1686968058347702: 41%|███████████████▍ | 30/74 [00:28<00:32, 1.37it/s]
epoch 3 | loss 7.020595550537109, f_iou 0.1686968058347702: 42%|███████████████▉ | 31/74 [00:28<00:31, 1.37it/s]
epoch 3 | loss 3.5338449478149414, f_iou 0.17407208681106567: 42%|███████████████ | 31/74 [00:29<00:31, 1.37it/s]
epoch 3 | loss 3.5338449478149414, f_iou 0.17407208681106567: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 3 | loss 4.424396514892578, f_iou 0.1928822100162506: 43%|████████████████▍ | 32/74 [00:30<00:30, 1.37it/s]
epoch 3 | loss 4.424396514892578, f_iou 0.1928822100162506: 45%|████████████████▉ | 33/74 [00:30<00:29, 1.37it/s]
epoch 3 | loss 2.1833362579345703, f_iou 0.191880002617836: 45%|████████████████▉ | 33/74 [00:31<00:29, 1.37it/s]
epoch 3 | loss 2.1833362579345703, f_iou 0.191880002617836: 46%|█████████████████▍ | 34/74 [00:31<00:29, 1.38it/s]
epoch 3 | loss 4.655549049377441, f_iou 0.1889631301164627: 46%|█████████████████▍ | 34/74 [00:31<00:29, 1.38it/s]
epoch 3 | loss 4.655549049377441, f_iou 0.1889631301164627: 47%|█████████████████▉ | 35/74 [00:31<00:28, 1.38it/s]
epoch 3 | loss 3.155484914779663, f_iou 0.19083446264266968: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.38it/s]
epoch 3 | loss 3.155484914779663, f_iou 0.19083446264266968: 49%|██████████████████ | 36/74 [00:32<00:30, 1.23it/s]
epoch 3 | loss 5.321349143981934, f_iou 0.1862872987985611: 49%|██████████████████▍ | 36/74 [00:33<00:30, 1.23it/s]
epoch 3 | loss 5.321349143981934, f_iou 0.1862872987985611: 50%|███████████████████ | 37/74 [00:33<00:29, 1.27it/s]
epoch 3 | loss 5.18098258972168, f_iou 0.19528812170028687: 50%|███████████████████ | 37/74 [00:34<00:29, 1.27it/s]
epoch 3 | loss 5.18098258972168, f_iou 0.19528812170028687: 51%|███████████████████▌ | 38/74 [00:34<00:27, 1.30it/s]
epoch 3 | loss 4.800445556640625, f_iou 0.19899891316890717: 51%|███████████████████ | 38/74 [00:34<00:27, 1.30it/s]
epoch 3 | loss 4.800445556640625, f_iou 0.19899891316890717: 53%|███████████████████▍ | 39/74 [00:34<00:26, 1.32it/s]
epoch 3 | loss 3.5058767795562744, f_iou 0.19423946738243103: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.32it/s]
epoch 3 | loss 3.5058767795562744, f_iou 0.19423946738243103: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.34it/s]
epoch 3 | loss 5.05797815322876, f_iou 0.19939665496349335: 54%|████████████████████▌ | 40/74 [00:36<00:25, 1.34it/s]
epoch 3 | loss 5.05797815322876, f_iou 0.19939665496349335: 55%|█████████████████████ | 41/74 [00:36<00:24, 1.35it/s]
epoch 3 | loss 6.821638107299805, f_iou 0.1974632441997528: 55%|█████████████████████ | 41/74 [00:37<00:24, 1.35it/s]
epoch 3 | loss 6.821638107299805, f_iou 0.1974632441997528: 57%|█████████████████████▌ | 42/74 [00:37<00:23, 1.36it/s]
epoch 3 | loss 7.411278247833252, f_iou 0.19541127979755402: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.36it/s]
epoch 3 | loss 7.411278247833252, f_iou 0.19541127979755402: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.37it/s]
epoch 3 | loss 6.457319736480713, f_iou 0.20407603681087494: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.37it/s]
epoch 3 | loss 6.457319736480713, f_iou 0.20407603681087494: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.38it/s]
epoch 3 | loss 5.509734153747559, f_iou 0.20258374512195587: 59%|██████████████████████ | 44/74 [00:39<00:21, 1.38it/s]
epoch 3 | loss 5.509734153747559, f_iou 0.20258374512195587: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.38it/s]
epoch 3 | loss 2.584179401397705, f_iou 0.19845882058143616: 61%|██████████████████████▌ | 45/74 [00:40<00:20, 1.38it/s]
epoch 3 | loss 2.584179401397705, f_iou 0.19845882058143616: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 3 | loss 4.575976371765137, f_iou 0.20682957768440247: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 3 | loss 4.575976371765137, f_iou 0.20682957768440247: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.38it/s]
epoch 3 | loss 3.4120101928710938, f_iou 0.20313845574855804: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 3 | loss 3.4120101928710938, f_iou 0.20313845574855804: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 3 | loss 5.090332508087158, f_iou 0.21578097343444824: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.38it/s]
epoch 3 | loss 5.090332508087158, f_iou 0.21578097343444824: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 3 | loss 6.024471759796143, f_iou 0.22324487566947937: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 3 | loss 6.024471759796143, f_iou 0.22324487566947937: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.36it/s]
epoch 3 | loss 7.765827178955078, f_iou 0.21967370808124542: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.36it/s]
epoch 3 | loss 7.765827178955078, f_iou 0.21967370808124542: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.37it/s]
epoch 3 | loss 4.460940837860107, f_iou 0.2259485125541687: 69%|██████████████████████████▏ | 51/74 [00:44<00:16, 1.37it/s]
epoch 3 | loss 4.460940837860107, f_iou 0.2259485125541687: 70%|██████████████████████████▋ | 52/74 [00:44<00:16, 1.37it/s]
epoch 3 | loss 6.357731819152832, f_iou 0.22195008397102356: 70%|██████████████████████████ | 52/74 [00:45<00:16, 1.37it/s]
epoch 3 | loss 6.357731819152832, f_iou 0.22195008397102356: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.37it/s]
epoch 3 | loss 5.732692718505859, f_iou 0.2293507307767868: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.37it/s]
epoch 3 | loss 5.732692718505859, f_iou 0.2293507307767868: 73%|███████████████████████████▋ | 54/74 [00:45<00:14, 1.37it/s]
epoch 3 | loss 3.912015438079834, f_iou 0.23001492023468018: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.37it/s]
epoch 3 | loss 3.912015438079834, f_iou 0.23001492023468018: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 3 | loss 5.098772048950195, f_iou 0.23095420002937317: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.38it/s]
epoch 3 | loss 5.098772048950195, f_iou 0.23095420002937317: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.37it/s]
epoch 3 | loss 3.9541115760803223, f_iou 0.23121297359466553: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.37it/s]
epoch 3 | loss 3.9541115760803223, f_iou 0.23121297359466553: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.37it/s]
epoch 3 | loss 2.6269760131835938, f_iou 0.22742848098278046: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.37it/s]
epoch 3 | loss 2.6269760131835938, f_iou 0.22742848098278046: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.37it/s]
epoch 3 | loss 2.8888370990753174, f_iou 0.2270699143409729: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.37it/s]
epoch 3 | loss 2.8888370990753174, f_iou 0.2270699143409729: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.35it/s]
epoch 3 | loss 4.586166858673096, f_iou 0.23083126544952393: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.35it/s]
epoch 3 | loss 4.586166858673096, f_iou 0.23083126544952393: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.32it/s]
epoch 3 | loss 8.004701614379883, f_iou 0.2332753986120224: 81%|██████████████████████████████▊ | 60/74 [00:51<00:10, 1.32it/s]
epoch 3 | loss 8.004701614379883, f_iou 0.2332753986120224: 82%|███████████████████████████████▎ | 61/74 [00:51<00:09, 1.30it/s]
epoch 3 | loss 6.436985015869141, f_iou 0.23153828084468842: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.30it/s]
epoch 3 | loss 6.436985015869141, f_iou 0.23153828084468842: 84%|███████████████████████████████ | 62/74 [00:51<00:09, 1.29it/s]
epoch 3 | loss 7.668430805206299, f_iou 0.22848989069461823: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.29it/s]
epoch 3 | loss 7.668430805206299, f_iou 0.22848989069461823: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.28it/s]
epoch 3 | loss 6.254695892333984, f_iou 0.22571618854999542: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.28it/s]
epoch 3 | loss 6.254695892333984, f_iou 0.22571618854999542: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.27it/s]
epoch 3 | loss 4.611930847167969, f_iou 0.2295023500919342: 86%|████████████████████████████████▊ | 64/74 [00:54<00:07, 1.27it/s]
epoch 3 | loss 4.611930847167969, f_iou 0.2295023500919342: 88%|█████████████████████████████████▍ | 65/74 [00:54<00:06, 1.30it/s]
epoch 3 | loss 2.2109503746032715, f_iou 0.2279956191778183: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.30it/s]
epoch 3 | loss 2.2109503746032715, f_iou 0.2279956191778183: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.32it/s]
epoch 3 | loss 5.243038177490234, f_iou 0.23420202732086182: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.32it/s]
epoch 3 | loss 5.243038177490234, f_iou 0.23420202732086182: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.34it/s]
epoch 3 | loss 8.361013412475586, f_iou 0.23598679900169373: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.34it/s]
epoch 3 | loss 8.361013412475586, f_iou 0.23598679900169373: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 3 | loss 11.763805389404297, f_iou 0.23851823806762695: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.36it/s]
epoch 3 | loss 11.763805389404297, f_iou 0.23851823806762695: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.36it/s]
epoch 3 | loss 5.7729034423828125, f_iou 0.2366219460964203: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.36it/s]
epoch 3 | loss 5.7729034423828125, f_iou 0.2366219460964203: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.37it/s]
epoch 3 | loss 5.6262407302856445, f_iou 0.2439696043729782: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.37it/s]
epoch 3 | loss 5.6262407302856445, f_iou 0.2439696043729782: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 3 | loss 2.9404783248901367, f_iou 0.24197125434875488: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 3 | loss 2.9404783248901367, f_iou 0.24197125434875488: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 3 | loss 1.2589994668960571, f_iou 0.23983576893806458: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 3 | loss 1.2589994668960571, f_iou 0.23983576893806458: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 3 | loss 5.791417598724365, f_iou 0.23900733888149261: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 3 | loss 5.791417598724365, f_iou 0.23900733888149261: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 3 | loss 5.791417598724365, f_iou 0.23900733888149261: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 3 | valid.f_iou 0.4745100140571594, valid.f_f-score 0.57706: 0%| | 0/16 [00:05, ?it/s]
epoch 3 | valid.f_iou 0.4745100140571594, valid.f_f-score 0.57706: 6%|██ | 1/16 [00:05<01:18, 5.22s/it]
epoch 3 | valid.f_iou 0.43421998620033264, valid.f_f-score 0.64135: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 3 | valid.f_iou 0.43421998620033264, valid.f_f-score 0.64135: 12%|███▉ | 2/16 [00:05<00:33, 2.41s/it]
epoch 3 | valid.f_iou 0.40849998593330383, valid.f_f-score 0.63706: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 3 | valid.f_iou 0.40849998593330383, valid.f_f-score 0.63706: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 3 | valid.f_iou 0.4722200036048889, valid.f_f-score 0.6631: 19%|██████▏ | 3/16 [00:06<00:19, 1.52s/it]
epoch 3 | valid.f_iou 0.4722200036048889, valid.f_f-score 0.6631: 25%|████████▎ | 4/16 [00:06<00:13, 1.10s/it]
epoch 3 | valid.f_iou 0.44020000100135803, valid.f_f-score 0.64214: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 3 | valid.f_iou 0.44020000100135803, valid.f_f-score 0.64214: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 3 | valid.f_iou 0.4220300018787384, valid.f_f-score 0.61842: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 3 | valid.f_iou 0.4220300018787384, valid.f_f-score 0.61842: 38%|████████████ | 6/16 [00:07<00:07, 1.40it/s]
epoch 3 | valid.f_iou 0.4241200089454651, valid.f_f-score 0.62856: 38%|████████████ | 6/16 [00:07<00:07, 1.40it/s]
epoch 3 | valid.f_iou 0.4241200089454651, valid.f_f-score 0.62856: 44%|██████████████ | 7/16 [00:07<00:05, 1.68it/s]
epoch 3 | valid.f_iou 0.39827001094818115, valid.f_f-score 0.61207: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.68it/s]
epoch 3 | valid.f_iou 0.39827001094818115, valid.f_f-score 0.61207: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.91it/s]
epoch 3 | valid.f_iou 0.39667001366615295, valid.f_f-score 0.61872: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.91it/s]
epoch 3 | valid.f_iou 0.39667001366615295, valid.f_f-score 0.61872: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 3 | valid.f_iou 0.40852001309394836, valid.f_f-score 0.63599: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 3 | valid.f_iou 0.40852001309394836, valid.f_f-score 0.63599: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 3 | valid.f_iou 0.3940100073814392, valid.f_f-score 0.61608: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.30it/s]
epoch 3 | valid.f_iou 0.3940100073814392, valid.f_f-score 0.61608: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.41it/s]
epoch 3 | valid.f_iou 0.41499999165534973, valid.f_f-score 0.63547: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.41it/s]
epoch 3 | valid.f_iou 0.41499999165534973, valid.f_f-score 0.63547: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 3 | valid.f_iou 0.40672001242637634, valid.f_f-score 0.64806: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 3 | valid.f_iou 0.40672001242637634, valid.f_f-score 0.64806: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 3 | valid.f_iou 0.39722999930381775, valid.f_f-score 0.64042: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 3 | valid.f_iou 0.39722999930381775, valid.f_f-score 0.64042: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 3 | valid.f_iou 0.3905400037765503, valid.f_f-score 0.638: 88%|████████████████████████████▉ | 14/16 [00:10<00:00, 2.60it/s]
epoch 3 | valid.f_iou 0.3905400037765503, valid.f_f-score 0.638: 94%|██████████████████████████████▉ | 15/16 [00:10<00:00, 2.64it/s]
epoch 3 | valid.f_iou 0.3957599997520447, valid.f_f-score 0.63548: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.64it/s]
epoch 3 | valid.f_iou 0.3957599997520447, valid.f_f-score 0.63548: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 3 | valid.f_iou 0.3957599997520447, valid.f_f-score 0.63548: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 3 | valid.f_iou 0.29728999733924866, valid.f_f-score 0.3582: 0%| | 0/16 [00:05, ?it/s]
epoch 3 | valid.f_iou 0.29728999733924866, valid.f_f-score 0.3582: 6%|██ | 1/16 [00:05<01:15, 5.05s/it]
epoch 3 | valid.f_iou 0.45153000950813293, valid.f_f-score 0.59082: 6%|█▉ | 1/16 [00:05<01:15, 5.05s/it]
epoch 3 | valid.f_iou 0.45153000950813293, valid.f_f-score 0.59082: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 3 | valid.f_iou 0.3428199887275696, valid.f_f-score 0.49026: 12%|████ | 2/16 [00:05<00:32, 2.34s/it]
epoch 3 | valid.f_iou 0.3428199887275696, valid.f_f-score 0.49026: 19%|██████ | 3/16 [00:05<00:19, 1.47s/it]
epoch 3 | valid.f_iou 0.3315599858760834, valid.f_f-score 0.46725: 19%|██████ | 3/16 [00:06<00:19, 1.47s/it]
epoch 3 | valid.f_iou 0.3315599858760834, valid.f_f-score 0.46725: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 3 | valid.f_iou 0.3159700036048889, valid.f_f-score 0.44163: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 3 | valid.f_iou 0.3159700036048889, valid.f_f-score 0.44163: 31%|██████████ | 5/16 [00:06<00:09, 1.21it/s]
epoch 3 | valid.f_iou 0.29186999797821045, valid.f_f-score 0.42114: 31%|█████████▋ | 5/16 [00:07<00:09, 1.21it/s]
epoch 3 | valid.f_iou 0.29186999797821045, valid.f_f-score 0.42114: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 3 | valid.f_iou 0.31536999344825745, valid.f_f-score 0.44793: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 3 | valid.f_iou 0.31536999344825745, valid.f_f-score 0.44793: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 3 | valid.f_iou 0.30504000186920166, valid.f_f-score 0.43382: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 3 | valid.f_iou 0.30504000186920166, valid.f_f-score 0.43382: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 3 | valid.f_iou 0.36340001225471497, valid.f_f-score 0.48325: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 3 | valid.f_iou 0.36340001225471497, valid.f_f-score 0.48325: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.09it/s]
epoch 3 | valid.f_iou 0.3637000024318695, valid.f_f-score 0.49416: 56%|██████████████████ | 9/16 [00:08<00:03, 2.09it/s]
epoch 3 | valid.f_iou 0.3637000024318695, valid.f_f-score 0.49416: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.14it/s]
epoch 3 | valid.f_iou 0.35701000690460205, valid.f_f-score 0.47813: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 3 | valid.f_iou 0.35701000690460205, valid.f_f-score 0.47813: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 3 | valid.f_iou 0.3365100026130676, valid.f_f-score 0.46983: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.18it/s]
epoch 3 | valid.f_iou 0.3365100026130676, valid.f_f-score 0.46983: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.27it/s]
epoch 3 | valid.f_iou 0.35249999165534973, valid.f_f-score 0.48706: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.27it/s]
epoch 3 | valid.f_iou 0.35249999165534973, valid.f_f-score 0.48706: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 3 | valid.f_iou 0.36812999844551086, valid.f_f-score 0.5012: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.38it/s]
epoch 3 | valid.f_iou 0.36812999844551086, valid.f_f-score 0.5012: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.45it/s]
epoch 3 | valid.f_iou 0.3814300000667572, valid.f_f-score 0.51666: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.45it/s]
epoch 3 | valid.f_iou 0.3814300000667572, valid.f_f-score 0.51666: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.50it/s]
epoch 3 | valid.f_iou 0.4001399874687195, valid.f_f-score 0.53266: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.50it/s]
epoch 3 | valid.f_iou 0.4001399874687195, valid.f_f-score 0.53266: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.56it/s]
epoch 3 | valid.f_iou 0.4001399874687195, valid.f_f-score 0.53266: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 3 | valid.f_iou 0.29728999733924866, valid.f_f-score 0.3582: 0%| | 0/16 [00:03, ?it/s]
epoch 3 | valid.f_iou 0.29728999733924866, valid.f_f-score 0.3582: 6%|██ | 1/16 [00:04<01:00, 4.00s/it]
epoch 3 | valid.f_iou 0.45153000950813293, valid.f_f-score 0.59082: 6%|█▉ | 1/16 [00:05<01:00, 4.00s/it]
epoch 3 | valid.f_iou 0.45153000950813293, valid.f_f-score 0.59082: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 3 | valid.f_iou 0.3428199887275696, valid.f_f-score 0.49026: 12%|████ | 2/16 [00:05<00:34, 2.49s/it]
epoch 3 | valid.f_iou 0.3428199887275696, valid.f_f-score 0.49026: 19%|██████ | 3/16 [00:05<00:20, 1.56s/it]
epoch 3 | valid.f_iou 0.3315599858760834, valid.f_f-score 0.46725: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 3 | valid.f_iou 0.3315599858760834, valid.f_f-score 0.46725: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 3 | valid.f_iou 0.32104000449180603, valid.f_f-score 0.44163: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 3 | valid.f_iou 0.32104000449180603, valid.f_f-score 0.44163: 31%|█████████▋ | 5/16 [00:06<00:09, 1.15it/s]
epoch 3 | valid.f_iou 0.2960900068283081, valid.f_f-score 0.42114: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 3 | valid.f_iou 0.2960900068283081, valid.f_f-score 0.42114: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 3 | valid.f_iou 0.31898999214172363, valid.f_f-score 0.44793: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 3 | valid.f_iou 0.31898999214172363, valid.f_f-score 0.44793: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 3 | valid.f_iou 0.30820998549461365, valid.f_f-score 0.43382: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 3 | valid.f_iou 0.30820998549461365, valid.f_f-score 0.43382: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 3 | valid.f_iou 0.36621999740600586, valid.f_f-score 0.48325: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.89it/s]
epoch 3 | valid.f_iou 0.36621999740600586, valid.f_f-score 0.48325: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.11it/s]
epoch 3 | valid.f_iou 0.366239994764328, valid.f_f-score 0.49416: 56%|██████████████████▌ | 9/16 [00:08<00:03, 2.11it/s]
epoch 3 | valid.f_iou 0.366239994764328, valid.f_f-score 0.49416: 62%|████████████████████ | 10/16 [00:08<00:02, 2.26it/s]
epoch 3 | valid.f_iou 0.35931000113487244, valid.f_f-score 0.47813: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.26it/s]
epoch 3 | valid.f_iou 0.35931000113487244, valid.f_f-score 0.47813: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 3 | valid.f_iou 0.33862000703811646, valid.f_f-score 0.46983: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 3 | valid.f_iou 0.33862000703811646, valid.f_f-score 0.46983: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 3 | valid.f_iou 0.354449987411499, valid.f_f-score 0.48706: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.47it/s]
epoch 3 | valid.f_iou 0.354449987411499, valid.f_f-score 0.48706: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.54it/s]
epoch 3 | valid.f_iou 0.36994001269340515, valid.f_f-score 0.5012: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.54it/s]
epoch 3 | valid.f_iou 0.36994001269340515, valid.f_f-score 0.5012: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.59it/s]
epoch 3 | valid.f_iou 0.38312000036239624, valid.f_f-score 0.51666: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 3 | valid.f_iou 0.38312000036239624, valid.f_f-score 0.51666: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 3 | valid.f_iou 0.40171998739242554, valid.f_f-score 0.53266: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 3 | valid.f_iou 0.40171998739242554, valid.f_f-score 0.53266: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 3 | valid.f_iou 0.40171998739242554, valid.f_f-score 0.53266: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 4 | loss 6.979647636413574, f_iou 0.055964529514312744: 0%| | 0/74 [00:05, ?it/s]
epoch 4 | loss 6.979647636413574, f_iou 0.055964529514312744: 1%|▌ | 1/74 [00:05<07:03, 5.80s/it]
epoch 4 | loss 3.1645712852478027, f_iou 0.43010085821151733: 1%|▌ | 1/74 [00:06<07:03, 5.80s/it]
epoch 4 | loss 3.1645712852478027, f_iou 0.43010085821151733: 3%|█ | 2/74 [00:06<03:27, 2.89s/it]
epoch 4 | loss 2.2282633781433105, f_iou 0.2867737412452698: 3%|█ | 2/74 [00:07<03:27, 2.89s/it]
epoch 4 | loss 2.2282633781433105, f_iou 0.2867737412452698: 4%|█▌ | 3/74 [00:07<02:19, 1.97s/it]
epoch 4 | loss 7.424871921539307, f_iou 0.3077782690525055: 4%|█▌ | 3/74 [00:08<02:19, 1.97s/it]
epoch 4 | loss 7.424871921539307, f_iou 0.3077782690525055: 5%|██ | 4/74 [00:08<01:45, 1.50s/it]
epoch 4 | loss 5.0495758056640625, f_iou 0.3367960453033447: 5%|██ | 4/74 [00:09<01:45, 1.50s/it]
epoch 4 | loss 5.0495758056640625, f_iou 0.3367960453033447: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 4 | loss 4.278820991516113, f_iou 0.31659239530563354: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 4 | loss 4.278820991516113, f_iou 0.31659239530563354: 8%|███ | 6/74 [00:09<01:14, 1.10s/it]
epoch 4 | loss 3.6537904739379883, f_iou 0.3291679918766022: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 4 | loss 3.6537904739379883, f_iou 0.3291679918766022: 9%|███▌ | 7/74 [00:10<01:07, 1.00s/it]
epoch 4 | loss 10.986315727233887, f_iou 0.29631713032722473: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 4 | loss 10.986315727233887, f_iou 0.29631713032722473: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 4 | loss 6.444400787353516, f_iou 0.26339301466941833: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 4 | loss 6.444400787353516, f_iou 0.26339301466941833: 12%|████▌ | 9/74 [00:12<00:58, 1.12it/s]
epoch 4 | loss 2.236698627471924, f_iou 0.2610006034374237: 12%|████▋ | 9/74 [00:13<00:58, 1.12it/s]
epoch 4 | loss 2.236698627471924, f_iou 0.2610006034374237: 14%|█████▏ | 10/74 [00:13<00:55, 1.16it/s]
epoch 4 | loss 5.20329475402832, f_iou 0.28079167008399963: 14%|█████▏ | 10/74 [00:13<00:55, 1.16it/s]
epoch 4 | loss 5.20329475402832, f_iou 0.28079167008399963: 15%|█████▋ | 11/74 [00:13<00:51, 1.22it/s]
epoch 4 | loss 5.207175254821777, f_iou 0.28458520770072937: 15%|█████▌ | 11/74 [00:14<00:51, 1.22it/s]
epoch 4 | loss 5.207175254821777, f_iou 0.28458520770072937: 16%|██████ | 12/74 [00:14<00:48, 1.27it/s]
epoch 4 | loss 3.042060375213623, f_iou 0.28440409898757935: 16%|██████ | 12/74 [00:15<00:48, 1.27it/s]
epoch 4 | loss 3.042060375213623, f_iou 0.28440409898757935: 18%|██████▌ | 13/74 [00:15<00:46, 1.30it/s]
epoch 4 | loss 6.837095260620117, f_iou 0.3262324929237366: 18%|██████▋ | 13/74 [00:15<00:46, 1.30it/s]
epoch 4 | loss 6.837095260620117, f_iou 0.3262324929237366: 19%|███████▏ | 14/74 [00:15<00:45, 1.33it/s]
epoch 4 | loss 6.114304542541504, f_iou 0.305832177400589: 19%|███████▍ | 14/74 [00:16<00:45, 1.33it/s]
epoch 4 | loss 6.114304542541504, f_iou 0.305832177400589: 20%|███████▉ | 15/74 [00:16<00:43, 1.35it/s]
epoch 4 | loss 8.032761573791504, f_iou 0.3159269094467163: 20%|███████▋ | 15/74 [00:17<00:43, 1.35it/s]
epoch 4 | loss 8.032761573791504, f_iou 0.3159269094467163: 22%|████████▏ | 16/74 [00:17<00:42, 1.36it/s]
epoch 4 | loss 5.402976989746094, f_iou 0.30700603127479553: 22%|████████ | 16/74 [00:18<00:42, 1.36it/s]
epoch 4 | loss 5.402976989746094, f_iou 0.30700603127479553: 23%|████████▌ | 17/74 [00:18<00:46, 1.23it/s]
epoch 4 | loss 5.057567119598389, f_iou 0.305677592754364: 23%|████████▉ | 17/74 [00:19<00:46, 1.23it/s]
epoch 4 | loss 5.057567119598389, f_iou 0.305677592754364: 24%|█████████▍ | 18/74 [00:19<00:43, 1.27it/s]
epoch 4 | loss 3.4165637493133545, f_iou 0.2908836901187897: 24%|█████████ | 18/74 [00:19<00:43, 1.27it/s]
epoch 4 | loss 3.4165637493133545, f_iou 0.2908836901187897: 26%|█████████▌ | 19/74 [00:19<00:42, 1.30it/s]
epoch 4 | loss 3.411576271057129, f_iou 0.2767919898033142: 26%|█████████▊ | 19/74 [00:20<00:42, 1.30it/s]
epoch 4 | loss 3.411576271057129, f_iou 0.2767919898033142: 27%|██████████▎ | 20/74 [00:20<00:40, 1.32it/s]
epoch 4 | loss 4.577932834625244, f_iou 0.28185421228408813: 27%|██████████ | 20/74 [00:21<00:40, 1.32it/s]
epoch 4 | loss 4.577932834625244, f_iou 0.28185421228408813: 28%|██████████▌ | 21/74 [00:21<00:39, 1.33it/s]
epoch 4 | loss 4.343531608581543, f_iou 0.28104203939437866: 28%|██████████▌ | 21/74 [00:22<00:39, 1.33it/s]
epoch 4 | loss 4.343531608581543, f_iou 0.28104203939437866: 30%|███████████ | 22/74 [00:22<00:38, 1.35it/s]
epoch 4 | loss 6.324451446533203, f_iou 0.2792181968688965: 30%|███████████▎ | 22/74 [00:22<00:38, 1.35it/s]
epoch 4 | loss 6.324451446533203, f_iou 0.2792181968688965: 31%|███████████▊ | 23/74 [00:22<00:37, 1.36it/s]
epoch 4 | loss 5.674729347229004, f_iou 0.294808030128479: 31%|████████████ | 23/74 [00:23<00:37, 1.36it/s]
epoch 4 | loss 5.674729347229004, f_iou 0.294808030128479: 32%|████████████▋ | 24/74 [00:23<00:36, 1.36it/s]
epoch 4 | loss 9.90541934967041, f_iou 0.28682348132133484: 32%|████████████▎ | 24/74 [00:24<00:36, 1.36it/s]
epoch 4 | loss 9.90541934967041, f_iou 0.28682348132133484: 34%|████████████▊ | 25/74 [00:24<00:36, 1.35it/s]
epoch 4 | loss 6.7832746505737305, f_iou 0.3087094724178314: 34%|████████████▌ | 25/74 [00:24<00:36, 1.35it/s]
epoch 4 | loss 6.7832746505737305, f_iou 0.3087094724178314: 35%|█████████████ | 26/74 [00:24<00:35, 1.36it/s]
epoch 4 | loss 4.8383636474609375, f_iou 0.32357269525527954: 35%|████████████▋ | 26/74 [00:25<00:35, 1.36it/s]
epoch 4 | loss 4.8383636474609375, f_iou 0.32357269525527954: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.37it/s]
epoch 4 | loss 2.173248529434204, f_iou 0.31259599328041077: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.37it/s]
epoch 4 | loss 2.173248529434204, f_iou 0.31259599328041077: 38%|██████████████ | 28/74 [00:26<00:33, 1.37it/s]
epoch 4 | loss 12.263671875, f_iou 0.3344988226890564: 38%|████████████████▎ | 28/74 [00:27<00:33, 1.37it/s]
epoch 4 | loss 12.263671875, f_iou 0.3344988226890564: 39%|████████████████▊ | 29/74 [00:27<00:32, 1.37it/s]
epoch 4 | loss 6.520472526550293, f_iou 0.33007344603538513: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.37it/s]
epoch 4 | loss 6.520472526550293, f_iou 0.33007344603538513: 41%|███████████████ | 30/74 [00:27<00:32, 1.37it/s]
epoch 4 | loss 1.9532945156097412, f_iou 0.32105931639671326: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.37it/s]
epoch 4 | loss 1.9532945156097412, f_iou 0.32105931639671326: 42%|███████████████ | 31/74 [00:28<00:31, 1.37it/s]
epoch 4 | loss 3.9657976627349854, f_iou 0.3373996317386627: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.37it/s]
epoch 4 | loss 3.9657976627349854, f_iou 0.3373996317386627: 43%|████████████████ | 32/74 [00:29<00:30, 1.37it/s]
epoch 4 | loss 5.339512825012207, f_iou 0.3451076149940491: 43%|████████████████▍ | 32/74 [00:30<00:30, 1.37it/s]
epoch 4 | loss 5.339512825012207, f_iou 0.3451076149940491: 45%|████████████████▉ | 33/74 [00:30<00:30, 1.33it/s]
epoch 4 | loss 9.028326988220215, f_iou 0.34051036834716797: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.33it/s]
epoch 4 | loss 9.028326988220215, f_iou 0.34051036834716797: 46%|█████████████████ | 34/74 [00:30<00:30, 1.31it/s]
epoch 4 | loss 8.01524543762207, f_iou 0.33144935965538025: 46%|█████████████████▍ | 34/74 [00:31<00:30, 1.31it/s]
epoch 4 | loss 8.01524543762207, f_iou 0.33144935965538025: 47%|█████████████████▉ | 35/74 [00:31<00:29, 1.33it/s]
epoch 4 | loss 12.52109146118164, f_iou 0.3404955267906189: 47%|█████████████████▉ | 35/74 [00:32<00:29, 1.33it/s]
epoch 4 | loss 12.52109146118164, f_iou 0.3404955267906189: 49%|██████████████████▍ | 36/74 [00:32<00:28, 1.35it/s]
epoch 4 | loss 5.2751030921936035, f_iou 0.34720999002456665: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.35it/s]
epoch 4 | loss 5.2751030921936035, f_iou 0.34720999002456665: 50%|██████████████████ | 37/74 [00:33<00:27, 1.36it/s]
epoch 4 | loss 2.643756866455078, f_iou 0.33904069662094116: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.36it/s]
epoch 4 | loss 2.643756866455078, f_iou 0.33904069662094116: 51%|███████████████████ | 38/74 [00:33<00:26, 1.37it/s]
epoch 4 | loss 7.338912010192871, f_iou 0.3434736430644989: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.37it/s]
epoch 4 | loss 7.338912010192871, f_iou 0.3434736430644989: 53%|████████████████████ | 39/74 [00:34<00:25, 1.37it/s]
epoch 4 | loss 3.496328830718994, f_iou 0.35754987597465515: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.37it/s]
epoch 4 | loss 3.496328830718994, f_iou 0.35754987597465515: 54%|████████████████████ | 40/74 [00:35<00:24, 1.38it/s]
epoch 4 | loss 16.30615234375, f_iou 0.3720683157444: 54%|███████████████████████▊ | 40/74 [00:36<00:24, 1.38it/s]
epoch 4 | loss 16.30615234375, f_iou 0.3720683157444: 55%|████████████████████████▍ | 41/74 [00:36<00:23, 1.38it/s]
epoch 4 | loss 2.481755018234253, f_iou 0.38023218512535095: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.38it/s]
epoch 4 | loss 2.481755018234253, f_iou 0.38023218512535095: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.38it/s]
epoch 4 | loss 5.327086925506592, f_iou 0.38454312086105347: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.38it/s]
epoch 4 | loss 5.327086925506592, f_iou 0.38454312086105347: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.39it/s]
epoch 4 | loss 3.531733512878418, f_iou 0.385993629693985: 58%|██████████████████████▋ | 43/74 [00:38<00:22, 1.39it/s]
epoch 4 | loss 3.531733512878418, f_iou 0.385993629693985: 59%|███████████████████████▏ | 44/74 [00:38<00:21, 1.38it/s]
epoch 4 | loss 6.700977802276611, f_iou 0.3818863332271576: 59%|██████████████████████▌ | 44/74 [00:38<00:21, 1.38it/s]
epoch 4 | loss 6.700977802276611, f_iou 0.3818863332271576: 61%|███████████████████████ | 45/74 [00:38<00:20, 1.39it/s]
epoch 4 | loss 8.690823554992676, f_iou 0.38783252239227295: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.39it/s]
epoch 4 | loss 8.690823554992676, f_iou 0.38783252239227295: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 4 | loss 3.4801487922668457, f_iou 0.3865756094455719: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.39it/s]
epoch 4 | loss 3.4801487922668457, f_iou 0.3865756094455719: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.39it/s]
epoch 4 | loss 4.593359470367432, f_iou 0.38637489080429077: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.39it/s]
epoch 4 | loss 4.593359470367432, f_iou 0.38637489080429077: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.38it/s]
epoch 4 | loss 5.040325164794922, f_iou 0.39180076122283936: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.38it/s]
epoch 4 | loss 5.040325164794922, f_iou 0.39180076122283936: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.38it/s]
epoch 4 | loss 5.010586261749268, f_iou 0.38561174273490906: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 4 | loss 5.010586261749268, f_iou 0.38561174273490906: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 4 | loss 5.895779609680176, f_iou 0.3819470703601837: 68%|█████████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 4 | loss 5.895779609680176, f_iou 0.3819470703601837: 69%|██████████████████████████▏ | 51/74 [00:43<00:17, 1.35it/s]
epoch 4 | loss 6.113564491271973, f_iou 0.37536928057670593: 69%|█████████████████████████▌ | 51/74 [00:44<00:17, 1.35it/s]
epoch 4 | loss 6.113564491271973, f_iou 0.37536928057670593: 70%|██████████████████████████ | 52/74 [00:44<00:16, 1.34it/s]
epoch 4 | loss 4.900412559509277, f_iou 0.3716808557510376: 70%|██████████████████████████▋ | 52/74 [00:44<00:16, 1.34it/s]
epoch 4 | loss 4.900412559509277, f_iou 0.3716808557510376: 72%|███████████████████████████▏ | 53/74 [00:44<00:15, 1.32it/s]
epoch 4 | loss 4.142305374145508, f_iou 0.3669365346431732: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.32it/s]
epoch 4 | loss 4.142305374145508, f_iou 0.3669365346431732: 73%|███████████████████████████▋ | 54/74 [00:45<00:15, 1.32it/s]
epoch 4 | loss 4.6521735191345215, f_iou 0.360702782869339: 73%|███████████████████████████▋ | 54/74 [00:46<00:15, 1.32it/s]
epoch 4 | loss 4.6521735191345215, f_iou 0.360702782869339: 74%|████████████████████████████▏ | 55/74 [00:46<00:14, 1.32it/s]
epoch 4 | loss 5.85693359375, f_iou 0.3569830060005188: 74%|███████████████████████████████▏ | 55/74 [00:47<00:14, 1.32it/s]
epoch 4 | loss 5.85693359375, f_iou 0.3569830060005188: 76%|███████████████████████████████▊ | 56/74 [00:47<00:13, 1.33it/s]
epoch 4 | loss 4.552126407623291, f_iou 0.36060988903045654: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.33it/s]
epoch 4 | loss 4.552126407623291, f_iou 0.36060988903045654: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.34it/s]
epoch 4 | loss 4.376920700073242, f_iou 0.35753047466278076: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.34it/s]
epoch 4 | loss 4.376920700073242, f_iou 0.35753047466278076: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.35it/s]
epoch 4 | loss 4.3840227127075195, f_iou 0.36111941933631897: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.35it/s]
epoch 4 | loss 4.3840227127075195, f_iou 0.36111941933631897: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.36it/s]
epoch 4 | loss 5.124838829040527, f_iou 0.36424291133880615: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.36it/s]
epoch 4 | loss 5.124838829040527, f_iou 0.36424291133880615: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.37it/s]
epoch 4 | loss 6.500090599060059, f_iou 0.3641729950904846: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.37it/s]
epoch 4 | loss 6.500090599060059, f_iou 0.3641729950904846: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.37it/s]
epoch 4 | loss 9.136899948120117, f_iou 0.36007270216941833: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.37it/s]
epoch 4 | loss 9.136899948120117, f_iou 0.36007270216941833: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.38it/s]
epoch 4 | loss 5.0073652267456055, f_iou 0.3603505790233612: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.38it/s]
epoch 4 | loss 5.0073652267456055, f_iou 0.3603505790233612: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 4 | loss 5.228334426879883, f_iou 0.35489460825920105: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 4 | loss 5.228334426879883, f_iou 0.35489460825920105: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 4 | loss 2.2357308864593506, f_iou 0.3494832515716553: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 4 | loss 2.2357308864593506, f_iou 0.3494832515716553: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 4 | loss 4.46002197265625, f_iou 0.3536361753940582: 88%|██████████████████████████████████▎ | 65/74 [00:54<00:06, 1.38it/s]
epoch 4 | loss 4.46002197265625, f_iou 0.3536361753940582: 89%|██████████████████████████████████▊ | 66/74 [00:54<00:05, 1.38it/s]
epoch 4 | loss 3.546286106109619, f_iou 0.35986030101776123: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 4 | loss 3.546286106109619, f_iou 0.35986030101776123: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 4 | loss 3.7760472297668457, f_iou 0.3545682728290558: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 4 | loss 3.7760472297668457, f_iou 0.3545682728290558: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 4 | loss 4.0764641761779785, f_iou 0.35321763157844543: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 4 | loss 4.0764641761779785, f_iou 0.35321763157844543: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 4 | loss 6.223208427429199, f_iou 0.3529326021671295: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.39it/s]
epoch 4 | loss 6.223208427429199, f_iou 0.3529326021671295: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:02, 1.39it/s]
epoch 4 | loss 5.378931045532227, f_iou 0.3534535765647888: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:02, 1.39it/s]
epoch 4 | loss 5.378931045532227, f_iou 0.3534535765647888: 96%|████████████████████████████████████▍ | 71/74 [00:57<00:02, 1.39it/s]
epoch 4 | loss 1.7019295692443848, f_iou 0.3485510051250458: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 4 | loss 1.7019295692443848, f_iou 0.3485510051250458: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 4 | loss 4.97451639175415, f_iou 0.3462230861186981: 97%|█████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.40it/s]
epoch 4 | loss 4.97451639175415, f_iou 0.3462230861186981: 99%|██████████████████████████████████████▍| 73/74 [00:59<00:00, 1.40it/s]
epoch 4 | loss 7.170666694641113, f_iou 0.34291911125183105: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 4 | loss 7.170666694641113, f_iou 0.34291911125183105: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 4 | loss 7.170666694641113, f_iou 0.34291911125183105: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 4 | valid.f_iou 0.4300900101661682, valid.f_f-score 0.62276: 0%| | 0/16 [00:05, ?it/s]
epoch 4 | valid.f_iou 0.4300900101661682, valid.f_f-score 0.62276: 6%|██ | 1/16 [00:05<01:23, 5.60s/it]
epoch 4 | valid.f_iou 0.35982999205589294, valid.f_f-score 0.63764: 6%|█▉ | 1/16 [00:06<01:23, 5.60s/it]
epoch 4 | valid.f_iou 0.35982999205589294, valid.f_f-score 0.63764: 12%|███▉ | 2/16 [00:06<00:36, 2.57s/it]
epoch 4 | valid.f_iou 0.3835200071334839, valid.f_f-score 0.66317: 12%|████ | 2/16 [00:06<00:36, 2.57s/it]
epoch 4 | valid.f_iou 0.3835200071334839, valid.f_f-score 0.66317: 19%|██████ | 3/16 [00:06<00:21, 1.62s/it]
epoch 4 | valid.f_iou 0.43799999356269836, valid.f_f-score 0.6788: 19%|██████ | 3/16 [00:06<00:21, 1.62s/it]
epoch 4 | valid.f_iou 0.43799999356269836, valid.f_f-score 0.6788: 25%|████████ | 4/16 [00:06<00:13, 1.14s/it]
epoch 4 | valid.f_iou 0.4124999940395355, valid.f_f-score 0.65666: 25%|████████ | 4/16 [00:07<00:13, 1.14s/it]
epoch 4 | valid.f_iou 0.4124999940395355, valid.f_f-score 0.65666: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 4 | valid.f_iou 0.40386998653411865, valid.f_f-score 0.63754: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 4 | valid.f_iou 0.40386998653411865, valid.f_f-score 0.63754: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 4 | valid.f_iou 0.3940500020980835, valid.f_f-score 0.63352: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 4 | valid.f_iou 0.3940500020980835, valid.f_f-score 0.63352: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 4 | valid.f_iou 0.37749001383781433, valid.f_f-score 0.62377: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 4 | valid.f_iou 0.37749001383781433, valid.f_f-score 0.62377: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 4 | valid.f_iou 0.37049999833106995, valid.f_f-score 0.61475: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.72it/s]
epoch 4 | valid.f_iou 0.37049999833106995, valid.f_f-score 0.61475: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 4 | valid.f_iou 0.3850800096988678, valid.f_f-score 0.62704: 56%|██████████████████ | 9/16 [00:09<00:03, 1.97it/s]
epoch 4 | valid.f_iou 0.3850800096988678, valid.f_f-score 0.62704: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.06it/s]
epoch 4 | valid.f_iou 0.3820500075817108, valid.f_f-score 0.61309: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.06it/s]
epoch 4 | valid.f_iou 0.3820500075817108, valid.f_f-score 0.61309: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.23it/s]
epoch 4 | valid.f_iou 0.4119499921798706, valid.f_f-score 0.63448: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.23it/s]
epoch 4 | valid.f_iou 0.4119499921798706, valid.f_f-score 0.63448: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.37it/s]
epoch 4 | valid.f_iou 0.4049000144004822, valid.f_f-score 0.63972: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.37it/s]
epoch 4 | valid.f_iou 0.4049000144004822, valid.f_f-score 0.63972: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 4 | valid.f_iou 0.38319000601768494, valid.f_f-score 0.62257: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 4 | valid.f_iou 0.38319000601768494, valid.f_f-score 0.62257: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 4 | valid.f_iou 0.3698900043964386, valid.f_f-score 0.62099: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.54it/s]
epoch 4 | valid.f_iou 0.3698900043964386, valid.f_f-score 0.62099: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.56it/s]
epoch 4 | valid.f_iou 0.3635900020599365, valid.f_f-score 0.61226: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.56it/s]
epoch 4 | valid.f_iou 0.3635900020599365, valid.f_f-score 0.61226: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 4 | valid.f_iou 0.3635900020599365, valid.f_f-score 0.61226: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 4 | valid.f_iou 0.5288299918174744, valid.f_f-score 0.52645: 0%| | 0/16 [00:05, ?it/s]
epoch 4 | valid.f_iou 0.5288299918174744, valid.f_f-score 0.52645: 6%|██ | 1/16 [00:05<01:22, 5.50s/it]
epoch 4 | valid.f_iou 0.6789199709892273, valid.f_f-score 0.73652: 6%|██ | 1/16 [00:05<01:22, 5.50s/it]
epoch 4 | valid.f_iou 0.6789199709892273, valid.f_f-score 0.73652: 12%|████ | 2/16 [00:05<00:35, 2.55s/it]
epoch 4 | valid.f_iou 0.5430899858474731, valid.f_f-score 0.62785: 12%|████ | 2/16 [00:06<00:35, 2.55s/it]
epoch 4 | valid.f_iou 0.5430899858474731, valid.f_f-score 0.62785: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 4 | valid.f_iou 0.5091599822044373, valid.f_f-score 0.57467: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 4 | valid.f_iou 0.5091599822044373, valid.f_f-score 0.57467: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 4 | valid.f_iou 0.47494998574256897, valid.f_f-score 0.54616: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 4 | valid.f_iou 0.47494998574256897, valid.f_f-score 0.54616: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 4 | valid.f_iou 0.4345700144767761, valid.f_f-score 0.51247: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 4 | valid.f_iou 0.4345700144767761, valid.f_f-score 0.51247: 38%|████████████ | 6/16 [00:07<00:07, 1.36it/s]
epoch 4 | valid.f_iou 0.43911999464035034, valid.f_f-score 0.52894: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 4 | valid.f_iou 0.43911999464035034, valid.f_f-score 0.52894: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 4 | valid.f_iou 0.413239985704422, valid.f_f-score 0.50459: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.57it/s]
epoch 4 | valid.f_iou 0.413239985704422, valid.f_f-score 0.50459: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 4 | valid.f_iou 0.46171000599861145, valid.f_f-score 0.55034: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.74it/s]
epoch 4 | valid.f_iou 0.46171000599861145, valid.f_f-score 0.55034: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 4 | valid.f_iou 0.4597100019454956, valid.f_f-score 0.55802: 56%|██████████████████ | 9/16 [00:09<00:03, 1.88it/s]
epoch 4 | valid.f_iou 0.4597100019454956, valid.f_f-score 0.55802: 62%|███████████████████▍ | 10/16 [00:09<00:03, 1.98it/s]
epoch 4 | valid.f_iou 0.44501999020576477, valid.f_f-score 0.53598: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 4 | valid.f_iou 0.44501999020576477, valid.f_f-score 0.53598: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 4 | valid.f_iou 0.4320000112056732, valid.f_f-score 0.52446: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.15it/s]
epoch 4 | valid.f_iou 0.4320000112056732, valid.f_f-score 0.52446: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.30it/s]
epoch 4 | valid.f_iou 0.44595998525619507, valid.f_f-score 0.5386: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.30it/s]
epoch 4 | valid.f_iou 0.44595998525619507, valid.f_f-score 0.5386: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.41it/s]
epoch 4 | valid.f_iou 0.4543299973011017, valid.f_f-score 0.54929: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.41it/s]
epoch 4 | valid.f_iou 0.4543299973011017, valid.f_f-score 0.54929: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.51it/s]
epoch 4 | valid.f_iou 0.46246999502182007, valid.f_f-score 0.5644: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.51it/s]
epoch 4 | valid.f_iou 0.46246999502182007, valid.f_f-score 0.5644: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.57it/s]
epoch 4 | valid.f_iou 0.4740599989891052, valid.f_f-score 0.57814: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.57it/s]
epoch 4 | valid.f_iou 0.4740599989891052, valid.f_f-score 0.57814: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 4 | valid.f_iou 0.4740599989891052, valid.f_f-score 0.57814: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 4 | valid.f_iou 0.5288299918174744, valid.f_f-score 0.52645: 0%| | 0/16 [00:05, ?it/s]
epoch 4 | valid.f_iou 0.5288299918174744, valid.f_f-score 0.52645: 6%|██ | 1/16 [00:05<01:18, 5.23s/it]
epoch 4 | valid.f_iou 0.6789199709892273, valid.f_f-score 0.73652: 6%|██ | 1/16 [00:05<01:18, 5.23s/it]
epoch 4 | valid.f_iou 0.6789199709892273, valid.f_f-score 0.73652: 12%|████ | 2/16 [00:05<00:33, 2.43s/it]
epoch 4 | valid.f_iou 0.5430899858474731, valid.f_f-score 0.62785: 12%|████ | 2/16 [00:06<00:33, 2.43s/it]
epoch 4 | valid.f_iou 0.5430899858474731, valid.f_f-score 0.62785: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 4 | valid.f_iou 0.5091599822044373, valid.f_f-score 0.57467: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 4 | valid.f_iou 0.5091599822044373, valid.f_f-score 0.57467: 25%|████████ | 4/16 [00:06<00:13, 1.10s/it]
epoch 4 | valid.f_iou 0.4787299931049347, valid.f_f-score 0.54616: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 4 | valid.f_iou 0.4787299931049347, valid.f_f-score 0.54616: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 4 | valid.f_iou 0.43772000074386597, valid.f_f-score 0.51247: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 4 | valid.f_iou 0.43772000074386597, valid.f_f-score 0.51247: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 4 | valid.f_iou 0.4418100118637085, valid.f_f-score 0.52894: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 4 | valid.f_iou 0.4418100118637085, valid.f_f-score 0.52894: 44%|██████████████ | 7/16 [00:07<00:05, 1.62it/s]
epoch 4 | valid.f_iou 0.4156000018119812, valid.f_f-score 0.50459: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 4 | valid.f_iou 0.4156000018119812, valid.f_f-score 0.50459: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 4 | valid.f_iou 0.463809996843338, valid.f_f-score 0.55034: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 4 | valid.f_iou 0.463809996843338, valid.f_f-score 0.55034: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.97it/s]
epoch 4 | valid.f_iou 0.46160000562667847, valid.f_f-score 0.55802: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 4 | valid.f_iou 0.46160000562667847, valid.f_f-score 0.55802: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 4 | valid.f_iou 0.4467400014400482, valid.f_f-score 0.53598: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.05it/s]
epoch 4 | valid.f_iou 0.4467400014400482, valid.f_f-score 0.53598: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.09it/s]
epoch 4 | valid.f_iou 0.4335800111293793, valid.f_f-score 0.52446: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.09it/s]
epoch 4 | valid.f_iou 0.4335800111293793, valid.f_f-score 0.52446: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.14it/s]
epoch 4 | valid.f_iou 0.447409987449646, valid.f_f-score 0.5386: 75%|████████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 4 | valid.f_iou 0.447409987449646, valid.f_f-score 0.5386: 81%|██████████████████████████▊ | 13/16 [00:10<00:01, 2.29it/s]
epoch 4 | valid.f_iou 0.4556800127029419, valid.f_f-score 0.54929: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.29it/s]
epoch 4 | valid.f_iou 0.4556800127029419, valid.f_f-score 0.54929: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.41it/s]
epoch 4 | valid.f_iou 0.46373000741004944, valid.f_f-score 0.5644: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.41it/s]
epoch 4 | valid.f_iou 0.46373000741004944, valid.f_f-score 0.5644: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.49it/s]
epoch 4 | valid.f_iou 0.47523999214172363, valid.f_f-score 0.57814: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 4 | valid.f_iou 0.47523999214172363, valid.f_f-score 0.57814: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.55it/s]
epoch 4 | valid.f_iou 0.47523999214172363, valid.f_f-score 0.57814: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 5 | loss 7.1856184005737305, f_iou 0.035530198365449905: 0%| | 0/74 [00:06, ?it/s]
epoch 5 | loss 7.1856184005737305, f_iou 0.035530198365449905: 1%|▍ | 1/74 [00:06<07:34, 6.23s/it]
epoch 5 | loss 6.1621928215026855, f_iou 0.1897163689136505: 1%|▌ | 1/74 [00:07<07:34, 6.23s/it]
epoch 5 | loss 6.1621928215026855, f_iou 0.1897163689136505: 3%|█ | 2/74 [00:07<03:40, 3.06s/it]
epoch 5 | loss 7.541454315185547, f_iou 0.15510091185569763: 3%|█ | 2/74 [00:07<03:40, 3.06s/it]
epoch 5 | loss 7.541454315185547, f_iou 0.15510091185569763: 4%|█▌ | 3/74 [00:07<02:23, 2.03s/it]
epoch 5 | loss 6.184532165527344, f_iou 0.1171276867389679: 4%|█▌ | 3/74 [00:08<02:23, 2.03s/it]
epoch 5 | loss 6.184532165527344, f_iou 0.1171276867389679: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 5 | loss 5.79530668258667, f_iou 0.1730903685092926: 5%|██▏ | 4/74 [00:09<01:47, 1.54s/it]
epoch 5 | loss 5.79530668258667, f_iou 0.1730903685092926: 7%|██▋ | 5/74 [00:09<01:27, 1.27s/it]
epoch 5 | loss 4.920337200164795, f_iou 0.21698890626430511: 7%|██▌ | 5/74 [00:10<01:27, 1.27s/it]
epoch 5 | loss 4.920337200164795, f_iou 0.21698890626430511: 8%|███ | 6/74 [00:10<01:17, 1.15s/it]
epoch 5 | loss 7.644817352294922, f_iou 0.22335904836654663: 8%|███ | 6/74 [00:11<01:17, 1.15s/it]
epoch 5 | loss 7.644817352294922, f_iou 0.22335904836654663: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 5 | loss 4.567329406738281, f_iou 0.26899635791778564: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 5 | loss 4.567329406738281, f_iou 0.26899635791778564: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 5 | loss 5.231995582580566, f_iou 0.2974521219730377: 11%|████▏ | 8/74 [00:12<01:01, 1.07it/s]
epoch 5 | loss 5.231995582580566, f_iou 0.2974521219730377: 12%|████▋ | 9/74 [00:12<00:56, 1.14it/s]
epoch 5 | loss 11.66650390625, f_iou 0.36759164929389954: 12%|████▉ | 9/74 [00:13<00:56, 1.14it/s]
epoch 5 | loss 11.66650390625, f_iou 0.36759164929389954: 14%|█████▍ | 10/74 [00:13<00:52, 1.21it/s]
epoch 5 | loss 9.365840911865234, f_iou 0.35117384791374207: 14%|█████ | 10/74 [00:14<00:52, 1.21it/s]
epoch 5 | loss 9.365840911865234, f_iou 0.35117384791374207: 15%|█████▌ | 11/74 [00:14<00:49, 1.26it/s]
epoch 5 | loss 1.3764419555664062, f_iou 0.3447858691215515: 15%|█████▌ | 11/74 [00:14<00:49, 1.26it/s]
epoch 5 | loss 1.3764419555664062, f_iou 0.3447858691215515: 16%|██████ | 12/74 [00:14<00:47, 1.30it/s]
epoch 5 | loss 1.4373319149017334, f_iou 0.3562326431274414: 16%|██████ | 12/74 [00:15<00:47, 1.30it/s]
epoch 5 | loss 1.4373319149017334, f_iou 0.3562326431274414: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 5 | loss 9.090455055236816, f_iou 0.36865290999412537: 18%|██████▌ | 13/74 [00:16<00:46, 1.32it/s]
epoch 5 | loss 9.090455055236816, f_iou 0.36865290999412537: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 5 | loss 3.975933313369751, f_iou 0.40186187624931335: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 5 | loss 3.975933313369751, f_iou 0.40186187624931335: 20%|███████▌ | 15/74 [00:16<00:43, 1.36it/s]
epoch 5 | loss 4.465243339538574, f_iou 0.42021432518959045: 20%|███████▌ | 15/74 [00:17<00:43, 1.36it/s]
epoch 5 | loss 4.465243339538574, f_iou 0.42021432518959045: 22%|████████ | 16/74 [00:17<00:42, 1.37it/s]
epoch 5 | loss 1.5590884685516357, f_iou 0.4152347147464752: 22%|████████ | 16/74 [00:18<00:42, 1.37it/s]
epoch 5 | loss 1.5590884685516357, f_iou 0.4152347147464752: 23%|████████▌ | 17/74 [00:18<00:41, 1.37it/s]
epoch 5 | loss 4.465848445892334, f_iou 0.4200935363769531: 23%|████████▋ | 17/74 [00:19<00:41, 1.37it/s]
epoch 5 | loss 4.465848445892334, f_iou 0.4200935363769531: 24%|█████████▏ | 18/74 [00:19<00:41, 1.35it/s]
epoch 5 | loss 5.881752014160156, f_iou 0.4067460298538208: 24%|█████████▏ | 18/74 [00:19<00:41, 1.35it/s]
epoch 5 | loss 5.881752014160156, f_iou 0.4067460298538208: 26%|█████████▊ | 19/74 [00:19<00:41, 1.32it/s]
epoch 5 | loss 6.588133811950684, f_iou 0.39217039942741394: 26%|█████████▌ | 19/74 [00:20<00:41, 1.32it/s]
epoch 5 | loss 6.588133811950684, f_iou 0.39217039942741394: 27%|██████████ | 20/74 [00:20<00:40, 1.34it/s]
epoch 5 | loss 2.4406096935272217, f_iou 0.3752744495868683: 27%|██████████ | 20/74 [00:21<00:40, 1.34it/s]
epoch 5 | loss 2.4406096935272217, f_iou 0.3752744495868683: 28%|██████████▌ | 21/74 [00:21<00:39, 1.35it/s]
epoch 5 | loss 3.354398250579834, f_iou 0.39813685417175293: 28%|██████████▌ | 21/74 [00:22<00:39, 1.35it/s]
epoch 5 | loss 3.354398250579834, f_iou 0.39813685417175293: 30%|███████████ | 22/74 [00:22<00:38, 1.36it/s]
epoch 5 | loss 5.721688747406006, f_iou 0.39887988567352295: 30%|███████████ | 22/74 [00:22<00:38, 1.36it/s]
epoch 5 | loss 5.721688747406006, f_iou 0.39887988567352295: 31%|███████████▌ | 23/74 [00:22<00:37, 1.37it/s]
epoch 5 | loss 6.600582599639893, f_iou 0.38237911462783813: 31%|███████████▌ | 23/74 [00:23<00:37, 1.37it/s]
epoch 5 | loss 6.600582599639893, f_iou 0.38237911462783813: 32%|████████████ | 24/74 [00:23<00:36, 1.37it/s]
epoch 5 | loss 7.937257766723633, f_iou 0.38195371627807617: 32%|████████████ | 24/74 [00:24<00:36, 1.37it/s]
epoch 5 | loss 7.937257766723633, f_iou 0.38195371627807617: 34%|████████████▌ | 25/74 [00:24<00:35, 1.37it/s]
epoch 5 | loss 8.727907180786133, f_iou 0.3701060116291046: 34%|████████████▊ | 25/74 [00:25<00:35, 1.37it/s]
epoch 5 | loss 8.727907180786133, f_iou 0.3701060116291046: 35%|█████████████▎ | 26/74 [00:25<00:35, 1.37it/s]
epoch 5 | loss 4.915304183959961, f_iou 0.3615633547306061: 35%|█████████████▎ | 26/74 [00:25<00:35, 1.37it/s]
epoch 5 | loss 4.915304183959961, f_iou 0.3615633547306061: 36%|█████████████▊ | 27/74 [00:25<00:34, 1.38it/s]
epoch 5 | loss 4.219973087310791, f_iou 0.34865084290504456: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.38it/s]
epoch 5 | loss 4.219973087310791, f_iou 0.34865084290504456: 38%|██████████████ | 28/74 [00:26<00:33, 1.37it/s]
epoch 5 | loss 6.2159929275512695, f_iou 0.35107192397117615: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 5 | loss 6.2159929275512695, f_iou 0.35107192397117615: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 5 | loss 3.173643112182617, f_iou 0.3692430257797241: 39%|██████████████▉ | 29/74 [00:27<00:32, 1.37it/s]
epoch 5 | loss 3.173643112182617, f_iou 0.3692430257797241: 41%|███████████████▍ | 30/74 [00:27<00:32, 1.37it/s]
epoch 5 | loss 6.895167350769043, f_iou 0.36642003059387207: 41%|███████████████ | 30/74 [00:28<00:32, 1.37it/s]
epoch 5 | loss 6.895167350769043, f_iou 0.36642003059387207: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.37it/s]
epoch 5 | loss 3.541902542114258, f_iou 0.35849350690841675: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.37it/s]
epoch 5 | loss 3.541902542114258, f_iou 0.35849350690841675: 43%|████████████████ | 32/74 [00:29<00:30, 1.38it/s]
epoch 5 | loss 4.523008823394775, f_iou 0.3529491424560547: 43%|████████████████▍ | 32/74 [00:30<00:30, 1.38it/s]
epoch 5 | loss 4.523008823394775, f_iou 0.3529491424560547: 45%|████████████████▉ | 33/74 [00:30<00:29, 1.38it/s]
epoch 5 | loss 5.681870460510254, f_iou 0.3575008511543274: 45%|████████████████▉ | 33/74 [00:30<00:29, 1.38it/s]
epoch 5 | loss 5.681870460510254, f_iou 0.3575008511543274: 46%|█████████████████▍ | 34/74 [00:30<00:28, 1.39it/s]
epoch 5 | loss 5.355538368225098, f_iou 0.35775551199913025: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 5 | loss 5.355538368225098, f_iou 0.35775551199913025: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 5 | loss 8.201364517211914, f_iou 0.35438644886016846: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.39it/s]
epoch 5 | loss 8.201364517211914, f_iou 0.35438644886016846: 49%|██████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 5 | loss 4.544837474822998, f_iou 0.3636554777622223: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.39it/s]
epoch 5 | loss 4.544837474822998, f_iou 0.3636554777622223: 50%|███████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 5 | loss 2.1343159675598145, f_iou 0.358082115650177: 50%|███████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 5 | loss 2.1343159675598145, f_iou 0.358082115650177: 51%|███████████████████▌ | 38/74 [00:33<00:26, 1.38it/s]
epoch 5 | loss 8.46684741973877, f_iou 0.35916754603385925: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.38it/s]
epoch 5 | loss 8.46684741973877, f_iou 0.35916754603385925: 53%|████████████████████ | 39/74 [00:34<00:25, 1.39it/s]
epoch 5 | loss 5.028381824493408, f_iou 0.35113292932510376: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 5 | loss 5.028381824493408, f_iou 0.35113292932510376: 54%|████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 5 | loss 5.2049055099487305, f_iou 0.34775087237358093: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 5 | loss 5.2049055099487305, f_iou 0.34775087237358093: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 5 | loss 6.18802547454834, f_iou 0.3397010266780853: 55%|█████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 5 | loss 6.18802547454834, f_iou 0.3397010266780853: 57%|██████████████████████▏ | 42/74 [00:36<00:23, 1.39it/s]
epoch 5 | loss 5.9826273918151855, f_iou 0.33446845412254333: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 5 | loss 5.9826273918151855, f_iou 0.33446845412254333: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 5 | loss 5.189708232879639, f_iou 0.32733967900276184: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.39it/s]
epoch 5 | loss 5.189708232879639, f_iou 0.32733967900276184: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 5 | loss 5.2071027755737305, f_iou 0.33019670844078064: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 5 | loss 5.2071027755737305, f_iou 0.33019670844078064: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.39it/s]
epoch 5 | loss 4.20741081237793, f_iou 0.32308652997016907: 61%|███████████████████████ | 45/74 [00:39<00:20, 1.39it/s]
epoch 5 | loss 4.20741081237793, f_iou 0.32308652997016907: 62%|███████████████████████▌ | 46/74 [00:39<00:20, 1.39it/s]
epoch 5 | loss 1.7806518077850342, f_iou 0.3163733184337616: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.39it/s]
epoch 5 | loss 1.7806518077850342, f_iou 0.3163733184337616: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.39it/s]
epoch 5 | loss 5.029314041137695, f_iou 0.3166821002960205: 64%|████████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 5 | loss 5.029314041137695, f_iou 0.3166821002960205: 65%|████████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 5 | loss 3.607090711593628, f_iou 0.3102276623249054: 65%|████████████████████████▋ | 48/74 [00:41<00:18, 1.39it/s]
epoch 5 | loss 3.607090711593628, f_iou 0.3102276623249054: 66%|█████████████████████████▏ | 49/74 [00:41<00:17, 1.39it/s]
epoch 5 | loss 5.082643032073975, f_iou 0.30705517530441284: 66%|████████████████████████▌ | 49/74 [00:42<00:17, 1.39it/s]
epoch 5 | loss 5.082643032073975, f_iou 0.30705517530441284: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 5 | loss 6.506898403167725, f_iou 0.3099852502346039: 68%|█████████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 5 | loss 6.506898403167725, f_iou 0.3099852502346039: 69%|██████████████████████████▏ | 51/74 [00:43<00:16, 1.39it/s]
epoch 5 | loss 7.247951984405518, f_iou 0.3146374821662903: 69%|██████████████████████████▏ | 51/74 [00:43<00:16, 1.39it/s]
epoch 5 | loss 7.247951984405518, f_iou 0.3146374821662903: 70%|██████████████████████████▋ | 52/74 [00:43<00:15, 1.39it/s]
epoch 5 | loss 7.050734043121338, f_iou 0.313011109828949: 70%|███████████████████████████▍ | 52/74 [00:44<00:15, 1.39it/s]
epoch 5 | loss 7.050734043121338, f_iou 0.313011109828949: 72%|███████████████████████████▉ | 53/74 [00:44<00:15, 1.39it/s]
epoch 5 | loss 7.172455787658691, f_iou 0.31083184480667114: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.39it/s]
epoch 5 | loss 7.172455787658691, f_iou 0.31083184480667114: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 5 | loss 2.372250556945801, f_iou 0.30564039945602417: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 5 | loss 2.372250556945801, f_iou 0.30564039945602417: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 5 | loss 2.2584116458892822, f_iou 0.3003554046154022: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 5 | loss 2.2584116458892822, f_iou 0.3003554046154022: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 5 | loss 4.379770278930664, f_iou 0.30607905983924866: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 5 | loss 4.379770278930664, f_iou 0.30607905983924866: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 5 | loss 5.528998851776123, f_iou 0.3102811872959137: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.39it/s]
epoch 5 | loss 5.528998851776123, f_iou 0.3102811872959137: 78%|█████████████████████████████▊ | 58/74 [00:48<00:11, 1.39it/s]
epoch 5 | loss 8.331521034240723, f_iou 0.30779021978378296: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.39it/s]
epoch 5 | loss 8.331521034240723, f_iou 0.30779021978378296: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.39it/s]
epoch 5 | loss 5.638282775878906, f_iou 0.30968964099884033: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 5 | loss 5.638282775878906, f_iou 0.30968964099884033: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.39it/s]
epoch 5 | loss 2.1040568351745605, f_iou 0.3049672544002533: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 5 | loss 2.1040568351745605, f_iou 0.3049672544002533: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 5 | loss 3.759848117828369, f_iou 0.30131226778030396: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 5 | loss 3.759848117828369, f_iou 0.30131226778030396: 84%|███████████████████████████████ | 62/74 [00:50<00:08, 1.39it/s]
epoch 5 | loss 5.722044467926025, f_iou 0.30137595534324646: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 5 | loss 5.722044467926025, f_iou 0.30137595534324646: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.38it/s]
epoch 5 | loss 6.431063652038574, f_iou 0.29901647567749023: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 5 | loss 6.431063652038574, f_iou 0.29901647567749023: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 5 | loss 5.517153739929199, f_iou 0.30256256461143494: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 5 | loss 5.517153739929199, f_iou 0.30256256461143494: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 5 | loss 1.932485580444336, f_iou 0.2982062101364136: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.39it/s]
epoch 5 | loss 1.932485580444336, f_iou 0.2982062101364136: 89%|█████████████████████████████████▉ | 66/74 [00:53<00:05, 1.40it/s]
epoch 5 | loss 1.6216704845428467, f_iou 0.294414758682251: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.40it/s]
epoch 5 | loss 1.6216704845428467, f_iou 0.294414758682251: 91%|██████████████████████████████████▍ | 67/74 [00:54<00:05, 1.40it/s]
epoch 5 | loss 4.325565814971924, f_iou 0.30102992057800293: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.40it/s]
epoch 5 | loss 4.325565814971924, f_iou 0.30102992057800293: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 5 | loss 2.7844152450561523, f_iou 0.296964555978775: 92%|██████████████████████████████████▉ | 68/74 [00:55<00:04, 1.40it/s]
epoch 5 | loss 2.7844152450561523, f_iou 0.296964555978775: 93%|███████████████████████████████████▍ | 69/74 [00:55<00:03, 1.40it/s]
epoch 5 | loss 3.239880323410034, f_iou 0.29706528782844543: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 5 | loss 3.239880323410034, f_iou 0.29706528782844543: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 5 | loss 12.56706714630127, f_iou 0.30346956849098206: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 5 | loss 12.56706714630127, f_iou 0.30346956849098206: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 5 | loss 1.549547791481018, f_iou 0.299622505903244: 96%|█████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.41it/s]
epoch 5 | loss 1.549547791481018, f_iou 0.299622505903244: 97%|█████████████████████████████████████▉ | 72/74 [00:58<00:01, 1.41it/s]
epoch 5 | loss 3.7769320011138916, f_iou 0.30704665184020996: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 5 | loss 3.7769320011138916, f_iou 0.30704665184020996: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 5 | loss 10.203125, f_iou 0.31550464034080505: 99%|████████████████████████████████████████████▍| 73/74 [00:59<00:00, 1.40it/s]
epoch 5 | loss 10.203125, f_iou 0.31550464034080505: 100%|█████████████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 5 | loss 10.203125, f_iou 0.31550464034080505: 100%|█████████████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 5 | valid.f_iou 0.4516400098800659, valid.f_f-score 0.6354: 0%| | 0/16 [00:05, ?it/s]
epoch 5 | valid.f_iou 0.4516400098800659, valid.f_f-score 0.6354: 6%|██ | 1/16 [00:05<01:18, 5.21s/it]
epoch 5 | valid.f_iou 0.34334999322891235, valid.f_f-score 0.64993: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 5 | valid.f_iou 0.34334999322891235, valid.f_f-score 0.64993: 12%|███▉ | 2/16 [00:05<00:33, 2.41s/it]
epoch 5 | valid.f_iou 0.374099999666214, valid.f_f-score 0.67922: 12%|████▏ | 2/16 [00:06<00:33, 2.41s/it]
epoch 5 | valid.f_iou 0.374099999666214, valid.f_f-score 0.67922: 19%|██████▏ | 3/16 [00:06<00:19, 1.51s/it]
epoch 5 | valid.f_iou 0.42377999424934387, valid.f_f-score 0.70861: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 5 | valid.f_iou 0.42377999424934387, valid.f_f-score 0.70861: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 5 | valid.f_iou 0.4187999963760376, valid.f_f-score 0.71607: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 5 | valid.f_iou 0.4187999963760376, valid.f_f-score 0.71607: 31%|██████████ | 5/16 [00:07<00:09, 1.16it/s]
epoch 5 | valid.f_iou 0.4038099944591522, valid.f_f-score 0.69451: 31%|██████████ | 5/16 [00:07<00:09, 1.16it/s]
epoch 5 | valid.f_iou 0.4038099944591522, valid.f_f-score 0.69451: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 5 | valid.f_iou 0.38534998893737793, valid.f_f-score 0.67945: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 5 | valid.f_iou 0.38534998893737793, valid.f_f-score 0.67945: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 5 | valid.f_iou 0.36711999773979187, valid.f_f-score 0.6673: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 5 | valid.f_iou 0.36711999773979187, valid.f_f-score 0.6673: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 5 | valid.f_iou 0.3607099950313568, valid.f_f-score 0.65752: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 5 | valid.f_iou 0.3607099950313568, valid.f_f-score 0.65752: 56%|██████████████████ | 9/16 [00:08<00:03, 2.03it/s]
epoch 5 | valid.f_iou 0.36640000343322754, valid.f_f-score 0.66768: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 5 | valid.f_iou 0.36640000343322754, valid.f_f-score 0.66768: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 5 | valid.f_iou 0.37127000093460083, valid.f_f-score 0.65759: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 5 | valid.f_iou 0.37127000093460083, valid.f_f-score 0.65759: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 5 | valid.f_iou 0.3999199867248535, valid.f_f-score 0.67579: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.35it/s]
epoch 5 | valid.f_iou 0.3999199867248535, valid.f_f-score 0.67579: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.47it/s]
epoch 5 | valid.f_iou 0.39190998673439026, valid.f_f-score 0.67803: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.47it/s]
epoch 5 | valid.f_iou 0.39190998673439026, valid.f_f-score 0.67803: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 5 | valid.f_iou 0.3700200021266937, valid.f_f-score 0.66506: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.55it/s]
epoch 5 | valid.f_iou 0.3700200021266937, valid.f_f-score 0.66506: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.61it/s]
epoch 5 | valid.f_iou 0.3551900088787079, valid.f_f-score 0.66211: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.61it/s]
epoch 5 | valid.f_iou 0.3551900088787079, valid.f_f-score 0.66211: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.60it/s]
epoch 5 | valid.f_iou 0.34940001368522644, valid.f_f-score 0.65277: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 5 | valid.f_iou 0.34940001368522644, valid.f_f-score 0.65277: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 5 | valid.f_iou 0.34940001368522644, valid.f_f-score 0.65277: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 5 | valid.f_iou 0.3651899993419647, valid.f_f-score 0.38844: 0%| | 0/16 [00:04, ?it/s]
epoch 5 | valid.f_iou 0.3651899993419647, valid.f_f-score 0.38844: 6%|██ | 1/16 [00:04<01:14, 4.99s/it]
epoch 5 | valid.f_iou 0.6057100296020508, valid.f_f-score 0.65987: 6%|██ | 1/16 [00:05<01:14, 4.99s/it]
epoch 5 | valid.f_iou 0.6057100296020508, valid.f_f-score 0.65987: 12%|████ | 2/16 [00:05<00:32, 2.32s/it]
epoch 5 | valid.f_iou 0.5045400261878967, valid.f_f-score 0.57705: 12%|████ | 2/16 [00:05<00:32, 2.32s/it]
epoch 5 | valid.f_iou 0.5045400261878967, valid.f_f-score 0.57705: 19%|██████ | 3/16 [00:05<00:19, 1.47s/it]
epoch 5 | valid.f_iou 0.4869999885559082, valid.f_f-score 0.55138: 19%|██████ | 3/16 [00:06<00:19, 1.47s/it]
epoch 5 | valid.f_iou 0.4869999885559082, valid.f_f-score 0.55138: 25%|████████ | 4/16 [00:06<00:12, 1.07s/it]
epoch 5 | valid.f_iou 0.45159000158309937, valid.f_f-score 0.51165: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 5 | valid.f_iou 0.45159000158309937, valid.f_f-score 0.51165: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 5 | valid.f_iou 0.4035100042819977, valid.f_f-score 0.48064: 31%|██████████ | 5/16 [00:07<00:09, 1.18it/s]
epoch 5 | valid.f_iou 0.4035100042819977, valid.f_f-score 0.48064: 38%|████████████ | 6/16 [00:07<00:07, 1.40it/s]
epoch 5 | valid.f_iou 0.4092499911785126, valid.f_f-score 0.49606: 38%|████████████ | 6/16 [00:07<00:07, 1.40it/s]
epoch 5 | valid.f_iou 0.4092499911785126, valid.f_f-score 0.49606: 44%|██████████████ | 7/16 [00:07<00:05, 1.61it/s]
epoch 5 | valid.f_iou 0.389739990234375, valid.f_f-score 0.47535: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.61it/s]
epoch 5 | valid.f_iou 0.389739990234375, valid.f_f-score 0.47535: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 5 | valid.f_iou 0.4435200095176697, valid.f_f-score 0.52828: 50%|████████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 5 | valid.f_iou 0.4435200095176697, valid.f_f-score 0.52828: 56%|██████████████████ | 9/16 [00:08<00:03, 1.97it/s]
epoch 5 | valid.f_iou 0.44613999128341675, valid.f_f-score 0.53857: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 5 | valid.f_iou 0.44613999128341675, valid.f_f-score 0.53857: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.05it/s]
epoch 5 | valid.f_iou 0.434689998626709, valid.f_f-score 0.51841: 62%|████████████████████ | 10/16 [00:09<00:02, 2.05it/s]
epoch 5 | valid.f_iou 0.434689998626709, valid.f_f-score 0.51841: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.22it/s]
epoch 5 | valid.f_iou 0.42434999346733093, valid.f_f-score 0.51108: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.22it/s]
epoch 5 | valid.f_iou 0.42434999346733093, valid.f_f-score 0.51108: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 5 | valid.f_iou 0.43755000829696655, valid.f_f-score 0.52589: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.35it/s]
epoch 5 | valid.f_iou 0.43755000829696655, valid.f_f-score 0.52589: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 5 | valid.f_iou 0.4477899968624115, valid.f_f-score 0.53886: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.46it/s]
epoch 5 | valid.f_iou 0.4477899968624115, valid.f_f-score 0.53886: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 5 | valid.f_iou 0.45539000630378723, valid.f_f-score 0.54641: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 5 | valid.f_iou 0.45539000630378723, valid.f_f-score 0.54641: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 5 | valid.f_iou 0.4689500033855438, valid.f_f-score 0.56061: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 5 | valid.f_iou 0.4689500033855438, valid.f_f-score 0.56061: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 5 | valid.f_iou 0.4689500033855438, valid.f_f-score 0.56061: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 5 | valid.f_iou 0.3651899993419647, valid.f_f-score 0.38844: 0%| | 0/16 [00:04, ?it/s]
epoch 5 | valid.f_iou 0.3651899993419647, valid.f_f-score 0.38844: 6%|██ | 1/16 [00:04<01:08, 4.57s/it]
epoch 5 | valid.f_iou 0.6057100296020508, valid.f_f-score 0.65987: 6%|██ | 1/16 [00:05<01:08, 4.57s/it]
epoch 5 | valid.f_iou 0.6057100296020508, valid.f_f-score 0.65987: 12%|████ | 2/16 [00:05<00:34, 2.46s/it]
epoch 5 | valid.f_iou 0.5045400261878967, valid.f_f-score 0.57705: 12%|████ | 2/16 [00:06<00:34, 2.46s/it]
epoch 5 | valid.f_iou 0.5045400261878967, valid.f_f-score 0.57705: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 5 | valid.f_iou 0.4869999885559082, valid.f_f-score 0.55138: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 5 | valid.f_iou 0.4869999885559082, valid.f_f-score 0.55138: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 5 | valid.f_iou 0.45159000158309937, valid.f_f-score 0.51165: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 5 | valid.f_iou 0.45159000158309937, valid.f_f-score 0.51165: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 5 | valid.f_iou 0.4035100042819977, valid.f_f-score 0.48064: 31%|██████████ | 5/16 [00:07<00:09, 1.20it/s]
epoch 5 | valid.f_iou 0.4035100042819977, valid.f_f-score 0.48064: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 5 | valid.f_iou 0.4092499911785126, valid.f_f-score 0.49606: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 5 | valid.f_iou 0.4092499911785126, valid.f_f-score 0.49606: 44%|██████████████ | 7/16 [00:07<00:05, 1.71it/s]
epoch 5 | valid.f_iou 0.389739990234375, valid.f_f-score 0.47535: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.71it/s]
epoch 5 | valid.f_iou 0.389739990234375, valid.f_f-score 0.47535: 50%|████████████████▌ | 8/16 [00:07<00:04, 1.92it/s]
epoch 5 | valid.f_iou 0.4435200095176697, valid.f_f-score 0.52828: 50%|████████████████ | 8/16 [00:08<00:04, 1.92it/s]
epoch 5 | valid.f_iou 0.4435200095176697, valid.f_f-score 0.52828: 56%|██████████████████ | 9/16 [00:08<00:03, 2.13it/s]
epoch 5 | valid.f_iou 0.44613999128341675, valid.f_f-score 0.53857: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.13it/s]
epoch 5 | valid.f_iou 0.44613999128341675, valid.f_f-score 0.53857: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.28it/s]
epoch 5 | valid.f_iou 0.434689998626709, valid.f_f-score 0.51841: 62%|████████████████████ | 10/16 [00:09<00:02, 2.28it/s]
epoch 5 | valid.f_iou 0.434689998626709, valid.f_f-score 0.51841: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.40it/s]
epoch 5 | valid.f_iou 0.42434999346733093, valid.f_f-score 0.51108: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 5 | valid.f_iou 0.42434999346733093, valid.f_f-score 0.51108: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 5 | valid.f_iou 0.43755000829696655, valid.f_f-score 0.52589: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 5 | valid.f_iou 0.43755000829696655, valid.f_f-score 0.52589: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 5 | valid.f_iou 0.4477899968624115, valid.f_f-score 0.53886: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.57it/s]
epoch 5 | valid.f_iou 0.4477899968624115, valid.f_f-score 0.53886: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 5 | valid.f_iou 0.45539000630378723, valid.f_f-score 0.54641: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 5 | valid.f_iou 0.45539000630378723, valid.f_f-score 0.54641: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 5 | valid.f_iou 0.4689500033855438, valid.f_f-score 0.56061: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.64it/s]
epoch 5 | valid.f_iou 0.4689500033855438, valid.f_f-score 0.56061: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 5 | valid.f_iou 0.4689500033855438, valid.f_f-score 0.56061: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 6 | loss 2.0466055870056152, f_iou 0.06842599809169769: 0%| | 0/74 [00:05, ?it/s]
epoch 6 | loss 2.0466055870056152, f_iou 0.06842599809169769: 1%|▌ | 1/74 [00:05<06:28, 5.33s/it]
epoch 6 | loss 2.7251152992248535, f_iou 0.06603872776031494: 1%|▌ | 1/74 [00:06<06:28, 5.33s/it]
epoch 6 | loss 2.7251152992248535, f_iou 0.06603872776031494: 3%|█ | 2/74 [00:06<03:12, 2.67s/it]
epoch 6 | loss 7.964922904968262, f_iou 0.04605267941951752: 3%|█ | 2/74 [00:06<03:12, 2.67s/it]
epoch 6 | loss 7.964922904968262, f_iou 0.04605267941951752: 4%|█▌ | 3/74 [00:06<02:09, 1.82s/it]
epoch 6 | loss 4.44281530380249, f_iou 0.24324825406074524: 4%|█▌ | 3/74 [00:07<02:09, 1.82s/it]
epoch 6 | loss 4.44281530380249, f_iou 0.24324825406074524: 5%|██ | 4/74 [00:07<01:39, 1.42s/it]
epoch 6 | loss 15.665283203125, f_iou 0.38952717185020447: 5%|██▏ | 4/74 [00:08<01:39, 1.42s/it]
epoch 6 | loss 15.665283203125, f_iou 0.38952717185020447: 7%|██▋ | 5/74 [00:08<01:22, 1.19s/it]
epoch 6 | loss 3.9580307006835938, f_iou 0.35254043340682983: 7%|██▌ | 5/74 [00:09<01:22, 1.19s/it]
epoch 6 | loss 3.9580307006835938, f_iou 0.35254043340682983: 8%|███ | 6/74 [00:09<01:11, 1.06s/it]
epoch 6 | loss 4.821629047393799, f_iou 0.33267730474472046: 8%|███ | 6/74 [00:10<01:11, 1.06s/it]
epoch 6 | loss 4.821629047393799, f_iou 0.33267730474472046: 9%|███▌ | 7/74 [00:10<01:04, 1.04it/s]
epoch 6 | loss 2.04825496673584, f_iou 0.29700911045074463: 9%|███▋ | 7/74 [00:10<01:04, 1.04it/s]
epoch 6 | loss 2.04825496673584, f_iou 0.29700911045074463: 11%|████▏ | 8/74 [00:10<01:00, 1.10it/s]
epoch 6 | loss 4.326542854309082, f_iou 0.27715209126472473: 11%|████ | 8/74 [00:11<01:00, 1.10it/s]
epoch 6 | loss 4.326542854309082, f_iou 0.27715209126472473: 12%|████▌ | 9/74 [00:11<00:56, 1.15it/s]
epoch 6 | loss 5.607807636260986, f_iou 0.3394860327243805: 12%|████▋ | 9/74 [00:12<00:56, 1.15it/s]
epoch 6 | loss 5.607807636260986, f_iou 0.3394860327243805: 14%|█████▏ | 10/74 [00:12<00:52, 1.21it/s]
epoch 6 | loss 6.5034284591674805, f_iou 0.32844606041908264: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 6 | loss 6.5034284591674805, f_iou 0.32844606041908264: 15%|█████▎ | 11/74 [00:13<00:50, 1.26it/s]
epoch 6 | loss 3.9901742935180664, f_iou 0.3032251000404358: 15%|█████▌ | 11/74 [00:13<00:50, 1.26it/s]
epoch 6 | loss 3.9901742935180664, f_iou 0.3032251000404358: 16%|██████ | 12/74 [00:13<00:47, 1.29it/s]
epoch 6 | loss 8.15024185180664, f_iou 0.28290992975234985: 16%|██████▏ | 12/74 [00:14<00:47, 1.29it/s]
epoch 6 | loss 8.15024185180664, f_iou 0.28290992975234985: 18%|██████▋ | 13/74 [00:14<00:46, 1.32it/s]
epoch 6 | loss 7.7904181480407715, f_iou 0.26374340057373047: 18%|██████▎ | 13/74 [00:15<00:46, 1.32it/s]
epoch 6 | loss 7.7904181480407715, f_iou 0.26374340057373047: 19%|██████▊ | 14/74 [00:15<00:44, 1.34it/s]
epoch 6 | loss 1.764229416847229, f_iou 0.25271257758140564: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 6 | loss 1.764229416847229, f_iou 0.25271257758140564: 20%|███████▌ | 15/74 [00:16<00:43, 1.35it/s]
epoch 6 | loss 5.575531005859375, f_iou 0.25452569127082825: 20%|███████▌ | 15/74 [00:16<00:43, 1.35it/s]
epoch 6 | loss 5.575531005859375, f_iou 0.25452569127082825: 22%|████████ | 16/74 [00:16<00:42, 1.37it/s]
epoch 6 | loss 4.859679222106934, f_iou 0.25801578164100647: 22%|████████ | 16/74 [00:17<00:42, 1.37it/s]
epoch 6 | loss 4.859679222106934, f_iou 0.25801578164100647: 23%|████████▌ | 17/74 [00:17<00:41, 1.37it/s]
epoch 6 | loss 4.514120101928711, f_iou 0.278009295463562: 23%|████████▉ | 17/74 [00:18<00:41, 1.37it/s]
epoch 6 | loss 4.514120101928711, f_iou 0.278009295463562: 24%|█████████▍ | 18/74 [00:18<00:40, 1.37it/s]
epoch 6 | loss 2.3101894855499268, f_iou 0.2641349732875824: 24%|█████████ | 18/74 [00:18<00:40, 1.37it/s]
epoch 6 | loss 2.3101894855499268, f_iou 0.2641349732875824: 26%|█████████▌ | 19/74 [00:18<00:39, 1.38it/s]
epoch 6 | loss 6.644153594970703, f_iou 0.25616177916526794: 26%|█████████▌ | 19/74 [00:19<00:39, 1.38it/s]
epoch 6 | loss 6.644153594970703, f_iou 0.25616177916526794: 27%|██████████ | 20/74 [00:19<00:39, 1.38it/s]
epoch 6 | loss 5.898449897766113, f_iou 0.2643764317035675: 27%|██████████▎ | 20/74 [00:20<00:39, 1.38it/s]
epoch 6 | loss 5.898449897766113, f_iou 0.2643764317035675: 28%|██████████▊ | 21/74 [00:20<00:38, 1.38it/s]
epoch 6 | loss 4.398663520812988, f_iou 0.2668325901031494: 28%|██████████▊ | 21/74 [00:21<00:38, 1.38it/s]
epoch 6 | loss 4.398663520812988, f_iou 0.2668325901031494: 30%|███████████▎ | 22/74 [00:21<00:37, 1.37it/s]
epoch 6 | loss 5.002110958099365, f_iou 0.27005061507225037: 30%|███████████ | 22/74 [00:21<00:37, 1.37it/s]
epoch 6 | loss 5.002110958099365, f_iou 0.27005061507225037: 31%|███████████▌ | 23/74 [00:21<00:37, 1.38it/s]
epoch 6 | loss 4.952148914337158, f_iou 0.29282230138778687: 31%|███████████▌ | 23/74 [00:22<00:37, 1.38it/s]
epoch 6 | loss 4.952148914337158, f_iou 0.29282230138778687: 32%|████████████ | 24/74 [00:22<00:36, 1.38it/s]
epoch 6 | loss 5.126119136810303, f_iou 0.28766903281211853: 32%|████████████ | 24/74 [00:23<00:36, 1.38it/s]
epoch 6 | loss 5.126119136810303, f_iou 0.28766903281211853: 34%|████████████▌ | 25/74 [00:23<00:35, 1.38it/s]
epoch 6 | loss 5.457541465759277, f_iou 0.2892831861972809: 34%|████████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 6 | loss 5.457541465759277, f_iou 0.2892831861972809: 35%|█████████████▎ | 26/74 [00:24<00:35, 1.36it/s]
epoch 6 | loss 10.77066421508789, f_iou 0.27856898307800293: 35%|█████████████ | 26/74 [00:24<00:35, 1.36it/s]
epoch 6 | loss 10.77066421508789, f_iou 0.27856898307800293: 36%|█████████████▌ | 27/74 [00:24<00:35, 1.33it/s]
epoch 6 | loss 3.9081971645355225, f_iou 0.2686232924461365: 36%|█████████████▌ | 27/74 [00:25<00:35, 1.33it/s]
epoch 6 | loss 3.9081971645355225, f_iou 0.2686232924461365: 38%|██████████████ | 28/74 [00:25<00:35, 1.31it/s]
epoch 6 | loss 5.8095479011535645, f_iou 0.26253727078437805: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.31it/s]
epoch 6 | loss 5.8095479011535645, f_iou 0.26253727078437805: 39%|██████████████ | 29/74 [00:26<00:34, 1.30it/s]
epoch 6 | loss 5.591960906982422, f_iou 0.2661733031272888: 39%|██████████████▉ | 29/74 [00:27<00:34, 1.30it/s]
epoch 6 | loss 5.591960906982422, f_iou 0.2661733031272888: 41%|███████████████▍ | 30/74 [00:27<00:34, 1.29it/s]
epoch 6 | loss 1.64572274684906, f_iou 0.2587052881717682: 41%|███████████████▊ | 30/74 [00:27<00:34, 1.29it/s]
epoch 6 | loss 1.64572274684906, f_iou 0.2587052881717682: 42%|████████████████▎ | 31/74 [00:27<00:33, 1.28it/s]
epoch 6 | loss 4.602474689483643, f_iou 0.25327134132385254: 42%|███████████████▌ | 31/74 [00:28<00:33, 1.28it/s]
epoch 6 | loss 4.602474689483643, f_iou 0.25327134132385254: 43%|████████████████ | 32/74 [00:28<00:32, 1.29it/s]
epoch 6 | loss 3.416508197784424, f_iou 0.2571018934249878: 43%|████████████████▍ | 32/74 [00:29<00:32, 1.29it/s]
epoch 6 | loss 3.416508197784424, f_iou 0.2571018934249878: 45%|████████████████▉ | 33/74 [00:29<00:30, 1.33it/s]
epoch 6 | loss 4.837950706481934, f_iou 0.2589382827281952: 45%|████████████████▉ | 33/74 [00:30<00:30, 1.33it/s]
epoch 6 | loss 4.837950706481934, f_iou 0.2589382827281952: 46%|█████████████████▍ | 34/74 [00:30<00:29, 1.34it/s]
epoch 6 | loss 5.318628787994385, f_iou 0.26720863580703735: 46%|█████████████████ | 34/74 [00:30<00:29, 1.34it/s]
epoch 6 | loss 5.318628787994385, f_iou 0.26720863580703735: 47%|█████████████████▌ | 35/74 [00:30<00:28, 1.35it/s]
epoch 6 | loss 6.5992112159729, f_iou 0.265064001083374: 47%|███████████████████▍ | 35/74 [00:31<00:28, 1.35it/s]
epoch 6 | loss 6.5992112159729, f_iou 0.265064001083374: 49%|███████████████████▉ | 36/74 [00:31<00:28, 1.35it/s]
epoch 6 | loss 8.367935180664062, f_iou 0.2673579752445221: 49%|██████████████████▍ | 36/74 [00:32<00:28, 1.35it/s]
epoch 6 | loss 8.367935180664062, f_iou 0.2673579752445221: 50%|███████████████████ | 37/74 [00:32<00:27, 1.34it/s]
epoch 6 | loss 5.194032192230225, f_iou 0.26524969935417175: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.34it/s]
epoch 6 | loss 5.194032192230225, f_iou 0.26524969935417175: 51%|███████████████████ | 38/74 [00:33<00:27, 1.32it/s]
epoch 6 | loss 2.6050453186035156, f_iou 0.2791370153427124: 51%|███████████████████ | 38/74 [00:33<00:27, 1.32it/s]
epoch 6 | loss 2.6050453186035156, f_iou 0.2791370153427124: 53%|███████████████████▍ | 39/74 [00:33<00:26, 1.30it/s]
epoch 6 | loss 3.6937918663024902, f_iou 0.28403565287590027: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.30it/s]
epoch 6 | loss 3.6937918663024902, f_iou 0.28403565287590027: 54%|███████████████████▍ | 40/74 [00:34<00:26, 1.29it/s]
epoch 6 | loss 3.785219430923462, f_iou 0.27911919355392456: 54%|████████████████████ | 40/74 [00:35<00:26, 1.29it/s]
epoch 6 | loss 3.785219430923462, f_iou 0.27911919355392456: 55%|████████████████████▌ | 41/74 [00:35<00:25, 1.28it/s]
epoch 6 | loss 5.761693954467773, f_iou 0.2724912762641907: 55%|█████████████████████ | 41/74 [00:36<00:25, 1.28it/s]
epoch 6 | loss 5.761693954467773, f_iou 0.2724912762641907: 57%|█████████████████████▌ | 42/74 [00:36<00:25, 1.28it/s]
epoch 6 | loss 4.207935333251953, f_iou 0.2689540684223175: 57%|█████████████████████▌ | 42/74 [00:37<00:25, 1.28it/s]
epoch 6 | loss 4.207935333251953, f_iou 0.2689540684223175: 58%|██████████████████████ | 43/74 [00:37<00:23, 1.30it/s]
epoch 6 | loss 3.909984588623047, f_iou 0.27952054142951965: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.30it/s]
epoch 6 | loss 3.909984588623047, f_iou 0.27952054142951965: 59%|██████████████████████ | 44/74 [00:37<00:22, 1.32it/s]
epoch 6 | loss 3.2889788150787354, f_iou 0.29346156120300293: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.32it/s]
epoch 6 | loss 3.2889788150787354, f_iou 0.29346156120300293: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.34it/s]
epoch 6 | loss 2.677511215209961, f_iou 0.30177661776542664: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.34it/s]
epoch 6 | loss 2.677511215209961, f_iou 0.30177661776542664: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.36it/s]
epoch 6 | loss 7.464848518371582, f_iou 0.30203133821487427: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.36it/s]
epoch 6 | loss 7.464848518371582, f_iou 0.30203133821487427: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.36it/s]
epoch 6 | loss 6.19471549987793, f_iou 0.2992568612098694: 64%|████████████████████████▊ | 47/74 [00:40<00:19, 1.36it/s]
epoch 6 | loss 6.19471549987793, f_iou 0.2992568612098694: 65%|█████████████████████████▎ | 48/74 [00:40<00:18, 1.37it/s]
epoch 6 | loss 4.536059379577637, f_iou 0.30284425616264343: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.37it/s]
epoch 6 | loss 4.536059379577637, f_iou 0.30284425616264343: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.38it/s]
epoch 6 | loss 4.818286418914795, f_iou 0.2991408109664917: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 6 | loss 4.818286418914795, f_iou 0.2991408109664917: 68%|█████████████████████████▋ | 50/74 [00:42<00:17, 1.38it/s]
epoch 6 | loss 8.00192642211914, f_iou 0.2934887707233429: 68%|██████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 6 | loss 8.00192642211914, f_iou 0.2934887707233429: 69%|██████████████████████████▉ | 51/74 [00:42<00:17, 1.34it/s]
epoch 6 | loss 6.412015438079834, f_iou 0.29381465911865234: 69%|█████████████████████████▌ | 51/74 [00:43<00:17, 1.34it/s]
epoch 6 | loss 6.412015438079834, f_iou 0.29381465911865234: 70%|██████████████████████████ | 52/74 [00:43<00:16, 1.32it/s]
epoch 6 | loss 3.7333011627197266, f_iou 0.28963008522987366: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.32it/s]
epoch 6 | loss 3.7333011627197266, f_iou 0.28963008522987366: 72%|█████████████████████████▊ | 53/74 [00:44<00:16, 1.30it/s]
epoch 6 | loss 2.258863687515259, f_iou 0.28719934821128845: 72%|██████████████████████████▌ | 53/74 [00:45<00:16, 1.30it/s]
epoch 6 | loss 2.258863687515259, f_iou 0.28719934821128845: 73%|███████████████████████████ | 54/74 [00:45<00:15, 1.29it/s]
epoch 6 | loss 4.483392715454102, f_iou 0.28225982189178467: 73%|███████████████████████████ | 54/74 [00:46<00:15, 1.29it/s]
epoch 6 | loss 4.483392715454102, f_iou 0.28225982189178467: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.28it/s]
epoch 6 | loss 5.441402912139893, f_iou 0.28109610080718994: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.28it/s]
epoch 6 | loss 5.441402912139893, f_iou 0.28109610080718994: 76%|████████████████████████████ | 56/74 [00:46<00:13, 1.30it/s]
epoch 6 | loss 3.826270341873169, f_iou 0.2794562578201294: 76%|████████████████████████████▊ | 56/74 [00:47<00:13, 1.30it/s]
epoch 6 | loss 3.826270341873169, f_iou 0.2794562578201294: 77%|█████████████████████████████▎ | 57/74 [00:47<00:12, 1.33it/s]
epoch 6 | loss 5.273386001586914, f_iou 0.27469733357429504: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.33it/s]
epoch 6 | loss 5.273386001586914, f_iou 0.27469733357429504: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.33it/s]
epoch 6 | loss 7.5875959396362305, f_iou 0.27278071641921997: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.33it/s]
epoch 6 | loss 7.5875959396362305, f_iou 0.27278071641921997: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.34it/s]
epoch 6 | loss 7.1900715827941895, f_iou 0.28306764364242554: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.34it/s]
epoch 6 | loss 7.1900715827941895, f_iou 0.28306764364242554: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.35it/s]
epoch 6 | loss 3.1597917079925537, f_iou 0.2829946279525757: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.35it/s]
epoch 6 | loss 3.1597917079925537, f_iou 0.2829946279525757: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.33it/s]
epoch 6 | loss 8.047130584716797, f_iou 0.2883288264274597: 82%|███████████████████████████████▎ | 61/74 [00:51<00:09, 1.33it/s]
epoch 6 | loss 8.047130584716797, f_iou 0.2883288264274597: 84%|███████████████████████████████▊ | 62/74 [00:51<00:09, 1.31it/s]
epoch 6 | loss 3.1884961128234863, f_iou 0.29066967964172363: 84%|██████████████████████████████▏ | 62/74 [00:52<00:09, 1.31it/s]
epoch 6 | loss 3.1884961128234863, f_iou 0.29066967964172363: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.30it/s]
epoch 6 | loss 9.411168098449707, f_iou 0.2861279547214508: 85%|████████████████████████████████▎ | 63/74 [00:52<00:08, 1.30it/s]
epoch 6 | loss 9.411168098449707, f_iou 0.2861279547214508: 86%|████████████████████████████████▊ | 64/74 [00:52<00:07, 1.29it/s]
epoch 6 | loss 3.435213327407837, f_iou 0.28697827458381653: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.29it/s]
epoch 6 | loss 3.435213327407837, f_iou 0.28697827458381653: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.31it/s]
epoch 6 | loss 1.4179011583328247, f_iou 0.2860245704650879: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.31it/s]
epoch 6 | loss 1.4179011583328247, f_iou 0.2860245704650879: 89%|█████████████████████████████████ | 66/74 [00:54<00:06, 1.33it/s]
epoch 6 | loss 6.182878017425537, f_iou 0.2818008363246918: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:06, 1.33it/s]
epoch 6 | loss 6.182878017425537, f_iou 0.2818008363246918: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.31it/s]
epoch 6 | loss 1.7616057395935059, f_iou 0.2847479283809662: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.31it/s]
epoch 6 | loss 1.7616057395935059, f_iou 0.2847479283809662: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.30it/s]
epoch 6 | loss 5.616484642028809, f_iou 0.280838280916214: 92%|███████████████████████████████████▊ | 68/74 [00:56<00:04, 1.30it/s]
epoch 6 | loss 5.616484642028809, f_iou 0.280838280916214: 93%|████████████████████████████████████▎ | 69/74 [00:56<00:03, 1.30it/s]
epoch 6 | loss 5.471775531768799, f_iou 0.2869354784488678: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.30it/s]
epoch 6 | loss 5.471775531768799, f_iou 0.2869354784488678: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:03, 1.29it/s]
epoch 6 | loss 2.111069917678833, f_iou 0.2889593541622162: 95%|███████████████████████████████████▉ | 70/74 [00:58<00:03, 1.29it/s]
epoch 6 | loss 2.111069917678833, f_iou 0.2889593541622162: 96%|████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.29it/s]
epoch 6 | loss 6.841940402984619, f_iou 0.2849460542201996: 96%|████████████████████████████████████▍ | 71/74 [00:59<00:02, 1.29it/s]
epoch 6 | loss 6.841940402984619, f_iou 0.2849460542201996: 97%|████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.30it/s]
epoch 6 | loss 3.300881862640381, f_iou 0.28111618757247925: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.30it/s]
epoch 6 | loss 3.300881862640381, f_iou 0.28111618757247925: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.33it/s]
epoch 6 | loss 2.051906108856201, f_iou 0.27745521068573: 99%|███████████████████████████████████████▍| 73/74 [01:00<00:00, 1.33it/s]
epoch 6 | loss 2.051906108856201, f_iou 0.27745521068573: 100%|████████████████████████████████████████| 74/74 [01:00<00:00, 1.35it/s]
epoch 6 | loss 2.051906108856201, f_iou 0.27745521068573: 100%|████████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 6 | valid.f_iou 0.42563000321388245, valid.f_f-score 0.70587: 0%| | 0/16 [00:05, ?it/s]
epoch 6 | valid.f_iou 0.42563000321388245, valid.f_f-score 0.70587: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 6 | valid.f_iou 0.28488999605178833, valid.f_f-score 0.69199: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 6 | valid.f_iou 0.28488999605178833, valid.f_f-score 0.69199: 12%|███▉ | 2/16 [00:05<00:34, 2.47s/it]
epoch 6 | valid.f_iou 0.30351999402046204, valid.f_f-score 0.69374: 12%|███▉ | 2/16 [00:06<00:34, 2.47s/it]
epoch 6 | valid.f_iou 0.30351999402046204, valid.f_f-score 0.69374: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 6 | valid.f_iou 0.34731999039649963, valid.f_f-score 0.68979: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 6 | valid.f_iou 0.34731999039649963, valid.f_f-score 0.68979: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 6 | valid.f_iou 0.3509500026702881, valid.f_f-score 0.68062: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 6 | valid.f_iou 0.3509500026702881, valid.f_f-score 0.68062: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 6 | valid.f_iou 0.3343900144100189, valid.f_f-score 0.65633: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 6 | valid.f_iou 0.3343900144100189, valid.f_f-score 0.65633: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 6 | valid.f_iou 0.3352400064468384, valid.f_f-score 0.65498: 38%|████████████ | 6/16 [00:08<00:07, 1.38it/s]
epoch 6 | valid.f_iou 0.3352400064468384, valid.f_f-score 0.65498: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 6 | valid.f_iou 0.3203499913215637, valid.f_f-score 0.64084: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 6 | valid.f_iou 0.3203499913215637, valid.f_f-score 0.64084: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 6 | valid.f_iou 0.32234999537467957, valid.f_f-score 0.6267: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 6 | valid.f_iou 0.32234999537467957, valid.f_f-score 0.6267: 56%|██████████████████ | 9/16 [00:08<00:03, 2.00it/s]
epoch 6 | valid.f_iou 0.33493998646736145, valid.f_f-score 0.63736: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.00it/s]
epoch 6 | valid.f_iou 0.33493998646736145, valid.f_f-score 0.63736: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.17it/s]
epoch 6 | valid.f_iou 0.3431200087070465, valid.f_f-score 0.63135: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.17it/s]
epoch 6 | valid.f_iou 0.3431200087070465, valid.f_f-score 0.63135: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.31it/s]
epoch 6 | valid.f_iou 0.35719001293182373, valid.f_f-score 0.65156: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 6 | valid.f_iou 0.35719001293182373, valid.f_f-score 0.65156: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 6 | valid.f_iou 0.3451800048351288, valid.f_f-score 0.65743: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.42it/s]
epoch 6 | valid.f_iou 0.3451800048351288, valid.f_f-score 0.65743: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 6 | valid.f_iou 0.32649001479148865, valid.f_f-score 0.6421: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 6 | valid.f_iou 0.32649001479148865, valid.f_f-score 0.6421: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.56it/s]
epoch 6 | valid.f_iou 0.3147299885749817, valid.f_f-score 0.6371: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.56it/s]
epoch 6 | valid.f_iou 0.3147299885749817, valid.f_f-score 0.6371: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 6 | valid.f_iou 0.315310001373291, valid.f_f-score 0.632: 94%|███████████████████████████████▉ | 15/16 [00:11<00:00, 2.60it/s]
epoch 6 | valid.f_iou 0.315310001373291, valid.f_f-score 0.632: 100%|██████████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 6 | valid.f_iou 0.315310001373291, valid.f_f-score 0.632: 100%|██████████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 6 | valid.f_iou 0.748009979724884, valid.f_f-score 0.73705: 0%| | 0/16 [00:05, ?it/s]
epoch 6 | valid.f_iou 0.748009979724884, valid.f_f-score 0.73705: 6%|██ | 1/16 [00:05<01:20, 5.36s/it]
epoch 6 | valid.f_iou 0.7986500263214111, valid.f_f-score 0.84032: 6%|██ | 1/16 [00:05<01:20, 5.36s/it]
epoch 6 | valid.f_iou 0.7986500263214111, valid.f_f-score 0.84032: 12%|████ | 2/16 [00:05<00:34, 2.49s/it]
epoch 6 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.81936: 12%|████ | 2/16 [00:06<00:34, 2.49s/it]
epoch 6 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.81936: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 6 | valid.f_iou 0.6830899715423584, valid.f_f-score 0.76966: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 6 | valid.f_iou 0.6830899715423584, valid.f_f-score 0.76966: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 6 | valid.f_iou 0.636900007724762, valid.f_f-score 0.73671: 25%|████████▎ | 4/16 [00:07<00:13, 1.13s/it]
epoch 6 | valid.f_iou 0.636900007724762, valid.f_f-score 0.73671: 31%|██████████▎ | 5/16 [00:07<00:09, 1.15it/s]
epoch 6 | valid.f_iou 0.5954399704933167, valid.f_f-score 0.70197: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 6 | valid.f_iou 0.5954399704933167, valid.f_f-score 0.70197: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 6 | valid.f_iou 0.5790899991989136, valid.f_f-score 0.69584: 38%|████████████ | 6/16 [00:08<00:07, 1.38it/s]
epoch 6 | valid.f_iou 0.5790899991989136, valid.f_f-score 0.69584: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 6 | valid.f_iou 0.5588399767875671, valid.f_f-score 0.68337: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 6 | valid.f_iou 0.5588399767875671, valid.f_f-score 0.68337: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 6 | valid.f_iou 0.5788800120353699, valid.f_f-score 0.70408: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 6 | valid.f_iou 0.5788800120353699, valid.f_f-score 0.70408: 56%|██████████████████ | 9/16 [00:08<00:03, 1.99it/s]
epoch 6 | valid.f_iou 0.5752999782562256, valid.f_f-score 0.71153: 56%|██████████████████ | 9/16 [00:09<00:03, 1.99it/s]
epoch 6 | valid.f_iou 0.5752999782562256, valid.f_f-score 0.71153: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.06it/s]
epoch 6 | valid.f_iou 0.5595999956130981, valid.f_f-score 0.68318: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.06it/s]
epoch 6 | valid.f_iou 0.5595999956130981, valid.f_f-score 0.68318: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.22it/s]
epoch 6 | valid.f_iou 0.5783699750900269, valid.f_f-score 0.70024: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.22it/s]
epoch 6 | valid.f_iou 0.5783699750900269, valid.f_f-score 0.70024: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.36it/s]
epoch 6 | valid.f_iou 0.5938500165939331, valid.f_f-score 0.71449: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.36it/s]
epoch 6 | valid.f_iou 0.5938500165939331, valid.f_f-score 0.71449: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.46it/s]
epoch 6 | valid.f_iou 0.5919399857521057, valid.f_f-score 0.7119: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.46it/s]
epoch 6 | valid.f_iou 0.5919399857521057, valid.f_f-score 0.7119: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.54it/s]
epoch 6 | valid.f_iou 0.5962100028991699, valid.f_f-score 0.71842: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.54it/s]
epoch 6 | valid.f_iou 0.5962100028991699, valid.f_f-score 0.71842: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.55it/s]
epoch 6 | valid.f_iou 0.6015400290489197, valid.f_f-score 0.7237: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.55it/s]
epoch 6 | valid.f_iou 0.6015400290489197, valid.f_f-score 0.7237: 100%|████████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 6 | valid.f_iou 0.6015400290489197, valid.f_f-score 0.7237: 100%|████████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 6 | valid.f_iou 0.748009979724884, valid.f_f-score 0.73705: 0%| | 0/16 [00:04, ?it/s]
epoch 6 | valid.f_iou 0.748009979724884, valid.f_f-score 0.73705: 6%|██ | 1/16 [00:05<01:15, 5.00s/it]
epoch 6 | valid.f_iou 0.7986500263214111, valid.f_f-score 0.84032: 6%|██ | 1/16 [00:05<01:15, 5.00s/it]
epoch 6 | valid.f_iou 0.7986500263214111, valid.f_f-score 0.84032: 12%|████ | 2/16 [00:05<00:32, 2.31s/it]
epoch 6 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.81936: 12%|████ | 2/16 [00:05<00:32, 2.31s/it]
epoch 6 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.81936: 19%|██████ | 3/16 [00:05<00:18, 1.45s/it]
epoch 6 | valid.f_iou 0.6830899715423584, valid.f_f-score 0.76966: 19%|██████ | 3/16 [00:06<00:18, 1.45s/it]
epoch 6 | valid.f_iou 0.6830899715423584, valid.f_f-score 0.76966: 25%|████████ | 4/16 [00:06<00:12, 1.03s/it]
epoch 6 | valid.f_iou 0.636900007724762, valid.f_f-score 0.73671: 25%|████████▎ | 4/16 [00:06<00:12, 1.03s/it]
epoch 6 | valid.f_iou 0.636900007724762, valid.f_f-score 0.73671: 31%|██████████▎ | 5/16 [00:06<00:08, 1.23it/s]
epoch 6 | valid.f_iou 0.5954399704933167, valid.f_f-score 0.70197: 31%|██████████ | 5/16 [00:07<00:08, 1.23it/s]
epoch 6 | valid.f_iou 0.5954399704933167, valid.f_f-score 0.70197: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 6 | valid.f_iou 0.5790899991989136, valid.f_f-score 0.69584: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 6 | valid.f_iou 0.5790899991989136, valid.f_f-score 0.69584: 44%|██████████████ | 7/16 [00:07<00:05, 1.67it/s]
epoch 6 | valid.f_iou 0.5588399767875671, valid.f_f-score 0.68337: 44%|██████████████ | 7/16 [00:07<00:05, 1.67it/s]
epoch 6 | valid.f_iou 0.5588399767875671, valid.f_f-score 0.68337: 50%|████████████████ | 8/16 [00:07<00:04, 1.83it/s]
epoch 6 | valid.f_iou 0.5788800120353699, valid.f_f-score 0.70408: 50%|████████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 6 | valid.f_iou 0.5788800120353699, valid.f_f-score 0.70408: 56%|██████████████████ | 9/16 [00:08<00:03, 2.05it/s]
epoch 6 | valid.f_iou 0.5752999782562256, valid.f_f-score 0.71153: 56%|██████████████████ | 9/16 [00:08<00:03, 2.05it/s]
epoch 6 | valid.f_iou 0.5752999782562256, valid.f_f-score 0.71153: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.23it/s]
epoch 6 | valid.f_iou 0.5595999956130981, valid.f_f-score 0.68318: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.23it/s]
epoch 6 | valid.f_iou 0.5595999956130981, valid.f_f-score 0.68318: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.35it/s]
epoch 6 | valid.f_iou 0.5783699750900269, valid.f_f-score 0.70024: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.35it/s]
epoch 6 | valid.f_iou 0.5783699750900269, valid.f_f-score 0.70024: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.45it/s]
epoch 6 | valid.f_iou 0.5938500165939331, valid.f_f-score 0.71449: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.45it/s]
epoch 6 | valid.f_iou 0.5938500165939331, valid.f_f-score 0.71449: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.52it/s]
epoch 6 | valid.f_iou 0.5919399857521057, valid.f_f-score 0.7119: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.52it/s]
epoch 6 | valid.f_iou 0.5919399857521057, valid.f_f-score 0.7119: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.58it/s]
epoch 6 | valid.f_iou 0.5962100028991699, valid.f_f-score 0.71842: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.58it/s]
epoch 6 | valid.f_iou 0.5962100028991699, valid.f_f-score 0.71842: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.63it/s]
epoch 6 | valid.f_iou 0.6015400290489197, valid.f_f-score 0.7237: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.63it/s]
epoch 6 | valid.f_iou 0.6015400290489197, valid.f_f-score 0.7237: 100%|████████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 6 | valid.f_iou 0.6015400290489197, valid.f_f-score 0.7237: 100%|████████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 7 | loss 6.219183921813965, f_iou 0.0: 0%| | 0/74 [00:06, ?it/s]
epoch 7 | loss 6.219183921813965, f_iou 0.0: 1%|▋ | 1/74 [00:06<08:06, 6.67s/it]
epoch 7 | loss 13.164410591125488, f_iou 0.3668493926525116: 1%|▌ | 1/74 [00:07<08:06, 6.67s/it]
epoch 7 | loss 13.164410591125488, f_iou 0.3668493926525116: 3%|█ | 2/74 [00:07<03:51, 3.22s/it]
epoch 7 | loss 6.715949535369873, f_iou 0.2702643871307373: 3%|█ | 2/74 [00:08<03:51, 3.22s/it]
epoch 7 | loss 6.715949535369873, f_iou 0.2702643871307373: 4%|█▌ | 3/74 [00:08<02:29, 2.11s/it]
epoch 7 | loss 3.8734445571899414, f_iou 0.3686456084251404: 4%|█▌ | 3/74 [00:09<02:29, 2.11s/it]
epoch 7 | loss 3.8734445571899414, f_iou 0.3686456084251404: 5%|██ | 4/74 [00:09<01:54, 1.64s/it]
epoch 7 | loss 4.867629051208496, f_iou 0.2953011691570282: 5%|██ | 4/74 [00:10<01:54, 1.64s/it]
epoch 7 | loss 4.867629051208496, f_iou 0.2953011691570282: 7%|██▋ | 5/74 [00:10<01:33, 1.35s/it]
epoch 7 | loss 1.0600913763046265, f_iou 0.24687322974205017: 7%|██▌ | 5/74 [00:10<01:33, 1.35s/it]
epoch 7 | loss 1.0600913763046265, f_iou 0.24687322974205017: 8%|███ | 6/74 [00:10<01:19, 1.16s/it]
epoch 7 | loss 2.8816018104553223, f_iou 0.27822989225387573: 8%|███ | 6/74 [00:11<01:19, 1.16s/it]
epoch 7 | loss 2.8816018104553223, f_iou 0.27822989225387573: 9%|███▌ | 7/74 [00:11<01:09, 1.04s/it]
epoch 7 | loss 4.801274299621582, f_iou 0.2484394758939743: 9%|███▋ | 7/74 [00:12<01:09, 1.04s/it]
epoch 7 | loss 4.801274299621582, f_iou 0.2484394758939743: 11%|████▏ | 8/74 [00:12<01:03, 1.04it/s]
epoch 7 | loss 2.452883243560791, f_iou 0.3170320987701416: 11%|████▏ | 8/74 [00:13<01:03, 1.04it/s]
epoch 7 | loss 2.452883243560791, f_iou 0.3170320987701416: 12%|████▋ | 9/74 [00:13<00:58, 1.10it/s]
epoch 7 | loss 4.71824836730957, f_iou 0.34118953347206116: 12%|████▋ | 9/74 [00:13<00:58, 1.10it/s]
epoch 7 | loss 4.71824836730957, f_iou 0.34118953347206116: 14%|█████▏ | 10/74 [00:13<00:55, 1.15it/s]
epoch 7 | loss 5.18408203125, f_iou 0.381279319524765: 14%|█████▊ | 10/74 [00:14<00:55, 1.15it/s]
epoch 7 | loss 5.18408203125, f_iou 0.381279319524765: 15%|██████▍ | 11/74 [00:14<00:53, 1.18it/s]
epoch 7 | loss 4.418588161468506, f_iou 0.35401642322540283: 15%|█████▌ | 11/74 [00:15<00:53, 1.18it/s]
epoch 7 | loss 4.418588161468506, f_iou 0.35401642322540283: 16%|██████ | 12/74 [00:15<00:51, 1.21it/s]
epoch 7 | loss 2.75150465965271, f_iou 0.369661808013916: 16%|██████▍ | 12/74 [00:16<00:51, 1.21it/s]
epoch 7 | loss 2.75150465965271, f_iou 0.369661808013916: 18%|███████ | 13/74 [00:16<00:49, 1.23it/s]
epoch 7 | loss 3.918976306915283, f_iou 0.3517383635044098: 18%|██████▋ | 13/74 [00:17<00:49, 1.23it/s]
epoch 7 | loss 3.918976306915283, f_iou 0.3517383635044098: 19%|███████▏ | 14/74 [00:17<00:48, 1.24it/s]
epoch 7 | loss 5.523167610168457, f_iou 0.3433591425418854: 19%|███████▏ | 14/74 [00:17<00:48, 1.24it/s]
epoch 7 | loss 5.523167610168457, f_iou 0.3433591425418854: 20%|███████▋ | 15/74 [00:17<00:46, 1.26it/s]
epoch 7 | loss 1.5415935516357422, f_iou 0.3244050443172455: 20%|███████▌ | 15/74 [00:18<00:46, 1.26it/s]
epoch 7 | loss 1.5415935516357422, f_iou 0.3244050443172455: 22%|████████ | 16/74 [00:18<00:45, 1.27it/s]
epoch 7 | loss 2.549825668334961, f_iou 0.3088013231754303: 22%|████████▏ | 16/74 [00:19<00:45, 1.27it/s]
epoch 7 | loss 2.549825668334961, f_iou 0.3088013231754303: 23%|████████▋ | 17/74 [00:19<00:44, 1.27it/s]
epoch 7 | loss 4.176812171936035, f_iou 0.2935097813606262: 23%|████████▋ | 17/74 [00:20<00:44, 1.27it/s]
epoch 7 | loss 4.176812171936035, f_iou 0.2935097813606262: 24%|█████████▏ | 18/74 [00:20<00:43, 1.27it/s]
epoch 7 | loss 8.46049690246582, f_iou 0.29997125267982483: 24%|█████████▏ | 18/74 [00:20<00:43, 1.27it/s]
epoch 7 | loss 8.46049690246582, f_iou 0.29997125267982483: 26%|█████████▊ | 19/74 [00:20<00:42, 1.30it/s]
epoch 7 | loss 5.315896511077881, f_iou 0.29081103205680847: 26%|█████████▌ | 19/74 [00:21<00:42, 1.30it/s]
epoch 7 | loss 5.315896511077881, f_iou 0.29081103205680847: 27%|██████████ | 20/74 [00:21<00:41, 1.31it/s]
epoch 7 | loss 4.849186420440674, f_iou 0.3118888735771179: 27%|██████████▎ | 20/74 [00:22<00:41, 1.31it/s]
epoch 7 | loss 4.849186420440674, f_iou 0.3118888735771179: 28%|██████████▊ | 21/74 [00:22<00:40, 1.30it/s]
epoch 7 | loss 8.186895370483398, f_iou 0.33291345834732056: 28%|██████████▌ | 21/74 [00:23<00:40, 1.30it/s]
epoch 7 | loss 8.186895370483398, f_iou 0.33291345834732056: 30%|███████████ | 22/74 [00:23<00:40, 1.29it/s]
epoch 7 | loss 10.383413314819336, f_iou 0.3582906723022461: 30%|███████████ | 22/74 [00:23<00:40, 1.29it/s]
epoch 7 | loss 10.383413314819336, f_iou 0.3582906723022461: 31%|███████████▌ | 23/74 [00:23<00:38, 1.32it/s]
epoch 7 | loss 3.7911388874053955, f_iou 0.3478742241859436: 31%|███████████▌ | 23/74 [00:24<00:38, 1.32it/s]
epoch 7 | loss 3.7911388874053955, f_iou 0.3478742241859436: 32%|████████████ | 24/74 [00:24<00:37, 1.35it/s]
epoch 7 | loss 3.3316969871520996, f_iou 0.340037077665329: 32%|████████████▎ | 24/74 [00:25<00:37, 1.35it/s]
epoch 7 | loss 3.3316969871520996, f_iou 0.340037077665329: 34%|████████████▊ | 25/74 [00:25<00:35, 1.36it/s]
epoch 7 | loss 3.430978298187256, f_iou 0.33192896842956543: 34%|████████████▌ | 25/74 [00:26<00:35, 1.36it/s]
epoch 7 | loss 3.430978298187256, f_iou 0.33192896842956543: 35%|█████████████ | 26/74 [00:26<00:35, 1.37it/s]
epoch 7 | loss 5.482939720153809, f_iou 0.3232199251651764: 35%|█████████████▎ | 26/74 [00:26<00:35, 1.37it/s]
epoch 7 | loss 5.482939720153809, f_iou 0.3232199251651764: 36%|█████████████▊ | 27/74 [00:26<00:34, 1.38it/s]
epoch 7 | loss 8.825563430786133, f_iou 0.3183535933494568: 36%|█████████████▊ | 27/74 [00:27<00:34, 1.38it/s]
epoch 7 | loss 8.825563430786133, f_iou 0.3183535933494568: 38%|██████████████▍ | 28/74 [00:27<00:33, 1.38it/s]
epoch 7 | loss 4.422584056854248, f_iou 0.3325955867767334: 38%|██████████████▍ | 28/74 [00:28<00:33, 1.38it/s]
epoch 7 | loss 4.422584056854248, f_iou 0.3325955867767334: 39%|██████████████▉ | 29/74 [00:28<00:32, 1.38it/s]
epoch 7 | loss 3.647101879119873, f_iou 0.32184919714927673: 39%|██████████████▌ | 29/74 [00:29<00:32, 1.38it/s]
epoch 7 | loss 3.647101879119873, f_iou 0.32184919714927673: 41%|███████████████ | 30/74 [00:29<00:31, 1.39it/s]
epoch 7 | loss 7.265178203582764, f_iou 0.31146693229675293: 41%|███████████████ | 30/74 [00:29<00:31, 1.39it/s]
epoch 7 | loss 7.265178203582764, f_iou 0.31146693229675293: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.38it/s]
epoch 7 | loss 4.037361145019531, f_iou 0.3080737590789795: 42%|███████████████▉ | 31/74 [00:30<00:31, 1.38it/s]
epoch 7 | loss 4.037361145019531, f_iou 0.3080737590789795: 43%|████████████████▍ | 32/74 [00:30<00:30, 1.38it/s]
epoch 7 | loss 11.790081977844238, f_iou 0.32255348563194275: 43%|███████████████▌ | 32/74 [00:31<00:30, 1.38it/s]
epoch 7 | loss 11.790081977844238, f_iou 0.32255348563194275: 45%|████████████████ | 33/74 [00:31<00:29, 1.39it/s]
epoch 7 | loss 12.077890396118164, f_iou 0.33045467734336853: 45%|████████████████ | 33/74 [00:31<00:29, 1.39it/s]
epoch 7 | loss 12.077890396118164, f_iou 0.33045467734336853: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 7 | loss 4.852056980133057, f_iou 0.3425288200378418: 46%|█████████████████▍ | 34/74 [00:32<00:28, 1.39it/s]
epoch 7 | loss 4.852056980133057, f_iou 0.3425288200378418: 47%|█████████████████▉ | 35/74 [00:32<00:28, 1.39it/s]
epoch 7 | loss 4.899328231811523, f_iou 0.355762779712677: 47%|██████████████████▍ | 35/74 [00:33<00:28, 1.39it/s]
epoch 7 | loss 4.899328231811523, f_iou 0.355762779712677: 49%|██████████████████▉ | 36/74 [00:33<00:27, 1.40it/s]
epoch 7 | loss 4.00475549697876, f_iou 0.36628225445747375: 49%|██████████████████▍ | 36/74 [00:34<00:27, 1.40it/s]
epoch 7 | loss 4.00475549697876, f_iou 0.36628225445747375: 50%|███████████████████ | 37/74 [00:34<00:26, 1.39it/s]
epoch 7 | loss 6.005465507507324, f_iou 0.35922688245773315: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.39it/s]
epoch 7 | loss 6.005465507507324, f_iou 0.35922688245773315: 51%|███████████████████ | 38/74 [00:34<00:25, 1.39it/s]
epoch 7 | loss 8.265389442443848, f_iou 0.35472366213798523: 51%|███████████████████ | 38/74 [00:35<00:25, 1.39it/s]
epoch 7 | loss 8.265389442443848, f_iou 0.35472366213798523: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 7 | loss 1.794116497039795, f_iou 0.3463206887245178: 53%|████████████████████ | 39/74 [00:36<00:25, 1.39it/s]
epoch 7 | loss 1.794116497039795, f_iou 0.3463206887245178: 54%|████████████████████▌ | 40/74 [00:36<00:24, 1.38it/s]
epoch 7 | loss 3.436915159225464, f_iou 0.340210497379303: 54%|█████████████████████ | 40/74 [00:36<00:24, 1.38it/s]
epoch 7 | loss 3.436915159225464, f_iou 0.340210497379303: 55%|█████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 7 | loss 5.912912845611572, f_iou 0.3393576145172119: 55%|█████████████████████ | 41/74 [00:37<00:23, 1.39it/s]
epoch 7 | loss 5.912912845611572, f_iou 0.3393576145172119: 57%|█████████████████████▌ | 42/74 [00:37<00:22, 1.39it/s]
epoch 7 | loss 7.42086124420166, f_iou 0.3416607081890106: 57%|██████████████████████▏ | 42/74 [00:38<00:22, 1.39it/s]
epoch 7 | loss 7.42086124420166, f_iou 0.3416607081890106: 58%|██████████████████████▋ | 43/74 [00:38<00:22, 1.39it/s]
epoch 7 | loss 7.825980186462402, f_iou 0.33735039830207825: 58%|█████████████████████▍ | 43/74 [00:39<00:22, 1.39it/s]
epoch 7 | loss 7.825980186462402, f_iou 0.33735039830207825: 59%|██████████████████████ | 44/74 [00:39<00:21, 1.39it/s]
epoch 7 | loss 5.817317962646484, f_iou 0.3459295928478241: 59%|██████████████████████▌ | 44/74 [00:39<00:21, 1.39it/s]
epoch 7 | loss 5.817317962646484, f_iou 0.3459295928478241: 61%|███████████████████████ | 45/74 [00:39<00:20, 1.39it/s]
epoch 7 | loss 7.152904510498047, f_iou 0.35354822874069214: 61%|██████████████████████▌ | 45/74 [00:40<00:20, 1.39it/s]
epoch 7 | loss 7.152904510498047, f_iou 0.35354822874069214: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.39it/s]
epoch 7 | loss 6.52518367767334, f_iou 0.34928271174430847: 62%|███████████████████████▌ | 46/74 [00:41<00:20, 1.39it/s]
epoch 7 | loss 6.52518367767334, f_iou 0.34928271174430847: 64%|████████████████████████▏ | 47/74 [00:41<00:19, 1.39it/s]
epoch 7 | loss 3.6758346557617188, f_iou 0.34476184844970703: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 7 | loss 3.6758346557617188, f_iou 0.34476184844970703: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 7 | loss 5.895930767059326, f_iou 0.3483697175979614: 65%|████████████████████████▋ | 48/74 [00:42<00:18, 1.39it/s]
epoch 7 | loss 5.895930767059326, f_iou 0.3483697175979614: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.39it/s]
epoch 7 | loss 5.129428386688232, f_iou 0.35244491696357727: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.39it/s]
epoch 7 | loss 5.129428386688232, f_iou 0.35244491696357727: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 7 | loss 6.0083160400390625, f_iou 0.3463919162750244: 68%|█████████████████████████ | 50/74 [00:44<00:17, 1.39it/s]
epoch 7 | loss 6.0083160400390625, f_iou 0.3463919162750244: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.39it/s]
epoch 7 | loss 1.7872968912124634, f_iou 0.34059104323387146: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 7 | loss 1.7872968912124634, f_iou 0.34059104323387146: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.40it/s]
epoch 7 | loss 15.02099609375, f_iou 0.3528302311897278: 70%|████████████████████████████▊ | 52/74 [00:45<00:15, 1.40it/s]
epoch 7 | loss 15.02099609375, f_iou 0.3528302311897278: 72%|█████████████████████████████▎ | 53/74 [00:45<00:15, 1.39it/s]
epoch 7 | loss 4.8276567459106445, f_iou 0.34850451350212097: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.39it/s]
epoch 7 | loss 4.8276567459106445, f_iou 0.34850451350212097: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 7 | loss 5.5894775390625, f_iou 0.3447763919830322: 73%|█████████████████████████████▏ | 54/74 [00:47<00:14, 1.39it/s]
epoch 7 | loss 5.5894775390625, f_iou 0.3447763919830322: 74%|█████████████████████████████▋ | 55/74 [00:47<00:13, 1.39it/s]
epoch 7 | loss 2.2676937580108643, f_iou 0.34942159056663513: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 7 | loss 2.2676937580108643, f_iou 0.34942159056663513: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 7 | loss 4.559277534484863, f_iou 0.3527562916278839: 76%|████████████████████████████▊ | 56/74 [00:48<00:13, 1.38it/s]
epoch 7 | loss 4.559277534484863, f_iou 0.3527562916278839: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.38it/s]
epoch 7 | loss 3.0589725971221924, f_iou 0.34920910000801086: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.38it/s]
epoch 7 | loss 3.0589725971221924, f_iou 0.34920910000801086: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 7 | loss 0.7998450994491577, f_iou 0.34382426738739014: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 7 | loss 0.7998450994491577, f_iou 0.34382426738739014: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 7 | loss 1.4721367359161377, f_iou 0.33871304988861084: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.38it/s]
epoch 7 | loss 1.4721367359161377, f_iou 0.33871304988861084: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 7 | loss 4.1736578941345215, f_iou 0.33318012952804565: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.38it/s]
epoch 7 | loss 4.1736578941345215, f_iou 0.33318012952804565: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 7 | loss 1.6951653957366943, f_iou 0.3281806707382202: 82%|██████████████████████████████▌ | 61/74 [00:52<00:09, 1.39it/s]
epoch 7 | loss 1.6951653957366943, f_iou 0.3281806707382202: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.38it/s]
epoch 7 | loss 14.833251953125, f_iou 0.3385354280471802: 84%|█████████████████████████████████▌ | 62/74 [00:52<00:08, 1.38it/s]
epoch 7 | loss 14.833251953125, f_iou 0.3385354280471802: 85%|██████████████████████████████████ | 63/74 [00:52<00:07, 1.39it/s]
epoch 7 | loss 2.2706546783447266, f_iou 0.33624717593193054: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 7 | loss 2.2706546783447266, f_iou 0.33624717593193054: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 7 | loss 4.818222999572754, f_iou 0.3373427987098694: 86%|████████████████████████████████▊ | 64/74 [00:54<00:07, 1.39it/s]
epoch 7 | loss 4.818222999572754, f_iou 0.3373427987098694: 88%|█████████████████████████████████▍ | 65/74 [00:54<00:06, 1.39it/s]
epoch 7 | loss 2.125051975250244, f_iou 0.3370460271835327: 88%|█████████████████████████████████▍ | 65/74 [00:54<00:06, 1.39it/s]
epoch 7 | loss 2.125051975250244, f_iou 0.3370460271835327: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.39it/s]
epoch 7 | loss 5.35001277923584, f_iou 0.3337053060531616: 89%|██████████████████████████████████▊ | 66/74 [00:55<00:05, 1.39it/s]
epoch 7 | loss 5.35001277923584, f_iou 0.3337053060531616: 91%|███████████████████████████████████▎ | 67/74 [00:55<00:05, 1.39it/s]
epoch 7 | loss 3.977210521697998, f_iou 0.3323729336261749: 91%|██████████████████████████████████▍ | 67/74 [00:56<00:05, 1.39it/s]
epoch 7 | loss 3.977210521697998, f_iou 0.3323729336261749: 92%|██████████████████████████████████▉ | 68/74 [00:56<00:04, 1.40it/s]
epoch 7 | loss 1.9350802898406982, f_iou 0.3280428349971771: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 7 | loss 1.9350802898406982, f_iou 0.3280428349971771: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 7 | loss 4.393864154815674, f_iou 0.32415083050727844: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 7 | loss 4.393864154815674, f_iou 0.32415083050727844: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 7 | loss 6.312679767608643, f_iou 0.32659411430358887: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 7 | loss 6.312679767608643, f_iou 0.32659411430358887: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 7 | loss 2.5176520347595215, f_iou 0.3224378228187561: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 7 | loss 2.5176520347595215, f_iou 0.3224378228187561: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 7 | loss 4.195406913757324, f_iou 0.3258521556854248: 97%|████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.41it/s]
epoch 7 | loss 4.195406913757324, f_iou 0.3258521556854248: 99%|█████████████████████████████████████▍| 73/74 [00:59<00:00, 1.41it/s]
epoch 7 | loss 7.539106369018555, f_iou 0.32200297713279724: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 7 | loss 7.539106369018555, f_iou 0.32200297713279724: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 7 | loss 7.539106369018555, f_iou 0.32200297713279724: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 7 | valid.f_iou 0.3853900134563446, valid.f_f-score 0.634: 0%| | 0/16 [00:05, ?it/s]
epoch 7 | valid.f_iou 0.3853900134563446, valid.f_f-score 0.634: 6%|██▏ | 1/16 [00:05<01:18, 5.23s/it]
epoch 7 | valid.f_iou 0.3105199933052063, valid.f_f-score 0.6858: 6%|██ | 1/16 [00:05<01:18, 5.23s/it]
epoch 7 | valid.f_iou 0.3105199933052063, valid.f_f-score 0.6858: 12%|████▏ | 2/16 [00:05<00:33, 2.43s/it]
epoch 7 | valid.f_iou 0.31571999192237854, valid.f_f-score 0.70345: 12%|███▉ | 2/16 [00:06<00:33, 2.43s/it]
epoch 7 | valid.f_iou 0.31571999192237854, valid.f_f-score 0.70345: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 7 | valid.f_iou 0.384550005197525, valid.f_f-score 0.71552: 19%|██████▏ | 3/16 [00:06<00:19, 1.52s/it]
epoch 7 | valid.f_iou 0.384550005197525, valid.f_f-score 0.71552: 25%|████████▎ | 4/16 [00:06<00:13, 1.10s/it]
epoch 7 | valid.f_iou 0.3684999942779541, valid.f_f-score 0.72005: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 7 | valid.f_iou 0.3684999942779541, valid.f_f-score 0.72005: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 7 | valid.f_iou 0.3626999855041504, valid.f_f-score 0.69331: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 7 | valid.f_iou 0.3626999855041504, valid.f_f-score 0.69331: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 7 | valid.f_iou 0.3533500134944916, valid.f_f-score 0.68562: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 7 | valid.f_iou 0.3533500134944916, valid.f_f-score 0.68562: 44%|██████████████ | 7/16 [00:07<00:05, 1.62it/s]
epoch 7 | valid.f_iou 0.33757999539375305, valid.f_f-score 0.67648: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 7 | valid.f_iou 0.33757999539375305, valid.f_f-score 0.67648: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 7 | valid.f_iou 0.3367899954319, valid.f_f-score 0.67631: 50%|█████████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 7 | valid.f_iou 0.3367899954319, valid.f_f-score 0.67631: 56%|███████████████████▋ | 9/16 [00:08<00:03, 1.99it/s]
epoch 7 | valid.f_iou 0.34738001227378845, valid.f_f-score 0.69009: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 7 | valid.f_iou 0.34738001227378845, valid.f_f-score 0.69009: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 7 | valid.f_iou 0.347680002450943, valid.f_f-score 0.67774: 62%|████████████████████ | 10/16 [00:09<00:02, 2.05it/s]
epoch 7 | valid.f_iou 0.347680002450943, valid.f_f-score 0.67774: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.21it/s]
epoch 7 | valid.f_iou 0.37101998925209045, valid.f_f-score 0.69435: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 7 | valid.f_iou 0.37101998925209045, valid.f_f-score 0.69435: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 7 | valid.f_iou 0.36719998717308044, valid.f_f-score 0.69971: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.35it/s]
epoch 7 | valid.f_iou 0.36719998717308044, valid.f_f-score 0.69971: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 7 | valid.f_iou 0.35293999314308167, valid.f_f-score 0.6911: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.46it/s]
epoch 7 | valid.f_iou 0.35293999314308167, valid.f_f-score 0.6911: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 7 | valid.f_iou 0.3386400043964386, valid.f_f-score 0.6912: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.54it/s]
epoch 7 | valid.f_iou 0.3386400043964386, valid.f_f-score 0.6912: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.59it/s]
epoch 7 | valid.f_iou 0.33566001057624817, valid.f_f-score 0.68297: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 7 | valid.f_iou 0.33566001057624817, valid.f_f-score 0.68297: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 7 | valid.f_iou 0.33566001057624817, valid.f_f-score 0.68297: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 7 | valid.f_iou 0.7377399802207947, valid.f_f-score 0.70418: 0%| | 0/16 [00:04, ?it/s]
epoch 7 | valid.f_iou 0.7377399802207947, valid.f_f-score 0.70418: 6%|██ | 1/16 [00:04<01:09, 4.60s/it]
epoch 7 | valid.f_iou 0.7976800203323364, valid.f_f-score 0.8286: 6%|██ | 1/16 [00:05<01:09, 4.60s/it]
epoch 7 | valid.f_iou 0.7976800203323364, valid.f_f-score 0.8286: 12%|████▏ | 2/16 [00:05<00:32, 2.30s/it]
epoch 7 | valid.f_iou 0.7016100287437439, valid.f_f-score 0.803: 12%|████▎ | 2/16 [00:05<00:32, 2.30s/it]
epoch 7 | valid.f_iou 0.7016100287437439, valid.f_f-score 0.803: 19%|██████▍ | 3/16 [00:05<00:18, 1.44s/it]
epoch 7 | valid.f_iou 0.6804400086402893, valid.f_f-score 0.77776: 19%|██████ | 3/16 [00:06<00:18, 1.44s/it]
epoch 7 | valid.f_iou 0.6804400086402893, valid.f_f-score 0.77776: 25%|████████ | 4/16 [00:06<00:12, 1.05s/it]
epoch 7 | valid.f_iou 0.6634399890899658, valid.f_f-score 0.77178: 25%|████████ | 4/16 [00:06<00:12, 1.05s/it]
epoch 7 | valid.f_iou 0.6634399890899658, valid.f_f-score 0.77178: 31%|██████████ | 5/16 [00:06<00:09, 1.20it/s]
epoch 7 | valid.f_iou 0.6166499853134155, valid.f_f-score 0.73322: 31%|██████████ | 5/16 [00:06<00:09, 1.20it/s]
epoch 7 | valid.f_iou 0.6166499853134155, valid.f_f-score 0.73322: 38%|████████████ | 6/16 [00:06<00:06, 1.48it/s]
epoch 7 | valid.f_iou 0.5910699963569641, valid.f_f-score 0.71628: 38%|████████████ | 6/16 [00:07<00:06, 1.48it/s]
epoch 7 | valid.f_iou 0.5910699963569641, valid.f_f-score 0.71628: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 7 | valid.f_iou 0.5667399764060974, valid.f_f-score 0.69937: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 7 | valid.f_iou 0.5667399764060974, valid.f_f-score 0.69937: 50%|████████████████ | 8/16 [00:07<00:04, 1.96it/s]
epoch 7 | valid.f_iou 0.5909600257873535, valid.f_f-score 0.72637: 50%|████████████████ | 8/16 [00:08<00:04, 1.96it/s]
epoch 7 | valid.f_iou 0.5909600257873535, valid.f_f-score 0.72637: 56%|██████████████████ | 9/16 [00:08<00:03, 2.05it/s]
epoch 7 | valid.f_iou 0.5935900211334229, valid.f_f-score 0.73265: 56%|██████████████████ | 9/16 [00:08<00:03, 2.05it/s]
epoch 7 | valid.f_iou 0.5935900211334229, valid.f_f-score 0.73265: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.21it/s]
epoch 7 | valid.f_iou 0.5830600261688232, valid.f_f-score 0.71061: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.21it/s]
epoch 7 | valid.f_iou 0.5830600261688232, valid.f_f-score 0.71061: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.24it/s]
epoch 7 | valid.f_iou 0.5997599959373474, valid.f_f-score 0.72537: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.24it/s]
epoch 7 | valid.f_iou 0.5997599959373474, valid.f_f-score 0.72537: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.37it/s]
epoch 7 | valid.f_iou 0.6115400195121765, valid.f_f-score 0.73408: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.37it/s]
epoch 7 | valid.f_iou 0.6115400195121765, valid.f_f-score 0.73408: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.47it/s]
epoch 7 | valid.f_iou 0.6094099879264832, valid.f_f-score 0.73223: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 7 | valid.f_iou 0.6094099879264832, valid.f_f-score 0.73223: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 7 | valid.f_iou 0.6250900030136108, valid.f_f-score 0.74645: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 7 | valid.f_iou 0.6250900030136108, valid.f_f-score 0.74645: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 7 | valid.f_iou 0.6230499744415283, valid.f_f-score 0.74545: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 7 | valid.f_iou 0.6230499744415283, valid.f_f-score 0.74545: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 7 | valid.f_iou 0.6230499744415283, valid.f_f-score 0.74545: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 7 | valid.f_iou 0.7377399802207947, valid.f_f-score 0.70418: 0%| | 0/16 [00:04, ?it/s]
epoch 7 | valid.f_iou 0.7377399802207947, valid.f_f-score 0.70418: 6%|██ | 1/16 [00:04<01:01, 4.08s/it]
epoch 7 | valid.f_iou 0.7976800203323364, valid.f_f-score 0.8286: 6%|██ | 1/16 [00:04<01:01, 4.08s/it]
epoch 7 | valid.f_iou 0.7976800203323364, valid.f_f-score 0.8286: 12%|████▏ | 2/16 [00:04<00:30, 2.17s/it]
epoch 7 | valid.f_iou 0.7016100287437439, valid.f_f-score 0.803: 12%|████▎ | 2/16 [00:05<00:30, 2.17s/it]
epoch 7 | valid.f_iou 0.7016100287437439, valid.f_f-score 0.803: 19%|██████▍ | 3/16 [00:05<00:18, 1.39s/it]
epoch 7 | valid.f_iou 0.6804400086402893, valid.f_f-score 0.77776: 19%|██████ | 3/16 [00:05<00:18, 1.39s/it]
epoch 7 | valid.f_iou 0.6804400086402893, valid.f_f-score 0.77776: 25%|████████ | 4/16 [00:05<00:12, 1.01s/it]
epoch 7 | valid.f_iou 0.6660799980163574, valid.f_f-score 0.77178: 25%|████████ | 4/16 [00:06<00:12, 1.01s/it]
epoch 7 | valid.f_iou 0.6660799980163574, valid.f_f-score 0.77178: 31%|██████████ | 5/16 [00:06<00:08, 1.28it/s]
epoch 7 | valid.f_iou 0.6188399791717529, valid.f_f-score 0.73322: 31%|██████████ | 5/16 [00:06<00:08, 1.28it/s]
epoch 7 | valid.f_iou 0.6188399791717529, valid.f_f-score 0.73322: 38%|████████████ | 6/16 [00:06<00:06, 1.54it/s]
epoch 7 | valid.f_iou 0.5929499864578247, valid.f_f-score 0.71628: 38%|████████████ | 6/16 [00:06<00:06, 1.54it/s]
epoch 7 | valid.f_iou 0.5929499864578247, valid.f_f-score 0.71628: 44%|██████████████ | 7/16 [00:06<00:04, 1.81it/s]
epoch 7 | valid.f_iou 0.5683799982070923, valid.f_f-score 0.69937: 44%|██████████████ | 7/16 [00:07<00:04, 1.81it/s]
epoch 7 | valid.f_iou 0.5683799982070923, valid.f_f-score 0.69937: 50%|████████████████ | 8/16 [00:07<00:03, 2.02it/s]
epoch 7 | valid.f_iou 0.5924199819564819, valid.f_f-score 0.72637: 50%|████████████████ | 8/16 [00:07<00:03, 2.02it/s]
epoch 7 | valid.f_iou 0.5924199819564819, valid.f_f-score 0.72637: 56%|██████████████████ | 9/16 [00:07<00:03, 2.22it/s]
epoch 7 | valid.f_iou 0.5949100255966187, valid.f_f-score 0.73265: 56%|██████████████████ | 9/16 [00:08<00:03, 2.22it/s]
epoch 7 | valid.f_iou 0.5949100255966187, valid.f_f-score 0.73265: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.36it/s]
epoch 7 | valid.f_iou 0.5842599868774414, valid.f_f-score 0.71061: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.36it/s]
epoch 7 | valid.f_iou 0.5842599868774414, valid.f_f-score 0.71061: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.46it/s]
epoch 7 | valid.f_iou 0.6008599996566772, valid.f_f-score 0.72537: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.46it/s]
epoch 7 | valid.f_iou 0.6008599996566772, valid.f_f-score 0.72537: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.54it/s]
epoch 7 | valid.f_iou 0.6125500202178955, valid.f_f-score 0.73408: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.54it/s]
epoch 7 | valid.f_iou 0.6125500202178955, valid.f_f-score 0.73408: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.59it/s]
epoch 7 | valid.f_iou 0.6103500127792358, valid.f_f-score 0.73223: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.59it/s]
epoch 7 | valid.f_iou 0.6103500127792358, valid.f_f-score 0.73223: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.61it/s]
epoch 7 | valid.f_iou 0.6259700059890747, valid.f_f-score 0.74645: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.61it/s]
epoch 7 | valid.f_iou 0.6259700059890747, valid.f_f-score 0.74645: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.65it/s]
epoch 7 | valid.f_iou 0.6238800287246704, valid.f_f-score 0.74545: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 7 | valid.f_iou 0.6238800287246704, valid.f_f-score 0.74545: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 7 | valid.f_iou 0.6238800287246704, valid.f_f-score 0.74545: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.57it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 8 | loss 7.943740367889404, f_iou 0.4684867858886719: 0%| | 0/74 [00:06, ?it/s]
epoch 8 | loss 7.943740367889404, f_iou 0.4684867858886719: 1%|▌ | 1/74 [00:06<08:19, 6.84s/it]
epoch 8 | loss 6.252641201019287, f_iou 0.260280579328537: 1%|▌ | 1/74 [00:07<08:19, 6.84s/it]
epoch 8 | loss 6.252641201019287, f_iou 0.260280579328537: 3%|█ | 2/74 [00:07<04:00, 3.34s/it]
epoch 8 | loss 3.074180841445923, f_iou 0.23472997546195984: 3%|█ | 2/74 [00:08<04:00, 3.34s/it]
epoch 8 | loss 3.074180841445923, f_iou 0.23472997546195984: 4%|█▌ | 3/74 [00:08<02:37, 2.22s/it]
epoch 8 | loss 7.0113205909729, f_iou 0.1988963633775711: 4%|█▋ | 3/74 [00:09<02:37, 2.22s/it]
epoch 8 | loss 7.0113205909729, f_iou 0.1988963633775711: 5%|██▏ | 4/74 [00:09<01:56, 1.67s/it]
epoch 8 | loss 3.0319008827209473, f_iou 0.3209307789802551: 5%|██ | 4/74 [00:10<01:56, 1.67s/it]
epoch 8 | loss 3.0319008827209473, f_iou 0.3209307789802551: 7%|██▌ | 5/74 [00:10<01:34, 1.36s/it]
epoch 8 | loss 5.425479888916016, f_iou 0.3388957679271698: 7%|██▋ | 5/74 [00:11<01:34, 1.36s/it]
epoch 8 | loss 5.425479888916016, f_iou 0.3388957679271698: 8%|███▏ | 6/74 [00:11<01:21, 1.20s/it]
epoch 8 | loss 2.35121488571167, f_iou 0.36022046208381653: 8%|███▏ | 6/74 [00:11<01:21, 1.20s/it]
epoch 8 | loss 2.35121488571167, f_iou 0.36022046208381653: 9%|███▋ | 7/74 [00:11<01:11, 1.07s/it]
epoch 8 | loss 1.2503571510314941, f_iou 0.33123475313186646: 9%|███▌ | 7/74 [00:12<01:11, 1.07s/it]
epoch 8 | loss 1.2503571510314941, f_iou 0.33123475313186646: 11%|████ | 8/74 [00:12<01:04, 1.02it/s]
epoch 8 | loss 8.0316801071167, f_iou 0.2944681644439697: 11%|████▍ | 8/74 [00:13<01:04, 1.02it/s]
epoch 8 | loss 8.0316801071167, f_iou 0.2944681644439697: 12%|████▉ | 9/74 [00:13<01:00, 1.08it/s]
epoch 8 | loss 1.6664727926254272, f_iou 0.27095088362693787: 12%|████▌ | 9/74 [00:14<01:00, 1.08it/s]
epoch 8 | loss 1.6664727926254272, f_iou 0.27095088362693787: 14%|████▊ | 10/74 [00:14<00:55, 1.15it/s]
epoch 8 | loss 11.603515625, f_iou 0.3279189169406891: 14%|█████▊ | 10/74 [00:15<00:55, 1.15it/s]
epoch 8 | loss 11.603515625, f_iou 0.3279189169406891: 15%|██████▍ | 11/74 [00:15<00:55, 1.14it/s]
epoch 8 | loss 5.615940093994141, f_iou 0.3677253723144531: 15%|█████▋ | 11/74 [00:15<00:55, 1.14it/s]
epoch 8 | loss 5.615940093994141, f_iou 0.3677253723144531: 16%|██████▏ | 12/74 [00:15<00:51, 1.20it/s]
epoch 8 | loss 7.280947685241699, f_iou 0.3503634035587311: 16%|██████▏ | 12/74 [00:16<00:51, 1.20it/s]
epoch 8 | loss 7.280947685241699, f_iou 0.3503634035587311: 18%|██████▋ | 13/74 [00:16<00:48, 1.25it/s]
epoch 8 | loss 9.709370613098145, f_iou 0.375583291053772: 18%|██████▊ | 13/74 [00:17<00:48, 1.25it/s]
epoch 8 | loss 9.709370613098145, f_iou 0.375583291053772: 19%|███████▍ | 14/74 [00:17<00:47, 1.26it/s]
epoch 8 | loss 3.4659547805786133, f_iou 0.3819778859615326: 19%|███████ | 14/74 [00:18<00:47, 1.26it/s]
epoch 8 | loss 3.4659547805786133, f_iou 0.3819778859615326: 20%|███████▌ | 15/74 [00:18<00:45, 1.29it/s]
epoch 8 | loss 3.6032705307006836, f_iou 0.39107218384742737: 20%|███████▎ | 15/74 [00:18<00:45, 1.29it/s]
epoch 8 | loss 3.6032705307006836, f_iou 0.39107218384742737: 22%|███████▊ | 16/74 [00:18<00:43, 1.32it/s]
epoch 8 | loss 4.722034454345703, f_iou 0.3711681365966797: 22%|████████▏ | 16/74 [00:19<00:43, 1.32it/s]
epoch 8 | loss 4.722034454345703, f_iou 0.3711681365966797: 23%|████████▋ | 17/74 [00:19<00:42, 1.34it/s]
epoch 8 | loss 1.9344284534454346, f_iou 0.3676544427871704: 23%|████████▌ | 17/74 [00:20<00:42, 1.34it/s]
epoch 8 | loss 1.9344284534454346, f_iou 0.3676544427871704: 24%|█████████ | 18/74 [00:20<00:41, 1.35it/s]
epoch 8 | loss 2.656728506088257, f_iou 0.37987709045410156: 24%|█████████ | 18/74 [00:21<00:41, 1.35it/s]
epoch 8 | loss 2.656728506088257, f_iou 0.37987709045410156: 26%|█████████▌ | 19/74 [00:21<00:40, 1.36it/s]
epoch 8 | loss 9.035629272460938, f_iou 0.36237195134162903: 26%|█████████▌ | 19/74 [00:21<00:40, 1.36it/s]
epoch 8 | loss 9.035629272460938, f_iou 0.36237195134162903: 27%|██████████ | 20/74 [00:21<00:39, 1.36it/s]
epoch 8 | loss 2.6840310096740723, f_iou 0.36364778876304626: 27%|█████████▋ | 20/74 [00:22<00:39, 1.36it/s]
epoch 8 | loss 2.6840310096740723, f_iou 0.36364778876304626: 28%|██████████▏ | 21/74 [00:22<00:39, 1.35it/s]
epoch 8 | loss 3.4799413681030273, f_iou 0.36264029145240784: 28%|██████████▏ | 21/74 [00:23<00:39, 1.35it/s]
epoch 8 | loss 3.4799413681030273, f_iou 0.36264029145240784: 30%|██████████▋ | 22/74 [00:23<00:38, 1.34it/s]
epoch 8 | loss 6.453314304351807, f_iou 0.3830372095108032: 30%|███████████▎ | 22/74 [00:24<00:38, 1.34it/s]
epoch 8 | loss 6.453314304351807, f_iou 0.3830372095108032: 31%|███████████▊ | 23/74 [00:24<00:38, 1.31it/s]
epoch 8 | loss 1.6602447032928467, f_iou 0.3670773208141327: 31%|███████████▌ | 23/74 [00:24<00:38, 1.31it/s]
epoch 8 | loss 1.6602447032928467, f_iou 0.3670773208141327: 32%|████████████ | 24/74 [00:24<00:38, 1.30it/s]
epoch 8 | loss 1.5570275783538818, f_iou 0.35246023535728455: 32%|███████████▋ | 24/74 [00:25<00:38, 1.30it/s]
epoch 8 | loss 1.5570275783538818, f_iou 0.35246023535728455: 34%|████████████▏ | 25/74 [00:25<00:37, 1.30it/s]
epoch 8 | loss 2.3108415603637695, f_iou 0.3532080352306366: 34%|████████████▌ | 25/74 [00:26<00:37, 1.30it/s]
epoch 8 | loss 2.3108415603637695, f_iou 0.3532080352306366: 35%|█████████████ | 26/74 [00:26<00:37, 1.29it/s]
epoch 8 | loss 2.238584041595459, f_iou 0.34371447563171387: 35%|█████████████ | 26/74 [00:27<00:37, 1.29it/s]
epoch 8 | loss 2.238584041595459, f_iou 0.34371447563171387: 36%|█████████████▌ | 27/74 [00:27<00:36, 1.28it/s]
epoch 8 | loss 5.972222328186035, f_iou 0.3381551206111908: 36%|█████████████▊ | 27/74 [00:27<00:36, 1.28it/s]
epoch 8 | loss 5.972222328186035, f_iou 0.3381551206111908: 38%|██████████████▍ | 28/74 [00:27<00:35, 1.30it/s]
epoch 8 | loss 8.010894775390625, f_iou 0.33826160430908203: 38%|██████████████ | 28/74 [00:28<00:35, 1.30it/s]
epoch 8 | loss 8.010894775390625, f_iou 0.33826160430908203: 39%|██████████████▌ | 29/74 [00:28<00:34, 1.31it/s]
epoch 8 | loss 4.510249614715576, f_iou 0.33722105622291565: 39%|██████████████▌ | 29/74 [00:29<00:34, 1.31it/s]
epoch 8 | loss 4.510249614715576, f_iou 0.33722105622291565: 41%|███████████████ | 30/74 [00:29<00:33, 1.31it/s]
epoch 8 | loss 2.111814022064209, f_iou 0.34874483942985535: 41%|███████████████ | 30/74 [00:30<00:33, 1.31it/s]
epoch 8 | loss 2.111814022064209, f_iou 0.34874483942985535: 42%|███████████████▌ | 31/74 [00:30<00:32, 1.33it/s]
epoch 8 | loss 5.623647212982178, f_iou 0.3464895188808441: 42%|███████████████▉ | 31/74 [00:30<00:32, 1.33it/s]
epoch 8 | loss 5.623647212982178, f_iou 0.3464895188808441: 43%|████████████████▍ | 32/74 [00:30<00:31, 1.34it/s]
epoch 8 | loss 8.662505149841309, f_iou 0.34898462891578674: 43%|████████████████ | 32/74 [00:31<00:31, 1.34it/s]
epoch 8 | loss 8.662505149841309, f_iou 0.34898462891578674: 45%|████████████████▌ | 33/74 [00:31<00:30, 1.35it/s]
epoch 8 | loss 5.524377346038818, f_iou 0.3589317798614502: 45%|████████████████▉ | 33/74 [00:32<00:30, 1.35it/s]
epoch 8 | loss 5.524377346038818, f_iou 0.3589317798614502: 46%|█████████████████▍ | 34/74 [00:32<00:29, 1.35it/s]
epoch 8 | loss 5.972174644470215, f_iou 0.36740124225616455: 46%|█████████████████ | 34/74 [00:33<00:29, 1.35it/s]
epoch 8 | loss 5.972174644470215, f_iou 0.36740124225616455: 47%|█████████████████▌ | 35/74 [00:33<00:28, 1.35it/s]
epoch 8 | loss 3.192566394805908, f_iou 0.3804780840873718: 47%|█████████████████▉ | 35/74 [00:33<00:28, 1.35it/s]
epoch 8 | loss 3.192566394805908, f_iou 0.3804780840873718: 49%|██████████████████▍ | 36/74 [00:33<00:27, 1.36it/s]
epoch 8 | loss 7.009342670440674, f_iou 0.38880887627601624: 49%|██████████████████ | 36/74 [00:34<00:27, 1.36it/s]
epoch 8 | loss 7.009342670440674, f_iou 0.38880887627601624: 50%|██████████████████▌ | 37/74 [00:34<00:27, 1.37it/s]
epoch 8 | loss 7.248903274536133, f_iou 0.3904690146446228: 50%|███████████████████ | 37/74 [00:35<00:27, 1.37it/s]
epoch 8 | loss 7.248903274536133, f_iou 0.3904690146446228: 51%|███████████████████▌ | 38/74 [00:35<00:26, 1.37it/s]
epoch 8 | loss 2.7043747901916504, f_iou 0.39208006858825684: 51%|██████████████████▍ | 38/74 [00:36<00:26, 1.37it/s]
epoch 8 | loss 2.7043747901916504, f_iou 0.39208006858825684: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.38it/s]
epoch 8 | loss 1.8528633117675781, f_iou 0.3969283998012543: 53%|███████████████████▍ | 39/74 [00:36<00:25, 1.38it/s]
epoch 8 | loss 1.8528633117675781, f_iou 0.3969283998012543: 54%|████████████████████ | 40/74 [00:36<00:24, 1.38it/s]
epoch 8 | loss 4.188628673553467, f_iou 0.40882569551467896: 54%|████████████████████ | 40/74 [00:37<00:24, 1.38it/s]
epoch 8 | loss 4.188628673553467, f_iou 0.40882569551467896: 55%|████████████████████▌ | 41/74 [00:37<00:23, 1.38it/s]
epoch 8 | loss 5.125672340393066, f_iou 0.3991534411907196: 55%|█████████████████████ | 41/74 [00:38<00:23, 1.38it/s]
epoch 8 | loss 5.125672340393066, f_iou 0.3991534411907196: 57%|█████████████████████▌ | 42/74 [00:38<00:23, 1.38it/s]
epoch 8 | loss 4.344007968902588, f_iou 0.39316466450691223: 57%|█████████████████████ | 42/74 [00:38<00:23, 1.38it/s]
epoch 8 | loss 4.344007968902588, f_iou 0.39316466450691223: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.38it/s]
epoch 8 | loss 5.123806953430176, f_iou 0.3848898410797119: 58%|██████████████████████ | 43/74 [00:39<00:22, 1.38it/s]
epoch 8 | loss 5.123806953430176, f_iou 0.3848898410797119: 59%|██████████████████████▌ | 44/74 [00:39<00:21, 1.37it/s]
epoch 8 | loss 4.591396808624268, f_iou 0.37788310647010803: 59%|██████████████████████ | 44/74 [00:40<00:21, 1.37it/s]
epoch 8 | loss 4.591396808624268, f_iou 0.37788310647010803: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.34it/s]
epoch 8 | loss 3.889799118041992, f_iou 0.37191399931907654: 61%|██████████████████████▌ | 45/74 [00:41<00:21, 1.34it/s]
epoch 8 | loss 3.889799118041992, f_iou 0.37191399931907654: 62%|███████████████████████ | 46/74 [00:41<00:21, 1.33it/s]
epoch 8 | loss 3.95757794380188, f_iou 0.36554741859436035: 62%|███████████████████████▌ | 46/74 [00:42<00:21, 1.33it/s]
epoch 8 | loss 3.95757794380188, f_iou 0.36554741859436035: 64%|████████████████████████▏ | 47/74 [00:42<00:20, 1.31it/s]
epoch 8 | loss 5.831191062927246, f_iou 0.3581465184688568: 64%|████████████████████████▏ | 47/74 [00:42<00:20, 1.31it/s]
epoch 8 | loss 5.831191062927246, f_iou 0.3581465184688568: 65%|████████████████████████▋ | 48/74 [00:42<00:20, 1.29it/s]
epoch 8 | loss 5.531102180480957, f_iou 0.35111990571022034: 65%|████████████████████████ | 48/74 [00:43<00:20, 1.29it/s]
epoch 8 | loss 5.531102180480957, f_iou 0.35111990571022034: 66%|████████████████████████▌ | 49/74 [00:43<00:19, 1.28it/s]
epoch 8 | loss 5.1445794105529785, f_iou 0.3458234965801239: 66%|████████████████████████▌ | 49/74 [00:44<00:19, 1.28it/s]
epoch 8 | loss 5.1445794105529785, f_iou 0.3458234965801239: 68%|█████████████████████████ | 50/74 [00:44<00:18, 1.27it/s]
epoch 8 | loss 3.3352034091949463, f_iou 0.33921605348587036: 68%|████████████████████████▎ | 50/74 [00:45<00:18, 1.27it/s]
epoch 8 | loss 3.3352034091949463, f_iou 0.33921605348587036: 69%|████████████████████████▊ | 51/74 [00:45<00:17, 1.28it/s]
epoch 8 | loss 5.378968238830566, f_iou 0.33373814821243286: 69%|█████████████████████████▌ | 51/74 [00:45<00:17, 1.28it/s]
epoch 8 | loss 5.378968238830566, f_iou 0.33373814821243286: 70%|██████████████████████████ | 52/74 [00:45<00:16, 1.30it/s]
epoch 8 | loss 3.2099344730377197, f_iou 0.33557718992233276: 70%|█████████████████████████▎ | 52/74 [00:46<00:16, 1.30it/s]
epoch 8 | loss 3.2099344730377197, f_iou 0.33557718992233276: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.32it/s]
epoch 8 | loss 3.228814125061035, f_iou 0.3315921425819397: 72%|███████████████████████████▏ | 53/74 [00:47<00:15, 1.32it/s]
epoch 8 | loss 3.228814125061035, f_iou 0.3315921425819397: 73%|███████████████████████████▋ | 54/74 [00:47<00:14, 1.35it/s]
epoch 8 | loss 3.0682969093322754, f_iou 0.3280523419380188: 73%|███████████████████████████ | 54/74 [00:48<00:14, 1.35it/s]
epoch 8 | loss 3.0682969093322754, f_iou 0.3280523419380188: 74%|███████████████████████████▌ | 55/74 [00:48<00:13, 1.36it/s]
epoch 8 | loss 4.49415397644043, f_iou 0.3222154378890991: 74%|████████████████████████████▉ | 55/74 [00:48<00:13, 1.36it/s]
epoch 8 | loss 4.49415397644043, f_iou 0.3222154378890991: 76%|█████████████████████████████▌ | 56/74 [00:48<00:13, 1.37it/s]
epoch 8 | loss 6.389960289001465, f_iou 0.3185851275920868: 76%|████████████████████████████▊ | 56/74 [00:49<00:13, 1.37it/s]
epoch 8 | loss 6.389960289001465, f_iou 0.3185851275920868: 77%|█████████████████████████████▎ | 57/74 [00:49<00:12, 1.38it/s]
epoch 8 | loss 5.401540279388428, f_iou 0.31557878851890564: 77%|████████████████████████████▌ | 57/74 [00:50<00:12, 1.38it/s]
epoch 8 | loss 5.401540279388428, f_iou 0.31557878851890564: 78%|█████████████████████████████ | 58/74 [00:50<00:11, 1.38it/s]
epoch 8 | loss 7.121981143951416, f_iou 0.31025826930999756: 78%|█████████████████████████████ | 58/74 [00:50<00:11, 1.38it/s]
epoch 8 | loss 7.121981143951416, f_iou 0.31025826930999756: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.38it/s]
epoch 8 | loss 3.222531795501709, f_iou 0.31395575404167175: 80%|█████████████████████████████▌ | 59/74 [00:51<00:10, 1.38it/s]
epoch 8 | loss 3.222531795501709, f_iou 0.31395575404167175: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.36it/s]
epoch 8 | loss 2.7242138385772705, f_iou 0.31121698021888733: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.36it/s]
epoch 8 | loss 2.7242138385772705, f_iou 0.31121698021888733: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.34it/s]
epoch 8 | loss 2.0045950412750244, f_iou 0.3074316680431366: 82%|██████████████████████████████▌ | 61/74 [00:53<00:09, 1.34it/s]
epoch 8 | loss 2.0045950412750244, f_iou 0.3074316680431366: 84%|███████████████████████████████ | 62/74 [00:53<00:09, 1.33it/s]
epoch 8 | loss 6.553508758544922, f_iou 0.30255305767059326: 84%|███████████████████████████████ | 62/74 [00:53<00:09, 1.33it/s]
epoch 8 | loss 6.553508758544922, f_iou 0.30255305767059326: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.33it/s]
epoch 8 | loss 4.9775495529174805, f_iou 0.30167803168296814: 85%|██████████████████████████████▋ | 63/74 [00:54<00:08, 1.33it/s]
epoch 8 | loss 4.9775495529174805, f_iou 0.30167803168296814: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.35it/s]
epoch 8 | loss 3.1938235759735107, f_iou 0.29877668619155884: 86%|███████████████████████████████▏ | 64/74 [00:55<00:07, 1.35it/s]
epoch 8 | loss 3.1938235759735107, f_iou 0.29877668619155884: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.36it/s]
epoch 8 | loss 3.02047061920166, f_iou 0.30432701110839844: 88%|█████████████████████████████████▍ | 65/74 [00:56<00:06, 1.36it/s]
epoch 8 | loss 3.02047061920166, f_iou 0.30432701110839844: 89%|█████████████████████████████████▉ | 66/74 [00:56<00:05, 1.36it/s]
epoch 8 | loss 4.041177272796631, f_iou 0.307814359664917: 89%|██████████████████████████████████▊ | 66/74 [00:56<00:05, 1.36it/s]
epoch 8 | loss 4.041177272796631, f_iou 0.307814359664917: 91%|███████████████████████████████████▎ | 67/74 [00:56<00:05, 1.37it/s]
epoch 8 | loss 3.2922799587249756, f_iou 0.31333673000335693: 91%|████████████████████████████████▌ | 67/74 [00:57<00:05, 1.37it/s]
epoch 8 | loss 3.2922799587249756, f_iou 0.31333673000335693: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.38it/s]
epoch 8 | loss 12.340368270874023, f_iou 0.3173111379146576: 92%|██████████████████████████████████ | 68/74 [00:58<00:04, 1.38it/s]
epoch 8 | loss 12.340368270874023, f_iou 0.3173111379146576: 93%|██████████████████████████████████▌ | 69/74 [00:58<00:03, 1.39it/s]
epoch 8 | loss 6.219339370727539, f_iou 0.32293328642845154: 93%|██████████████████████████████████▌ | 69/74 [00:59<00:03, 1.39it/s]
epoch 8 | loss 6.219339370727539, f_iou 0.32293328642845154: 95%|███████████████████████████████████ | 70/74 [00:59<00:02, 1.39it/s]
epoch 8 | loss 2.978707790374756, f_iou 0.32715970277786255: 95%|███████████████████████████████████ | 70/74 [00:59<00:02, 1.39it/s]
epoch 8 | loss 2.978707790374756, f_iou 0.32715970277786255: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 8 | loss 5.627373695373535, f_iou 0.3234194219112396: 96%|████████████████████████████████████▍ | 71/74 [01:00<00:02, 1.39it/s]
epoch 8 | loss 5.627373695373535, f_iou 0.3234194219112396: 97%|████████████████████████████████████▉ | 72/74 [01:00<00:01, 1.40it/s]
epoch 8 | loss 3.9457709789276123, f_iou 0.32942768931388855: 97%|███████████████████████████████████ | 72/74 [01:01<00:01, 1.40it/s]
epoch 8 | loss 3.9457709789276123, f_iou 0.32942768931388855: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.40it/s]
epoch 8 | loss 5.236201286315918, f_iou 0.32690465450286865: 99%|████████████████████████████████████▌| 73/74 [01:01<00:00, 1.40it/s]
epoch 8 | loss 5.236201286315918, f_iou 0.32690465450286865: 100%|█████████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 8 | loss 5.236201286315918, f_iou 0.32690465450286865: 100%|█████████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 8 | valid.f_iou 0.7436400055885315, valid.f_f-score 0.72308: 0%| | 0/16 [00:05, ?it/s]
epoch 8 | valid.f_iou 0.7436400055885315, valid.f_f-score 0.72308: 6%|██ | 1/16 [00:05<01:22, 5.53s/it]
epoch 8 | valid.f_iou 0.5534200072288513, valid.f_f-score 0.70832: 6%|██ | 1/16 [00:05<01:22, 5.53s/it]
epoch 8 | valid.f_iou 0.5534200072288513, valid.f_f-score 0.70832: 12%|████ | 2/16 [00:05<00:35, 2.54s/it]
epoch 8 | valid.f_iou 0.5293700098991394, valid.f_f-score 0.70393: 12%|████ | 2/16 [00:06<00:35, 2.54s/it]
epoch 8 | valid.f_iou 0.5293700098991394, valid.f_f-score 0.70393: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 8 | valid.f_iou 0.544409990310669, valid.f_f-score 0.70591: 19%|██████▏ | 3/16 [00:06<00:20, 1.59s/it]
epoch 8 | valid.f_iou 0.544409990310669, valid.f_f-score 0.70591: 25%|████████▎ | 4/16 [00:06<00:13, 1.15s/it]
epoch 8 | valid.f_iou 0.5143600106239319, valid.f_f-score 0.69938: 25%|████████ | 4/16 [00:07<00:13, 1.15s/it]
epoch 8 | valid.f_iou 0.5143600106239319, valid.f_f-score 0.69938: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 8 | valid.f_iou 0.497189998626709, valid.f_f-score 0.6756: 31%|██████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 8 | valid.f_iou 0.497189998626709, valid.f_f-score 0.6756: 38%|████████████▊ | 6/16 [00:07<00:07, 1.34it/s]
epoch 8 | valid.f_iou 0.4846299886703491, valid.f_f-score 0.67226: 38%|████████████ | 6/16 [00:08<00:07, 1.34it/s]
epoch 8 | valid.f_iou 0.4846299886703491, valid.f_f-score 0.67226: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 8 | valid.f_iou 0.4651600122451782, valid.f_f-score 0.66331: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 8 | valid.f_iou 0.4651600122451782, valid.f_f-score 0.66331: 50%|████████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 8 | valid.f_iou 0.4593999981880188, valid.f_f-score 0.65577: 50%|████████████████ | 8/16 [00:09<00:04, 1.74it/s]
epoch 8 | valid.f_iou 0.4593999981880188, valid.f_f-score 0.65577: 56%|██████████████████ | 9/16 [00:09<00:03, 1.89it/s]
epoch 8 | valid.f_iou 0.469539999961853, valid.f_f-score 0.66807: 56%|██████████████████▌ | 9/16 [00:09<00:03, 1.89it/s]
epoch 8 | valid.f_iou 0.469539999961853, valid.f_f-score 0.66807: 62%|████████████████████ | 10/16 [00:09<00:02, 2.09it/s]
epoch 8 | valid.f_iou 0.46606001257896423, valid.f_f-score 0.66119: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 8 | valid.f_iou 0.46606001257896423, valid.f_f-score 0.66119: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 8 | valid.f_iou 0.4922100007534027, valid.f_f-score 0.68038: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.25it/s]
epoch 8 | valid.f_iou 0.4922100007534027, valid.f_f-score 0.68038: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.38it/s]
epoch 8 | valid.f_iou 0.4801799952983856, valid.f_f-score 0.68688: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.38it/s]
epoch 8 | valid.f_iou 0.4801799952983856, valid.f_f-score 0.68688: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 8 | valid.f_iou 0.45447999238967896, valid.f_f-score 0.67514: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 8 | valid.f_iou 0.45447999238967896, valid.f_f-score 0.67514: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 8 | valid.f_iou 0.44811999797821045, valid.f_f-score 0.67232: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.55it/s]
epoch 8 | valid.f_iou 0.44811999797821045, valid.f_f-score 0.67232: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 8 | valid.f_iou 0.4500199854373932, valid.f_f-score 0.66889: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.61it/s]
epoch 8 | valid.f_iou 0.4500199854373932, valid.f_f-score 0.66889: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 8 | valid.f_iou 0.4500199854373932, valid.f_f-score 0.66889: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 8 | valid.f_iou 0.5585299730300903, valid.f_f-score 0.65543: 0%| | 0/16 [00:05, ?it/s]
epoch 8 | valid.f_iou 0.5585299730300903, valid.f_f-score 0.65543: 6%|██ | 1/16 [00:05<01:22, 5.49s/it]
epoch 8 | valid.f_iou 0.7150999903678894, valid.f_f-score 0.80125: 6%|██ | 1/16 [00:05<01:22, 5.49s/it]
epoch 8 | valid.f_iou 0.7150999903678894, valid.f_f-score 0.80125: 12%|████ | 2/16 [00:05<00:35, 2.54s/it]
epoch 8 | valid.f_iou 0.6330199837684631, valid.f_f-score 0.76427: 12%|████ | 2/16 [00:06<00:35, 2.54s/it]
epoch 8 | valid.f_iou 0.6330199837684631, valid.f_f-score 0.76427: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 8 | valid.f_iou 0.6476100087165833, valid.f_f-score 0.76447: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 8 | valid.f_iou 0.6476100087165833, valid.f_f-score 0.76447: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 8 | valid.f_iou 0.5993099808692932, valid.f_f-score 0.72103: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 8 | valid.f_iou 0.5993099808692932, valid.f_f-score 0.72103: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 8 | valid.f_iou 0.5681800246238708, valid.f_f-score 0.69491: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 8 | valid.f_iou 0.5681800246238708, valid.f_f-score 0.69491: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 8 | valid.f_iou 0.5656200051307678, valid.f_f-score 0.69722: 38%|████████████ | 6/16 [00:08<00:07, 1.37it/s]
epoch 8 | valid.f_iou 0.5656200051307678, valid.f_f-score 0.69722: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 8 | valid.f_iou 0.5553299784660339, valid.f_f-score 0.68419: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 8 | valid.f_iou 0.5553299784660339, valid.f_f-score 0.68419: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 8 | valid.f_iou 0.5854300260543823, valid.f_f-score 0.70743: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 8 | valid.f_iou 0.5854300260543823, valid.f_f-score 0.70743: 56%|██████████████████ | 9/16 [00:08<00:03, 2.04it/s]
epoch 8 | valid.f_iou 0.5903000235557556, valid.f_f-score 0.7162: 56%|██████████████████▌ | 9/16 [00:09<00:03, 2.04it/s]
epoch 8 | valid.f_iou 0.5903000235557556, valid.f_f-score 0.7162: 62%|████████████████████ | 10/16 [00:09<00:02, 2.21it/s]
epoch 8 | valid.f_iou 0.5672600269317627, valid.f_f-score 0.68493: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.21it/s]
epoch 8 | valid.f_iou 0.5672600269317627, valid.f_f-score 0.68493: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.34it/s]
epoch 8 | valid.f_iou 0.5839800238609314, valid.f_f-score 0.70175: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.34it/s]
epoch 8 | valid.f_iou 0.5839800238609314, valid.f_f-score 0.70175: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.44it/s]
epoch 8 | valid.f_iou 0.596560001373291, valid.f_f-score 0.71182: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.44it/s]
epoch 8 | valid.f_iou 0.596560001373291, valid.f_f-score 0.71182: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.54it/s]
epoch 8 | valid.f_iou 0.5953699946403503, valid.f_f-score 0.70964: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.54it/s]
epoch 8 | valid.f_iou 0.5953699946403503, valid.f_f-score 0.70964: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.59it/s]
epoch 8 | valid.f_iou 0.5957800149917603, valid.f_f-score 0.70972: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.59it/s]
epoch 8 | valid.f_iou 0.5957800149917603, valid.f_f-score 0.70972: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 8 | valid.f_iou 0.6000800132751465, valid.f_f-score 0.71322: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 8 | valid.f_iou 0.6000800132751465, valid.f_f-score 0.71322: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 8 | valid.f_iou 0.6000800132751465, valid.f_f-score 0.71322: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 8 | valid.f_iou 0.5585299730300903, valid.f_f-score 0.65543: 0%| | 0/16 [00:05, ?it/s]
epoch 8 | valid.f_iou 0.5585299730300903, valid.f_f-score 0.65543: 6%|██ | 1/16 [00:05<01:20, 5.38s/it]
epoch 8 | valid.f_iou 0.7150999903678894, valid.f_f-score 0.80125: 6%|██ | 1/16 [00:05<01:20, 5.38s/it]
epoch 8 | valid.f_iou 0.7150999903678894, valid.f_f-score 0.80125: 12%|████ | 2/16 [00:05<00:34, 2.49s/it]
epoch 8 | valid.f_iou 0.6330199837684631, valid.f_f-score 0.76427: 12%|████ | 2/16 [00:06<00:34, 2.49s/it]
epoch 8 | valid.f_iou 0.6330199837684631, valid.f_f-score 0.76427: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 8 | valid.f_iou 0.6476100087165833, valid.f_f-score 0.76447: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 8 | valid.f_iou 0.6476100087165833, valid.f_f-score 0.76447: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 8 | valid.f_iou 0.5995299816131592, valid.f_f-score 0.72103: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 8 | valid.f_iou 0.5995299816131592, valid.f_f-score 0.72103: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 8 | valid.f_iou 0.5683599710464478, valid.f_f-score 0.69491: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 8 | valid.f_iou 0.5683599710464478, valid.f_f-score 0.69491: 38%|████████████ | 6/16 [00:07<00:07, 1.35it/s]
epoch 8 | valid.f_iou 0.5657699704170227, valid.f_f-score 0.69722: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 8 | valid.f_iou 0.5657699704170227, valid.f_f-score 0.69722: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 8 | valid.f_iou 0.5554699897766113, valid.f_f-score 0.68419: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 8 | valid.f_iou 0.5554699897766113, valid.f_f-score 0.68419: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 8 | valid.f_iou 0.5855500102043152, valid.f_f-score 0.70743: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 8 | valid.f_iou 0.5855500102043152, valid.f_f-score 0.70743: 56%|██████████████████ | 9/16 [00:08<00:03, 2.02it/s]
epoch 8 | valid.f_iou 0.5904099941253662, valid.f_f-score 0.7162: 56%|██████████████████▌ | 9/16 [00:09<00:03, 2.02it/s]
epoch 8 | valid.f_iou 0.5904099941253662, valid.f_f-score 0.7162: 62%|████████████████████ | 10/16 [00:09<00:02, 2.07it/s]
epoch 8 | valid.f_iou 0.567359983921051, valid.f_f-score 0.68493: 62%|████████████████████ | 10/16 [00:09<00:02, 2.07it/s]
epoch 8 | valid.f_iou 0.567359983921051, valid.f_f-score 0.68493: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.24it/s]
epoch 8 | valid.f_iou 0.5840700268745422, valid.f_f-score 0.70175: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.24it/s]
epoch 8 | valid.f_iou 0.5840700268745422, valid.f_f-score 0.70175: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.37it/s]
epoch 8 | valid.f_iou 0.5966399908065796, valid.f_f-score 0.71182: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.37it/s]
epoch 8 | valid.f_iou 0.5966399908065796, valid.f_f-score 0.71182: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 8 | valid.f_iou 0.5954499840736389, valid.f_f-score 0.70964: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 8 | valid.f_iou 0.5954499840736389, valid.f_f-score 0.70964: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.53it/s]
epoch 8 | valid.f_iou 0.5958499908447266, valid.f_f-score 0.70972: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.53it/s]
epoch 8 | valid.f_iou 0.5958499908447266, valid.f_f-score 0.70972: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 8 | valid.f_iou 0.6001499891281128, valid.f_f-score 0.71322: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 8 | valid.f_iou 0.6001499891281128, valid.f_f-score 0.71322: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 8 | valid.f_iou 0.6001499891281128, valid.f_f-score 0.71322: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 9 | loss 2.9024972915649414, f_iou 0.7789806127548218: 0%| | 0/74 [00:06, ?it/s]
epoch 9 | loss 2.9024972915649414, f_iou 0.7789806127548218: 1%|▌ | 1/74 [00:06<07:40, 6.31s/it]
epoch 9 | loss 8.629761695861816, f_iou 0.4809158742427826: 1%|▌ | 1/74 [00:07<07:40, 6.31s/it]
epoch 9 | loss 8.629761695861816, f_iou 0.4809158742427826: 3%|█ | 2/74 [00:07<03:40, 3.06s/it]
epoch 9 | loss 7.393268585205078, f_iou 0.3249139189720154: 3%|█ | 2/74 [00:07<03:40, 3.06s/it]
epoch 9 | loss 7.393268585205078, f_iou 0.3249139189720154: 4%|█▌ | 3/74 [00:07<02:26, 2.07s/it]
epoch 9 | loss 2.8447659015655518, f_iou 0.4461178183555603: 4%|█▌ | 3/74 [00:08<02:26, 2.07s/it]
epoch 9 | loss 2.8447659015655518, f_iou 0.4461178183555603: 5%|██ | 4/74 [00:08<01:48, 1.56s/it]
epoch 9 | loss 3.9189579486846924, f_iou 0.512934148311615: 5%|██ | 4/74 [00:09<01:48, 1.56s/it]
epoch 9 | loss 3.9189579486846924, f_iou 0.512934148311615: 7%|██▋ | 5/74 [00:09<01:28, 1.28s/it]
epoch 9 | loss 2.0456995964050293, f_iou 0.5618132948875427: 7%|██▌ | 5/74 [00:10<01:28, 1.28s/it]
epoch 9 | loss 2.0456995964050293, f_iou 0.5618132948875427: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 9 | loss 3.795881748199463, f_iou 0.5794419646263123: 8%|███▏ | 6/74 [00:11<01:15, 1.11s/it]
epoch 9 | loss 3.795881748199463, f_iou 0.5794419646263123: 9%|███▋ | 7/74 [00:11<01:07, 1.00s/it]
epoch 9 | loss 6.067099571228027, f_iou 0.5102231502532959: 9%|███▋ | 7/74 [00:11<01:07, 1.00s/it]
epoch 9 | loss 6.067099571228027, f_iou 0.5102231502532959: 11%|████▏ | 8/74 [00:11<01:00, 1.08it/s]
epoch 9 | loss 4.371548652648926, f_iou 0.5026566982269287: 11%|████▏ | 8/74 [00:12<01:00, 1.08it/s]
epoch 9 | loss 4.371548652648926, f_iou 0.5026566982269287: 12%|████▋ | 9/74 [00:12<00:55, 1.17it/s]
epoch 9 | loss 3.5391929149627686, f_iou 0.49352914094924927: 12%|████▌ | 9/74 [00:13<00:55, 1.17it/s]
epoch 9 | loss 3.5391929149627686, f_iou 0.49352914094924927: 14%|████▊ | 10/74 [00:13<00:52, 1.23it/s]
epoch 9 | loss 3.900786876678467, f_iou 0.4600822925567627: 14%|█████▏ | 10/74 [00:14<00:52, 1.23it/s]
epoch 9 | loss 3.900786876678467, f_iou 0.4600822925567627: 15%|█████▋ | 11/74 [00:14<00:49, 1.27it/s]
epoch 9 | loss 2.9427695274353027, f_iou 0.42267414927482605: 15%|█████▎ | 11/74 [00:14<00:49, 1.27it/s]
epoch 9 | loss 2.9427695274353027, f_iou 0.42267414927482605: 16%|█████▊ | 12/74 [00:14<00:47, 1.31it/s]
epoch 9 | loss 4.47075891494751, f_iou 0.44465842843055725: 16%|██████▏ | 12/74 [00:15<00:47, 1.31it/s]
epoch 9 | loss 4.47075891494751, f_iou 0.44465842843055725: 18%|██████▋ | 13/74 [00:15<00:45, 1.33it/s]
epoch 9 | loss 5.7002739906311035, f_iou 0.46024289727211: 18%|██████▊ | 13/74 [00:16<00:45, 1.33it/s]
epoch 9 | loss 5.7002739906311035, f_iou 0.46024289727211: 19%|███████▍ | 14/74 [00:16<00:44, 1.35it/s]
epoch 9 | loss 3.907360076904297, f_iou 0.43836262822151184: 19%|███████ | 14/74 [00:16<00:44, 1.35it/s]
epoch 9 | loss 3.907360076904297, f_iou 0.43836262822151184: 20%|███████▌ | 15/74 [00:16<00:43, 1.36it/s]
epoch 9 | loss 3.0560739040374756, f_iou 0.45670515298843384: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 9 | loss 3.0560739040374756, f_iou 0.45670515298843384: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 9 | loss 4.168210983276367, f_iou 0.44896477460861206: 22%|████████ | 16/74 [00:18<00:42, 1.37it/s]
epoch 9 | loss 4.168210983276367, f_iou 0.44896477460861206: 23%|████████▌ | 17/74 [00:18<00:41, 1.38it/s]
epoch 9 | loss 2.5087313652038574, f_iou 0.4277166426181793: 23%|████████▌ | 17/74 [00:19<00:41, 1.38it/s]
epoch 9 | loss 2.5087313652038574, f_iou 0.4277166426181793: 24%|█████████ | 18/74 [00:19<00:40, 1.38it/s]
epoch 9 | loss 7.055243015289307, f_iou 0.41855332255363464: 24%|█████████ | 18/74 [00:19<00:40, 1.38it/s]
epoch 9 | loss 7.055243015289307, f_iou 0.41855332255363464: 26%|█████████▌ | 19/74 [00:19<00:39, 1.39it/s]
epoch 9 | loss 2.7070438861846924, f_iou 0.3980999290943146: 26%|█████████▌ | 19/74 [00:20<00:39, 1.39it/s]
epoch 9 | loss 2.7070438861846924, f_iou 0.3980999290943146: 27%|██████████ | 20/74 [00:20<00:38, 1.39it/s]
epoch 9 | loss 1.682673454284668, f_iou 0.38343942165374756: 27%|██████████ | 20/74 [00:21<00:38, 1.39it/s]
epoch 9 | loss 1.682673454284668, f_iou 0.38343942165374756: 28%|██████████▌ | 21/74 [00:21<00:38, 1.39it/s]
epoch 9 | loss 1.9648520946502686, f_iou 0.37336108088493347: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 9 | loss 1.9648520946502686, f_iou 0.37336108088493347: 30%|██████████▋ | 22/74 [00:21<00:38, 1.36it/s]
epoch 9 | loss 3.8415210247039795, f_iou 0.3856729567050934: 30%|███████████ | 22/74 [00:22<00:38, 1.36it/s]
epoch 9 | loss 3.8415210247039795, f_iou 0.3856729567050934: 31%|███████████▌ | 23/74 [00:22<00:38, 1.33it/s]
epoch 9 | loss 2.695317506790161, f_iou 0.37233418226242065: 31%|███████████▌ | 23/74 [00:23<00:38, 1.33it/s]
epoch 9 | loss 2.695317506790161, f_iou 0.37233418226242065: 32%|████████████ | 24/74 [00:23<00:37, 1.32it/s]
epoch 9 | loss 3.6516685485839844, f_iou 0.38158610463142395: 32%|███████████▋ | 24/74 [00:24<00:37, 1.32it/s]
epoch 9 | loss 3.6516685485839844, f_iou 0.38158610463142395: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 9 | loss 5.624028205871582, f_iou 0.3754652142524719: 34%|████████████▊ | 25/74 [00:24<00:36, 1.33it/s]
epoch 9 | loss 5.624028205871582, f_iou 0.3754652142524719: 35%|█████████████▎ | 26/74 [00:24<00:35, 1.34it/s]
epoch 9 | loss 2.4090394973754883, f_iou 0.3842950165271759: 35%|█████████████ | 26/74 [00:25<00:35, 1.34it/s]
epoch 9 | loss 2.4090394973754883, f_iou 0.3842950165271759: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.36it/s]
epoch 9 | loss 4.356227874755859, f_iou 0.382974773645401: 36%|██████████████▏ | 27/74 [00:26<00:34, 1.36it/s]
epoch 9 | loss 4.356227874755859, f_iou 0.382974773645401: 38%|██████████████▊ | 28/74 [00:26<00:33, 1.37it/s]
epoch 9 | loss 3.6686019897460938, f_iou 0.39146164059638977: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 9 | loss 3.6686019897460938, f_iou 0.39146164059638977: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 9 | loss 1.2531229257583618, f_iou 0.38026654720306396: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 9 | loss 1.2531229257583618, f_iou 0.38026654720306396: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.38it/s]
epoch 9 | loss 2.874992847442627, f_iou 0.382200688123703: 41%|███████████████▊ | 30/74 [00:28<00:31, 1.38it/s]
epoch 9 | loss 2.874992847442627, f_iou 0.382200688123703: 42%|████████████████▎ | 31/74 [00:28<00:31, 1.38it/s]
epoch 9 | loss 4.734444618225098, f_iou 0.37735414505004883: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.38it/s]
epoch 9 | loss 4.734444618225098, f_iou 0.37735414505004883: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 9 | loss 3.764232635498047, f_iou 0.36613014340400696: 43%|████████████████ | 32/74 [00:30<00:30, 1.39it/s]
epoch 9 | loss 3.764232635498047, f_iou 0.36613014340400696: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 9 | loss 7.486003875732422, f_iou 0.36422839760780334: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 9 | loss 7.486003875732422, f_iou 0.36422839760780334: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 9 | loss 3.7177700996398926, f_iou 0.35616832971572876: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 9 | loss 3.7177700996398926, f_iou 0.35616832971572876: 47%|█████████████████ | 35/74 [00:31<00:27, 1.40it/s]
epoch 9 | loss 3.6670289039611816, f_iou 0.35596534609794617: 47%|█████████████████ | 35/74 [00:32<00:27, 1.40it/s]
epoch 9 | loss 3.6670289039611816, f_iou 0.35596534609794617: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.40it/s]
epoch 9 | loss 2.9147098064422607, f_iou 0.34925463795661926: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.40it/s]
epoch 9 | loss 2.9147098064422607, f_iou 0.34925463795661926: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 9 | loss 3.3936405181884766, f_iou 0.3577028810977936: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 9 | loss 3.3936405181884766, f_iou 0.3577028810977936: 51%|███████████████████ | 38/74 [00:33<00:25, 1.40it/s]
epoch 9 | loss 5.937786102294922, f_iou 0.34853100776672363: 51%|███████████████████ | 38/74 [00:34<00:25, 1.40it/s]
epoch 9 | loss 5.937786102294922, f_iou 0.34853100776672363: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 9 | loss 7.831862449645996, f_iou 0.3454056680202484: 53%|████████████████████ | 39/74 [00:35<00:25, 1.39it/s]
epoch 9 | loss 7.831862449645996, f_iou 0.3454056680202484: 54%|████████████████████▌ | 40/74 [00:35<00:24, 1.39it/s]
epoch 9 | loss 7.388022422790527, f_iou 0.33790498971939087: 54%|████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 9 | loss 7.388022422790527, f_iou 0.33790498971939087: 55%|████████████████████▌ | 41/74 [00:35<00:23, 1.39it/s]
epoch 9 | loss 3.280738115310669, f_iou 0.33012333512306213: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 9 | loss 3.280738115310669, f_iou 0.33012333512306213: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.39it/s]
epoch 9 | loss 3.4656920433044434, f_iou 0.3224460482597351: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.39it/s]
epoch 9 | loss 3.4656920433044434, f_iou 0.3224460482597351: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.39it/s]
epoch 9 | loss 2.560072898864746, f_iou 0.31931987404823303: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.39it/s]
epoch 9 | loss 2.560072898864746, f_iou 0.31931987404823303: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.39it/s]
epoch 9 | loss 3.889218330383301, f_iou 0.32685670256614685: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 9 | loss 3.889218330383301, f_iou 0.32685670256614685: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 9 | loss 2.8409600257873535, f_iou 0.3347936272621155: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.39it/s]
epoch 9 | loss 2.8409600257873535, f_iou 0.3347936272621155: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.37it/s]
epoch 9 | loss 2.9294021129608154, f_iou 0.3358980715274811: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.37it/s]
epoch 9 | loss 2.9294021129608154, f_iou 0.3358980715274811: 64%|███████████████████████▌ | 47/74 [00:40<00:20, 1.35it/s]
epoch 9 | loss 4.455205917358398, f_iou 0.3451957404613495: 64%|████████████████████████▏ | 47/74 [00:40<00:20, 1.35it/s]
epoch 9 | loss 4.455205917358398, f_iou 0.3451957404613495: 65%|████████████████████████▋ | 48/74 [00:40<00:19, 1.33it/s]
epoch 9 | loss 5.9280266761779785, f_iou 0.34647729992866516: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.33it/s]
epoch 9 | loss 5.9280266761779785, f_iou 0.34647729992866516: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.32it/s]
epoch 9 | loss 2.522735357284546, f_iou 0.3562700152397156: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.32it/s]
epoch 9 | loss 2.522735357284546, f_iou 0.3562700152397156: 68%|█████████████████████████▋ | 50/74 [00:42<00:18, 1.32it/s]
epoch 9 | loss 3.6374123096466064, f_iou 0.35947591066360474: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.32it/s]
epoch 9 | loss 3.6374123096466064, f_iou 0.35947591066360474: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.33it/s]
epoch 9 | loss 4.8072357177734375, f_iou 0.35779300332069397: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.33it/s]
epoch 9 | loss 4.8072357177734375, f_iou 0.35779300332069397: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.35it/s]
epoch 9 | loss 3.3652596473693848, f_iou 0.35855260491371155: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.35it/s]
epoch 9 | loss 3.3652596473693848, f_iou 0.35855260491371155: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.36it/s]
epoch 9 | loss 4.841055393218994, f_iou 0.35862964391708374: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.36it/s]
epoch 9 | loss 4.841055393218994, f_iou 0.35862964391708374: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 9 | loss 2.6112842559814453, f_iou 0.3598247766494751: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.37it/s]
epoch 9 | loss 2.6112842559814453, f_iou 0.3598247766494751: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 9 | loss 6.9095001220703125, f_iou 0.358049601316452: 74%|████████████████████████████▏ | 55/74 [00:46<00:13, 1.38it/s]
epoch 9 | loss 6.9095001220703125, f_iou 0.358049601316452: 76%|████████████████████████████▊ | 56/74 [00:46<00:13, 1.38it/s]
epoch 9 | loss 6.425646781921387, f_iou 0.3597196936607361: 76%|████████████████████████████▊ | 56/74 [00:47<00:13, 1.38it/s]
epoch 9 | loss 6.425646781921387, f_iou 0.3597196936607361: 77%|█████████████████████████████▎ | 57/74 [00:47<00:12, 1.35it/s]
epoch 9 | loss 6.198270797729492, f_iou 0.36153286695480347: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.35it/s]
epoch 9 | loss 6.198270797729492, f_iou 0.36153286695480347: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.33it/s]
epoch 9 | loss 4.99522066116333, f_iou 0.3622523248195648: 78%|██████████████████████████████▌ | 58/74 [00:49<00:12, 1.33it/s]
epoch 9 | loss 4.99522066116333, f_iou 0.3622523248195648: 80%|███████████████████████████████ | 59/74 [00:49<00:11, 1.32it/s]
epoch 9 | loss 1.6494160890579224, f_iou 0.3712492883205414: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.32it/s]
epoch 9 | loss 1.6494160890579224, f_iou 0.3712492883205414: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.31it/s]
epoch 9 | loss 1.7823477983474731, f_iou 0.375550776720047: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.31it/s]
epoch 9 | loss 1.7823477983474731, f_iou 0.375550776720047: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.34it/s]
epoch 9 | loss 2.090303897857666, f_iou 0.37685444951057434: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.34it/s]
epoch 9 | loss 2.090303897857666, f_iou 0.37685444951057434: 84%|███████████████████████████████ | 62/74 [00:51<00:09, 1.33it/s]
epoch 9 | loss 3.4754719734191895, f_iou 0.3799303472042084: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.33it/s]
epoch 9 | loss 3.4754719734191895, f_iou 0.3799303472042084: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.35it/s]
epoch 9 | loss 8.681090354919434, f_iou 0.38365018367767334: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.35it/s]
epoch 9 | loss 8.681090354919434, f_iou 0.38365018367767334: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.36it/s]
epoch 9 | loss 8.049647331237793, f_iou 0.3809855878353119: 86%|████████████████████████████████▊ | 64/74 [00:53<00:07, 1.36it/s]
epoch 9 | loss 8.049647331237793, f_iou 0.3809855878353119: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.37it/s]
epoch 9 | loss 4.785430908203125, f_iou 0.3752134442329407: 88%|█████████████████████████████████▍ | 65/74 [00:54<00:06, 1.37it/s]
epoch 9 | loss 4.785430908203125, f_iou 0.3752134442329407: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.37it/s]
epoch 9 | loss 4.280155181884766, f_iou 0.37720993161201477: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 9 | loss 4.280155181884766, f_iou 0.37720993161201477: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 9 | loss 3.3652493953704834, f_iou 0.3767686188220978: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 9 | loss 3.3652493953704834, f_iou 0.3767686188220978: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 9 | loss 6.585391998291016, f_iou 0.371335506439209: 92%|███████████████████████████████████▊ | 68/74 [00:56<00:04, 1.39it/s]
epoch 9 | loss 6.585391998291016, f_iou 0.371335506439209: 93%|████████████████████████████████████▎ | 69/74 [00:56<00:03, 1.39it/s]
epoch 9 | loss 2.6006762981414795, f_iou 0.37050604820251465: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 9 | loss 2.6006762981414795, f_iou 0.37050604820251465: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 9 | loss 6.385790824890137, f_iou 0.3720986545085907: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:02, 1.39it/s]
epoch 9 | loss 6.385790824890137, f_iou 0.3720986545085907: 96%|████████████████████████████████████▍ | 71/74 [00:57<00:02, 1.39it/s]
epoch 9 | loss 3.657862901687622, f_iou 0.3734041750431061: 96%|████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.39it/s]
epoch 9 | loss 3.657862901687622, f_iou 0.3734041750431061: 97%|████████████████████████████████████▉ | 72/74 [00:58<00:01, 1.39it/s]
epoch 9 | loss 3.1143672466278076, f_iou 0.37519100308418274: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 9 | loss 3.1143672466278076, f_iou 0.37519100308418274: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 9 | loss 4.040870666503906, f_iou 0.3740861713886261: 99%|█████████████████████████████████████▍| 73/74 [00:59<00:00, 1.40it/s]
epoch 9 | loss 4.040870666503906, f_iou 0.3740861713886261: 100%|██████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 9 | loss 4.040870666503906, f_iou 0.3740861713886261: 100%|██████████████████████████████████████| 74/74 [00:59<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 9 | valid.f_iou 0.4532899856567383, valid.f_f-score 0.72788: 0%| | 0/16 [00:05, ?it/s]
epoch 9 | valid.f_iou 0.4532899856567383, valid.f_f-score 0.72788: 6%|██ | 1/16 [00:05<01:22, 5.49s/it]
epoch 9 | valid.f_iou 0.32594001293182373, valid.f_f-score 0.66972: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 9 | valid.f_iou 0.32594001293182373, valid.f_f-score 0.66972: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 9 | valid.f_iou 0.29934999346733093, valid.f_f-score 0.6836: 12%|████ | 2/16 [00:06<00:35, 2.53s/it]
epoch 9 | valid.f_iou 0.29934999346733093, valid.f_f-score 0.6836: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 9 | valid.f_iou 0.35475000739097595, valid.f_f-score 0.69908: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 9 | valid.f_iou 0.35475000739097595, valid.f_f-score 0.69908: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 9 | valid.f_iou 0.33807000517845154, valid.f_f-score 0.69264: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 9 | valid.f_iou 0.33807000517845154, valid.f_f-score 0.69264: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 9 | valid.f_iou 0.320360004901886, valid.f_f-score 0.66987: 31%|██████████▎ | 5/16 [00:07<00:09, 1.11it/s]
epoch 9 | valid.f_iou 0.320360004901886, valid.f_f-score 0.66987: 38%|████████████▍ | 6/16 [00:07<00:07, 1.34it/s]
epoch 9 | valid.f_iou 0.3196299970149994, valid.f_f-score 0.67281: 38%|████████████ | 6/16 [00:08<00:07, 1.34it/s]
epoch 9 | valid.f_iou 0.3196299970149994, valid.f_f-score 0.67281: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 9 | valid.f_iou 0.31286001205444336, valid.f_f-score 0.67118: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 9 | valid.f_iou 0.31286001205444336, valid.f_f-score 0.67118: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 9 | valid.f_iou 0.3257499933242798, valid.f_f-score 0.66508: 50%|████████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 9 | valid.f_iou 0.3257499933242798, valid.f_f-score 0.66508: 56%|██████████████████ | 9/16 [00:08<00:03, 1.99it/s]
epoch 9 | valid.f_iou 0.32043999433517456, valid.f_f-score 0.67514: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 9 | valid.f_iou 0.32043999433517456, valid.f_f-score 0.67514: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.18it/s]
epoch 9 | valid.f_iou 0.32190001010894775, valid.f_f-score 0.66155: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.18it/s]
epoch 9 | valid.f_iou 0.32190001010894775, valid.f_f-score 0.66155: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 9 | valid.f_iou 0.33858001232147217, valid.f_f-score 0.67871: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.32it/s]
epoch 9 | valid.f_iou 0.33858001232147217, valid.f_f-score 0.67871: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 9 | valid.f_iou 0.3321399986743927, valid.f_f-score 0.68395: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.43it/s]
epoch 9 | valid.f_iou 0.3321399986743927, valid.f_f-score 0.68395: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.52it/s]
epoch 9 | valid.f_iou 0.3162600100040436, valid.f_f-score 0.66963: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.52it/s]
epoch 9 | valid.f_iou 0.3162600100040436, valid.f_f-score 0.66963: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.57it/s]
epoch 9 | valid.f_iou 0.3079400062561035, valid.f_f-score 0.67021: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.57it/s]
epoch 9 | valid.f_iou 0.3079400062561035, valid.f_f-score 0.67021: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.62it/s]
epoch 9 | valid.f_iou 0.30900999903678894, valid.f_f-score 0.6636: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.62it/s]
epoch 9 | valid.f_iou 0.30900999903678894, valid.f_f-score 0.6636: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 9 | valid.f_iou 0.30900999903678894, valid.f_f-score 0.6636: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 9 | valid.f_iou 0.6304600238800049, valid.f_f-score 0.70125: 0%| | 0/16 [00:05, ?it/s]
epoch 9 | valid.f_iou 0.6304600238800049, valid.f_f-score 0.70125: 6%|██ | 1/16 [00:05<01:20, 5.39s/it]
epoch 9 | valid.f_iou 0.6487799882888794, valid.f_f-score 0.74474: 6%|██ | 1/16 [00:05<01:20, 5.39s/it]
epoch 9 | valid.f_iou 0.6487799882888794, valid.f_f-score 0.74474: 12%|████ | 2/16 [00:05<00:34, 2.49s/it]
epoch 9 | valid.f_iou 0.5800999999046326, valid.f_f-score 0.74106: 12%|████ | 2/16 [00:06<00:34, 2.49s/it]
epoch 9 | valid.f_iou 0.5800999999046326, valid.f_f-score 0.74106: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 9 | valid.f_iou 0.5869500041007996, valid.f_f-score 0.72812: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 9 | valid.f_iou 0.5869500041007996, valid.f_f-score 0.72812: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 9 | valid.f_iou 0.5801200270652771, valid.f_f-score 0.72193: 25%|████████ | 4/16 [00:07<00:13, 1.13s/it]
epoch 9 | valid.f_iou 0.5801200270652771, valid.f_f-score 0.72193: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 9 | valid.f_iou 0.5618199706077576, valid.f_f-score 0.71993: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 9 | valid.f_iou 0.5618199706077576, valid.f_f-score 0.71993: 38%|████████████ | 6/16 [00:07<00:07, 1.35it/s]
epoch 9 | valid.f_iou 0.5590599775314331, valid.f_f-score 0.71694: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 9 | valid.f_iou 0.5590599775314331, valid.f_f-score 0.71694: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 9 | valid.f_iou 0.5537199974060059, valid.f_f-score 0.71938: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 9 | valid.f_iou 0.5537199974060059, valid.f_f-score 0.71938: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 9 | valid.f_iou 0.5855600237846375, valid.f_f-score 0.73847: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 9 | valid.f_iou 0.5855600237846375, valid.f_f-score 0.73847: 56%|██████████████████ | 9/16 [00:08<00:03, 2.02it/s]
epoch 9 | valid.f_iou 0.6071500182151794, valid.f_f-score 0.755: 56%|███████████████████▏ | 9/16 [00:09<00:03, 2.02it/s]
epoch 9 | valid.f_iou 0.6071500182151794, valid.f_f-score 0.755: 62%|████████████████████▋ | 10/16 [00:09<00:02, 2.19it/s]
epoch 9 | valid.f_iou 0.6044399738311768, valid.f_f-score 0.74546: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.19it/s]
epoch 9 | valid.f_iou 0.6044399738311768, valid.f_f-score 0.74546: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.33it/s]
epoch 9 | valid.f_iou 0.6152399778366089, valid.f_f-score 0.75671: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.33it/s]
epoch 9 | valid.f_iou 0.6152399778366089, valid.f_f-score 0.75671: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.43it/s]
epoch 9 | valid.f_iou 0.6259899735450745, valid.f_f-score 0.76404: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.43it/s]
epoch 9 | valid.f_iou 0.6259899735450745, valid.f_f-score 0.76404: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.48it/s]
epoch 9 | valid.f_iou 0.61531001329422, valid.f_f-score 0.75398: 81%|██████████████████████████▊ | 13/16 [00:10<00:01, 2.48it/s]
epoch 9 | valid.f_iou 0.61531001329422, valid.f_f-score 0.75398: 88%|████████████████████████████▉ | 14/16 [00:10<00:00, 2.55it/s]
epoch 9 | valid.f_iou 0.6288800239562988, valid.f_f-score 0.76488: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.55it/s]
epoch 9 | valid.f_iou 0.6288800239562988, valid.f_f-score 0.76488: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 9 | valid.f_iou 0.6323400139808655, valid.f_f-score 0.76541: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 9 | valid.f_iou 0.6323400139808655, valid.f_f-score 0.76541: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 9 | valid.f_iou 0.6323400139808655, valid.f_f-score 0.76541: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 9 | valid.f_iou 0.6304600238800049, valid.f_f-score 0.70125: 0%| | 0/16 [00:04, ?it/s]
epoch 9 | valid.f_iou 0.6304600238800049, valid.f_f-score 0.70125: 6%|██ | 1/16 [00:04<01:09, 4.67s/it]
epoch 9 | valid.f_iou 0.6487799882888794, valid.f_f-score 0.74474: 6%|██ | 1/16 [00:05<01:09, 4.67s/it]
epoch 9 | valid.f_iou 0.6487799882888794, valid.f_f-score 0.74474: 12%|████ | 2/16 [00:05<00:31, 2.22s/it]
epoch 9 | valid.f_iou 0.5800999999046326, valid.f_f-score 0.74106: 12%|████ | 2/16 [00:05<00:31, 2.22s/it]
epoch 9 | valid.f_iou 0.5800999999046326, valid.f_f-score 0.74106: 19%|██████ | 3/16 [00:05<00:18, 1.42s/it]
epoch 9 | valid.f_iou 0.5869500041007996, valid.f_f-score 0.72812: 19%|██████ | 3/16 [00:06<00:18, 1.42s/it]
epoch 9 | valid.f_iou 0.5869500041007996, valid.f_f-score 0.72812: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 9 | valid.f_iou 0.5874999761581421, valid.f_f-score 0.72193: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 9 | valid.f_iou 0.5874999761581421, valid.f_f-score 0.72193: 31%|██████████ | 5/16 [00:06<00:09, 1.21it/s]
epoch 9 | valid.f_iou 0.5679699778556824, valid.f_f-score 0.71993: 31%|██████████ | 5/16 [00:07<00:09, 1.21it/s]
epoch 9 | valid.f_iou 0.5679699778556824, valid.f_f-score 0.71993: 38%|████████████ | 6/16 [00:07<00:07, 1.41it/s]
epoch 9 | valid.f_iou 0.564329981803894, valid.f_f-score 0.71694: 38%|████████████▍ | 6/16 [00:07<00:07, 1.41it/s]
epoch 9 | valid.f_iou 0.564329981803894, valid.f_f-score 0.71694: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.64it/s]
epoch 9 | valid.f_iou 0.5583299994468689, valid.f_f-score 0.71938: 44%|██████████████ | 7/16 [00:07<00:05, 1.64it/s]
epoch 9 | valid.f_iou 0.5583299994468689, valid.f_f-score 0.71938: 50%|████████████████ | 8/16 [00:07<00:04, 1.79it/s]
epoch 9 | valid.f_iou 0.5896599888801575, valid.f_f-score 0.73847: 50%|████████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 9 | valid.f_iou 0.5896599888801575, valid.f_f-score 0.73847: 56%|██████████████████ | 9/16 [00:08<00:03, 2.00it/s]
epoch 9 | valid.f_iou 0.6108400225639343, valid.f_f-score 0.755: 56%|███████████████████▏ | 9/16 [00:08<00:03, 2.00it/s]
epoch 9 | valid.f_iou 0.6108400225639343, valid.f_f-score 0.755: 62%|████████████████████▋ | 10/16 [00:08<00:02, 2.18it/s]
epoch 9 | valid.f_iou 0.6078000068664551, valid.f_f-score 0.74546: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.18it/s]
epoch 9 | valid.f_iou 0.6078000068664551, valid.f_f-score 0.74546: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.31it/s]
epoch 9 | valid.f_iou 0.6183199882507324, valid.f_f-score 0.75671: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.31it/s]
epoch 9 | valid.f_iou 0.6183199882507324, valid.f_f-score 0.75671: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.43it/s]
epoch 9 | valid.f_iou 0.6288300156593323, valid.f_f-score 0.76404: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.43it/s]
epoch 9 | valid.f_iou 0.6288300156593323, valid.f_f-score 0.76404: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.50it/s]
epoch 9 | valid.f_iou 0.6179500222206116, valid.f_f-score 0.75398: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 9 | valid.f_iou 0.6179500222206116, valid.f_f-score 0.75398: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.57it/s]
epoch 9 | valid.f_iou 0.6313400268554688, valid.f_f-score 0.76488: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.57it/s]
epoch 9 | valid.f_iou 0.6313400268554688, valid.f_f-score 0.76488: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 9 | valid.f_iou 0.6346399784088135, valid.f_f-score 0.76541: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 9 | valid.f_iou 0.6346399784088135, valid.f_f-score 0.76541: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 9 | valid.f_iou 0.6346399784088135, valid.f_f-score 0.76541: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 10 | loss 5.066457748413086, f_iou 0.1349913477897644: 0%| | 0/74 [00:06, ?it/s]
epoch 10 | loss 5.066457748413086, f_iou 0.1349913477897644: 1%|▌ | 1/74 [00:06<08:01, 6.60s/it]
epoch 10 | loss 5.446849822998047, f_iou 0.13849356770515442: 1%|▌ | 1/74 [00:07<08:01, 6.60s/it]
epoch 10 | loss 5.446849822998047, f_iou 0.13849356770515442: 3%|█ | 2/74 [00:07<03:50, 3.21s/it]
epoch 10 | loss 3.8640599250793457, f_iou 0.30525046586990356: 3%|▉ | 2/74 [00:08<03:50, 3.21s/it]
epoch 10 | loss 3.8640599250793457, f_iou 0.30525046586990356: 4%|█▍ | 3/74 [00:08<02:34, 2.18s/it]
epoch 10 | loss 2.5549871921539307, f_iou 0.24989640712738037: 4%|█▍ | 3/74 [00:09<02:34, 2.18s/it]
epoch 10 | loss 2.5549871921539307, f_iou 0.24989640712738037: 5%|█▉ | 4/74 [00:09<01:56, 1.67s/it]
epoch 10 | loss 13.521240234375, f_iou 0.3967494070529938: 5%|██▏ | 4/74 [00:10<01:56, 1.67s/it]
epoch 10 | loss 13.521240234375, f_iou 0.3967494070529938: 7%|██▋ | 5/74 [00:10<01:33, 1.35s/it]
epoch 10 | loss 7.445229530334473, f_iou 0.3319200277328491: 7%|██▌ | 5/74 [00:10<01:33, 1.35s/it]
epoch 10 | loss 7.445229530334473, f_iou 0.3319200277328491: 8%|███ | 6/74 [00:10<01:18, 1.16s/it]
epoch 10 | loss 2.5317187309265137, f_iou 0.28546449542045593: 8%|██▉ | 6/74 [00:11<01:18, 1.16s/it]
epoch 10 | loss 2.5317187309265137, f_iou 0.28546449542045593: 9%|███▍ | 7/74 [00:11<01:10, 1.05s/it]
epoch 10 | loss 2.9866905212402344, f_iou 0.300572007894516: 9%|███▌ | 7/74 [00:12<01:10, 1.05s/it]
epoch 10 | loss 2.9866905212402344, f_iou 0.300572007894516: 11%|████ | 8/74 [00:12<01:04, 1.03it/s]
epoch 10 | loss 2.5371627807617188, f_iou 0.3593302369117737: 11%|████ | 8/74 [00:13<01:04, 1.03it/s]
epoch 10 | loss 2.5371627807617188, f_iou 0.3593302369117737: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 10 | loss 6.277584552764893, f_iou 0.32460522651672363: 12%|████▌ | 9/74 [00:14<00:59, 1.10it/s]
epoch 10 | loss 6.277584552764893, f_iou 0.32460522651672363: 14%|████▊ | 10/74 [00:14<00:56, 1.14it/s]
epoch 10 | loss 2.469181537628174, f_iou 0.2960495054721832: 14%|█████ | 10/74 [00:14<00:56, 1.14it/s]
epoch 10 | loss 2.469181537628174, f_iou 0.2960495054721832: 15%|█████▌ | 11/74 [00:14<00:53, 1.18it/s]
epoch 10 | loss 3.5346407890319824, f_iou 0.33732137084007263: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 10 | loss 3.5346407890319824, f_iou 0.33732137084007263: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 10 | loss 3.5891358852386475, f_iou 0.3271271288394928: 16%|█████▊ | 12/74 [00:16<00:51, 1.20it/s]
epoch 10 | loss 3.5891358852386475, f_iou 0.3271271288394928: 18%|██████▎ | 13/74 [00:16<00:49, 1.24it/s]
epoch 10 | loss 4.309719085693359, f_iou 0.3335026204586029: 18%|██████▌ | 13/74 [00:17<00:49, 1.24it/s]
epoch 10 | loss 4.309719085693359, f_iou 0.3335026204586029: 19%|███████ | 14/74 [00:17<00:47, 1.27it/s]
epoch 10 | loss 1.4334838390350342, f_iou 0.31425660848617554: 19%|██████▌ | 14/74 [00:17<00:47, 1.27it/s]
epoch 10 | loss 1.4334838390350342, f_iou 0.31425660848617554: 20%|███████ | 15/74 [00:17<00:45, 1.30it/s]
epoch 10 | loss 2.4221975803375244, f_iou 0.3361831307411194: 20%|███████▎ | 15/74 [00:18<00:45, 1.30it/s]
epoch 10 | loss 2.4221975803375244, f_iou 0.3361831307411194: 22%|███████▊ | 16/74 [00:18<00:43, 1.32it/s]
epoch 10 | loss 1.0435187816619873, f_iou 0.32002389430999756: 22%|███████▌ | 16/74 [00:19<00:43, 1.32it/s]
epoch 10 | loss 1.0435187816619873, f_iou 0.32002389430999756: 23%|████████ | 17/74 [00:19<00:42, 1.34it/s]
epoch 10 | loss 2.6665143966674805, f_iou 0.3119345009326935: 23%|████████▎ | 17/74 [00:20<00:42, 1.34it/s]
epoch 10 | loss 2.6665143966674805, f_iou 0.3119345009326935: 24%|████████▊ | 18/74 [00:20<00:41, 1.35it/s]
epoch 10 | loss 8.633540153503418, f_iou 0.31372135877609253: 24%|████████▊ | 18/74 [00:20<00:41, 1.35it/s]
epoch 10 | loss 8.633540153503418, f_iou 0.31372135877609253: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 10 | loss 4.977372169494629, f_iou 0.3316042125225067: 26%|█████████▌ | 19/74 [00:21<00:40, 1.36it/s]
epoch 10 | loss 4.977372169494629, f_iou 0.3316042125225067: 27%|██████████ | 20/74 [00:21<00:39, 1.37it/s]
epoch 10 | loss 3.075057029724121, f_iou 0.34017452597618103: 27%|█████████▋ | 20/74 [00:22<00:39, 1.37it/s]
epoch 10 | loss 3.075057029724121, f_iou 0.34017452597618103: 28%|██████████▏ | 21/74 [00:22<00:38, 1.38it/s]
epoch 10 | loss 8.922953605651855, f_iou 0.3582797050476074: 28%|██████████▌ | 21/74 [00:22<00:38, 1.38it/s]
epoch 10 | loss 8.922953605651855, f_iou 0.3582797050476074: 30%|███████████ | 22/74 [00:22<00:37, 1.38it/s]
epoch 10 | loss 1.1242077350616455, f_iou 0.35972097516059875: 30%|██████████▍ | 22/74 [00:23<00:37, 1.38it/s]
epoch 10 | loss 1.1242077350616455, f_iou 0.35972097516059875: 31%|██████████▉ | 23/74 [00:23<00:37, 1.36it/s]
epoch 10 | loss 5.7371697425842285, f_iou 0.3761942386627197: 31%|███████████▏ | 23/74 [00:24<00:37, 1.36it/s]
epoch 10 | loss 5.7371697425842285, f_iou 0.3761942386627197: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 10 | loss 5.294707298278809, f_iou 0.37140852212905884: 32%|███████████▋ | 24/74 [00:25<00:36, 1.36it/s]
epoch 10 | loss 5.294707298278809, f_iou 0.37140852212905884: 34%|████████████▏ | 25/74 [00:25<00:35, 1.37it/s]
epoch 10 | loss 9.315120697021484, f_iou 0.3582419455051422: 34%|████████████▌ | 25/74 [00:25<00:35, 1.37it/s]
epoch 10 | loss 9.315120697021484, f_iou 0.3582419455051422: 35%|█████████████ | 26/74 [00:25<00:34, 1.37it/s]
epoch 10 | loss 1.7755999565124512, f_iou 0.36999669671058655: 35%|████████████▎ | 26/74 [00:26<00:34, 1.37it/s]
epoch 10 | loss 1.7755999565124512, f_iou 0.36999669671058655: 36%|████████████▊ | 27/74 [00:26<00:34, 1.37it/s]
epoch 10 | loss 3.1274139881134033, f_iou 0.38024428486824036: 36%|████████████▊ | 27/74 [00:27<00:34, 1.37it/s]
epoch 10 | loss 3.1274139881134033, f_iou 0.38024428486824036: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.36it/s]
epoch 10 | loss 3.3447489738464355, f_iou 0.38400915265083313: 38%|█████████████▏ | 28/74 [00:28<00:33, 1.36it/s]
epoch 10 | loss 3.3447489738464355, f_iou 0.38400915265083313: 39%|█████████████▋ | 29/74 [00:28<00:33, 1.36it/s]
epoch 10 | loss 1.8458702564239502, f_iou 0.3969402313232422: 39%|██████████████ | 29/74 [00:28<00:33, 1.36it/s]
epoch 10 | loss 1.8458702564239502, f_iou 0.3969402313232422: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.35it/s]
epoch 10 | loss 1.4524827003479004, f_iou 0.3994483947753906: 41%|██████████████▌ | 30/74 [00:29<00:32, 1.35it/s]
epoch 10 | loss 1.4524827003479004, f_iou 0.3994483947753906: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 10 | loss 3.8230600357055664, f_iou 0.41371235251426697: 42%|██████████████▋ | 31/74 [00:30<00:31, 1.36it/s]
epoch 10 | loss 3.8230600357055664, f_iou 0.41371235251426697: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.36it/s]
epoch 10 | loss 4.476894378662109, f_iou 0.4093703627586365: 43%|████████████████ | 32/74 [00:30<00:30, 1.36it/s]
epoch 10 | loss 4.476894378662109, f_iou 0.4093703627586365: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.36it/s]
epoch 10 | loss 3.017566204071045, f_iou 0.41258126497268677: 45%|████████████████ | 33/74 [00:31<00:30, 1.36it/s]
epoch 10 | loss 3.017566204071045, f_iou 0.41258126497268677: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.35it/s]
epoch 10 | loss 5.081240653991699, f_iou 0.41119277477264404: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.35it/s]
epoch 10 | loss 5.081240653991699, f_iou 0.41119277477264404: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 10 | loss 7.39391565322876, f_iou 0.4053080677986145: 47%|█████████████████▉ | 35/74 [00:33<00:28, 1.36it/s]
epoch 10 | loss 7.39391565322876, f_iou 0.4053080677986145: 49%|██████████████████▍ | 36/74 [00:33<00:27, 1.37it/s]
epoch 10 | loss 6.019341468811035, f_iou 0.395516574382782: 49%|██████████████████▍ | 36/74 [00:33<00:27, 1.37it/s]
epoch 10 | loss 6.019341468811035, f_iou 0.395516574382782: 50%|███████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 10 | loss 10.48486328125, f_iou 0.41066741943359375: 50%|███████████████████▌ | 37/74 [00:34<00:26, 1.37it/s]
epoch 10 | loss 10.48486328125, f_iou 0.41066741943359375: 51%|████████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 10 | loss 3.4833459854125977, f_iou 0.41766050457954407: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.38it/s]
epoch 10 | loss 3.4833459854125977, f_iou 0.41766050457954407: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 10 | loss 9.265679359436035, f_iou 0.42721158266067505: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.38it/s]
epoch 10 | loss 9.265679359436035, f_iou 0.42721158266067505: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 10 | loss 5.815476417541504, f_iou 0.42960524559020996: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 10 | loss 5.815476417541504, f_iou 0.42960524559020996: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 10 | loss 1.9219743013381958, f_iou 0.43917226791381836: 55%|███████████████████▍ | 41/74 [00:37<00:23, 1.38it/s]
epoch 10 | loss 1.9219743013381958, f_iou 0.43917226791381836: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.38it/s]
epoch 10 | loss 4.322875022888184, f_iou 0.42897242307662964: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.38it/s]
epoch 10 | loss 4.322875022888184, f_iou 0.42897242307662964: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.36it/s]
epoch 10 | loss 2.122832775115967, f_iou 0.4383558928966522: 58%|█████████████████████▍ | 43/74 [00:39<00:22, 1.36it/s]
epoch 10 | loss 2.122832775115967, f_iou 0.4383558928966522: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.34it/s]
epoch 10 | loss 4.096732139587402, f_iou 0.4389905333518982: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.34it/s]
epoch 10 | loss 4.096732139587402, f_iou 0.4389905333518982: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.35it/s]
epoch 10 | loss 2.0033562183380127, f_iou 0.4389913082122803: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.35it/s]
epoch 10 | loss 2.0033562183380127, f_iou 0.4389913082122803: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 10 | loss 4.721139430999756, f_iou 0.4312196671962738: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.36it/s]
epoch 10 | loss 4.721139430999756, f_iou 0.4312196671962738: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.37it/s]
epoch 10 | loss 6.134053707122803, f_iou 0.4344414472579956: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.37it/s]
epoch 10 | loss 6.134053707122803, f_iou 0.4344414472579956: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.37it/s]
epoch 10 | loss 5.8006086349487305, f_iou 0.4337467849254608: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.37it/s]
epoch 10 | loss 5.8006086349487305, f_iou 0.4337467849254608: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.37it/s]
epoch 10 | loss 2.453251838684082, f_iou 0.44221651554107666: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.37it/s]
epoch 10 | loss 2.453251838684082, f_iou 0.44221651554107666: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 10 | loss 5.805175304412842, f_iou 0.43391045928001404: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.38it/s]
epoch 10 | loss 5.805175304412842, f_iou 0.43391045928001404: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.35it/s]
epoch 10 | loss 1.9458253383636475, f_iou 0.4385302662849426: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.35it/s]
epoch 10 | loss 1.9458253383636475, f_iou 0.4385302662849426: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.34it/s]
epoch 10 | loss 3.232767105102539, f_iou 0.43284690380096436: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.34it/s]
epoch 10 | loss 3.232767105102539, f_iou 0.43284690380096436: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.33it/s]
epoch 10 | loss 6.29377555847168, f_iou 0.43010905385017395: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.33it/s]
epoch 10 | loss 6.29377555847168, f_iou 0.43010905385017395: 73%|███████████████████████████ | 54/74 [00:46<00:15, 1.32it/s]
epoch 10 | loss 8.483741760253906, f_iou 0.437686562538147: 73%|███████████████████████████▋ | 54/74 [00:47<00:15, 1.32it/s]
epoch 10 | loss 8.483741760253906, f_iou 0.437686562538147: 74%|████████████████████████████▏ | 55/74 [00:47<00:14, 1.31it/s]
epoch 10 | loss 3.050462007522583, f_iou 0.43967655301094055: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.31it/s]
epoch 10 | loss 3.050462007522583, f_iou 0.43967655301094055: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.32it/s]
epoch 10 | loss 2.4449257850646973, f_iou 0.44307002425193787: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.32it/s]
epoch 10 | loss 2.4449257850646973, f_iou 0.44307002425193787: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.34it/s]
epoch 10 | loss 9.860278129577637, f_iou 0.4435080289840698: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.34it/s]
epoch 10 | loss 9.860278129577637, f_iou 0.4435080289840698: 78%|█████████████████████████████ | 58/74 [00:49<00:12, 1.32it/s]
epoch 10 | loss 4.368521690368652, f_iou 0.43642136454582214: 78%|████████████████████████████▏ | 58/74 [00:50<00:12, 1.32it/s]
epoch 10 | loss 4.368521690368652, f_iou 0.43642136454582214: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.30it/s]
epoch 10 | loss 7.405958652496338, f_iou 0.437238484621048: 80%|██████████████████████████████▎ | 59/74 [00:51<00:11, 1.30it/s]
epoch 10 | loss 7.405958652496338, f_iou 0.437238484621048: 81%|██████████████████████████████▊ | 60/74 [00:51<00:10, 1.29it/s]
epoch 10 | loss 3.708756446838379, f_iou 0.43298378586769104: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.29it/s]
epoch 10 | loss 3.708756446838379, f_iou 0.43298378586769104: 82%|█████████████████████████████▋ | 61/74 [00:51<00:10, 1.29it/s]
epoch 10 | loss 2.325272560119629, f_iou 0.4391610324382782: 82%|██████████████████████████████▌ | 61/74 [00:52<00:10, 1.29it/s]
epoch 10 | loss 2.325272560119629, f_iou 0.4391610324382782: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.28it/s]
epoch 10 | loss 6.417291641235352, f_iou 0.4389711022377014: 84%|███████████████████████████████ | 62/74 [00:53<00:09, 1.28it/s]
epoch 10 | loss 6.417291641235352, f_iou 0.4389711022377014: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.29it/s]
epoch 10 | loss 3.0246431827545166, f_iou 0.44454434514045715: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.29it/s]
epoch 10 | loss 3.0246431827545166, f_iou 0.44454434514045715: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.28it/s]
epoch 10 | loss 6.52559232711792, f_iou 0.4377577602863312: 86%|████████████████████████████████▊ | 64/74 [00:54<00:07, 1.28it/s]
epoch 10 | loss 6.52559232711792, f_iou 0.4377577602863312: 88%|█████████████████████████████████▍ | 65/74 [00:54<00:07, 1.28it/s]
epoch 10 | loss 6.732488632202148, f_iou 0.4413008689880371: 88%|████████████████████████████████▌ | 65/74 [00:55<00:07, 1.28it/s]
epoch 10 | loss 6.732488632202148, f_iou 0.4413008689880371: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.28it/s]
epoch 10 | loss 5.638318061828613, f_iou 0.4363062381744385: 89%|█████████████████████████████████ | 66/74 [00:56<00:06, 1.28it/s]
epoch 10 | loss 5.638318061828613, f_iou 0.4363062381744385: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.29it/s]
epoch 10 | loss 11.066349029541016, f_iou 0.44213244318962097: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.29it/s]
epoch 10 | loss 11.066349029541016, f_iou 0.44213244318962097: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.32it/s]
epoch 10 | loss 2.408470392227173, f_iou 0.44595837593078613: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.32it/s]
epoch 10 | loss 2.408470392227173, f_iou 0.44595837593078613: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.34it/s]
epoch 10 | loss 1.5107601881027222, f_iou 0.4471419155597687: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.34it/s]
epoch 10 | loss 1.5107601881027222, f_iou 0.4471419155597687: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.36it/s]
epoch 10 | loss 2.0771377086639404, f_iou 0.4424126446247101: 95%|██████████████████████████████████ | 70/74 [00:59<00:02, 1.36it/s]
epoch 10 | loss 2.0771377086639404, f_iou 0.4424126446247101: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.37it/s]
epoch 10 | loss 4.132763385772705, f_iou 0.43951302766799927: 96%|██████████████████████████████████▌ | 71/74 [01:00<00:02, 1.37it/s]
epoch 10 | loss 4.132763385772705, f_iou 0.43951302766799927: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 10 | loss 2.667410373687744, f_iou 0.43954363465309143: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 10 | loss 2.667410373687744, f_iou 0.43954363465309143: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 10 | loss 3.5232248306274414, f_iou 0.43999987840652466: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.38it/s]
epoch 10 | loss 3.5232248306274414, f_iou 0.43999987840652466: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 10 | loss 3.5232248306274414, f_iou 0.43999987840652466: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 10 | valid.f_iou 0.7291300296783447, valid.f_f-score 0.73683: 0%| | 0/16 [00:05, ?it/s]
epoch 10 | valid.f_iou 0.7291300296783447, valid.f_f-score 0.73683: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 10 | valid.f_iou 0.5748299956321716, valid.f_f-score 0.7479: 6%|██ | 1/16 [00:05<01:19, 5.27s/it]
epoch 10 | valid.f_iou 0.5748299956321716, valid.f_f-score 0.7479: 12%|████ | 2/16 [00:05<00:34, 2.44s/it]
epoch 10 | valid.f_iou 0.5233700275421143, valid.f_f-score 0.75066: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 10 | valid.f_iou 0.5233700275421143, valid.f_f-score 0.75066: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 10 | valid.f_iou 0.5517799854278564, valid.f_f-score 0.76358: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 10 | valid.f_iou 0.5517799854278564, valid.f_f-score 0.76358: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 10 | valid.f_iou 0.5394200086593628, valid.f_f-score 0.76861: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 10 | valid.f_iou 0.5394200086593628, valid.f_f-score 0.76861: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 10 | valid.f_iou 0.5107200145721436, valid.f_f-score 0.74825: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 10 | valid.f_iou 0.5107200145721436, valid.f_f-score 0.74825: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 10 | valid.f_iou 0.4959399998188019, valid.f_f-score 0.74506: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 10 | valid.f_iou 0.4959399998188019, valid.f_f-score 0.74506: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 10 | valid.f_iou 0.47279998660087585, valid.f_f-score 0.74196: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 10 | valid.f_iou 0.47279998660087585, valid.f_f-score 0.74196: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 10 | valid.f_iou 0.47745999693870544, valid.f_f-score 0.73851: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 10 | valid.f_iou 0.47745999693870544, valid.f_f-score 0.73851: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.95it/s]
epoch 10 | valid.f_iou 0.4728100001811981, valid.f_f-score 0.74491: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 10 | valid.f_iou 0.4728100001811981, valid.f_f-score 0.74491: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.15it/s]
epoch 10 | valid.f_iou 0.47071000933647156, valid.f_f-score 0.73159: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.15it/s]
epoch 10 | valid.f_iou 0.47071000933647156, valid.f_f-score 0.73159: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.30it/s]
epoch 10 | valid.f_iou 0.4927600026130676, valid.f_f-score 0.74464: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.30it/s]
epoch 10 | valid.f_iou 0.4927600026130676, valid.f_f-score 0.74464: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 10 | valid.f_iou 0.4971800148487091, valid.f_f-score 0.747: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.43it/s]
epoch 10 | valid.f_iou 0.4971800148487091, valid.f_f-score 0.747: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.53it/s]
epoch 10 | valid.f_iou 0.4828999936580658, valid.f_f-score 0.73817: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.53it/s]
epoch 10 | valid.f_iou 0.4828999936580658, valid.f_f-score 0.73817: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 10 | valid.f_iou 0.48625001311302185, valid.f_f-score 0.74096: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 10 | valid.f_iou 0.48625001311302185, valid.f_f-score 0.74096: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 10 | valid.f_iou 0.4878000020980835, valid.f_f-score 0.7363: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.65it/s]
epoch 10 | valid.f_iou 0.4878000020980835, valid.f_f-score 0.7363: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 10 | valid.f_iou 0.4878000020980835, valid.f_f-score 0.7363: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 10 | valid.f_iou 0.7094100117683411, valid.f_f-score 0.76307: 0%| | 0/16 [00:04, ?it/s]
epoch 10 | valid.f_iou 0.7094100117683411, valid.f_f-score 0.76307: 6%|█▉ | 1/16 [00:04<01:09, 4.67s/it]
epoch 10 | valid.f_iou 0.7426900267601013, valid.f_f-score 0.80595: 6%|█▉ | 1/16 [00:05<01:09, 4.67s/it]
epoch 10 | valid.f_iou 0.7426900267601013, valid.f_f-score 0.80595: 12%|███▉ | 2/16 [00:05<00:33, 2.40s/it]
epoch 10 | valid.f_iou 0.676360011100769, valid.f_f-score 0.80368: 12%|████ | 2/16 [00:05<00:33, 2.40s/it]
epoch 10 | valid.f_iou 0.676360011100769, valid.f_f-score 0.80368: 19%|██████ | 3/16 [00:05<00:19, 1.52s/it]
epoch 10 | valid.f_iou 0.6795700192451477, valid.f_f-score 0.79568: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 10 | valid.f_iou 0.6795700192451477, valid.f_f-score 0.79568: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 10 | valid.f_iou 0.6674299836158752, valid.f_f-score 0.78866: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 10 | valid.f_iou 0.6674299836158752, valid.f_f-score 0.78866: 31%|█████████▋ | 5/16 [00:06<00:09, 1.16it/s]
epoch 10 | valid.f_iou 0.6269599795341492, valid.f_f-score 0.76517: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 10 | valid.f_iou 0.6269599795341492, valid.f_f-score 0.76517: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 10 | valid.f_iou 0.6138899922370911, valid.f_f-score 0.7554: 38%|████████████ | 6/16 [00:07<00:07, 1.41it/s]
epoch 10 | valid.f_iou 0.6138899922370911, valid.f_f-score 0.7554: 44%|██████████████ | 7/16 [00:07<00:05, 1.59it/s]
epoch 10 | valid.f_iou 0.61080002784729, valid.f_f-score 0.75539: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.59it/s]
epoch 10 | valid.f_iou 0.61080002784729, valid.f_f-score 0.75539: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 10 | valid.f_iou 0.6302400231361389, valid.f_f-score 0.77095: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 10 | valid.f_iou 0.6302400231361389, valid.f_f-score 0.77095: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 10 | valid.f_iou 0.6507800221443176, valid.f_f-score 0.78502: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 10 | valid.f_iou 0.6507800221443176, valid.f_f-score 0.78502: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.12it/s]
epoch 10 | valid.f_iou 0.6506500244140625, valid.f_f-score 0.77344: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 10 | valid.f_iou 0.6506500244140625, valid.f_f-score 0.77344: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 10 | valid.f_iou 0.6616299748420715, valid.f_f-score 0.78277: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 10 | valid.f_iou 0.6616299748420715, valid.f_f-score 0.78277: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 10 | valid.f_iou 0.6684799790382385, valid.f_f-score 0.78821: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 10 | valid.f_iou 0.6684799790382385, valid.f_f-score 0.78821: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 10 | valid.f_iou 0.6627299785614014, valid.f_f-score 0.782: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.47it/s]
epoch 10 | valid.f_iou 0.6627299785614014, valid.f_f-score 0.782: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.55it/s]
epoch 10 | valid.f_iou 0.669979989528656, valid.f_f-score 0.79023: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 10 | valid.f_iou 0.669979989528656, valid.f_f-score 0.79023: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 10 | valid.f_iou 0.6708499789237976, valid.f_f-score 0.78751: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 10 | valid.f_iou 0.6708499789237976, valid.f_f-score 0.78751: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 10 | valid.f_iou 0.6708499789237976, valid.f_f-score 0.78751: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 10 | valid.f_iou 0.7094100117683411, valid.f_f-score 0.76307: 0%| | 0/16 [00:05, ?it/s]
epoch 10 | valid.f_iou 0.7094100117683411, valid.f_f-score 0.76307: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 10 | valid.f_iou 0.7426900267601013, valid.f_f-score 0.80595: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 10 | valid.f_iou 0.7426900267601013, valid.f_f-score 0.80595: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 10 | valid.f_iou 0.676360011100769, valid.f_f-score 0.80368: 12%|████ | 2/16 [00:06<00:34, 2.48s/it]
epoch 10 | valid.f_iou 0.676360011100769, valid.f_f-score 0.80368: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 10 | valid.f_iou 0.6795700192451477, valid.f_f-score 0.79568: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 10 | valid.f_iou 0.6795700192451477, valid.f_f-score 0.79568: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 10 | valid.f_iou 0.6702600121498108, valid.f_f-score 0.78866: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 10 | valid.f_iou 0.6702600121498108, valid.f_f-score 0.78866: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 10 | valid.f_iou 0.6293200254440308, valid.f_f-score 0.76517: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 10 | valid.f_iou 0.6293200254440308, valid.f_f-score 0.76517: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 10 | valid.f_iou 0.6159200072288513, valid.f_f-score 0.7554: 38%|████████████ | 6/16 [00:07<00:06, 1.44it/s]
epoch 10 | valid.f_iou 0.6159200072288513, valid.f_f-score 0.7554: 44%|██████████████ | 7/16 [00:07<00:05, 1.72it/s]
epoch 10 | valid.f_iou 0.6125699877738953, valid.f_f-score 0.75539: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.72it/s]
epoch 10 | valid.f_iou 0.6125699877738953, valid.f_f-score 0.75539: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.95it/s]
epoch 10 | valid.f_iou 0.631820023059845, valid.f_f-score 0.77095: 50%|████████████████ | 8/16 [00:08<00:04, 1.95it/s]
epoch 10 | valid.f_iou 0.631820023059845, valid.f_f-score 0.77095: 56%|██████████████████ | 9/16 [00:08<00:03, 2.17it/s]
epoch 10 | valid.f_iou 0.6521900296211243, valid.f_f-score 0.78502: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.17it/s]
epoch 10 | valid.f_iou 0.6521900296211243, valid.f_f-score 0.78502: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.32it/s]
epoch 10 | valid.f_iou 0.6519399881362915, valid.f_f-score 0.77344: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.32it/s]
epoch 10 | valid.f_iou 0.6519399881362915, valid.f_f-score 0.77344: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.45it/s]
epoch 10 | valid.f_iou 0.6628199815750122, valid.f_f-score 0.78277: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.45it/s]
epoch 10 | valid.f_iou 0.6628199815750122, valid.f_f-score 0.78277: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 10 | valid.f_iou 0.6695700287818909, valid.f_f-score 0.78821: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.51it/s]
epoch 10 | valid.f_iou 0.6695700287818909, valid.f_f-score 0.78821: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.58it/s]
epoch 10 | valid.f_iou 0.6637399792671204, valid.f_f-score 0.782: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.58it/s]
epoch 10 | valid.f_iou 0.6637399792671204, valid.f_f-score 0.782: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.66it/s]
epoch 10 | valid.f_iou 0.6709200143814087, valid.f_f-score 0.79023: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.66it/s]
epoch 10 | valid.f_iou 0.6709200143814087, valid.f_f-score 0.79023: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 10 | valid.f_iou 0.6717299818992615, valid.f_f-score 0.78751: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.68it/s]
epoch 10 | valid.f_iou 0.6717299818992615, valid.f_f-score 0.78751: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.72it/s]
epoch 10 | valid.f_iou 0.6717299818992615, valid.f_f-score 0.78751: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 11 | loss 2.887515068054199, f_iou 0.7696998119354248: 0%| | 0/74 [00:06, ?it/s]
epoch 11 | loss 2.887515068054199, f_iou 0.7696998119354248: 1%|▌ | 1/74 [00:06<08:02, 6.61s/it]
epoch 11 | loss 7.054266929626465, f_iou 0.5815308094024658: 1%|▌ | 1/74 [00:07<08:02, 6.61s/it]
epoch 11 | loss 7.054266929626465, f_iou 0.5815308094024658: 3%|█ | 2/74 [00:07<03:51, 3.21s/it]
epoch 11 | loss 1.7455319166183472, f_iou 0.5815255641937256: 3%|█ | 2/74 [00:08<03:51, 3.21s/it]
epoch 11 | loss 1.7455319166183472, f_iou 0.5815255641937256: 4%|█▌ | 3/74 [00:08<02:31, 2.13s/it]
epoch 11 | loss 4.270715713500977, f_iou 0.528908371925354: 4%|█▌ | 3/74 [00:09<02:31, 2.13s/it]
epoch 11 | loss 4.270715713500977, f_iou 0.528908371925354: 5%|██ | 4/74 [00:09<01:52, 1.60s/it]
epoch 11 | loss 4.760853290557861, f_iou 0.5188510417938232: 5%|██ | 4/74 [00:09<01:52, 1.60s/it]
epoch 11 | loss 4.760853290557861, f_iou 0.5188510417938232: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 11 | loss 2.1538710594177246, f_iou 0.576090931892395: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 11 | loss 2.1538710594177246, f_iou 0.576090931892395: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 11 | loss 0.7962220907211304, f_iou 0.6258277893066406: 8%|███ | 6/74 [00:11<01:15, 1.11s/it]
epoch 11 | loss 0.7962220907211304, f_iou 0.6258277893066406: 9%|███▌ | 7/74 [00:11<01:05, 1.02it/s]
epoch 11 | loss 2.1635403633117676, f_iou 0.5598900318145752: 9%|███▌ | 7/74 [00:12<01:05, 1.02it/s]
epoch 11 | loss 2.1635403633117676, f_iou 0.5598900318145752: 11%|████ | 8/74 [00:12<00:59, 1.11it/s]
epoch 11 | loss 7.311652660369873, f_iou 0.5308578610420227: 11%|████ | 8/74 [00:12<00:59, 1.11it/s]
epoch 11 | loss 7.311652660369873, f_iou 0.5308578610420227: 12%|████▌ | 9/74 [00:12<00:54, 1.19it/s]
epoch 11 | loss 9.042952537536621, f_iou 0.5152148008346558: 12%|████▌ | 9/74 [00:13<00:54, 1.19it/s]
epoch 11 | loss 9.042952537536621, f_iou 0.5152148008346558: 14%|█████ | 10/74 [00:13<00:52, 1.22it/s]
epoch 11 | loss 6.280435562133789, f_iou 0.5069240927696228: 14%|█████ | 10/74 [00:14<00:52, 1.22it/s]
epoch 11 | loss 6.280435562133789, f_iou 0.5069240927696228: 15%|█████▌ | 11/74 [00:14<00:50, 1.24it/s]
epoch 11 | loss 3.0810444355010986, f_iou 0.5260725021362305: 15%|█████▎ | 11/74 [00:15<00:50, 1.24it/s]
epoch 11 | loss 3.0810444355010986, f_iou 0.5260725021362305: 16%|█████▊ | 12/74 [00:15<00:48, 1.29it/s]
epoch 11 | loss 3.755582809448242, f_iou 0.5192681550979614: 16%|██████ | 12/74 [00:15<00:48, 1.29it/s]
epoch 11 | loss 3.755582809448242, f_iou 0.5192681550979614: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 11 | loss 4.661636829376221, f_iou 0.4822753667831421: 18%|██████▌ | 13/74 [00:16<00:46, 1.32it/s]
epoch 11 | loss 4.661636829376221, f_iou 0.4822753667831421: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 11 | loss 4.018379211425781, f_iou 0.47119221091270447: 19%|██████▊ | 14/74 [00:17<00:45, 1.32it/s]
epoch 11 | loss 4.018379211425781, f_iou 0.47119221091270447: 20%|███████▎ | 15/74 [00:17<00:44, 1.32it/s]
epoch 11 | loss 4.675630569458008, f_iou 0.4536122679710388: 20%|███████▌ | 15/74 [00:17<00:44, 1.32it/s]
epoch 11 | loss 4.675630569458008, f_iou 0.4536122679710388: 22%|████████ | 16/74 [00:17<00:44, 1.32it/s]
epoch 11 | loss 6.169254779815674, f_iou 0.47532838582992554: 22%|███████▊ | 16/74 [00:18<00:44, 1.32it/s]
epoch 11 | loss 6.169254779815674, f_iou 0.47532838582992554: 23%|████████▎ | 17/74 [00:18<00:43, 1.32it/s]
epoch 11 | loss 5.159520149230957, f_iou 0.44921961426734924: 23%|████████▎ | 17/74 [00:19<00:43, 1.32it/s]
epoch 11 | loss 5.159520149230957, f_iou 0.44921961426734924: 24%|████████▊ | 18/74 [00:19<00:42, 1.30it/s]
epoch 11 | loss 2.281263589859009, f_iou 0.45561912655830383: 24%|████████▊ | 18/74 [00:20<00:42, 1.30it/s]
epoch 11 | loss 2.281263589859009, f_iou 0.45561912655830383: 26%|█████████▏ | 19/74 [00:20<00:42, 1.29it/s]
epoch 11 | loss 5.101800918579102, f_iou 0.44157442450523376: 26%|█████████▏ | 19/74 [00:21<00:42, 1.29it/s]
epoch 11 | loss 5.101800918579102, f_iou 0.44157442450523376: 27%|█████████▋ | 20/74 [00:21<00:41, 1.30it/s]
epoch 11 | loss 5.284316062927246, f_iou 0.424649715423584: 27%|██████████▎ | 20/74 [00:21<00:41, 1.30it/s]
epoch 11 | loss 5.284316062927246, f_iou 0.424649715423584: 28%|██████████▊ | 21/74 [00:21<00:40, 1.32it/s]
epoch 11 | loss 2.509859561920166, f_iou 0.4285616874694824: 28%|██████████▌ | 21/74 [00:22<00:40, 1.32it/s]
epoch 11 | loss 2.509859561920166, f_iou 0.4285616874694824: 30%|███████████ | 22/74 [00:22<00:38, 1.34it/s]
epoch 11 | loss 3.87278413772583, f_iou 0.43840354681015015: 30%|███████████ | 22/74 [00:23<00:38, 1.34it/s]
epoch 11 | loss 3.87278413772583, f_iou 0.43840354681015015: 31%|███████████▌ | 23/74 [00:23<00:37, 1.36it/s]
epoch 11 | loss 4.491374492645264, f_iou 0.4507901668548584: 31%|███████████▌ | 23/74 [00:23<00:37, 1.36it/s]
epoch 11 | loss 4.491374492645264, f_iou 0.4507901668548584: 32%|████████████ | 24/74 [00:23<00:36, 1.37it/s]
epoch 11 | loss 7.191104412078857, f_iou 0.43281713128089905: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 11 | loss 7.191104412078857, f_iou 0.43281713128089905: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 11 | loss 3.362151622772217, f_iou 0.4397833049297333: 34%|████████████▌ | 25/74 [00:25<00:35, 1.38it/s]
epoch 11 | loss 3.362151622772217, f_iou 0.4397833049297333: 35%|█████████████ | 26/74 [00:25<00:35, 1.36it/s]
epoch 11 | loss 6.218167304992676, f_iou 0.4235690236091614: 35%|█████████████ | 26/74 [00:26<00:35, 1.36it/s]
epoch 11 | loss 6.218167304992676, f_iou 0.4235690236091614: 36%|█████████████▌ | 27/74 [00:26<00:35, 1.33it/s]
epoch 11 | loss 1.779380202293396, f_iou 0.4138493835926056: 36%|█████████████▌ | 27/74 [00:27<00:35, 1.33it/s]
epoch 11 | loss 1.779380202293396, f_iou 0.4138493835926056: 38%|██████████████ | 28/74 [00:27<00:35, 1.31it/s]
epoch 11 | loss 8.907378196716309, f_iou 0.4049537181854248: 38%|██████████████ | 28/74 [00:27<00:35, 1.31it/s]
epoch 11 | loss 8.907378196716309, f_iou 0.4049537181854248: 39%|██████████████▌ | 29/74 [00:27<00:34, 1.30it/s]
epoch 11 | loss 5.486804962158203, f_iou 0.39983001351356506: 39%|██████████████ | 29/74 [00:28<00:34, 1.30it/s]
epoch 11 | loss 5.486804962158203, f_iou 0.39983001351356506: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.29it/s]
epoch 11 | loss 2.396644353866577, f_iou 0.3948191702365875: 41%|███████████████ | 30/74 [00:29<00:33, 1.29it/s]
epoch 11 | loss 2.396644353866577, f_iou 0.3948191702365875: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.32it/s]
epoch 11 | loss 3.1335625648498535, f_iou 0.400685578584671: 42%|███████████████▌ | 31/74 [00:30<00:32, 1.32it/s]
epoch 11 | loss 3.1335625648498535, f_iou 0.400685578584671: 43%|████████████████ | 32/74 [00:30<00:31, 1.34it/s]
epoch 11 | loss 2.5610132217407227, f_iou 0.3997645378112793: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.34it/s]
epoch 11 | loss 2.5610132217407227, f_iou 0.3997645378112793: 45%|████████████████ | 33/74 [00:30<00:30, 1.35it/s]
epoch 11 | loss 2.8041915893554688, f_iou 0.4104500710964203: 45%|████████████████ | 33/74 [00:31<00:30, 1.35it/s]
epoch 11 | loss 2.8041915893554688, f_iou 0.4104500710964203: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 11 | loss 3.6242454051971436, f_iou 0.3987521529197693: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.36it/s]
epoch 11 | loss 3.6242454051971436, f_iou 0.3987521529197693: 47%|█████████████████ | 35/74 [00:32<00:28, 1.37it/s]
epoch 11 | loss 11.985240936279297, f_iou 0.40937766432762146: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.37it/s]
epoch 11 | loss 11.985240936279297, f_iou 0.40937766432762146: 49%|█████████████████ | 36/74 [00:32<00:27, 1.37it/s]
epoch 11 | loss 2.208937406539917, f_iou 0.3994158208370209: 49%|██████████████████ | 36/74 [00:33<00:27, 1.37it/s]
epoch 11 | loss 2.208937406539917, f_iou 0.3994158208370209: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.38it/s]
epoch 11 | loss 8.531198501586914, f_iou 0.41256752610206604: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 11 | loss 8.531198501586914, f_iou 0.41256752610206604: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 11 | loss 3.4852209091186523, f_iou 0.40434110164642334: 51%|█████████████████▉ | 38/74 [00:35<00:25, 1.39it/s]
epoch 11 | loss 3.4852209091186523, f_iou 0.40434110164642334: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 11 | loss 5.551479339599609, f_iou 0.3986121118068695: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 11 | loss 5.551479339599609, f_iou 0.3986121118068695: 54%|████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 11 | loss 3.292877674102783, f_iou 0.4023802876472473: 54%|████████████████████ | 40/74 [00:36<00:24, 1.39it/s]
epoch 11 | loss 3.292877674102783, f_iou 0.4023802876472473: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 11 | loss 3.3511769771575928, f_iou 0.4033895432949066: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.39it/s]
epoch 11 | loss 3.3511769771575928, f_iou 0.4033895432949066: 57%|████████████████████▍ | 42/74 [00:37<00:22, 1.39it/s]
epoch 11 | loss 7.90852165222168, f_iou 0.400681734085083: 57%|██████████████████████▏ | 42/74 [00:37<00:22, 1.39it/s]
epoch 11 | loss 7.90852165222168, f_iou 0.400681734085083: 58%|██████████████████████▋ | 43/74 [00:37<00:22, 1.39it/s]
epoch 11 | loss 1.0714001655578613, f_iou 0.408430814743042: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.39it/s]
epoch 11 | loss 1.0714001655578613, f_iou 0.408430814743042: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 11 | loss 2.3389928340911865, f_iou 0.4153049886226654: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 11 | loss 2.3389928340911865, f_iou 0.4153049886226654: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.38it/s]
epoch 11 | loss 6.178489685058594, f_iou 0.4185182452201843: 61%|██████████████████████▌ | 45/74 [00:40<00:20, 1.38it/s]
epoch 11 | loss 6.178489685058594, f_iou 0.4185182452201843: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.39it/s]
epoch 11 | loss 2.087017774581909, f_iou 0.42305734753608704: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 11 | loss 2.087017774581909, f_iou 0.42305734753608704: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 11 | loss 3.5943658351898193, f_iou 0.41806942224502563: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.39it/s]
epoch 11 | loss 3.5943658351898193, f_iou 0.41806942224502563: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.39it/s]
epoch 11 | loss 3.869995594024658, f_iou 0.42209258675575256: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.39it/s]
epoch 11 | loss 3.869995594024658, f_iou 0.42209258675575256: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 11 | loss 4.974433422088623, f_iou 0.42335033416748047: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 11 | loss 4.974433422088623, f_iou 0.42335033416748047: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 11 | loss 5.045909881591797, f_iou 0.4217507243156433: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 11 | loss 5.045909881591797, f_iou 0.4217507243156433: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 11 | loss 3.885141134262085, f_iou 0.4153408110141754: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.39it/s]
epoch 11 | loss 3.885141134262085, f_iou 0.4153408110141754: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 11 | loss 5.480027198791504, f_iou 0.41253888607025146: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 11 | loss 5.480027198791504, f_iou 0.41253888607025146: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.40it/s]
epoch 11 | loss 8.622126579284668, f_iou 0.4194037616252899: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.40it/s]
epoch 11 | loss 8.622126579284668, f_iou 0.4194037616252899: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 11 | loss 1.6010897159576416, f_iou 0.4194720685482025: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 11 | loss 1.6010897159576416, f_iou 0.4194720685482025: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 11 | loss 10.78345775604248, f_iou 0.41325610876083374: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.40it/s]
epoch 11 | loss 10.78345775604248, f_iou 0.41325610876083374: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.40it/s]
epoch 11 | loss 2.0831923484802246, f_iou 0.420642614364624: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.40it/s]
epoch 11 | loss 2.0831923484802246, f_iou 0.420642614364624: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 11 | loss 2.6502575874328613, f_iou 0.42530304193496704: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.39it/s]
epoch 11 | loss 2.6502575874328613, f_iou 0.42530304193496704: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.39it/s]
epoch 11 | loss 7.998669624328613, f_iou 0.42395612597465515: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 11 | loss 7.998669624328613, f_iou 0.42395612597465515: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 11 | loss 3.4517922401428223, f_iou 0.42730551958084106: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.39it/s]
epoch 11 | loss 3.4517922401428223, f_iou 0.42730551958084106: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.37it/s]
epoch 11 | loss 2.585265636444092, f_iou 0.4318361282348633: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.37it/s]
epoch 11 | loss 2.585265636444092, f_iou 0.4318361282348633: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.34it/s]
epoch 11 | loss 12.040971755981445, f_iou 0.43621525168418884: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.34it/s]
epoch 11 | loss 12.040971755981445, f_iou 0.43621525168418884: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.34it/s]
epoch 11 | loss 2.2655768394470215, f_iou 0.43398797512054443: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.34it/s]
epoch 11 | loss 2.2655768394470215, f_iou 0.43398797512054443: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.36it/s]
epoch 11 | loss 3.162238121032715, f_iou 0.4295748770236969: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.36it/s]
epoch 11 | loss 3.162238121032715, f_iou 0.4295748770236969: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.37it/s]
epoch 11 | loss 4.054853439331055, f_iou 0.4251948893070221: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.37it/s]
epoch 11 | loss 4.054853439331055, f_iou 0.4251948893070221: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 11 | loss 1.5049864053726196, f_iou 0.4188193678855896: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.37it/s]
epoch 11 | loss 1.5049864053726196, f_iou 0.4188193678855896: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.34it/s]
epoch 11 | loss 4.343045711517334, f_iou 0.4196924567222595: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.34it/s]
epoch 11 | loss 4.343045711517334, f_iou 0.4196924567222595: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.28it/s]
epoch 11 | loss 1.6903247833251953, f_iou 0.4136768877506256: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.28it/s]
epoch 11 | loss 1.6903247833251953, f_iou 0.4136768877506256: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.30it/s]
epoch 11 | loss 1.5001024007797241, f_iou 0.41259241104125977: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.30it/s]
epoch 11 | loss 1.5001024007797241, f_iou 0.41259241104125977: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.30it/s]
epoch 11 | loss 3.6635193824768066, f_iou 0.41342678666114807: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.30it/s]
epoch 11 | loss 3.6635193824768066, f_iou 0.41342678666114807: 95%|█████████████████████████████████ | 70/74 [00:57<00:03, 1.31it/s]
epoch 11 | loss 5.901891708374023, f_iou 0.4179006814956665: 95%|███████████████████████████████████ | 70/74 [00:58<00:03, 1.31it/s]
epoch 11 | loss 5.901891708374023, f_iou 0.4179006814956665: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.32it/s]
epoch 11 | loss 1.1635069847106934, f_iou 0.4121592044830322: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.32it/s]
epoch 11 | loss 1.1635069847106934, f_iou 0.4121592044830322: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.34it/s]
epoch 11 | loss 2.455857753753662, f_iou 0.40917643904685974: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.34it/s]
epoch 11 | loss 2.455857753753662, f_iou 0.40917643904685974: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.36it/s]
epoch 11 | loss 7.003842353820801, f_iou 0.40375158190727234: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.36it/s]
epoch 11 | loss 7.003842353820801, f_iou 0.40375158190727234: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.38it/s]
epoch 11 | loss 7.003842353820801, f_iou 0.40375158190727234: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 11 | valid.f_iou 0.5778899788856506, valid.f_f-score 0.73403: 0%| | 0/16 [00:05, ?it/s]
epoch 11 | valid.f_iou 0.5778899788856506, valid.f_f-score 0.73403: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 11 | valid.f_iou 0.40985000133514404, valid.f_f-score 0.67373: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 11 | valid.f_iou 0.40985000133514404, valid.f_f-score 0.67373: 12%|███▊ | 2/16 [00:05<00:34, 2.44s/it]
epoch 11 | valid.f_iou 0.3406299948692322, valid.f_f-score 0.66133: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 11 | valid.f_iou 0.3406299948692322, valid.f_f-score 0.66133: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 11 | valid.f_iou 0.40011000633239746, valid.f_f-score 0.69357: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 11 | valid.f_iou 0.40011000633239746, valid.f_f-score 0.69357: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 11 | valid.f_iou 0.3999600112438202, valid.f_f-score 0.70885: 25%|███████▊ | 4/16 [00:07<00:13, 1.09s/it]
epoch 11 | valid.f_iou 0.3999600112438202, valid.f_f-score 0.70885: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 11 | valid.f_iou 0.385919988155365, valid.f_f-score 0.69684: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 11 | valid.f_iou 0.385919988155365, valid.f_f-score 0.69684: 38%|████████████ | 6/16 [00:07<00:06, 1.44it/s]
epoch 11 | valid.f_iou 0.38155999779701233, valid.f_f-score 0.67994: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 11 | valid.f_iou 0.38155999779701233, valid.f_f-score 0.67994: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.68it/s]
epoch 11 | valid.f_iou 0.3649500012397766, valid.f_f-score 0.67516: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.68it/s]
epoch 11 | valid.f_iou 0.3649500012397766, valid.f_f-score 0.67516: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 11 | valid.f_iou 0.38106998801231384, valid.f_f-score 0.66976: 50%|███████████████ | 8/16 [00:08<00:04, 1.90it/s]
epoch 11 | valid.f_iou 0.38106998801231384, valid.f_f-score 0.66976: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.12it/s]
epoch 11 | valid.f_iou 0.3766700029373169, valid.f_f-score 0.67967: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 11 | valid.f_iou 0.3766700029373169, valid.f_f-score 0.67967: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.28it/s]
epoch 11 | valid.f_iou 0.3761500120162964, valid.f_f-score 0.66699: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.28it/s]
epoch 11 | valid.f_iou 0.3761500120162964, valid.f_f-score 0.66699: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 11 | valid.f_iou 0.3931100070476532, valid.f_f-score 0.68386: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 11 | valid.f_iou 0.3931100070476532, valid.f_f-score 0.68386: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 11 | valid.f_iou 0.38227999210357666, valid.f_f-score 0.69183: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 11 | valid.f_iou 0.38227999210357666, valid.f_f-score 0.69183: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.57it/s]
epoch 11 | valid.f_iou 0.3629299998283386, valid.f_f-score 0.67928: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 11 | valid.f_iou 0.3629299998283386, valid.f_f-score 0.67928: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 11 | valid.f_iou 0.3650200068950653, valid.f_f-score 0.68054: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 11 | valid.f_iou 0.3650200068950653, valid.f_f-score 0.68054: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 11 | valid.f_iou 0.37191998958587646, valid.f_f-score 0.67887: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 11 | valid.f_iou 0.37191998958587646, valid.f_f-score 0.67887: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 11 | valid.f_iou 0.37191998958587646, valid.f_f-score 0.67887: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 11 | valid.f_iou 0.6005399823188782, valid.f_f-score 0.74369: 0%| | 0/16 [00:05, ?it/s]
epoch 11 | valid.f_iou 0.6005399823188782, valid.f_f-score 0.74369: 6%|█▉ | 1/16 [00:05<01:19, 5.28s/it]
epoch 11 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.83576: 6%|█▉ | 1/16 [00:05<01:19, 5.28s/it]
epoch 11 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.83576: 12%|███▉ | 2/16 [00:05<00:34, 2.44s/it]
epoch 11 | valid.f_iou 0.5911300182342529, valid.f_f-score 0.75922: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 11 | valid.f_iou 0.5911300182342529, valid.f_f-score 0.75922: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 11 | valid.f_iou 0.5862399935722351, valid.f_f-score 0.71628: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 11 | valid.f_iou 0.5862399935722351, valid.f_f-score 0.71628: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 11 | valid.f_iou 0.5979599952697754, valid.f_f-score 0.72811: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 11 | valid.f_iou 0.5979599952697754, valid.f_f-score 0.72811: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 11 | valid.f_iou 0.5658599734306335, valid.f_f-score 0.71144: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 11 | valid.f_iou 0.5658599734306335, valid.f_f-score 0.71144: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 11 | valid.f_iou 0.5431399941444397, valid.f_f-score 0.68506: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 11 | valid.f_iou 0.5431399941444397, valid.f_f-score 0.68506: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 11 | valid.f_iou 0.5341799855232239, valid.f_f-score 0.67622: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 11 | valid.f_iou 0.5341799855232239, valid.f_f-score 0.67622: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 11 | valid.f_iou 0.5670400261878967, valid.f_f-score 0.69942: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 11 | valid.f_iou 0.5670400261878967, valid.f_f-score 0.69942: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.89it/s]
epoch 11 | valid.f_iou 0.587440013885498, valid.f_f-score 0.72128: 56%|██████████████████ | 9/16 [00:09<00:03, 1.89it/s]
epoch 11 | valid.f_iou 0.587440013885498, valid.f_f-score 0.72128: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.09it/s]
epoch 11 | valid.f_iou 0.5691900253295898, valid.f_f-score 0.69762: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 11 | valid.f_iou 0.5691900253295898, valid.f_f-score 0.69762: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 11 | valid.f_iou 0.57600998878479, valid.f_f-score 0.70224: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.27it/s]
epoch 11 | valid.f_iou 0.57600998878479, valid.f_f-score 0.70224: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.40it/s]
epoch 11 | valid.f_iou 0.5875300168991089, valid.f_f-score 0.71265: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 11 | valid.f_iou 0.5875300168991089, valid.f_f-score 0.71265: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 11 | valid.f_iou 0.5859299898147583, valid.f_f-score 0.7118: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 11 | valid.f_iou 0.5859299898147583, valid.f_f-score 0.7118: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 11 | valid.f_iou 0.5931299924850464, valid.f_f-score 0.71788: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.55it/s]
epoch 11 | valid.f_iou 0.5931299924850464, valid.f_f-score 0.71788: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 11 | valid.f_iou 0.600849986076355, valid.f_f-score 0.72401: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.61it/s]
epoch 11 | valid.f_iou 0.600849986076355, valid.f_f-score 0.72401: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 11 | valid.f_iou 0.600849986076355, valid.f_f-score 0.72401: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 11 | valid.f_iou 0.6005399823188782, valid.f_f-score 0.74369: 0%| | 0/16 [00:05, ?it/s]
epoch 11 | valid.f_iou 0.6005399823188782, valid.f_f-score 0.74369: 6%|█▉ | 1/16 [00:05<01:23, 5.57s/it]
epoch 11 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.83576: 6%|█▉ | 1/16 [00:06<01:23, 5.57s/it]
epoch 11 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.83576: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 11 | valid.f_iou 0.5911300182342529, valid.f_f-score 0.75922: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 11 | valid.f_iou 0.5911300182342529, valid.f_f-score 0.75922: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 11 | valid.f_iou 0.5862399935722351, valid.f_f-score 0.71628: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 11 | valid.f_iou 0.5862399935722351, valid.f_f-score 0.71628: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 11 | valid.f_iou 0.5982199907302856, valid.f_f-score 0.72811: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 11 | valid.f_iou 0.5982199907302856, valid.f_f-score 0.72811: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 11 | valid.f_iou 0.5660799741744995, valid.f_f-score 0.71144: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 11 | valid.f_iou 0.5660799741744995, valid.f_f-score 0.71144: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 11 | valid.f_iou 0.5433300137519836, valid.f_f-score 0.68506: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 11 | valid.f_iou 0.5433300137519836, valid.f_f-score 0.68506: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 11 | valid.f_iou 0.5343400239944458, valid.f_f-score 0.67622: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 11 | valid.f_iou 0.5343400239944458, valid.f_f-score 0.67622: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 11 | valid.f_iou 0.5671799778938293, valid.f_f-score 0.69942: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 11 | valid.f_iou 0.5671799778938293, valid.f_f-score 0.69942: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 11 | valid.f_iou 0.5875700116157532, valid.f_f-score 0.72128: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 11 | valid.f_iou 0.5875700116157532, valid.f_f-score 0.72128: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 11 | valid.f_iou 0.5693100094795227, valid.f_f-score 0.69762: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 11 | valid.f_iou 0.5693100094795227, valid.f_f-score 0.69762: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 11 | valid.f_iou 0.5761200189590454, valid.f_f-score 0.70224: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.21it/s]
epoch 11 | valid.f_iou 0.5761200189590454, valid.f_f-score 0.70224: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 11 | valid.f_iou 0.5876299738883972, valid.f_f-score 0.71265: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 11 | valid.f_iou 0.5876299738883972, valid.f_f-score 0.71265: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 11 | valid.f_iou 0.5860300064086914, valid.f_f-score 0.7118: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.45it/s]
epoch 11 | valid.f_iou 0.5860300064086914, valid.f_f-score 0.7118: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.53it/s]
epoch 11 | valid.f_iou 0.5932199954986572, valid.f_f-score 0.71788: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 11 | valid.f_iou 0.5932199954986572, valid.f_f-score 0.71788: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 11 | valid.f_iou 0.6009299755096436, valid.f_f-score 0.72401: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 11 | valid.f_iou 0.6009299755096436, valid.f_f-score 0.72401: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 11 | valid.f_iou 0.6009299755096436, valid.f_f-score 0.72401: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 12 | loss 5.988998889923096, f_iou 0.453439325094223: 0%| | 0/74 [00:06, ?it/s]
epoch 12 | loss 5.988998889923096, f_iou 0.453439325094223: 1%|▌ | 1/74 [00:06<07:54, 6.49s/it]
epoch 12 | loss 1.3455029726028442, f_iou 0.4000622630119324: 1%|▌ | 1/74 [00:07<07:54, 6.49s/it]
epoch 12 | loss 1.3455029726028442, f_iou 0.4000622630119324: 3%|█ | 2/74 [00:07<03:46, 3.15s/it]
epoch 12 | loss 4.220058441162109, f_iou 0.4702349603176117: 3%|█ | 2/74 [00:08<03:46, 3.15s/it]
epoch 12 | loss 4.220058441162109, f_iou 0.4702349603176117: 4%|█▌ | 3/74 [00:08<02:27, 2.07s/it]
epoch 12 | loss 7.766195297241211, f_iou 0.35403141379356384: 4%|█▌ | 3/74 [00:08<02:27, 2.07s/it]
epoch 12 | loss 7.766195297241211, f_iou 0.35403141379356384: 5%|██ | 4/74 [00:08<01:49, 1.57s/it]
epoch 12 | loss 4.618941783905029, f_iou 0.29585951566696167: 5%|██ | 4/74 [00:09<01:49, 1.57s/it]
epoch 12 | loss 4.618941783905029, f_iou 0.29585951566696167: 7%|██▌ | 5/74 [00:09<01:29, 1.29s/it]
epoch 12 | loss 3.295544147491455, f_iou 0.345036119222641: 7%|██▋ | 5/74 [00:10<01:29, 1.29s/it]
epoch 12 | loss 3.295544147491455, f_iou 0.345036119222641: 8%|███▏ | 6/74 [00:10<01:16, 1.13s/it]
epoch 12 | loss 4.4679718017578125, f_iou 0.33386096358299255: 8%|██▉ | 6/74 [00:11<01:16, 1.13s/it]
epoch 12 | loss 4.4679718017578125, f_iou 0.33386096358299255: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 12 | loss 4.03921365737915, f_iou 0.406373530626297: 9%|███▊ | 7/74 [00:12<01:08, 1.02s/it]
epoch 12 | loss 4.03921365737915, f_iou 0.406373530626297: 11%|████▎ | 8/74 [00:12<01:02, 1.06it/s]
epoch 12 | loss 2.3710789680480957, f_iou 0.44745826721191406: 11%|███▉ | 8/74 [00:12<01:02, 1.06it/s]
epoch 12 | loss 2.3710789680480957, f_iou 0.44745826721191406: 12%|████▍ | 9/74 [00:12<00:58, 1.10it/s]
epoch 12 | loss 3.098090887069702, f_iou 0.43482914566993713: 12%|████▌ | 9/74 [00:13<00:58, 1.10it/s]
epoch 12 | loss 3.098090887069702, f_iou 0.43482914566993713: 14%|████▊ | 10/74 [00:13<00:55, 1.15it/s]
epoch 12 | loss 4.0581817626953125, f_iou 0.43976491689682007: 14%|████▋ | 10/74 [00:14<00:55, 1.15it/s]
epoch 12 | loss 4.0581817626953125, f_iou 0.43976491689682007: 15%|█████▏ | 11/74 [00:14<00:51, 1.22it/s]
epoch 12 | loss 7.8505859375, f_iou 0.485774964094162: 15%|██████▍ | 11/74 [00:15<00:51, 1.22it/s]
epoch 12 | loss 7.8505859375, f_iou 0.485774964094162: 16%|██████▉ | 12/74 [00:15<00:49, 1.26it/s]
epoch 12 | loss 4.304004669189453, f_iou 0.49930182099342346: 16%|█████▊ | 12/74 [00:15<00:49, 1.26it/s]
epoch 12 | loss 4.304004669189453, f_iou 0.49930182099342346: 18%|██████▎ | 13/74 [00:15<00:47, 1.28it/s]
epoch 12 | loss 1.6544785499572754, f_iou 0.5209202766418457: 18%|██████▎ | 13/74 [00:16<00:47, 1.28it/s]
epoch 12 | loss 1.6544785499572754, f_iou 0.5209202766418457: 19%|██████▊ | 14/74 [00:16<00:45, 1.31it/s]
epoch 12 | loss 5.648523807525635, f_iou 0.5081359148025513: 19%|███████ | 14/74 [00:17<00:45, 1.31it/s]
epoch 12 | loss 5.648523807525635, f_iou 0.5081359148025513: 20%|███████▌ | 15/74 [00:17<00:44, 1.33it/s]
epoch 12 | loss 6.098537921905518, f_iou 0.49700698256492615: 20%|███████▎ | 15/74 [00:18<00:44, 1.33it/s]
epoch 12 | loss 6.098537921905518, f_iou 0.49700698256492615: 22%|███████▊ | 16/74 [00:18<00:42, 1.35it/s]
epoch 12 | loss 5.201755046844482, f_iou 0.47479310631752014: 22%|███████▊ | 16/74 [00:18<00:42, 1.35it/s]
epoch 12 | loss 5.201755046844482, f_iou 0.47479310631752014: 23%|████████▎ | 17/74 [00:18<00:42, 1.34it/s]
epoch 12 | loss 1.8681200742721558, f_iou 0.4672621786594391: 23%|████████▎ | 17/74 [00:19<00:42, 1.34it/s]
epoch 12 | loss 1.8681200742721558, f_iou 0.4672621786594391: 24%|████████▊ | 18/74 [00:19<00:41, 1.35it/s]
epoch 12 | loss 5.869152545928955, f_iou 0.4519864022731781: 24%|█████████ | 18/74 [00:20<00:41, 1.35it/s]
epoch 12 | loss 5.869152545928955, f_iou 0.4519864022731781: 26%|█████████▌ | 19/74 [00:20<00:40, 1.37it/s]
epoch 12 | loss 3.1765286922454834, f_iou 0.45969247817993164: 26%|████████▉ | 19/74 [00:20<00:40, 1.37it/s]
epoch 12 | loss 3.1765286922454834, f_iou 0.45969247817993164: 27%|█████████▍ | 20/74 [00:20<00:39, 1.38it/s]
epoch 12 | loss 2.8289711475372314, f_iou 0.4777550995349884: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 12 | loss 2.8289711475372314, f_iou 0.4777550995349884: 28%|██████████▏ | 21/74 [00:21<00:38, 1.36it/s]
epoch 12 | loss 7.739108085632324, f_iou 0.46635279059410095: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 12 | loss 7.739108085632324, f_iou 0.46635279059410095: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 12 | loss 2.417243003845215, f_iou 0.44624942541122437: 30%|██████████▋ | 22/74 [00:23<00:37, 1.37it/s]
epoch 12 | loss 2.417243003845215, f_iou 0.44624942541122437: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 12 | loss 3.6466832160949707, f_iou 0.44103729724884033: 31%|██████████▉ | 23/74 [00:23<00:37, 1.37it/s]
epoch 12 | loss 3.6466832160949707, f_iou 0.44103729724884033: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 12 | loss 2.104848623275757, f_iou 0.4341750144958496: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 12 | loss 2.104848623275757, f_iou 0.4341750144958496: 34%|████████████▌ | 25/74 [00:24<00:35, 1.38it/s]
epoch 12 | loss 4.091105937957764, f_iou 0.42505285143852234: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 12 | loss 4.091105937957764, f_iou 0.42505285143852234: 35%|████████████▋ | 26/74 [00:25<00:35, 1.37it/s]
epoch 12 | loss 4.465539455413818, f_iou 0.40931013226509094: 35%|████████████▋ | 26/74 [00:26<00:35, 1.37it/s]
epoch 12 | loss 4.465539455413818, f_iou 0.40931013226509094: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.37it/s]
epoch 12 | loss 4.078371524810791, f_iou 0.40580978989601135: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.37it/s]
epoch 12 | loss 4.078371524810791, f_iou 0.40580978989601135: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 12 | loss 3.7366247177124023, f_iou 0.3920501172542572: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 12 | loss 3.7366247177124023, f_iou 0.3920501172542572: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 12 | loss 5.620741844177246, f_iou 0.3828428089618683: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.37it/s]
epoch 12 | loss 5.620741844177246, f_iou 0.3828428089618683: 41%|███████████████ | 30/74 [00:28<00:31, 1.38it/s]
epoch 12 | loss 2.4793803691864014, f_iou 0.3761895000934601: 41%|██████████████▌ | 30/74 [00:29<00:31, 1.38it/s]
epoch 12 | loss 2.4793803691864014, f_iou 0.3761895000934601: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 12 | loss 4.189414978027344, f_iou 0.38154950737953186: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 12 | loss 4.189414978027344, f_iou 0.38154950737953186: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.35it/s]
epoch 12 | loss 4.274806022644043, f_iou 0.3774685263633728: 43%|████████████████ | 32/74 [00:30<00:31, 1.35it/s]
epoch 12 | loss 4.274806022644043, f_iou 0.3774685263633728: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.34it/s]
epoch 12 | loss 5.466845989227295, f_iou 0.3725607693195343: 45%|████████████████▌ | 33/74 [00:31<00:30, 1.34it/s]
epoch 12 | loss 5.466845989227295, f_iou 0.3725607693195343: 46%|█████████████████ | 34/74 [00:31<00:30, 1.33it/s]
epoch 12 | loss 2.9489173889160156, f_iou 0.3726382255554199: 46%|████████████████▌ | 34/74 [00:32<00:30, 1.33it/s]
epoch 12 | loss 2.9489173889160156, f_iou 0.3726382255554199: 47%|█████████████████ | 35/74 [00:32<00:29, 1.32it/s]
epoch 12 | loss 1.1737797260284424, f_iou 0.3623489439487457: 47%|█████████████████ | 35/74 [00:32<00:29, 1.32it/s]
epoch 12 | loss 1.1737797260284424, f_iou 0.3623489439487457: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.33it/s]
epoch 12 | loss 2.0119729042053223, f_iou 0.3728996515274048: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.33it/s]
epoch 12 | loss 2.0119729042053223, f_iou 0.3728996515274048: 50%|██████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 12 | loss 2.260878324508667, f_iou 0.36373069882392883: 50%|██████████████████ | 37/74 [00:34<00:27, 1.33it/s]
epoch 12 | loss 2.260878324508667, f_iou 0.36373069882392883: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 12 | loss 1.7678415775299072, f_iou 0.35477444529533386: 51%|█████████████████▉ | 38/74 [00:35<00:27, 1.32it/s]
epoch 12 | loss 1.7678415775299072, f_iou 0.35477444529533386: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 12 | loss 1.3274648189544678, f_iou 0.34613868594169617: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 12 | loss 1.3274648189544678, f_iou 0.34613868594169617: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.32it/s]
epoch 12 | loss 2.367859125137329, f_iou 0.3405015766620636: 54%|████████████████████ | 40/74 [00:36<00:25, 1.32it/s]
epoch 12 | loss 2.367859125137329, f_iou 0.3405015766620636: 55%|████████████████████▌ | 41/74 [00:36<00:25, 1.31it/s]
epoch 12 | loss 6.971424102783203, f_iou 0.33788108825683594: 55%|███████████████████▉ | 41/74 [00:37<00:25, 1.31it/s]
epoch 12 | loss 6.971424102783203, f_iou 0.33788108825683594: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.31it/s]
epoch 12 | loss 1.0219295024871826, f_iou 0.3301965892314911: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.31it/s]
epoch 12 | loss 1.0219295024871826, f_iou 0.3301965892314911: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.31it/s]
epoch 12 | loss 2.176422357559204, f_iou 0.34038081765174866: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.31it/s]
epoch 12 | loss 2.176422357559204, f_iou 0.34038081765174866: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.32it/s]
epoch 12 | loss 3.6931676864624023, f_iou 0.34084081649780273: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.32it/s]
epoch 12 | loss 3.6931676864624023, f_iou 0.34084081649780273: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.34it/s]
epoch 12 | loss 8.571418762207031, f_iou 0.3355763852596283: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.34it/s]
epoch 12 | loss 8.571418762207031, f_iou 0.3355763852596283: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.35it/s]
epoch 12 | loss 1.3381597995758057, f_iou 0.32954323291778564: 62%|█████████████████████▊ | 46/74 [00:41<00:20, 1.35it/s]
epoch 12 | loss 1.3381597995758057, f_iou 0.32954323291778564: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.36it/s]
epoch 12 | loss 3.236562728881836, f_iou 0.3364203870296478: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.36it/s]
epoch 12 | loss 3.236562728881836, f_iou 0.3364203870296478: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.37it/s]
epoch 12 | loss 2.490485429763794, f_iou 0.33662813901901245: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.37it/s]
epoch 12 | loss 2.490485429763794, f_iou 0.33662813901901245: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.37it/s]
epoch 12 | loss 2.9259543418884277, f_iou 0.33908694982528687: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.37it/s]
epoch 12 | loss 2.9259543418884277, f_iou 0.33908694982528687: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 12 | loss 6.35481595993042, f_iou 0.34872522950172424: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.38it/s]
epoch 12 | loss 6.35481595993042, f_iou 0.34872522950172424: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.38it/s]
epoch 12 | loss 3.633565902709961, f_iou 0.35856354236602783: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 12 | loss 3.633565902709961, f_iou 0.35856354236602783: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 12 | loss 5.229186534881592, f_iou 0.3642440438270569: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.39it/s]
epoch 12 | loss 5.229186534881592, f_iou 0.3642440438270569: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.39it/s]
epoch 12 | loss 1.451944351196289, f_iou 0.37392958998680115: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.39it/s]
epoch 12 | loss 1.451944351196289, f_iou 0.37392958998680115: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 12 | loss 3.50534725189209, f_iou 0.37795862555503845: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.39it/s]
epoch 12 | loss 3.50534725189209, f_iou 0.37795862555503845: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 12 | loss 5.351873874664307, f_iou 0.3779003918170929: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 12 | loss 5.351873874664307, f_iou 0.3779003918170929: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 12 | loss 16.03564453125, f_iou 0.3884773552417755: 76%|██████████████████████████████▎ | 56/74 [00:48<00:12, 1.39it/s]
epoch 12 | loss 16.03564453125, f_iou 0.3884773552417755: 77%|██████████████████████████████▊ | 57/74 [00:48<00:12, 1.38it/s]
epoch 12 | loss 5.303683757781982, f_iou 0.3915984034538269: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.38it/s]
epoch 12 | loss 5.303683757781982, f_iou 0.3915984034538269: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.39it/s]
epoch 12 | loss 4.219033241271973, f_iou 0.386019766330719: 78%|█████████████████████████████▊ | 58/74 [00:49<00:11, 1.39it/s]
epoch 12 | loss 4.219033241271973, f_iou 0.386019766330719: 80%|██████████████████████████████▎ | 59/74 [00:49<00:10, 1.39it/s]
epoch 12 | loss 6.823241710662842, f_iou 0.38342633843421936: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 12 | loss 6.823241710662842, f_iou 0.38342633843421936: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 12 | loss 4.913604736328125, f_iou 0.3771563768386841: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.38it/s]
epoch 12 | loss 4.913604736328125, f_iou 0.3771563768386841: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.38it/s]
epoch 12 | loss 1.5185966491699219, f_iou 0.37398141622543335: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 12 | loss 1.5185966491699219, f_iou 0.37398141622543335: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.39it/s]
epoch 12 | loss 2.9957501888275146, f_iou 0.37855133414268494: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.39it/s]
epoch 12 | loss 2.9957501888275146, f_iou 0.37855133414268494: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.39it/s]
epoch 12 | loss 2.565234899520874, f_iou 0.38076576590538025: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 12 | loss 2.565234899520874, f_iou 0.38076576590538025: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 12 | loss 4.824425220489502, f_iou 0.37995606660842896: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.39it/s]
epoch 12 | loss 4.824425220489502, f_iou 0.37995606660842896: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 12 | loss 7.625970840454102, f_iou 0.3785178065299988: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 12 | loss 7.625970840454102, f_iou 0.3785178065299988: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.40it/s]
epoch 12 | loss 3.8184316158294678, f_iou 0.3788452446460724: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.40it/s]
epoch 12 | loss 3.8184316158294678, f_iou 0.3788452446460724: 91%|████████████████████████████████▌ | 67/74 [00:55<00:04, 1.40it/s]
epoch 12 | loss 4.72113037109375, f_iou 0.3808589279651642: 91%|██████████████████████████████████▍ | 67/74 [00:56<00:04, 1.40it/s]
epoch 12 | loss 4.72113037109375, f_iou 0.3808589279651642: 92%|██████████████████████████████████▉ | 68/74 [00:56<00:04, 1.40it/s]
epoch 12 | loss 2.187574863433838, f_iou 0.38222646713256836: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 12 | loss 2.187574863433838, f_iou 0.38222646713256836: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 12 | loss 6.183408737182617, f_iou 0.37797224521636963: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 12 | loss 6.183408737182617, f_iou 0.37797224521636963: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 12 | loss 4.0506367683410645, f_iou 0.3839292824268341: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 12 | loss 4.0506367683410645, f_iou 0.3839292824268341: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 12 | loss 6.707718372344971, f_iou 0.3808707594871521: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 12 | loss 6.707718372344971, f_iou 0.3808707594871521: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 12 | loss 4.819388389587402, f_iou 0.38675567507743835: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 12 | loss 4.819388389587402, f_iou 0.38675567507743835: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.37it/s]
epoch 12 | loss 4.430654048919678, f_iou 0.38832753896713257: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.37it/s]
epoch 12 | loss 4.430654048919678, f_iou 0.38832753896713257: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.37it/s]
epoch 12 | loss 4.430654048919678, f_iou 0.38832753896713257: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 12 | valid.f_iou 0.5083699822425842, valid.f_f-score 0.76781: 0%| | 0/16 [00:05, ?it/s]
epoch 12 | valid.f_iou 0.5083699822425842, valid.f_f-score 0.76781: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 12 | valid.f_iou 0.3914799988269806, valid.f_f-score 0.70023: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 12 | valid.f_iou 0.3914799988269806, valid.f_f-score 0.70023: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 12 | valid.f_iou 0.39028000831604004, valid.f_f-score 0.69963: 12%|███▊ | 2/16 [00:06<00:34, 2.48s/it]
epoch 12 | valid.f_iou 0.39028000831604004, valid.f_f-score 0.69963: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 12 | valid.f_iou 0.4396199882030487, valid.f_f-score 0.72077: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 12 | valid.f_iou 0.4396199882030487, valid.f_f-score 0.72077: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 12 | valid.f_iou 0.4328100085258484, valid.f_f-score 0.71043: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 12 | valid.f_iou 0.4328100085258484, valid.f_f-score 0.71043: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 12 | valid.f_iou 0.4154199957847595, valid.f_f-score 0.68972: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 12 | valid.f_iou 0.4154199957847595, valid.f_f-score 0.68972: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 12 | valid.f_iou 0.4081299901008606, valid.f_f-score 0.6824: 38%|████████████ | 6/16 [00:08<00:07, 1.37it/s]
epoch 12 | valid.f_iou 0.4081299901008606, valid.f_f-score 0.6824: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 12 | valid.f_iou 0.38909998536109924, valid.f_f-score 0.67581: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 12 | valid.f_iou 0.38909998536109924, valid.f_f-score 0.67581: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 12 | valid.f_iou 0.3995800018310547, valid.f_f-score 0.66634: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 12 | valid.f_iou 0.3995800018310547, valid.f_f-score 0.66634: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.88it/s]
epoch 12 | valid.f_iou 0.3959900140762329, valid.f_f-score 0.67749: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 12 | valid.f_iou 0.3959900140762329, valid.f_f-score 0.67749: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 12 | valid.f_iou 0.39789000153541565, valid.f_f-score 0.66538: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 12 | valid.f_iou 0.39789000153541565, valid.f_f-score 0.66538: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.11it/s]
epoch 12 | valid.f_iou 0.41602998971939087, valid.f_f-score 0.68337: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.11it/s]
epoch 12 | valid.f_iou 0.41602998971939087, valid.f_f-score 0.68337: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.27it/s]
epoch 12 | valid.f_iou 0.40198999643325806, valid.f_f-score 0.69005: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.27it/s]
epoch 12 | valid.f_iou 0.40198999643325806, valid.f_f-score 0.69005: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 12 | valid.f_iou 0.381630003452301, valid.f_f-score 0.67029: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.39it/s]
epoch 12 | valid.f_iou 0.381630003452301, valid.f_f-score 0.67029: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.48it/s]
epoch 12 | valid.f_iou 0.377020001411438, valid.f_f-score 0.66947: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.48it/s]
epoch 12 | valid.f_iou 0.377020001411438, valid.f_f-score 0.66947: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.56it/s]
epoch 12 | valid.f_iou 0.38078001141548157, valid.f_f-score 0.66354: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 12 | valid.f_iou 0.38078001141548157, valid.f_f-score 0.66354: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 12 | valid.f_iou 0.38078001141548157, valid.f_f-score 0.66354: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 12 | valid.f_iou 0.7460200190544128, valid.f_f-score 0.77428: 0%| | 0/16 [00:04, ?it/s]
epoch 12 | valid.f_iou 0.7460200190544128, valid.f_f-score 0.77428: 6%|█▉ | 1/16 [00:04<01:12, 4.84s/it]
epoch 12 | valid.f_iou 0.8096200227737427, valid.f_f-score 0.86179: 6%|█▉ | 1/16 [00:05<01:12, 4.84s/it]
epoch 12 | valid.f_iou 0.8096200227737427, valid.f_f-score 0.86179: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 12 | valid.f_iou 0.6911100149154663, valid.f_f-score 0.80746: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 12 | valid.f_iou 0.6911100149154663, valid.f_f-score 0.80746: 19%|█████▊ | 3/16 [00:05<00:18, 1.42s/it]
epoch 12 | valid.f_iou 0.6780300140380859, valid.f_f-score 0.76378: 19%|█████▊ | 3/16 [00:06<00:18, 1.42s/it]
epoch 12 | valid.f_iou 0.6780300140380859, valid.f_f-score 0.76378: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 12 | valid.f_iou 0.6572499871253967, valid.f_f-score 0.75901: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 12 | valid.f_iou 0.6572499871253967, valid.f_f-score 0.75901: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 12 | valid.f_iou 0.6212800145149231, valid.f_f-score 0.72959: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 12 | valid.f_iou 0.6212800145149231, valid.f_f-score 0.72959: 38%|███████████▋ | 6/16 [00:06<00:06, 1.55it/s]
epoch 12 | valid.f_iou 0.606190025806427, valid.f_f-score 0.72611: 38%|████████████ | 6/16 [00:07<00:06, 1.55it/s]
epoch 12 | valid.f_iou 0.606190025806427, valid.f_f-score 0.72611: 44%|██████████████ | 7/16 [00:07<00:04, 1.82it/s]
epoch 12 | valid.f_iou 0.5893800258636475, valid.f_f-score 0.70962: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.82it/s]
epoch 12 | valid.f_iou 0.5893800258636475, valid.f_f-score 0.70962: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 12 | valid.f_iou 0.6133400201797485, valid.f_f-score 0.72427: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 12 | valid.f_iou 0.6133400201797485, valid.f_f-score 0.72427: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.24it/s]
epoch 12 | valid.f_iou 0.6291999816894531, valid.f_f-score 0.74198: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.24it/s]
epoch 12 | valid.f_iou 0.6291999816894531, valid.f_f-score 0.74198: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.37it/s]
epoch 12 | valid.f_iou 0.6225900053977966, valid.f_f-score 0.73239: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.37it/s]
epoch 12 | valid.f_iou 0.6225900053977966, valid.f_f-score 0.73239: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.48it/s]
epoch 12 | valid.f_iou 0.6350100040435791, valid.f_f-score 0.74493: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.48it/s]
epoch 12 | valid.f_iou 0.6350100040435791, valid.f_f-score 0.74493: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 12 | valid.f_iou 0.6451900005340576, valid.f_f-score 0.75356: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 12 | valid.f_iou 0.6451900005340576, valid.f_f-score 0.75356: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 12 | valid.f_iou 0.638189971446991, valid.f_f-score 0.74873: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.60it/s]
epoch 12 | valid.f_iou 0.638189971446991, valid.f_f-score 0.74873: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.64it/s]
epoch 12 | valid.f_iou 0.6418799757957458, valid.f_f-score 0.7559: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.64it/s]
epoch 12 | valid.f_iou 0.6418799757957458, valid.f_f-score 0.7559: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.67it/s]
epoch 12 | valid.f_iou 0.6447100043296814, valid.f_f-score 0.75685: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 12 | valid.f_iou 0.6447100043296814, valid.f_f-score 0.75685: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 12 | valid.f_iou 0.6447100043296814, valid.f_f-score 0.75685: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.53it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 12 | valid.f_iou 0.7460200190544128, valid.f_f-score 0.77428: 0%| | 0/16 [00:04, ?it/s]
epoch 12 | valid.f_iou 0.7460200190544128, valid.f_f-score 0.77428: 6%|█▉ | 1/16 [00:04<01:05, 4.37s/it]
epoch 12 | valid.f_iou 0.8096200227737427, valid.f_f-score 0.86179: 6%|█▉ | 1/16 [00:04<01:05, 4.37s/it]
epoch 12 | valid.f_iou 0.8096200227737427, valid.f_f-score 0.86179: 12%|███▉ | 2/16 [00:04<00:28, 2.07s/it]
epoch 12 | valid.f_iou 0.6911100149154663, valid.f_f-score 0.80746: 12%|███▉ | 2/16 [00:05<00:28, 2.07s/it]
epoch 12 | valid.f_iou 0.6911100149154663, valid.f_f-score 0.80746: 19%|█████▊ | 3/16 [00:05<00:17, 1.33s/it]
epoch 12 | valid.f_iou 0.6780300140380859, valid.f_f-score 0.76378: 19%|█████▊ | 3/16 [00:05<00:17, 1.33s/it]
epoch 12 | valid.f_iou 0.6780300140380859, valid.f_f-score 0.76378: 25%|███████▊ | 4/16 [00:05<00:11, 1.02it/s]
epoch 12 | valid.f_iou 0.6574100255966187, valid.f_f-score 0.75901: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 12 | valid.f_iou 0.6574100255966187, valid.f_f-score 0.75901: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 12 | valid.f_iou 0.6214100122451782, valid.f_f-score 0.72959: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 12 | valid.f_iou 0.6214100122451782, valid.f_f-score 0.72959: 38%|███████████▋ | 6/16 [00:06<00:06, 1.55it/s]
epoch 12 | valid.f_iou 0.6063100099563599, valid.f_f-score 0.72611: 38%|███████████▋ | 6/16 [00:06<00:06, 1.55it/s]
epoch 12 | valid.f_iou 0.6063100099563599, valid.f_f-score 0.72611: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.81it/s]
epoch 12 | valid.f_iou 0.5894799828529358, valid.f_f-score 0.70962: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.81it/s]
epoch 12 | valid.f_iou 0.5894799828529358, valid.f_f-score 0.70962: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.01it/s]
epoch 12 | valid.f_iou 0.6134300231933594, valid.f_f-score 0.72427: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.01it/s]
epoch 12 | valid.f_iou 0.6134300231933594, valid.f_f-score 0.72427: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.22it/s]
epoch 12 | valid.f_iou 0.6292799711227417, valid.f_f-score 0.74198: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.22it/s]
epoch 12 | valid.f_iou 0.6292799711227417, valid.f_f-score 0.74198: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.35it/s]
epoch 12 | valid.f_iou 0.6226599812507629, valid.f_f-score 0.73239: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.35it/s]
epoch 12 | valid.f_iou 0.6226599812507629, valid.f_f-score 0.73239: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.45it/s]
epoch 12 | valid.f_iou 0.6350799798965454, valid.f_f-score 0.74493: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.45it/s]
epoch 12 | valid.f_iou 0.6350799798965454, valid.f_f-score 0.74493: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.51it/s]
epoch 12 | valid.f_iou 0.6452500224113464, valid.f_f-score 0.75356: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 12 | valid.f_iou 0.6452500224113464, valid.f_f-score 0.75356: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 12 | valid.f_iou 0.6382399797439575, valid.f_f-score 0.74873: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 12 | valid.f_iou 0.6382399797439575, valid.f_f-score 0.74873: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.61it/s]
epoch 12 | valid.f_iou 0.6419299840927124, valid.f_f-score 0.7559: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.61it/s]
epoch 12 | valid.f_iou 0.6419299840927124, valid.f_f-score 0.7559: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.64it/s]
epoch 12 | valid.f_iou 0.644760012626648, valid.f_f-score 0.75685: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.64it/s]
epoch 12 | valid.f_iou 0.644760012626648, valid.f_f-score 0.75685: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 12 | valid.f_iou 0.644760012626648, valid.f_f-score 0.75685: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.57it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 13 | loss 7.272471904754639, f_iou 0.010712342336773872: 0%| | 0/74 [00:05, ?it/s]
epoch 13 | loss 7.272471904754639, f_iou 0.010712342336773872: 1%|▍ | 1/74 [00:05<06:37, 5.44s/it]
epoch 13 | loss 2.759674549102783, f_iou 0.34161487221717834: 1%|▌ | 1/74 [00:06<06:37, 5.44s/it]
epoch 13 | loss 2.759674549102783, f_iou 0.34161487221717834: 3%|█ | 2/74 [00:06<03:15, 2.72s/it]
epoch 13 | loss 1.3953688144683838, f_iou 0.3121292293071747: 3%|█ | 2/74 [00:07<03:15, 2.72s/it]
epoch 13 | loss 1.3953688144683838, f_iou 0.3121292293071747: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 13 | loss 1.4156633615493774, f_iou 0.28236570954322815: 4%|█▍ | 3/74 [00:07<02:12, 1.86s/it]
epoch 13 | loss 1.4156633615493774, f_iou 0.28236570954322815: 5%|█▉ | 4/74 [00:07<01:40, 1.44s/it]
epoch 13 | loss 1.774152159690857, f_iou 0.23962552845478058: 5%|██ | 4/74 [00:08<01:40, 1.44s/it]
epoch 13 | loss 1.774152159690857, f_iou 0.23962552845478058: 7%|██▌ | 5/74 [00:08<01:22, 1.19s/it]
epoch 13 | loss 2.953388214111328, f_iou 0.29312658309936523: 7%|██▌ | 5/74 [00:09<01:22, 1.19s/it]
epoch 13 | loss 2.953388214111328, f_iou 0.29312658309936523: 8%|███ | 6/74 [00:09<01:11, 1.05s/it]
epoch 13 | loss 4.381508827209473, f_iou 0.272182822227478: 8%|███▏ | 6/74 [00:10<01:11, 1.05s/it]
epoch 13 | loss 4.381508827209473, f_iou 0.272182822227478: 9%|███▋ | 7/74 [00:10<01:04, 1.04it/s]
epoch 13 | loss 5.229731559753418, f_iou 0.24871674180030823: 9%|███▌ | 7/74 [00:10<01:04, 1.04it/s]
epoch 13 | loss 5.229731559753418, f_iou 0.24871674180030823: 11%|████ | 8/74 [00:10<00:59, 1.12it/s]
epoch 13 | loss 1.3728384971618652, f_iou 0.29230326414108276: 11%|███▉ | 8/74 [00:11<00:59, 1.12it/s]
epoch 13 | loss 1.3728384971618652, f_iou 0.29230326414108276: 12%|████▍ | 9/74 [00:11<00:55, 1.17it/s]
epoch 13 | loss 3.331225872039795, f_iou 0.32991427183151245: 12%|████▌ | 9/74 [00:12<00:55, 1.17it/s]
epoch 13 | loss 3.331225872039795, f_iou 0.32991427183151245: 14%|████▊ | 10/74 [00:12<00:52, 1.21it/s]
epoch 13 | loss 2.5327742099761963, f_iou 0.3856242895126343: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 13 | loss 2.5327742099761963, f_iou 0.3856242895126343: 15%|█████▎ | 11/74 [00:13<00:50, 1.26it/s]
epoch 13 | loss 2.553579330444336, f_iou 0.4136645495891571: 15%|█████▌ | 11/74 [00:13<00:50, 1.26it/s]
epoch 13 | loss 2.553579330444336, f_iou 0.4136645495891571: 16%|██████ | 12/74 [00:13<00:48, 1.29it/s]
epoch 13 | loss 3.3070480823516846, f_iou 0.40642431378364563: 16%|█████▋ | 12/74 [00:14<00:48, 1.29it/s]
epoch 13 | loss 3.3070480823516846, f_iou 0.40642431378364563: 18%|██████▏ | 13/74 [00:14<00:46, 1.32it/s]
epoch 13 | loss 4.172609806060791, f_iou 0.40558579564094543: 18%|██████▎ | 13/74 [00:15<00:46, 1.32it/s]
epoch 13 | loss 4.172609806060791, f_iou 0.40558579564094543: 19%|██████▊ | 14/74 [00:15<00:44, 1.33it/s]
epoch 13 | loss 3.506183624267578, f_iou 0.4328766167163849: 19%|███████ | 14/74 [00:16<00:44, 1.33it/s]
epoch 13 | loss 3.506183624267578, f_iou 0.4328766167163849: 20%|███████▌ | 15/74 [00:16<00:46, 1.26it/s]
epoch 13 | loss 3.648341655731201, f_iou 0.40941622853279114: 20%|███████▎ | 15/74 [00:16<00:46, 1.26it/s]
epoch 13 | loss 3.648341655731201, f_iou 0.40941622853279114: 22%|███████▊ | 16/74 [00:16<00:44, 1.30it/s]
epoch 13 | loss 4.2220892906188965, f_iou 0.4050837755203247: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 13 | loss 4.2220892906188965, f_iou 0.4050837755203247: 23%|████████▎ | 17/74 [00:17<00:43, 1.32it/s]
epoch 13 | loss 7.227034568786621, f_iou 0.42564600706100464: 23%|████████▎ | 17/74 [00:18<00:43, 1.32it/s]
epoch 13 | loss 7.227034568786621, f_iou 0.42564600706100464: 24%|████████▊ | 18/74 [00:18<00:41, 1.34it/s]
epoch 13 | loss 2.0478713512420654, f_iou 0.44311052560806274: 24%|████████▌ | 18/74 [00:19<00:41, 1.34it/s]
epoch 13 | loss 2.0478713512420654, f_iou 0.44311052560806274: 26%|████████▉ | 19/74 [00:19<00:40, 1.35it/s]
epoch 13 | loss 4.528822422027588, f_iou 0.45154786109924316: 26%|█████████▏ | 19/74 [00:19<00:40, 1.35it/s]
epoch 13 | loss 4.528822422027588, f_iou 0.45154786109924316: 27%|█████████▋ | 20/74 [00:19<00:39, 1.37it/s]
epoch 13 | loss 9.21700382232666, f_iou 0.45649510622024536: 27%|██████████ | 20/74 [00:20<00:39, 1.37it/s]
epoch 13 | loss 9.21700382232666, f_iou 0.45649510622024536: 28%|██████████▌ | 21/74 [00:20<00:38, 1.37it/s]
epoch 13 | loss 5.126744747161865, f_iou 0.4512731432914734: 28%|██████████▌ | 21/74 [00:21<00:38, 1.37it/s]
epoch 13 | loss 5.126744747161865, f_iou 0.4512731432914734: 30%|███████████ | 22/74 [00:21<00:37, 1.37it/s]
epoch 13 | loss 1.9558672904968262, f_iou 0.4621013104915619: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 13 | loss 1.9558672904968262, f_iou 0.4621013104915619: 31%|███████████▏ | 23/74 [00:22<00:37, 1.38it/s]
epoch 13 | loss 1.258975863456726, f_iou 0.4540379047393799: 31%|███████████▌ | 23/74 [00:22<00:37, 1.38it/s]
epoch 13 | loss 1.258975863456726, f_iou 0.4540379047393799: 32%|████████████ | 24/74 [00:22<00:36, 1.38it/s]
epoch 13 | loss 1.9677619934082031, f_iou 0.44236090779304504: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 13 | loss 1.9677619934082031, f_iou 0.44236090779304504: 34%|███████████▊ | 25/74 [00:23<00:35, 1.38it/s]
epoch 13 | loss 3.178316116333008, f_iou 0.4571771025657654: 34%|████████████▌ | 25/74 [00:24<00:35, 1.38it/s]
epoch 13 | loss 3.178316116333008, f_iou 0.4571771025657654: 35%|█████████████ | 26/74 [00:24<00:34, 1.39it/s]
epoch 13 | loss 2.155118465423584, f_iou 0.44439178705215454: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 13 | loss 2.155118465423584, f_iou 0.44439178705215454: 36%|█████████████▏ | 27/74 [00:24<00:34, 1.38it/s]
epoch 13 | loss 2.9196465015411377, f_iou 0.4579656720161438: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 13 | loss 2.9196465015411377, f_iou 0.4579656720161438: 38%|█████████████▌ | 28/74 [00:25<00:34, 1.35it/s]
epoch 13 | loss 7.229314804077148, f_iou 0.4459295868873596: 38%|██████████████ | 28/74 [00:26<00:34, 1.35it/s]
epoch 13 | loss 7.229314804077148, f_iou 0.4459295868873596: 39%|██████████████▌ | 29/74 [00:26<00:33, 1.35it/s]
epoch 13 | loss 1.1315958499908447, f_iou 0.4435862898826599: 39%|██████████████ | 29/74 [00:27<00:33, 1.35it/s]
epoch 13 | loss 1.1315958499908447, f_iou 0.4435862898826599: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.34it/s]
epoch 13 | loss 0.8752312064170837, f_iou 0.45409753918647766: 41%|██████████████▏ | 30/74 [00:27<00:32, 1.34it/s]
epoch 13 | loss 0.8752312064170837, f_iou 0.45409753918647766: 42%|██████████████▋ | 31/74 [00:27<00:32, 1.32it/s]
epoch 13 | loss 3.0280017852783203, f_iou 0.4472616910934448: 42%|███████████████ | 31/74 [00:28<00:32, 1.32it/s]
epoch 13 | loss 3.0280017852783203, f_iou 0.4472616910934448: 43%|███████████████▌ | 32/74 [00:28<00:32, 1.31it/s]
epoch 13 | loss 6.391219139099121, f_iou 0.43968069553375244: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.31it/s]
epoch 13 | loss 6.391219139099121, f_iou 0.43968069553375244: 45%|████████████████ | 33/74 [00:29<00:31, 1.31it/s]
epoch 13 | loss 6.138189315795898, f_iou 0.4276905059814453: 45%|████████████████▌ | 33/74 [00:30<00:31, 1.31it/s]
epoch 13 | loss 6.138189315795898, f_iou 0.4276905059814453: 46%|█████████████████ | 34/74 [00:30<00:29, 1.34it/s]
epoch 13 | loss 2.160674571990967, f_iou 0.4395826458930969: 46%|█████████████████ | 34/74 [00:30<00:29, 1.34it/s]
epoch 13 | loss 2.160674571990967, f_iou 0.4395826458930969: 47%|█████████████████▌ | 35/74 [00:30<00:28, 1.35it/s]
epoch 13 | loss 9.634214401245117, f_iou 0.4479227066040039: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.35it/s]
epoch 13 | loss 9.634214401245117, f_iou 0.4479227066040039: 49%|██████████████████ | 36/74 [00:31<00:27, 1.36it/s]
epoch 13 | loss 2.9058146476745605, f_iou 0.4417239725589752: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.36it/s]
epoch 13 | loss 2.9058146476745605, f_iou 0.4417239725589752: 50%|██████████████████ | 37/74 [00:32<00:28, 1.32it/s]
epoch 13 | loss 5.258157253265381, f_iou 0.4399334788322449: 50%|██████████████████▌ | 37/74 [00:33<00:28, 1.32it/s]
epoch 13 | loss 5.258157253265381, f_iou 0.4399334788322449: 51%|███████████████████ | 38/74 [00:33<00:27, 1.30it/s]
epoch 13 | loss 2.994497776031494, f_iou 0.43260207772254944: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.30it/s]
epoch 13 | loss 2.994497776031494, f_iou 0.43260207772254944: 53%|██████████████████▉ | 39/74 [00:34<00:27, 1.28it/s]
epoch 13 | loss 3.6387062072753906, f_iou 0.4270900785923004: 53%|██████████████████▉ | 39/74 [00:34<00:27, 1.28it/s]
epoch 13 | loss 3.6387062072753906, f_iou 0.4270900785923004: 54%|███████████████████▍ | 40/74 [00:34<00:26, 1.28it/s]
epoch 13 | loss 2.520782470703125, f_iou 0.4195290803909302: 54%|████████████████████ | 40/74 [00:35<00:26, 1.28it/s]
epoch 13 | loss 2.520782470703125, f_iou 0.4195290803909302: 55%|████████████████████▌ | 41/74 [00:35<00:25, 1.27it/s]
epoch 13 | loss 8.742266654968262, f_iou 0.42451977729797363: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.27it/s]
epoch 13 | loss 8.742266654968262, f_iou 0.42451977729797363: 57%|████████████████████▍ | 42/74 [00:36<00:25, 1.27it/s]
epoch 13 | loss 3.9914817810058594, f_iou 0.41464826464653015: 57%|███████████████████▊ | 42/74 [00:37<00:25, 1.27it/s]
epoch 13 | loss 3.9914817810058594, f_iou 0.41464826464653015: 58%|████████████████████▎ | 43/74 [00:37<00:24, 1.28it/s]
epoch 13 | loss 4.785651206970215, f_iou 0.40845274925231934: 58%|████████████████████▉ | 43/74 [00:38<00:24, 1.28it/s]
epoch 13 | loss 4.785651206970215, f_iou 0.40845274925231934: 59%|█████████████████████▍ | 44/74 [00:38<00:23, 1.27it/s]
epoch 13 | loss 4.178522109985352, f_iou 0.40587714314460754: 59%|█████████████████████▍ | 44/74 [00:38<00:23, 1.27it/s]
epoch 13 | loss 4.178522109985352, f_iou 0.40587714314460754: 61%|█████████████████████▉ | 45/74 [00:38<00:22, 1.27it/s]
epoch 13 | loss 5.618707656860352, f_iou 0.40551966428756714: 61%|█████████████████████▉ | 45/74 [00:39<00:22, 1.27it/s]
epoch 13 | loss 5.618707656860352, f_iou 0.40551966428756714: 62%|██████████████████████▍ | 46/74 [00:39<00:22, 1.27it/s]
epoch 13 | loss 3.217266798019409, f_iou 0.4105992615222931: 62%|███████████████████████ | 46/74 [00:40<00:22, 1.27it/s]
epoch 13 | loss 3.217266798019409, f_iou 0.4105992615222931: 64%|███████████████████████▌ | 47/74 [00:40<00:21, 1.27it/s]
epoch 13 | loss 4.56200647354126, f_iou 0.4163007140159607: 64%|████████████████████████▏ | 47/74 [00:41<00:21, 1.27it/s]
epoch 13 | loss 4.56200647354126, f_iou 0.4163007140159607: 65%|████████████████████████▋ | 48/74 [00:41<00:20, 1.27it/s]
epoch 13 | loss 4.06225061416626, f_iou 0.4209546744823456: 65%|████████████████████████▋ | 48/74 [00:41<00:20, 1.27it/s]
epoch 13 | loss 4.06225061416626, f_iou 0.4209546744823456: 66%|█████████████████████████▏ | 49/74 [00:41<00:19, 1.30it/s]
epoch 13 | loss 2.4687438011169434, f_iou 0.4150332510471344: 66%|███████████████████████▊ | 49/74 [00:42<00:19, 1.30it/s]
epoch 13 | loss 2.4687438011169434, f_iou 0.4150332510471344: 68%|████████████████████████▎ | 50/74 [00:42<00:18, 1.32it/s]
epoch 13 | loss 5.127810001373291, f_iou 0.4205080568790436: 68%|█████████████████████████ | 50/74 [00:43<00:18, 1.32it/s]
epoch 13 | loss 5.127810001373291, f_iou 0.4205080568790436: 69%|█████████████████████████▌ | 51/74 [00:43<00:17, 1.34it/s]
epoch 13 | loss 13.286205291748047, f_iou 0.42911726236343384: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.34it/s]
epoch 13 | loss 13.286205291748047, f_iou 0.42911726236343384: 70%|████████████████████████▌ | 52/74 [00:44<00:16, 1.35it/s]
epoch 13 | loss 8.831679344177246, f_iou 0.42829686403274536: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.35it/s]
epoch 13 | loss 8.831679344177246, f_iou 0.42829686403274536: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.36it/s]
epoch 13 | loss 2.19175386428833, f_iou 0.42058926820755005: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.36it/s]
epoch 13 | loss 2.19175386428833, f_iou 0.42058926820755005: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 13 | loss 3.0507593154907227, f_iou 0.42937353253364563: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.37it/s]
epoch 13 | loss 3.0507593154907227, f_iou 0.42937353253364563: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.37it/s]
epoch 13 | loss 3.755462169647217, f_iou 0.4350484311580658: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.37it/s]
epoch 13 | loss 3.755462169647217, f_iou 0.4350484311580658: 76%|████████████████████████████ | 56/74 [00:46<00:13, 1.37it/s]
epoch 13 | loss 2.4388387203216553, f_iou 0.4408281445503235: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.37it/s]
epoch 13 | loss 2.4388387203216553, f_iou 0.4408281445503235: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 13 | loss 2.3528740406036377, f_iou 0.4478051960468292: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 13 | loss 2.3528740406036377, f_iou 0.4478051960468292: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 13 | loss 7.039981365203857, f_iou 0.44542819261550903: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 13 | loss 7.039981365203857, f_iou 0.44542819261550903: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.36it/s]
epoch 13 | loss 4.756227493286133, f_iou 0.443581759929657: 80%|██████████████████████████████▎ | 59/74 [00:49<00:11, 1.36it/s]
epoch 13 | loss 4.756227493286133, f_iou 0.443581759929657: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.34it/s]
epoch 13 | loss 2.3028783798217773, f_iou 0.4503245949745178: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.34it/s]
epoch 13 | loss 2.3028783798217773, f_iou 0.4503245949745178: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.33it/s]
epoch 13 | loss 2.021439552307129, f_iou 0.45504531264305115: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.33it/s]
epoch 13 | loss 2.021439552307129, f_iou 0.45504531264305115: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.32it/s]
epoch 13 | loss 5.748007774353027, f_iou 0.45512455701828003: 84%|██████████████████████████████▏ | 62/74 [00:52<00:09, 1.32it/s]
epoch 13 | loss 5.748007774353027, f_iou 0.45512455701828003: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.31it/s]
epoch 13 | loss 1.3472403287887573, f_iou 0.4513038694858551: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.31it/s]
epoch 13 | loss 1.3472403287887573, f_iou 0.4513038694858551: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.31it/s]
epoch 13 | loss 1.4818625450134277, f_iou 0.4540300667285919: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.31it/s]
epoch 13 | loss 1.4818625450134277, f_iou 0.4540300667285919: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.31it/s]
epoch 13 | loss 5.214532375335693, f_iou 0.45432406663894653: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.31it/s]
epoch 13 | loss 5.214532375335693, f_iou 0.45432406663894653: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.31it/s]
epoch 13 | loss 7.576275825500488, f_iou 0.4609566330909729: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.31it/s]
epoch 13 | loss 7.576275825500488, f_iou 0.4609566330909729: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.31it/s]
epoch 13 | loss 3.9627654552459717, f_iou 0.46675288677215576: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.31it/s]
epoch 13 | loss 3.9627654552459717, f_iou 0.46675288677215576: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.31it/s]
epoch 13 | loss 2.4403810501098633, f_iou 0.4698520004749298: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.31it/s]
epoch 13 | loss 2.4403810501098633, f_iou 0.4698520004749298: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.34it/s]
epoch 13 | loss 1.495029330253601, f_iou 0.4632425606250763: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.34it/s]
epoch 13 | loss 1.495029330253601, f_iou 0.4632425606250763: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.36it/s]
epoch 13 | loss 2.027556896209717, f_iou 0.45725324749946594: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.36it/s]
epoch 13 | loss 2.027556896209717, f_iou 0.45725324749946594: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 13 | loss 5.081641674041748, f_iou 0.45809856057167053: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 13 | loss 5.081641674041748, f_iou 0.45809856057167053: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.37it/s]
epoch 13 | loss 1.9171719551086426, f_iou 0.4615667760372162: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 13 | loss 1.9171719551086426, f_iou 0.4615667760372162: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 13 | loss 12.913019180297852, f_iou 0.46179255843162537: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 13 | loss 12.913019180297852, f_iou 0.46179255843162537: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 13 | loss 12.913019180297852, f_iou 0.46179255843162537: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 13 | valid.f_iou 0.7558000087738037, valid.f_f-score 0.76487: 0%| | 0/16 [00:05, ?it/s]
epoch 13 | valid.f_iou 0.7558000087738037, valid.f_f-score 0.76487: 6%|█▉ | 1/16 [00:05<01:25, 5.73s/it]
epoch 13 | valid.f_iou 0.523389995098114, valid.f_f-score 0.69209: 6%|██ | 1/16 [00:06<01:25, 5.73s/it]
epoch 13 | valid.f_iou 0.523389995098114, valid.f_f-score 0.69209: 12%|████ | 2/16 [00:06<00:36, 2.63s/it]
epoch 13 | valid.f_iou 0.49935001134872437, valid.f_f-score 0.68831: 12%|███▊ | 2/16 [00:06<00:36, 2.63s/it]
epoch 13 | valid.f_iou 0.49935001134872437, valid.f_f-score 0.68831: 19%|█████▋ | 3/16 [00:06<00:21, 1.65s/it]
epoch 13 | valid.f_iou 0.5181999802589417, valid.f_f-score 0.70683: 19%|█████▊ | 3/16 [00:07<00:21, 1.65s/it]
epoch 13 | valid.f_iou 0.5181999802589417, valid.f_f-score 0.70683: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 13 | valid.f_iou 0.5065900087356567, valid.f_f-score 0.71189: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 13 | valid.f_iou 0.5065900087356567, valid.f_f-score 0.71189: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 13 | valid.f_iou 0.4873799979686737, valid.f_f-score 0.69016: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 13 | valid.f_iou 0.4873799979686737, valid.f_f-score 0.69016: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 13 | valid.f_iou 0.48502999544143677, valid.f_f-score 0.69126: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 13 | valid.f_iou 0.48502999544143677, valid.f_f-score 0.69126: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 13 | valid.f_iou 0.4618299901485443, valid.f_f-score 0.68781: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 13 | valid.f_iou 0.4618299901485443, valid.f_f-score 0.68781: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 13 | valid.f_iou 0.4736199975013733, valid.f_f-score 0.68294: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 13 | valid.f_iou 0.4736199975013733, valid.f_f-score 0.68294: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 13 | valid.f_iou 0.46672001481056213, valid.f_f-score 0.69254: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.96it/s]
epoch 13 | valid.f_iou 0.46672001481056213, valid.f_f-score 0.69254: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 13 | valid.f_iou 0.4620000123977661, valid.f_f-score 0.67929: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 13 | valid.f_iou 0.4620000123977661, valid.f_f-score 0.67929: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 13 | valid.f_iou 0.4857400059700012, valid.f_f-score 0.69599: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 13 | valid.f_iou 0.4857400059700012, valid.f_f-score 0.69599: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 13 | valid.f_iou 0.48337000608444214, valid.f_f-score 0.70037: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.33it/s]
epoch 13 | valid.f_iou 0.48337000608444214, valid.f_f-score 0.70037: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 13 | valid.f_iou 0.46764999628067017, valid.f_f-score 0.68049: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.44it/s]
epoch 13 | valid.f_iou 0.46764999628067017, valid.f_f-score 0.68049: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 13 | valid.f_iou 0.47216999530792236, valid.f_f-score 0.68508: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 13 | valid.f_iou 0.47216999530792236, valid.f_f-score 0.68508: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 13 | valid.f_iou 0.4761199951171875, valid.f_f-score 0.68301: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 13 | valid.f_iou 0.4761199951171875, valid.f_f-score 0.68301: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 13 | valid.f_iou 0.4761199951171875, valid.f_f-score 0.68301: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 13 | valid.f_iou 0.7543100118637085, valid.f_f-score 0.75472: 0%| | 0/16 [00:04, ?it/s]
epoch 13 | valid.f_iou 0.7543100118637085, valid.f_f-score 0.75472: 6%|█▉ | 1/16 [00:04<01:14, 5.00s/it]
epoch 13 | valid.f_iou 0.8037800192832947, valid.f_f-score 0.84805: 6%|█▉ | 1/16 [00:05<01:14, 5.00s/it]
epoch 13 | valid.f_iou 0.8037800192832947, valid.f_f-score 0.84805: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 13 | valid.f_iou 0.6883800029754639, valid.f_f-score 0.78929: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 13 | valid.f_iou 0.6883800029754639, valid.f_f-score 0.78929: 19%|█████▊ | 3/16 [00:05<00:19, 1.49s/it]
epoch 13 | valid.f_iou 0.6820999979972839, valid.f_f-score 0.7776: 19%|██████ | 3/16 [00:06<00:19, 1.49s/it]
epoch 13 | valid.f_iou 0.6820999979972839, valid.f_f-score 0.7776: 25%|████████ | 4/16 [00:06<00:12, 1.07s/it]
epoch 13 | valid.f_iou 0.6702700257301331, valid.f_f-score 0.77681: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 13 | valid.f_iou 0.6702700257301331, valid.f_f-score 0.77681: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 13 | valid.f_iou 0.6404799818992615, valid.f_f-score 0.74286: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 13 | valid.f_iou 0.6404799818992615, valid.f_f-score 0.74286: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 13 | valid.f_iou 0.6316999793052673, valid.f_f-score 0.73738: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 13 | valid.f_iou 0.6316999793052673, valid.f_f-score 0.73738: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 13 | valid.f_iou 0.6140199899673462, valid.f_f-score 0.71991: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 13 | valid.f_iou 0.6140199899673462, valid.f_f-score 0.71991: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 13 | valid.f_iou 0.6371600031852722, valid.f_f-score 0.73606: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 13 | valid.f_iou 0.6371600031852722, valid.f_f-score 0.73606: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 13 | valid.f_iou 0.6457399725914001, valid.f_f-score 0.75195: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 13 | valid.f_iou 0.6457399725914001, valid.f_f-score 0.75195: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 13 | valid.f_iou 0.6338199973106384, valid.f_f-score 0.72995: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 13 | valid.f_iou 0.6338199973106384, valid.f_f-score 0.72995: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.09it/s]
epoch 13 | valid.f_iou 0.6453199982643127, valid.f_f-score 0.74239: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.09it/s]
epoch 13 | valid.f_iou 0.6453199982643127, valid.f_f-score 0.74239: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.24it/s]
epoch 13 | valid.f_iou 0.6550400257110596, valid.f_f-score 0.75156: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.24it/s]
epoch 13 | valid.f_iou 0.6550400257110596, valid.f_f-score 0.75156: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 13 | valid.f_iou 0.6477299928665161, valid.f_f-score 0.74491: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 13 | valid.f_iou 0.6477299928665161, valid.f_f-score 0.74491: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 13 | valid.f_iou 0.6490600109100342, valid.f_f-score 0.74503: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 13 | valid.f_iou 0.6490600109100342, valid.f_f-score 0.74503: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.55it/s]
epoch 13 | valid.f_iou 0.6509100198745728, valid.f_f-score 0.75003: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 13 | valid.f_iou 0.6509100198745728, valid.f_f-score 0.75003: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 13 | valid.f_iou 0.6509100198745728, valid.f_f-score 0.75003: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 13 | valid.f_iou 0.7543100118637085, valid.f_f-score 0.75472: 0%| | 0/16 [00:04, ?it/s]
epoch 13 | valid.f_iou 0.7543100118637085, valid.f_f-score 0.75472: 6%|█▉ | 1/16 [00:05<01:15, 5.01s/it]
epoch 13 | valid.f_iou 0.8037800192832947, valid.f_f-score 0.84805: 6%|█▉ | 1/16 [00:05<01:15, 5.01s/it]
epoch 13 | valid.f_iou 0.8037800192832947, valid.f_f-score 0.84805: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 13 | valid.f_iou 0.6883800029754639, valid.f_f-score 0.78929: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 13 | valid.f_iou 0.6883800029754639, valid.f_f-score 0.78929: 19%|█████▊ | 3/16 [00:05<00:19, 1.47s/it]
epoch 13 | valid.f_iou 0.6820999979972839, valid.f_f-score 0.7776: 19%|██████ | 3/16 [00:06<00:19, 1.47s/it]
epoch 13 | valid.f_iou 0.6820999979972839, valid.f_f-score 0.7776: 25%|████████ | 4/16 [00:06<00:12, 1.06s/it]
epoch 13 | valid.f_iou 0.6723799705505371, valid.f_f-score 0.77681: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 13 | valid.f_iou 0.6723799705505371, valid.f_f-score 0.77681: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 13 | valid.f_iou 0.6422299742698669, valid.f_f-score 0.74286: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 13 | valid.f_iou 0.6422299742698669, valid.f_f-score 0.74286: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 13 | valid.f_iou 0.6331999897956848, valid.f_f-score 0.73738: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 13 | valid.f_iou 0.6331999897956848, valid.f_f-score 0.73738: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.62it/s]
epoch 13 | valid.f_iou 0.615339994430542, valid.f_f-score 0.71991: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 13 | valid.f_iou 0.615339994430542, valid.f_f-score 0.71991: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 13 | valid.f_iou 0.6383299827575684, valid.f_f-score 0.73606: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 13 | valid.f_iou 0.6383299827575684, valid.f_f-score 0.73606: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 13 | valid.f_iou 0.6467900276184082, valid.f_f-score 0.75195: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 13 | valid.f_iou 0.6467900276184082, valid.f_f-score 0.75195: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 13 | valid.f_iou 0.6347699761390686, valid.f_f-score 0.72995: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 13 | valid.f_iou 0.6347699761390686, valid.f_f-score 0.72995: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 13 | valid.f_iou 0.6462000012397766, valid.f_f-score 0.74239: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 13 | valid.f_iou 0.6462000012397766, valid.f_f-score 0.74239: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.29it/s]
epoch 13 | valid.f_iou 0.6558499932289124, valid.f_f-score 0.75156: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.29it/s]
epoch 13 | valid.f_iou 0.6558499932289124, valid.f_f-score 0.75156: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 13 | valid.f_iou 0.6484799981117249, valid.f_f-score 0.74491: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 13 | valid.f_iou 0.6484799981117249, valid.f_f-score 0.74491: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 13 | valid.f_iou 0.6497600078582764, valid.f_f-score 0.74503: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 13 | valid.f_iou 0.6497600078582764, valid.f_f-score 0.74503: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 13 | valid.f_iou 0.6515700221061707, valid.f_f-score 0.75003: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 13 | valid.f_iou 0.6515700221061707, valid.f_f-score 0.75003: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 13 | valid.f_iou 0.6515700221061707, valid.f_f-score 0.75003: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 14 | loss 3.4814906120300293, f_iou 0.5174455046653748: 0%| | 0/74 [00:06, ?it/s]
epoch 14 | loss 3.4814906120300293, f_iou 0.5174455046653748: 1%|▌ | 1/74 [00:06<07:47, 6.41s/it]
epoch 14 | loss 2.5831549167633057, f_iou 0.646100640296936: 1%|▌ | 1/74 [00:07<07:47, 6.41s/it]
epoch 14 | loss 2.5831549167633057, f_iou 0.646100640296936: 3%|█ | 2/74 [00:07<03:45, 3.13s/it]
epoch 14 | loss 2.3633108139038086, f_iou 0.7012189626693726: 3%|█ | 2/74 [00:08<03:45, 3.13s/it]
epoch 14 | loss 2.3633108139038086, f_iou 0.7012189626693726: 4%|█▌ | 3/74 [00:08<02:30, 2.12s/it]
epoch 14 | loss 0.8203457593917847, f_iou 0.6564297676086426: 4%|█▌ | 3/74 [00:08<02:30, 2.12s/it]
epoch 14 | loss 0.8203457593917847, f_iou 0.6564297676086426: 5%|██ | 4/74 [00:08<01:52, 1.61s/it]
epoch 14 | loss 1.9266746044158936, f_iou 0.6593755483627319: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 14 | loss 1.9266746044158936, f_iou 0.6593755483627319: 7%|██▌ | 5/74 [00:09<01:31, 1.32s/it]
epoch 14 | loss 3.388878583908081, f_iou 0.603165864944458: 7%|██▋ | 5/74 [00:10<01:31, 1.32s/it]
epoch 14 | loss 3.388878583908081, f_iou 0.603165864944458: 8%|███▏ | 6/74 [00:10<01:17, 1.14s/it]
epoch 14 | loss 0.708477795124054, f_iou 0.6211316585540771: 8%|███ | 6/74 [00:11<01:17, 1.14s/it]
epoch 14 | loss 0.708477795124054, f_iou 0.6211316585540771: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 14 | loss 3.3338513374328613, f_iou 0.6075389981269836: 9%|███▌ | 7/74 [00:12<01:07, 1.01s/it]
epoch 14 | loss 3.3338513374328613, f_iou 0.6075389981269836: 11%|████ | 8/74 [00:12<01:00, 1.08it/s]
epoch 14 | loss 1.1222437620162964, f_iou 0.5676339268684387: 11%|████ | 8/74 [00:12<01:00, 1.08it/s]
epoch 14 | loss 1.1222437620162964, f_iou 0.5676339268684387: 12%|████▌ | 9/74 [00:12<00:55, 1.16it/s]
epoch 14 | loss 1.7374446392059326, f_iou 0.5961186289787292: 12%|████▌ | 9/74 [00:13<00:55, 1.16it/s]
epoch 14 | loss 1.7374446392059326, f_iou 0.5961186289787292: 14%|████▊ | 10/74 [00:13<00:53, 1.20it/s]
epoch 14 | loss 5.283860206604004, f_iou 0.5874165296554565: 14%|█████ | 10/74 [00:14<00:53, 1.20it/s]
epoch 14 | loss 5.283860206604004, f_iou 0.5874165296554565: 15%|█████▌ | 11/74 [00:14<00:51, 1.23it/s]
epoch 14 | loss 4.755280017852783, f_iou 0.5510039925575256: 15%|█████▌ | 11/74 [00:15<00:51, 1.23it/s]
epoch 14 | loss 4.755280017852783, f_iou 0.5510039925575256: 16%|██████ | 12/74 [00:15<00:50, 1.24it/s]
epoch 14 | loss 3.5676164627075195, f_iou 0.5568158030509949: 16%|█████▊ | 12/74 [00:15<00:50, 1.24it/s]
epoch 14 | loss 3.5676164627075195, f_iou 0.5568158030509949: 18%|██████▎ | 13/74 [00:15<00:48, 1.27it/s]
epoch 14 | loss 4.607851028442383, f_iou 0.5356102585792542: 18%|██████▌ | 13/74 [00:16<00:48, 1.27it/s]
epoch 14 | loss 4.607851028442383, f_iou 0.5356102585792542: 19%|███████ | 14/74 [00:16<00:46, 1.30it/s]
epoch 14 | loss 5.855921745300293, f_iou 0.5066710710525513: 19%|███████ | 14/74 [00:17<00:46, 1.30it/s]
epoch 14 | loss 5.855921745300293, f_iou 0.5066710710525513: 20%|███████▌ | 15/74 [00:17<00:44, 1.32it/s]
epoch 14 | loss 0.8584364652633667, f_iou 0.5100591778755188: 20%|███████▎ | 15/74 [00:18<00:44, 1.32it/s]
epoch 14 | loss 0.8584364652633667, f_iou 0.5100591778755188: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 14 | loss 1.709879994392395, f_iou 0.4809284210205078: 22%|████████ | 16/74 [00:18<00:43, 1.33it/s]
epoch 14 | loss 1.709879994392395, f_iou 0.4809284210205078: 23%|████████▌ | 17/74 [00:18<00:42, 1.35it/s]
epoch 14 | loss 3.999345302581787, f_iou 0.4948127567768097: 23%|████████▌ | 17/74 [00:19<00:42, 1.35it/s]
epoch 14 | loss 3.999345302581787, f_iou 0.4948127567768097: 24%|█████████ | 18/74 [00:19<00:42, 1.33it/s]
epoch 14 | loss 3.488854169845581, f_iou 0.47980189323425293: 24%|████████▊ | 18/74 [00:20<00:42, 1.33it/s]
epoch 14 | loss 3.488854169845581, f_iou 0.47980189323425293: 26%|█████████▏ | 19/74 [00:20<00:41, 1.32it/s]
epoch 14 | loss 2.5140793323516846, f_iou 0.4903276860713959: 26%|█████████▏ | 19/74 [00:21<00:41, 1.32it/s]
epoch 14 | loss 2.5140793323516846, f_iou 0.4903276860713959: 27%|█████████▋ | 20/74 [00:21<00:41, 1.31it/s]
epoch 14 | loss 5.191985607147217, f_iou 0.4737398624420166: 27%|██████████ | 20/74 [00:21<00:41, 1.31it/s]
epoch 14 | loss 5.191985607147217, f_iou 0.4737398624420166: 28%|██████████▌ | 21/74 [00:21<00:40, 1.32it/s]
epoch 14 | loss 2.4295220375061035, f_iou 0.4653586745262146: 28%|██████████▏ | 21/74 [00:22<00:40, 1.32it/s]
epoch 14 | loss 2.4295220375061035, f_iou 0.4653586745262146: 30%|██████████▋ | 22/74 [00:22<00:38, 1.34it/s]
epoch 14 | loss 7.868536949157715, f_iou 0.4694649279117584: 30%|███████████ | 22/74 [00:23<00:38, 1.34it/s]
epoch 14 | loss 7.868536949157715, f_iou 0.4694649279117584: 31%|███████████▌ | 23/74 [00:23<00:37, 1.35it/s]
epoch 14 | loss 2.057905673980713, f_iou 0.4804598093032837: 31%|███████████▌ | 23/74 [00:24<00:37, 1.35it/s]
epoch 14 | loss 2.057905673980713, f_iou 0.4804598093032837: 32%|████████████ | 24/74 [00:24<00:36, 1.36it/s]
epoch 14 | loss 2.155863046646118, f_iou 0.4870469272136688: 32%|████████████ | 24/74 [00:24<00:36, 1.36it/s]
epoch 14 | loss 2.155863046646118, f_iou 0.4870469272136688: 34%|████████████▌ | 25/74 [00:24<00:35, 1.37it/s]
epoch 14 | loss 1.3038525581359863, f_iou 0.4757409989833832: 34%|████████████▏ | 25/74 [00:25<00:35, 1.37it/s]
epoch 14 | loss 1.3038525581359863, f_iou 0.4757409989833832: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 14 | loss 7.510104656219482, f_iou 0.49203455448150635: 35%|████████████▋ | 26/74 [00:26<00:34, 1.38it/s]
epoch 14 | loss 7.510104656219482, f_iou 0.49203455448150635: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 14 | loss 6.350041389465332, f_iou 0.49624472856521606: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 14 | loss 6.350041389465332, f_iou 0.49624472856521606: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 14 | loss 4.697505950927734, f_iou 0.4871521294116974: 38%|██████████████ | 28/74 [00:27<00:33, 1.39it/s]
epoch 14 | loss 4.697505950927734, f_iou 0.4871521294116974: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.39it/s]
epoch 14 | loss 1.0924075841903687, f_iou 0.5022974014282227: 39%|██████████████ | 29/74 [00:28<00:32, 1.39it/s]
epoch 14 | loss 1.0924075841903687, f_iou 0.5022974014282227: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.38it/s]
epoch 14 | loss 3.355982542037964, f_iou 0.5058566927909851: 41%|███████████████ | 30/74 [00:29<00:31, 1.38it/s]
epoch 14 | loss 3.355982542037964, f_iou 0.5058566927909851: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.39it/s]
epoch 14 | loss 3.0360734462738037, f_iou 0.49886101484298706: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.39it/s]
epoch 14 | loss 3.0360734462738037, f_iou 0.49886101484298706: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.39it/s]
epoch 14 | loss 4.33410120010376, f_iou 0.5102086067199707: 43%|████████████████▍ | 32/74 [00:30<00:30, 1.39it/s]
epoch 14 | loss 4.33410120010376, f_iou 0.5102086067199707: 45%|████████████████▉ | 33/74 [00:30<00:29, 1.38it/s]
epoch 14 | loss 1.2889621257781982, f_iou 0.5072261095046997: 45%|████████████████ | 33/74 [00:31<00:29, 1.38it/s]
epoch 14 | loss 1.2889621257781982, f_iou 0.5072261095046997: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 14 | loss 2.547929286956787, f_iou 0.5124016404151917: 46%|█████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 14 | loss 2.547929286956787, f_iou 0.5124016404151917: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.35it/s]
epoch 14 | loss 8.56778621673584, f_iou 0.4988959729671478: 47%|█████████████████▉ | 35/74 [00:32<00:28, 1.35it/s]
epoch 14 | loss 8.56778621673584, f_iou 0.4988959729671478: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.37it/s]
epoch 14 | loss 7.440749168395996, f_iou 0.49392691254615784: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 14 | loss 7.440749168395996, f_iou 0.49392691254615784: 50%|██████████████████ | 37/74 [00:33<00:27, 1.35it/s]
epoch 14 | loss 1.9180843830108643, f_iou 0.5014023780822754: 50%|██████████████████ | 37/74 [00:34<00:27, 1.35it/s]
epoch 14 | loss 1.9180843830108643, f_iou 0.5014023780822754: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.33it/s]
epoch 14 | loss 2.0993785858154297, f_iou 0.4973965585231781: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.33it/s]
epoch 14 | loss 2.0993785858154297, f_iou 0.4973965585231781: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 14 | loss 1.3915928602218628, f_iou 0.4852716028690338: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.34it/s]
epoch 14 | loss 1.3915928602218628, f_iou 0.4852716028690338: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.33it/s]
epoch 14 | loss 6.469489097595215, f_iou 0.47348764538764954: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.33it/s]
epoch 14 | loss 6.469489097595215, f_iou 0.47348764538764954: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.34it/s]
epoch 14 | loss 2.502558708190918, f_iou 0.47884151339530945: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.34it/s]
epoch 14 | loss 2.502558708190918, f_iou 0.47884151339530945: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.36it/s]
epoch 14 | loss 5.879985332489014, f_iou 0.47478020191192627: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.36it/s]
epoch 14 | loss 5.879985332489014, f_iou 0.47478020191192627: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.36it/s]
epoch 14 | loss 2.0645899772644043, f_iou 0.47720983624458313: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.36it/s]
epoch 14 | loss 2.0645899772644043, f_iou 0.47720983624458313: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.37it/s]
epoch 14 | loss 1.3975529670715332, f_iou 0.4829382598400116: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.37it/s]
epoch 14 | loss 1.3975529670715332, f_iou 0.4829382598400116: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 14 | loss 2.480290412902832, f_iou 0.4812176525592804: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.38it/s]
epoch 14 | loss 2.480290412902832, f_iou 0.4812176525592804: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 14 | loss 1.1104074716567993, f_iou 0.48262715339660645: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.38it/s]
epoch 14 | loss 1.1104074716567993, f_iou 0.48262715339660645: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.38it/s]
epoch 14 | loss 6.79916524887085, f_iou 0.48043280839920044: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.38it/s]
epoch 14 | loss 6.79916524887085, f_iou 0.48043280839920044: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 14 | loss 6.086457252502441, f_iou 0.4723703861236572: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.39it/s]
epoch 14 | loss 6.086457252502441, f_iou 0.4723703861236572: 66%|████████████████████████▌ | 49/74 [00:42<00:17, 1.39it/s]
epoch 14 | loss 2.0710015296936035, f_iou 0.46947208046913147: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.39it/s]
epoch 14 | loss 2.0710015296936035, f_iou 0.46947208046913147: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 14 | loss 1.5650269985198975, f_iou 0.4755546450614929: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 14 | loss 1.5650269985198975, f_iou 0.4755546450614929: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 14 | loss 3.133376121520996, f_iou 0.47064173221588135: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 14 | loss 3.133376121520996, f_iou 0.47064173221588135: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 14 | loss 3.406710624694824, f_iou 0.4741140604019165: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.39it/s]
epoch 14 | loss 3.406710624694824, f_iou 0.4741140604019165: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.40it/s]
epoch 14 | loss 3.047501564025879, f_iou 0.47956690192222595: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.40it/s]
epoch 14 | loss 3.047501564025879, f_iou 0.47956690192222595: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 14 | loss 1.54798424243927, f_iou 0.48297548294067383: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.40it/s]
epoch 14 | loss 1.54798424243927, f_iou 0.48297548294067383: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.40it/s]
epoch 14 | loss 3.7230985164642334, f_iou 0.47787389159202576: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.40it/s]
epoch 14 | loss 3.7230985164642334, f_iou 0.47787389159202576: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.40it/s]
epoch 14 | loss 2.013261318206787, f_iou 0.48040705919265747: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.40it/s]
epoch 14 | loss 2.013261318206787, f_iou 0.48040705919265747: 77%|███████████████████████████▋ | 57/74 [00:48<00:13, 1.30it/s]
epoch 14 | loss 1.1589953899383545, f_iou 0.4869529902935028: 77%|███████████████████████████▋ | 57/74 [00:48<00:13, 1.30it/s]
epoch 14 | loss 1.1589953899383545, f_iou 0.4869529902935028: 78%|████████████████████████████▏ | 58/74 [00:48<00:12, 1.33it/s]
epoch 14 | loss 1.0034561157226562, f_iou 0.4932725429534912: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.33it/s]
epoch 14 | loss 1.0034561157226562, f_iou 0.4932725429534912: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.35it/s]
epoch 14 | loss 7.646111965179443, f_iou 0.4854345917701721: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.35it/s]
epoch 14 | loss 7.646111965179443, f_iou 0.4854345917701721: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.36it/s]
epoch 14 | loss 3.116122007369995, f_iou 0.4889758825302124: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.36it/s]
epoch 14 | loss 3.116122007369995, f_iou 0.4889758825302124: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.37it/s]
epoch 14 | loss 14.8447265625, f_iou 0.496888667345047: 82%|██████████████████████████████████▌ | 61/74 [00:51<00:09, 1.37it/s]
epoch 14 | loss 14.8447265625, f_iou 0.496888667345047: 84%|███████████████████████████████████▏ | 62/74 [00:51<00:08, 1.37it/s]
epoch 14 | loss 4.944537162780762, f_iou 0.5001772046089172: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.37it/s]
epoch 14 | loss 4.944537162780762, f_iou 0.5001772046089172: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 14 | loss 5.428093910217285, f_iou 0.4954611659049988: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.38it/s]
epoch 14 | loss 5.428093910217285, f_iou 0.4954611659049988: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 14 | loss 5.930314540863037, f_iou 0.4907645285129547: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 14 | loss 5.930314540863037, f_iou 0.4907645285129547: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 14 | loss 0.5865216255187988, f_iou 0.49567073583602905: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.38it/s]
epoch 14 | loss 0.5865216255187988, f_iou 0.49567073583602905: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.38it/s]
epoch 14 | loss 4.913849830627441, f_iou 0.49557459354400635: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 14 | loss 4.913849830627441, f_iou 0.49557459354400635: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 14 | loss 1.8744726181030273, f_iou 0.500056803226471: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 14 | loss 1.8744726181030273, f_iou 0.500056803226471: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 14 | loss 2.4003148078918457, f_iou 0.5029100179672241: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 14 | loss 2.4003148078918457, f_iou 0.5029100179672241: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 14 | loss 2.9702389240264893, f_iou 0.5029773116111755: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 14 | loss 2.9702389240264893, f_iou 0.5029773116111755: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 14 | loss 1.0031299591064453, f_iou 0.5091708302497864: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 14 | loss 1.0031299591064453, f_iou 0.5091708302497864: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 14 | loss 1.9686073064804077, f_iou 0.5138841867446899: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 14 | loss 1.9686073064804077, f_iou 0.5138841867446899: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 14 | loss 1.7176661491394043, f_iou 0.5170893669128418: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 14 | loss 1.7176661491394043, f_iou 0.5170893669128418: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 14 | loss 6.058320999145508, f_iou 0.5115222930908203: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 14 | loss 6.058320999145508, f_iou 0.5115222930908203: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 14 | loss 6.058320999145508, f_iou 0.5115222930908203: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 14 | valid.f_iou 0.6405199766159058, valid.f_f-score 0.71789: 0%| | 0/16 [00:05, ?it/s]
epoch 14 | valid.f_iou 0.6405199766159058, valid.f_f-score 0.71789: 6%|█▉ | 1/16 [00:05<01:25, 5.68s/it]
epoch 14 | valid.f_iou 0.5956000089645386, valid.f_f-score 0.78222: 6%|█▉ | 1/16 [00:06<01:25, 5.68s/it]
epoch 14 | valid.f_iou 0.5956000089645386, valid.f_f-score 0.78222: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 14 | valid.f_iou 0.48173001408576965, valid.f_f-score 0.70726: 12%|███▊ | 2/16 [00:06<00:36, 2.60s/it]
epoch 14 | valid.f_iou 0.48173001408576965, valid.f_f-score 0.70726: 19%|█████▋ | 3/16 [00:06<00:20, 1.62s/it]
epoch 14 | valid.f_iou 0.5097900032997131, valid.f_f-score 0.68731: 19%|█████▊ | 3/16 [00:07<00:20, 1.62s/it]
epoch 14 | valid.f_iou 0.5097900032997131, valid.f_f-score 0.68731: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 14 | valid.f_iou 0.4819500148296356, valid.f_f-score 0.68702: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 14 | valid.f_iou 0.4819500148296356, valid.f_f-score 0.68702: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 14 | valid.f_iou 0.4568899869918823, valid.f_f-score 0.66584: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 14 | valid.f_iou 0.4568899869918823, valid.f_f-score 0.66584: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 14 | valid.f_iou 0.4723699986934662, valid.f_f-score 0.67887: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 14 | valid.f_iou 0.4723699986934662, valid.f_f-score 0.67887: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 14 | valid.f_iou 0.45201998949050903, valid.f_f-score 0.67803: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 14 | valid.f_iou 0.45201998949050903, valid.f_f-score 0.67803: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 14 | valid.f_iou 0.4597499966621399, valid.f_f-score 0.67067: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 14 | valid.f_iou 0.4597499966621399, valid.f_f-score 0.67067: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 14 | valid.f_iou 0.4509199857711792, valid.f_f-score 0.68191: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 14 | valid.f_iou 0.4509199857711792, valid.f_f-score 0.68191: 62%|██████████████████▊ | 10/16 [00:09<00:03, 2.00it/s]
epoch 14 | valid.f_iou 0.46647000312805176, valid.f_f-score 0.68952: 62%|██████████████████▏ | 10/16 [00:09<00:03, 2.00it/s]
epoch 14 | valid.f_iou 0.46647000312805176, valid.f_f-score 0.68952: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 14 | valid.f_iou 0.48284000158309937, valid.f_f-score 0.70424: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.18it/s]
epoch 14 | valid.f_iou 0.48284000158309937, valid.f_f-score 0.70424: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 14 | valid.f_iou 0.49386999011039734, valid.f_f-score 0.72185: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 14 | valid.f_iou 0.49386999011039734, valid.f_f-score 0.72185: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.42it/s]
epoch 14 | valid.f_iou 0.48736000061035156, valid.f_f-score 0.7132: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.42it/s]
epoch 14 | valid.f_iou 0.48736000061035156, valid.f_f-score 0.7132: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.49it/s]
epoch 14 | valid.f_iou 0.49107998609542847, valid.f_f-score 0.71119: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 14 | valid.f_iou 0.49107998609542847, valid.f_f-score 0.71119: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 14 | valid.f_iou 0.5018600225448608, valid.f_f-score 0.71212: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 14 | valid.f_iou 0.5018600225448608, valid.f_f-score 0.71212: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 14 | valid.f_iou 0.5018600225448608, valid.f_f-score 0.71212: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 14 | valid.f_iou 0.642520010471344, valid.f_f-score 0.59137: 0%| | 0/16 [00:05, ?it/s]
epoch 14 | valid.f_iou 0.642520010471344, valid.f_f-score 0.59137: 6%|██ | 1/16 [00:05<01:20, 5.40s/it]
epoch 14 | valid.f_iou 0.7544299960136414, valid.f_f-score 0.76804: 6%|█▉ | 1/16 [00:05<01:20, 5.40s/it]
epoch 14 | valid.f_iou 0.7544299960136414, valid.f_f-score 0.76804: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 14 | valid.f_iou 0.6190900206565857, valid.f_f-score 0.69357: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 14 | valid.f_iou 0.6190900206565857, valid.f_f-score 0.69357: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 14 | valid.f_iou 0.6180499792098999, valid.f_f-score 0.68086: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 14 | valid.f_iou 0.6180499792098999, valid.f_f-score 0.68086: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 14 | valid.f_iou 0.5880100131034851, valid.f_f-score 0.663: 25%|████████▎ | 4/16 [00:07<00:13, 1.10s/it]
epoch 14 | valid.f_iou 0.5880100131034851, valid.f_f-score 0.663: 31%|██████████▎ | 5/16 [00:07<00:09, 1.14it/s]
epoch 14 | valid.f_iou 0.5734500288963318, valid.f_f-score 0.64031: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 14 | valid.f_iou 0.5734500288963318, valid.f_f-score 0.64031: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 14 | valid.f_iou 0.575219988822937, valid.f_f-score 0.65139: 38%|████████████ | 6/16 [00:08<00:07, 1.36it/s]
epoch 14 | valid.f_iou 0.575219988822937, valid.f_f-score 0.65139: 44%|██████████████ | 7/16 [00:08<00:05, 1.61it/s]
epoch 14 | valid.f_iou 0.5596799850463867, valid.f_f-score 0.64397: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 14 | valid.f_iou 0.5596799850463867, valid.f_f-score 0.64397: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 14 | valid.f_iou 0.5818399786949158, valid.f_f-score 0.6721: 50%|████████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 14 | valid.f_iou 0.5818399786949158, valid.f_f-score 0.6721: 56%|██████████████████ | 9/16 [00:08<00:03, 2.00it/s]
epoch 14 | valid.f_iou 0.6016499996185303, valid.f_f-score 0.69557: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.00it/s]
epoch 14 | valid.f_iou 0.6016499996185303, valid.f_f-score 0.69557: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 14 | valid.f_iou 0.5910000205039978, valid.f_f-score 0.67715: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 14 | valid.f_iou 0.5910000205039978, valid.f_f-score 0.67715: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 14 | valid.f_iou 0.5984699726104736, valid.f_f-score 0.6858: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.34it/s]
epoch 14 | valid.f_iou 0.5984699726104736, valid.f_f-score 0.6858: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.46it/s]
epoch 14 | valid.f_iou 0.6128699779510498, valid.f_f-score 0.70228: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.46it/s]
epoch 14 | valid.f_iou 0.6128699779510498, valid.f_f-score 0.70228: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 14 | valid.f_iou 0.6065199971199036, valid.f_f-score 0.69569: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 14 | valid.f_iou 0.6065199971199036, valid.f_f-score 0.69569: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 14 | valid.f_iou 0.6063100099563599, valid.f_f-score 0.69851: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 14 | valid.f_iou 0.6063100099563599, valid.f_f-score 0.69851: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 14 | valid.f_iou 0.6138799786567688, valid.f_f-score 0.71038: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 14 | valid.f_iou 0.6138799786567688, valid.f_f-score 0.71038: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 14 | valid.f_iou 0.6138799786567688, valid.f_f-score 0.71038: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 14 | valid.f_iou 0.642520010471344, valid.f_f-score 0.59137: 0%| | 0/16 [00:04, ?it/s]
epoch 14 | valid.f_iou 0.642520010471344, valid.f_f-score 0.59137: 6%|██ | 1/16 [00:04<01:06, 4.43s/it]
epoch 14 | valid.f_iou 0.7544299960136414, valid.f_f-score 0.76804: 6%|█▉ | 1/16 [00:05<01:06, 4.43s/it]
epoch 14 | valid.f_iou 0.7544299960136414, valid.f_f-score 0.76804: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 14 | valid.f_iou 0.6190900206565857, valid.f_f-score 0.69357: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 14 | valid.f_iou 0.6190900206565857, valid.f_f-score 0.69357: 19%|█████▊ | 3/16 [00:05<00:19, 1.47s/it]
epoch 14 | valid.f_iou 0.6180499792098999, valid.f_f-score 0.68086: 19%|█████▊ | 3/16 [00:06<00:19, 1.47s/it]
epoch 14 | valid.f_iou 0.6180499792098999, valid.f_f-score 0.68086: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 14 | valid.f_iou 0.5880100131034851, valid.f_f-score 0.663: 25%|████████▎ | 4/16 [00:06<00:12, 1.06s/it]
epoch 14 | valid.f_iou 0.5880100131034851, valid.f_f-score 0.663: 31%|██████████▎ | 5/16 [00:06<00:09, 1.20it/s]
epoch 14 | valid.f_iou 0.5734500288963318, valid.f_f-score 0.64031: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 14 | valid.f_iou 0.5734500288963318, valid.f_f-score 0.64031: 38%|███████████▋ | 6/16 [00:06<00:06, 1.48it/s]
epoch 14 | valid.f_iou 0.575219988822937, valid.f_f-score 0.65139: 38%|████████████ | 6/16 [00:07<00:06, 1.48it/s]
epoch 14 | valid.f_iou 0.575219988822937, valid.f_f-score 0.65139: 44%|██████████████ | 7/16 [00:07<00:05, 1.68it/s]
epoch 14 | valid.f_iou 0.5596799850463867, valid.f_f-score 0.64397: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 14 | valid.f_iou 0.5596799850463867, valid.f_f-score 0.64397: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.84it/s]
epoch 14 | valid.f_iou 0.5818399786949158, valid.f_f-score 0.6721: 50%|████████████████ | 8/16 [00:08<00:04, 1.84it/s]
epoch 14 | valid.f_iou 0.5818399786949158, valid.f_f-score 0.6721: 56%|██████████████████ | 9/16 [00:08<00:03, 1.96it/s]
epoch 14 | valid.f_iou 0.6016499996185303, valid.f_f-score 0.69557: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 14 | valid.f_iou 0.6016499996185303, valid.f_f-score 0.69557: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.13it/s]
epoch 14 | valid.f_iou 0.5910000205039978, valid.f_f-score 0.67715: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.13it/s]
epoch 14 | valid.f_iou 0.5910000205039978, valid.f_f-score 0.67715: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 14 | valid.f_iou 0.5984699726104736, valid.f_f-score 0.6858: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.28it/s]
epoch 14 | valid.f_iou 0.5984699726104736, valid.f_f-score 0.6858: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.40it/s]
epoch 14 | valid.f_iou 0.6128699779510498, valid.f_f-score 0.70228: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 14 | valid.f_iou 0.6128699779510498, valid.f_f-score 0.70228: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 14 | valid.f_iou 0.6065199971199036, valid.f_f-score 0.69569: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 14 | valid.f_iou 0.6065199971199036, valid.f_f-score 0.69569: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 14 | valid.f_iou 0.6063100099563599, valid.f_f-score 0.69851: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 14 | valid.f_iou 0.6063100099563599, valid.f_f-score 0.69851: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 14 | valid.f_iou 0.6138799786567688, valid.f_f-score 0.71038: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 14 | valid.f_iou 0.6138799786567688, valid.f_f-score 0.71038: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 14 | valid.f_iou 0.6138799786567688, valid.f_f-score 0.71038: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 15 | loss 0.9337843656539917, f_iou 0.015970660373568535: 0%| | 0/74 [00:05, ?it/s]
epoch 15 | loss 0.9337843656539917, f_iou 0.015970660373568535: 1%|▍ | 1/74 [00:05<07:11, 5.91s/it]
epoch 15 | loss 2.75944185256958, f_iou 0.393711119890213: 1%|▌ | 1/74 [00:06<07:11, 5.91s/it]
epoch 15 | loss 2.75944185256958, f_iou 0.393711119890213: 3%|█ | 2/74 [00:06<03:29, 2.90s/it]
epoch 15 | loss 5.3375959396362305, f_iou 0.5519543886184692: 3%|█ | 2/74 [00:07<03:29, 2.90s/it]
epoch 15 | loss 5.3375959396362305, f_iou 0.5519543886184692: 4%|█▌ | 3/74 [00:07<02:17, 1.93s/it]
epoch 15 | loss 1.9973589181900024, f_iou 0.5488953590393066: 4%|█▌ | 3/74 [00:08<02:17, 1.93s/it]
epoch 15 | loss 1.9973589181900024, f_iou 0.5488953590393066: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 15 | loss 2.820988416671753, f_iou 0.5969525575637817: 5%|██ | 4/74 [00:09<01:43, 1.48s/it]
epoch 15 | loss 2.820988416671753, f_iou 0.5969525575637817: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 15 | loss 1.0610740184783936, f_iou 0.6537383794784546: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 15 | loss 1.0610740184783936, f_iou 0.6537383794784546: 8%|███ | 6/74 [00:09<01:12, 1.07s/it]
epoch 15 | loss 2.520354747772217, f_iou 0.6648606657981873: 8%|███ | 6/74 [00:10<01:12, 1.07s/it]
epoch 15 | loss 2.520354747772217, f_iou 0.6648606657981873: 9%|███▌ | 7/74 [00:10<01:04, 1.04it/s]
epoch 15 | loss 5.761524677276611, f_iou 0.6302264928817749: 9%|███▌ | 7/74 [00:11<01:04, 1.04it/s]
epoch 15 | loss 5.761524677276611, f_iou 0.6302264928817749: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 15 | loss 7.201704978942871, f_iou 0.5663219690322876: 11%|████ | 8/74 [00:12<00:58, 1.13it/s]
epoch 15 | loss 7.201704978942871, f_iou 0.5663219690322876: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 15 | loss 1.2821946144104004, f_iou 0.5939257144927979: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 15 | loss 1.2821946144104004, f_iou 0.5939257144927979: 14%|████▊ | 10/74 [00:12<00:51, 1.25it/s]
epoch 15 | loss 4.15524959564209, f_iou 0.6188380122184753: 14%|█████▏ | 10/74 [00:13<00:51, 1.25it/s]
epoch 15 | loss 4.15524959564209, f_iou 0.6188380122184753: 15%|█████▋ | 11/74 [00:13<00:48, 1.29it/s]
epoch 15 | loss 3.313863754272461, f_iou 0.5778909921646118: 15%|█████▌ | 11/74 [00:14<00:48, 1.29it/s]
epoch 15 | loss 3.313863754272461, f_iou 0.5778909921646118: 16%|██████ | 12/74 [00:14<00:47, 1.30it/s]
epoch 15 | loss 2.576035976409912, f_iou 0.5865070223808289: 16%|██████ | 12/74 [00:14<00:47, 1.30it/s]
epoch 15 | loss 2.576035976409912, f_iou 0.5865070223808289: 18%|██████▌ | 13/74 [00:14<00:47, 1.29it/s]
epoch 15 | loss 5.818889617919922, f_iou 0.5653519630432129: 18%|██████▌ | 13/74 [00:15<00:47, 1.29it/s]
epoch 15 | loss 5.818889617919922, f_iou 0.5653519630432129: 19%|███████ | 14/74 [00:15<00:46, 1.28it/s]
epoch 15 | loss 2.3829073905944824, f_iou 0.5819113254547119: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 15 | loss 2.3829073905944824, f_iou 0.5819113254547119: 20%|███████▎ | 15/74 [00:16<00:46, 1.28it/s]
epoch 15 | loss 7.416543006896973, f_iou 0.56104975938797: 20%|███████▉ | 15/74 [00:17<00:46, 1.28it/s]
epoch 15 | loss 7.416543006896973, f_iou 0.56104975938797: 22%|████████▍ | 16/74 [00:17<00:45, 1.28it/s]
epoch 15 | loss 8.843720436096191, f_iou 0.5625825524330139: 22%|████████ | 16/74 [00:18<00:45, 1.28it/s]
epoch 15 | loss 8.843720436096191, f_iou 0.5625825524330139: 23%|████████▌ | 17/74 [00:18<00:44, 1.27it/s]
epoch 15 | loss 4.716646194458008, f_iou 0.5706154108047485: 23%|████████▌ | 17/74 [00:18<00:44, 1.27it/s]
epoch 15 | loss 4.716646194458008, f_iou 0.5706154108047485: 24%|█████████ | 18/74 [00:18<00:42, 1.30it/s]
epoch 15 | loss 3.949183225631714, f_iou 0.5615172386169434: 24%|█████████ | 18/74 [00:19<00:42, 1.30it/s]
epoch 15 | loss 3.949183225631714, f_iou 0.5615172386169434: 26%|█████████▌ | 19/74 [00:19<00:41, 1.33it/s]
epoch 15 | loss 4.87712287902832, f_iou 0.5692433714866638: 26%|█████████▊ | 19/74 [00:20<00:41, 1.33it/s]
epoch 15 | loss 4.87712287902832, f_iou 0.5692433714866638: 27%|██████████▎ | 20/74 [00:20<00:40, 1.33it/s]
epoch 15 | loss 5.714190483093262, f_iou 0.5450068116188049: 27%|██████████ | 20/74 [00:21<00:40, 1.33it/s]
epoch 15 | loss 5.714190483093262, f_iou 0.5450068116188049: 28%|██████████▌ | 21/74 [00:21<00:40, 1.32it/s]
epoch 15 | loss 5.031211853027344, f_iou 0.5319103002548218: 28%|██████████▌ | 21/74 [00:21<00:40, 1.32it/s]
epoch 15 | loss 5.031211853027344, f_iou 0.5319103002548218: 30%|███████████ | 22/74 [00:21<00:39, 1.31it/s]
epoch 15 | loss 14.393745422363281, f_iou 0.5417075753211975: 30%|██████████▋ | 22/74 [00:22<00:39, 1.31it/s]
epoch 15 | loss 14.393745422363281, f_iou 0.5417075753211975: 31%|███████████▏ | 23/74 [00:22<00:39, 1.30it/s]
epoch 15 | loss 3.835505247116089, f_iou 0.5401315093040466: 31%|███████████▌ | 23/74 [00:23<00:39, 1.30it/s]
epoch 15 | loss 3.835505247116089, f_iou 0.5401315093040466: 32%|████████████ | 24/74 [00:23<00:38, 1.30it/s]
epoch 15 | loss 1.052376627922058, f_iou 0.5185293555259705: 32%|████████████ | 24/74 [00:24<00:38, 1.30it/s]
epoch 15 | loss 1.052376627922058, f_iou 0.5185293555259705: 34%|████████████▌ | 25/74 [00:24<00:37, 1.31it/s]
epoch 15 | loss 1.8957678079605103, f_iou 0.5139961838722229: 34%|████████████▏ | 25/74 [00:24<00:37, 1.31it/s]
epoch 15 | loss 1.8957678079605103, f_iou 0.5139961838722229: 35%|████████████▋ | 26/74 [00:24<00:35, 1.34it/s]
epoch 15 | loss 2.653520345687866, f_iou 0.5126832127571106: 35%|█████████████ | 26/74 [00:25<00:35, 1.34it/s]
epoch 15 | loss 2.653520345687866, f_iou 0.5126832127571106: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.36it/s]
epoch 15 | loss 2.6884350776672363, f_iou 0.5142644643783569: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.36it/s]
epoch 15 | loss 2.6884350776672363, f_iou 0.5142644643783569: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 15 | loss 2.7820076942443848, f_iou 0.5261438488960266: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 15 | loss 2.7820076942443848, f_iou 0.5261438488960266: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 15 | loss 3.032670497894287, f_iou 0.5217971205711365: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.38it/s]
epoch 15 | loss 3.032670497894287, f_iou 0.5217971205711365: 41%|███████████████ | 30/74 [00:27<00:31, 1.38it/s]
epoch 15 | loss 0.8870017528533936, f_iou 0.5245652198791504: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.38it/s]
epoch 15 | loss 0.8870017528533936, f_iou 0.5245652198791504: 42%|███████████████ | 31/74 [00:28<00:31, 1.38it/s]
epoch 15 | loss 6.361733436584473, f_iou 0.5157110095024109: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.38it/s]
epoch 15 | loss 6.361733436584473, f_iou 0.5157110095024109: 43%|████████████████ | 32/74 [00:29<00:30, 1.38it/s]
epoch 15 | loss 5.395115852355957, f_iou 0.5118001699447632: 43%|████████████████ | 32/74 [00:29<00:30, 1.38it/s]
epoch 15 | loss 5.395115852355957, f_iou 0.5118001699447632: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.39it/s]
epoch 15 | loss 6.660037040710449, f_iou 0.4980984330177307: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 15 | loss 6.660037040710449, f_iou 0.4980984330177307: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 15 | loss 4.054164886474609, f_iou 0.5062682032585144: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 15 | loss 4.054164886474609, f_iou 0.5062682032585144: 47%|█████████████████▌ | 35/74 [00:31<00:27, 1.39it/s]
epoch 15 | loss 4.693609237670898, f_iou 0.5105884671211243: 47%|█████████████████▌ | 35/74 [00:32<00:27, 1.39it/s]
epoch 15 | loss 4.693609237670898, f_iou 0.5105884671211243: 49%|██████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 15 | loss 6.685885906219482, f_iou 0.5149883031845093: 49%|██████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 15 | loss 6.685885906219482, f_iou 0.5149883031845093: 50%|██████████████████▌ | 37/74 [00:32<00:27, 1.37it/s]
epoch 15 | loss 0.8121299147605896, f_iou 0.5191671252250671: 50%|██████████████████ | 37/74 [00:33<00:27, 1.37it/s]
epoch 15 | loss 0.8121299147605896, f_iou 0.5191671252250671: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 15 | loss 3.281644344329834, f_iou 0.5228278636932373: 51%|███████████████████ | 38/74 [00:34<00:26, 1.36it/s]
epoch 15 | loss 3.281644344329834, f_iou 0.5228278636932373: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.36it/s]
epoch 15 | loss 0.9905778169631958, f_iou 0.5338143706321716: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.36it/s]
epoch 15 | loss 0.9905778169631958, f_iou 0.5338143706321716: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.35it/s]
epoch 15 | loss 7.2405009269714355, f_iou 0.5220498442649841: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.35it/s]
epoch 15 | loss 7.2405009269714355, f_iou 0.5220498442649841: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.36it/s]
epoch 15 | loss 3.2752370834350586, f_iou 0.5171784162521362: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.36it/s]
epoch 15 | loss 3.2752370834350586, f_iou 0.5171784162521362: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 15 | loss 1.3869786262512207, f_iou 0.5069261789321899: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 15 | loss 1.3869786262512207, f_iou 0.5069261789321899: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 15 | loss 2.2834112644195557, f_iou 0.49541330337524414: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.38it/s]
epoch 15 | loss 2.2834112644195557, f_iou 0.49541330337524414: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.37it/s]
epoch 15 | loss 6.441013813018799, f_iou 0.49268579483032227: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 15 | loss 6.441013813018799, f_iou 0.49268579483032227: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.38it/s]
epoch 15 | loss 3.767519950866699, f_iou 0.4870268404483795: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.38it/s]
epoch 15 | loss 3.767519950866699, f_iou 0.4870268404483795: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.38it/s]
epoch 15 | loss 1.4486571550369263, f_iou 0.493905246257782: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 15 | loss 1.4486571550369263, f_iou 0.493905246257782: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.38it/s]
epoch 15 | loss 3.567823648452759, f_iou 0.49146783351898193: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 15 | loss 3.567823648452759, f_iou 0.49146783351898193: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 15 | loss 5.238785743713379, f_iou 0.48744118213653564: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 15 | loss 5.238785743713379, f_iou 0.48744118213653564: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 15 | loss 8.253262519836426, f_iou 0.48737627267837524: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 15 | loss 8.253262519836426, f_iou 0.48737627267837524: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 15 | loss 7.369380950927734, f_iou 0.48012447357177734: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 15 | loss 7.369380950927734, f_iou 0.48012447357177734: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 15 | loss 2.957770347595215, f_iou 0.4819612205028534: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 15 | loss 2.957770347595215, f_iou 0.4819612205028534: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 15 | loss 6.944184303283691, f_iou 0.4760759770870209: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.38it/s]
epoch 15 | loss 6.944184303283691, f_iou 0.4760759770870209: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.38it/s]
epoch 15 | loss 12.34619140625, f_iou 0.4854162335395813: 72%|████████████████████████████▋ | 53/74 [00:45<00:15, 1.38it/s]
epoch 15 | loss 12.34619140625, f_iou 0.4854162335395813: 73%|█████████████████████████████▏ | 54/74 [00:45<00:14, 1.38it/s]
epoch 15 | loss 4.500539302825928, f_iou 0.4821922779083252: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.38it/s]
epoch 15 | loss 4.500539302825928, f_iou 0.4821922779083252: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 15 | loss 5.338798522949219, f_iou 0.48237407207489014: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 15 | loss 5.338798522949219, f_iou 0.48237407207489014: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.37it/s]
epoch 15 | loss 2.686612129211426, f_iou 0.4762876331806183: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.37it/s]
epoch 15 | loss 2.686612129211426, f_iou 0.4762876331806183: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.38it/s]
epoch 15 | loss 2.747572898864746, f_iou 0.4700442850589752: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.38it/s]
epoch 15 | loss 2.747572898864746, f_iou 0.4700442850589752: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.38it/s]
epoch 15 | loss 0.9449700713157654, f_iou 0.46209701895713806: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.38it/s]
epoch 15 | loss 0.9449700713157654, f_iou 0.46209701895713806: 80%|███████████████████████████▉ | 59/74 [00:48<00:10, 1.38it/s]
epoch 15 | loss 3.3706512451171875, f_iou 0.46015214920043945: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.38it/s]
epoch 15 | loss 3.3706512451171875, f_iou 0.46015214920043945: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.38it/s]
epoch 15 | loss 6.692071914672852, f_iou 0.455941766500473: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.38it/s]
epoch 15 | loss 6.692071914672852, f_iou 0.455941766500473: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.39it/s]
epoch 15 | loss 4.788802146911621, f_iou 0.45395052433013916: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 15 | loss 4.788802146911621, f_iou 0.45395052433013916: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 15 | loss 0.9540159106254578, f_iou 0.44712868332862854: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.39it/s]
epoch 15 | loss 0.9540159106254578, f_iou 0.44712868332862854: 85%|█████████████████████████████▊ | 63/74 [00:51<00:07, 1.39it/s]
epoch 15 | loss 3.5357613563537598, f_iou 0.45476382970809937: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.39it/s]
epoch 15 | loss 3.5357613563537598, f_iou 0.45476382970809937: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.39it/s]
epoch 15 | loss 3.9152395725250244, f_iou 0.4477941691875458: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 15 | loss 3.9152395725250244, f_iou 0.4477941691875458: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 15 | loss 6.6401047706604, f_iou 0.44559380412101746: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.39it/s]
epoch 15 | loss 6.6401047706604, f_iou 0.44559380412101746: 89%|█████████████████████████████████▉ | 66/74 [00:53<00:05, 1.39it/s]
epoch 15 | loss 4.663144111633301, f_iou 0.44592219591140747: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 15 | loss 4.663144111633301, f_iou 0.44592219591140747: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 15 | loss 5.269537448883057, f_iou 0.44627466797828674: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 15 | loss 5.269537448883057, f_iou 0.44627466797828674: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 15 | loss 4.443938255310059, f_iou 0.44722893834114075: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 15 | loss 4.443938255310059, f_iou 0.44722893834114075: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.39it/s]
epoch 15 | loss 6.500500202178955, f_iou 0.4469242990016937: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 15 | loss 6.500500202178955, f_iou 0.4469242990016937: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 15 | loss 3.8961360454559326, f_iou 0.4464436173439026: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 15 | loss 3.8961360454559326, f_iou 0.4464436173439026: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 15 | loss 2.7289767265319824, f_iou 0.4427536725997925: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 15 | loss 2.7289767265319824, f_iou 0.4427536725997925: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 15 | loss 6.402453422546387, f_iou 0.43916964530944824: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 15 | loss 6.402453422546387, f_iou 0.43916964530944824: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 15 | loss 1.9224367141723633, f_iou 0.43349379301071167: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 15 | loss 1.9224367141723633, f_iou 0.43349379301071167: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 15 | loss 1.9224367141723633, f_iou 0.43349379301071167: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 15 | valid.f_iou 0.6465299725532532, valid.f_f-score 0.72973: 0%| | 0/16 [00:05, ?it/s]
epoch 15 | valid.f_iou 0.6465299725532532, valid.f_f-score 0.72973: 6%|█▉ | 1/16 [00:05<01:26, 5.74s/it]
epoch 15 | valid.f_iou 0.4428499937057495, valid.f_f-score 0.66789: 6%|█▉ | 1/16 [00:06<01:26, 5.74s/it]
epoch 15 | valid.f_iou 0.4428499937057495, valid.f_f-score 0.66789: 12%|███▉ | 2/16 [00:06<00:36, 2.63s/it]
epoch 15 | valid.f_iou 0.4250499904155731, valid.f_f-score 0.68554: 12%|███▉ | 2/16 [00:06<00:36, 2.63s/it]
epoch 15 | valid.f_iou 0.4250499904155731, valid.f_f-score 0.68554: 19%|█████▊ | 3/16 [00:06<00:21, 1.64s/it]
epoch 15 | valid.f_iou 0.4766699969768524, valid.f_f-score 0.72749: 19%|█████▊ | 3/16 [00:07<00:21, 1.64s/it]
epoch 15 | valid.f_iou 0.4766699969768524, valid.f_f-score 0.72749: 25%|███████▊ | 4/16 [00:07<00:14, 1.18s/it]
epoch 15 | valid.f_iou 0.4653100073337555, valid.f_f-score 0.71336: 25%|███████▊ | 4/16 [00:07<00:14, 1.18s/it]
epoch 15 | valid.f_iou 0.4653100073337555, valid.f_f-score 0.71336: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 15 | valid.f_iou 0.4483399987220764, valid.f_f-score 0.6996: 31%|██████████ | 5/16 [00:08<00:10, 1.09it/s]
epoch 15 | valid.f_iou 0.4483399987220764, valid.f_f-score 0.6996: 38%|████████████ | 6/16 [00:08<00:07, 1.32it/s]
epoch 15 | valid.f_iou 0.4505699872970581, valid.f_f-score 0.70418: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 15 | valid.f_iou 0.4505699872970581, valid.f_f-score 0.70418: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 15 | valid.f_iou 0.4324199855327606, valid.f_f-score 0.6905: 44%|██████████████ | 7/16 [00:08<00:05, 1.53it/s]
epoch 15 | valid.f_iou 0.4324199855327606, valid.f_f-score 0.6905: 50%|████████████████ | 8/16 [00:08<00:04, 1.68it/s]
epoch 15 | valid.f_iou 0.42921000719070435, valid.f_f-score 0.66608: 50%|███████████████ | 8/16 [00:09<00:04, 1.68it/s]
epoch 15 | valid.f_iou 0.42921000719070435, valid.f_f-score 0.66608: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.84it/s]
epoch 15 | valid.f_iou 0.42278000712394714, valid.f_f-score 0.67564: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.84it/s]
epoch 15 | valid.f_iou 0.42278000712394714, valid.f_f-score 0.67564: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.94it/s]
epoch 15 | valid.f_iou 0.4235999882221222, valid.f_f-score 0.67263: 62%|██████████████████▊ | 10/16 [00:10<00:03, 1.94it/s]
epoch 15 | valid.f_iou 0.4235999882221222, valid.f_f-score 0.67263: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 15 | valid.f_iou 0.4449099898338318, valid.f_f-score 0.69028: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 15 | valid.f_iou 0.4449099898338318, valid.f_f-score 0.69028: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.14it/s]
epoch 15 | valid.f_iou 0.43806999921798706, valid.f_f-score 0.68935: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.14it/s]
epoch 15 | valid.f_iou 0.43806999921798706, valid.f_f-score 0.68935: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.29it/s]
epoch 15 | valid.f_iou 0.4152500033378601, valid.f_f-score 0.66515: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.29it/s]
epoch 15 | valid.f_iou 0.4152500033378601, valid.f_f-score 0.66515: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.42it/s]
epoch 15 | valid.f_iou 0.41301000118255615, valid.f_f-score 0.66473: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.42it/s]
epoch 15 | valid.f_iou 0.41301000118255615, valid.f_f-score 0.66473: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 15 | valid.f_iou 0.40775999426841736, valid.f_f-score 0.65305: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.49it/s]
epoch 15 | valid.f_iou 0.40775999426841736, valid.f_f-score 0.65305: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.56it/s]
epoch 15 | valid.f_iou 0.40775999426841736, valid.f_f-score 0.65305: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 15 | valid.f_iou 0.7168499827384949, valid.f_f-score 0.69261: 0%| | 0/16 [00:05, ?it/s]
epoch 15 | valid.f_iou 0.7168499827384949, valid.f_f-score 0.69261: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 15 | valid.f_iou 0.7755399942398071, valid.f_f-score 0.81777: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 15 | valid.f_iou 0.7755399942398071, valid.f_f-score 0.81777: 12%|███▉ | 2/16 [00:05<00:35, 2.51s/it]
epoch 15 | valid.f_iou 0.730459988117218, valid.f_f-score 0.81749: 12%|████ | 2/16 [00:06<00:35, 2.51s/it]
epoch 15 | valid.f_iou 0.730459988117218, valid.f_f-score 0.81749: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 15 | valid.f_iou 0.7061700224876404, valid.f_f-score 0.79026: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 15 | valid.f_iou 0.7061700224876404, valid.f_f-score 0.79026: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 15 | valid.f_iou 0.6884499788284302, valid.f_f-score 0.7859: 25%|████████ | 4/16 [00:07<00:13, 1.13s/it]
epoch 15 | valid.f_iou 0.6884499788284302, valid.f_f-score 0.7859: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 15 | valid.f_iou 0.6444699764251709, valid.f_f-score 0.75477: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 15 | valid.f_iou 0.6444699764251709, valid.f_f-score 0.75477: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 15 | valid.f_iou 0.6434199810028076, valid.f_f-score 0.75986: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 15 | valid.f_iou 0.6434199810028076, valid.f_f-score 0.75986: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 15 | valid.f_iou 0.6221100091934204, valid.f_f-score 0.73852: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 15 | valid.f_iou 0.6221100091934204, valid.f_f-score 0.73852: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 15 | valid.f_iou 0.6487600207328796, valid.f_f-score 0.75771: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 15 | valid.f_iou 0.6487600207328796, valid.f_f-score 0.75771: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.86it/s]
epoch 15 | valid.f_iou 0.6643000245094299, valid.f_f-score 0.77329: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.86it/s]
epoch 15 | valid.f_iou 0.6643000245094299, valid.f_f-score 0.77329: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 15 | valid.f_iou 0.6580299735069275, valid.f_f-score 0.76353: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 15 | valid.f_iou 0.6580299735069275, valid.f_f-score 0.76353: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 15 | valid.f_iou 0.6696699857711792, valid.f_f-score 0.77386: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.15it/s]
epoch 15 | valid.f_iou 0.6696699857711792, valid.f_f-score 0.77386: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.30it/s]
epoch 15 | valid.f_iou 0.6800100207328796, valid.f_f-score 0.78387: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.30it/s]
epoch 15 | valid.f_iou 0.6800100207328796, valid.f_f-score 0.78387: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 15 | valid.f_iou 0.6694499850273132, valid.f_f-score 0.77477: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 15 | valid.f_iou 0.6694499850273132, valid.f_f-score 0.77477: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 15 | valid.f_iou 0.6677600145339966, valid.f_f-score 0.7762: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.50it/s]
epoch 15 | valid.f_iou 0.6677600145339966, valid.f_f-score 0.7762: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.57it/s]
epoch 15 | valid.f_iou 0.6689299941062927, valid.f_f-score 0.77683: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 15 | valid.f_iou 0.6689299941062927, valid.f_f-score 0.77683: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 15 | valid.f_iou 0.6689299941062927, valid.f_f-score 0.77683: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 15 | valid.f_iou 0.7168499827384949, valid.f_f-score 0.69261: 0%| | 0/16 [00:04, ?it/s]
epoch 15 | valid.f_iou 0.7168499827384949, valid.f_f-score 0.69261: 6%|█▉ | 1/16 [00:04<01:13, 4.92s/it]
epoch 15 | valid.f_iou 0.7755399942398071, valid.f_f-score 0.81777: 6%|█▉ | 1/16 [00:05<01:13, 4.92s/it]
epoch 15 | valid.f_iou 0.7755399942398071, valid.f_f-score 0.81777: 12%|███▉ | 2/16 [00:05<00:32, 2.30s/it]
epoch 15 | valid.f_iou 0.730459988117218, valid.f_f-score 0.81749: 12%|████ | 2/16 [00:05<00:32, 2.30s/it]
epoch 15 | valid.f_iou 0.730459988117218, valid.f_f-score 0.81749: 19%|██████ | 3/16 [00:05<00:18, 1.46s/it]
epoch 15 | valid.f_iou 0.7061700224876404, valid.f_f-score 0.79026: 19%|█████▊ | 3/16 [00:06<00:18, 1.46s/it]
epoch 15 | valid.f_iou 0.7061700224876404, valid.f_f-score 0.79026: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 15 | valid.f_iou 0.6887699961662292, valid.f_f-score 0.7859: 25%|████████ | 4/16 [00:06<00:12, 1.06s/it]
epoch 15 | valid.f_iou 0.6887699961662292, valid.f_f-score 0.7859: 31%|██████████ | 5/16 [00:06<00:09, 1.17it/s]
epoch 15 | valid.f_iou 0.6447399854660034, valid.f_f-score 0.75477: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 15 | valid.f_iou 0.6447399854660034, valid.f_f-score 0.75477: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 15 | valid.f_iou 0.6436399817466736, valid.f_f-score 0.75986: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 15 | valid.f_iou 0.6436399817466736, valid.f_f-score 0.75986: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 15 | valid.f_iou 0.6223099827766418, valid.f_f-score 0.73852: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 15 | valid.f_iou 0.6223099827766418, valid.f_f-score 0.73852: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 15 | valid.f_iou 0.6489400267601013, valid.f_f-score 0.75771: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 15 | valid.f_iou 0.6489400267601013, valid.f_f-score 0.75771: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 15 | valid.f_iou 0.6644600033760071, valid.f_f-score 0.77329: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 15 | valid.f_iou 0.6644600033760071, valid.f_f-score 0.77329: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.14it/s]
epoch 15 | valid.f_iou 0.6581699848175049, valid.f_f-score 0.76353: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 15 | valid.f_iou 0.6581699848175049, valid.f_f-score 0.76353: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 15 | valid.f_iou 0.6698099970817566, valid.f_f-score 0.77386: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 15 | valid.f_iou 0.6698099970817566, valid.f_f-score 0.77386: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 15 | valid.f_iou 0.6801300048828125, valid.f_f-score 0.78387: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 15 | valid.f_iou 0.6801300048828125, valid.f_f-score 0.78387: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.50it/s]
epoch 15 | valid.f_iou 0.6695600152015686, valid.f_f-score 0.77477: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 15 | valid.f_iou 0.6695600152015686, valid.f_f-score 0.77477: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 15 | valid.f_iou 0.6678699851036072, valid.f_f-score 0.7762: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.56it/s]
epoch 15 | valid.f_iou 0.6678699851036072, valid.f_f-score 0.7762: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 15 | valid.f_iou 0.6690300107002258, valid.f_f-score 0.77683: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 15 | valid.f_iou 0.6690300107002258, valid.f_f-score 0.77683: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 15 | valid.f_iou 0.6690300107002258, valid.f_f-score 0.77683: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 16 | loss 6.685852527618408, f_iou 0.36512959003448486: 0%| | 0/74 [00:05, ?it/s]
epoch 16 | loss 6.685852527618408, f_iou 0.36512959003448486: 1%|▌ | 1/74 [00:05<07:06, 5.84s/it]
epoch 16 | loss 1.9488201141357422, f_iou 0.44573649764060974: 1%|▍ | 1/74 [00:06<07:06, 5.84s/it]
epoch 16 | loss 1.9488201141357422, f_iou 0.44573649764060974: 3%|▉ | 2/74 [00:06<03:27, 2.88s/it]
epoch 16 | loss 2.5247654914855957, f_iou 0.44320571422576904: 3%|▉ | 2/74 [00:07<03:27, 2.88s/it]
epoch 16 | loss 2.5247654914855957, f_iou 0.44320571422576904: 4%|█▍ | 3/74 [00:07<02:17, 1.93s/it]
epoch 16 | loss 5.09482479095459, f_iou 0.3647487759590149: 4%|█▌ | 3/74 [00:08<02:17, 1.93s/it]
epoch 16 | loss 5.09482479095459, f_iou 0.3647487759590149: 5%|██ | 4/74 [00:08<01:46, 1.53s/it]
epoch 16 | loss 5.10585880279541, f_iou 0.31926611065864563: 5%|██ | 4/74 [00:09<01:46, 1.53s/it]
epoch 16 | loss 5.10585880279541, f_iou 0.31926611065864563: 7%|██▌ | 5/74 [00:09<01:27, 1.26s/it]
epoch 16 | loss 3.3020613193511963, f_iou 0.2946721911430359: 7%|██▌ | 5/74 [00:09<01:27, 1.26s/it]
epoch 16 | loss 3.3020613193511963, f_iou 0.2946721911430359: 8%|███ | 6/74 [00:09<01:15, 1.11s/it]
epoch 16 | loss 3.985198974609375, f_iou 0.2746535539627075: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 16 | loss 3.985198974609375, f_iou 0.2746535539627075: 9%|███▌ | 7/74 [00:10<01:07, 1.00s/it]
epoch 16 | loss 3.8885343074798584, f_iou 0.2770823836326599: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 16 | loss 3.8885343074798584, f_iou 0.2770823836326599: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 16 | loss 1.4405055046081543, f_iou 0.24817384779453278: 11%|███▉ | 8/74 [00:12<01:01, 1.07it/s]
epoch 16 | loss 1.4405055046081543, f_iou 0.24817384779453278: 12%|████▍ | 9/74 [00:12<00:57, 1.12it/s]
epoch 16 | loss 3.059323310852051, f_iou 0.29102981090545654: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 16 | loss 3.059323310852051, f_iou 0.29102981090545654: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 16 | loss 4.067681312561035, f_iou 0.31019747257232666: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 16 | loss 4.067681312561035, f_iou 0.31019747257232666: 15%|█████▎ | 11/74 [00:13<00:52, 1.20it/s]
epoch 16 | loss 1.1390055418014526, f_iou 0.36445388197898865: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 16 | loss 1.1390055418014526, f_iou 0.36445388197898865: 16%|█████▋ | 12/74 [00:14<00:50, 1.23it/s]
epoch 16 | loss 1.7661538124084473, f_iou 0.3804085850715637: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 16 | loss 1.7661538124084473, f_iou 0.3804085850715637: 18%|██████▎ | 13/74 [00:15<00:48, 1.27it/s]
epoch 16 | loss 4.559755802154541, f_iou 0.38087525963783264: 18%|██████▎ | 13/74 [00:16<00:48, 1.27it/s]
epoch 16 | loss 4.559755802154541, f_iou 0.38087525963783264: 19%|██████▊ | 14/74 [00:16<00:45, 1.31it/s]
epoch 16 | loss 3.1847336292266846, f_iou 0.38077297806739807: 19%|██████▌ | 14/74 [00:16<00:45, 1.31it/s]
epoch 16 | loss 3.1847336292266846, f_iou 0.38077297806739807: 20%|███████ | 15/74 [00:16<00:44, 1.33it/s]
epoch 16 | loss 4.021712303161621, f_iou 0.38045763969421387: 20%|███████▎ | 15/74 [00:17<00:44, 1.33it/s]
epoch 16 | loss 4.021712303161621, f_iou 0.38045763969421387: 22%|███████▊ | 16/74 [00:17<00:43, 1.35it/s]
epoch 16 | loss 4.029891014099121, f_iou 0.37048232555389404: 22%|███████▊ | 16/74 [00:18<00:43, 1.35it/s]
epoch 16 | loss 4.029891014099121, f_iou 0.37048232555389404: 23%|████████▎ | 17/74 [00:18<00:42, 1.35it/s]
epoch 16 | loss 1.8802130222320557, f_iou 0.39242416620254517: 23%|████████ | 17/74 [00:19<00:42, 1.35it/s]
epoch 16 | loss 1.8802130222320557, f_iou 0.39242416620254517: 24%|████████▌ | 18/74 [00:19<00:42, 1.32it/s]
epoch 16 | loss 1.91887629032135, f_iou 0.4164638817310333: 24%|█████████▏ | 18/74 [00:19<00:42, 1.32it/s]
epoch 16 | loss 1.91887629032135, f_iou 0.4164638817310333: 26%|█████████▊ | 19/74 [00:19<00:42, 1.30it/s]
epoch 16 | loss 1.2183481454849243, f_iou 0.4143590033054352: 26%|█████████▏ | 19/74 [00:20<00:42, 1.30it/s]
epoch 16 | loss 1.2183481454849243, f_iou 0.4143590033054352: 27%|█████████▋ | 20/74 [00:20<00:41, 1.29it/s]
epoch 16 | loss 1.6226203441619873, f_iou 0.43307924270629883: 27%|█████████▍ | 20/74 [00:21<00:41, 1.29it/s]
epoch 16 | loss 1.6226203441619873, f_iou 0.43307924270629883: 28%|█████████▉ | 21/74 [00:21<00:41, 1.29it/s]
epoch 16 | loss 3.9195470809936523, f_iou 0.44061926007270813: 28%|█████████▉ | 21/74 [00:22<00:41, 1.29it/s]
epoch 16 | loss 3.9195470809936523, f_iou 0.44061926007270813: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 16 | loss 1.8799574375152588, f_iou 0.43506693840026855: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 16 | loss 1.8799574375152588, f_iou 0.43506693840026855: 31%|██████████▉ | 23/74 [00:22<00:38, 1.34it/s]
epoch 16 | loss 3.7568259239196777, f_iou 0.4467432200908661: 31%|███████████▏ | 23/74 [00:23<00:38, 1.34it/s]
epoch 16 | loss 3.7568259239196777, f_iou 0.4467432200908661: 32%|███████████▋ | 24/74 [00:23<00:36, 1.35it/s]
epoch 16 | loss 1.9133574962615967, f_iou 0.44809043407440186: 32%|███████████▎ | 24/74 [00:24<00:36, 1.35it/s]
epoch 16 | loss 1.9133574962615967, f_iou 0.44809043407440186: 34%|███████████▊ | 25/74 [00:24<00:35, 1.37it/s]
epoch 16 | loss 5.030074119567871, f_iou 0.4523225426673889: 34%|████████████▌ | 25/74 [00:25<00:35, 1.37it/s]
epoch 16 | loss 5.030074119567871, f_iou 0.4523225426673889: 35%|█████████████ | 26/74 [00:25<00:34, 1.37it/s]
epoch 16 | loss 5.051812171936035, f_iou 0.44576355814933777: 35%|████████████▋ | 26/74 [00:25<00:34, 1.37it/s]
epoch 16 | loss 5.051812171936035, f_iou 0.44576355814933777: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 16 | loss 2.915022611618042, f_iou 0.45662081241607666: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 16 | loss 2.915022611618042, f_iou 0.45662081241607666: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.38it/s]
epoch 16 | loss 3.750183582305908, f_iou 0.47188907861709595: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 16 | loss 3.750183582305908, f_iou 0.47188907861709595: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 16 | loss 1.3115639686584473, f_iou 0.4812140166759491: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 16 | loss 1.3115639686584473, f_iou 0.4812140166759491: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 16 | loss 3.554175853729248, f_iou 0.47535237669944763: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 16 | loss 3.554175853729248, f_iou 0.47535237669944763: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 16 | loss 6.906752586364746, f_iou 0.463127076625824: 42%|███████████████▉ | 31/74 [00:29<00:30, 1.39it/s]
epoch 16 | loss 6.906752586364746, f_iou 0.463127076625824: 43%|████████████████▍ | 32/74 [00:29<00:30, 1.40it/s]
epoch 16 | loss 2.5875813961029053, f_iou 0.45266231894493103: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.40it/s]
epoch 16 | loss 2.5875813961029053, f_iou 0.45266231894493103: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 16 | loss 4.073826313018799, f_iou 0.4607603847980499: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 16 | loss 4.073826313018799, f_iou 0.4607603847980499: 46%|█████████████████ | 34/74 [00:30<00:29, 1.36it/s]
epoch 16 | loss 3.3494009971618652, f_iou 0.4596310257911682: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 16 | loss 3.3494009971618652, f_iou 0.4596310257911682: 47%|█████████████████ | 35/74 [00:31<00:29, 1.33it/s]
epoch 16 | loss 1.1577308177947998, f_iou 0.469340443611145: 47%|█████████████████▌ | 35/74 [00:32<00:29, 1.33it/s]
epoch 16 | loss 1.1577308177947998, f_iou 0.469340443611145: 49%|██████████████████ | 36/74 [00:32<00:28, 1.31it/s]
epoch 16 | loss 6.640073776245117, f_iou 0.4574057161808014: 49%|██████████████████ | 36/74 [00:33<00:28, 1.31it/s]
epoch 16 | loss 6.640073776245117, f_iou 0.4574057161808014: 50%|██████████████████▌ | 37/74 [00:33<00:28, 1.30it/s]
epoch 16 | loss 2.807058572769165, f_iou 0.464376300573349: 50%|███████████████████ | 37/74 [00:33<00:28, 1.30it/s]
epoch 16 | loss 2.807058572769165, f_iou 0.464376300573349: 51%|███████████████████▌ | 38/74 [00:33<00:27, 1.32it/s]
epoch 16 | loss 4.955006122589111, f_iou 0.4575762152671814: 51%|███████████████████ | 38/74 [00:34<00:27, 1.32it/s]
epoch 16 | loss 4.955006122589111, f_iou 0.4575762152671814: 53%|███████████████████▍ | 39/74 [00:34<00:26, 1.34it/s]
epoch 16 | loss 3.2028257846832275, f_iou 0.44710540771484375: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 16 | loss 3.2028257846832275, f_iou 0.44710540771484375: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.36it/s]
epoch 16 | loss 1.5147464275360107, f_iou 0.45444175601005554: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.36it/s]
epoch 16 | loss 1.5147464275360107, f_iou 0.45444175601005554: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.37it/s]
epoch 16 | loss 5.660642623901367, f_iou 0.44362419843673706: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 16 | loss 5.660642623901367, f_iou 0.44362419843673706: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.38it/s]
epoch 16 | loss 2.755709171295166, f_iou 0.4393935203552246: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.38it/s]
epoch 16 | loss 2.755709171295166, f_iou 0.4393935203552246: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.38it/s]
epoch 16 | loss 1.6136817932128906, f_iou 0.4384985566139221: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 16 | loss 1.6136817932128906, f_iou 0.4384985566139221: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.36it/s]
epoch 16 | loss 7.2282538414001465, f_iou 0.42875415086746216: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.36it/s]
epoch 16 | loss 7.2282538414001465, f_iou 0.42875415086746216: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.34it/s]
epoch 16 | loss 1.6413270235061646, f_iou 0.4330785572528839: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 16 | loss 1.6413270235061646, f_iou 0.4330785572528839: 62%|██████████████████████▍ | 46/74 [00:39<00:21, 1.32it/s]
epoch 16 | loss 1.9035892486572266, f_iou 0.43850332498550415: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.32it/s]
epoch 16 | loss 1.9035892486572266, f_iou 0.43850332498550415: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.31it/s]
epoch 16 | loss 1.7417386770248413, f_iou 0.4496837258338928: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.31it/s]
epoch 16 | loss 1.7417386770248413, f_iou 0.4496837258338928: 65%|███████████████████████▎ | 48/74 [00:41<00:20, 1.30it/s]
epoch 16 | loss 2.353203773498535, f_iou 0.44687995314598083: 65%|███████████████████████▎ | 48/74 [00:42<00:20, 1.30it/s]
epoch 16 | loss 2.353203773498535, f_iou 0.44687995314598083: 66%|███████████████████████▊ | 49/74 [00:42<00:19, 1.30it/s]
epoch 16 | loss 5.80591344833374, f_iou 0.43890509009361267: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.30it/s]
epoch 16 | loss 5.80591344833374, f_iou 0.43890509009361267: 68%|█████████████████████████ | 50/74 [00:42<00:18, 1.30it/s]
epoch 16 | loss 2.322265625, f_iou 0.44983839988708496: 68%|████████████████████████████▍ | 50/74 [00:43<00:18, 1.30it/s]
epoch 16 | loss 2.322265625, f_iou 0.44983839988708496: 69%|████████████████████████████▉ | 51/74 [00:43<00:17, 1.32it/s]
epoch 16 | loss 2.0098865032196045, f_iou 0.4565512239933014: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.32it/s]
epoch 16 | loss 2.0098865032196045, f_iou 0.4565512239933014: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.34it/s]
epoch 16 | loss 1.9268765449523926, f_iou 0.4648074507713318: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.34it/s]
epoch 16 | loss 1.9268765449523926, f_iou 0.4648074507713318: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.35it/s]
epoch 16 | loss 6.267098903656006, f_iou 0.45668232440948486: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.35it/s]
epoch 16 | loss 6.267098903656006, f_iou 0.45668232440948486: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.36it/s]
epoch 16 | loss 4.358905792236328, f_iou 0.4486086964607239: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.36it/s]
epoch 16 | loss 4.358905792236328, f_iou 0.4486086964607239: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.37it/s]
epoch 16 | loss 7.09941291809082, f_iou 0.4500668942928314: 74%|████████████████████████████▏ | 55/74 [00:47<00:13, 1.37it/s]
epoch 16 | loss 7.09941291809082, f_iou 0.4500668942928314: 76%|████████████████████████████▊ | 56/74 [00:47<00:13, 1.38it/s]
epoch 16 | loss 2.036778450012207, f_iou 0.4491448998451233: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.38it/s]
epoch 16 | loss 2.036778450012207, f_iou 0.4491448998451233: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.37it/s]
epoch 16 | loss 2.3648505210876465, f_iou 0.4535330533981323: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.37it/s]
epoch 16 | loss 2.3648505210876465, f_iou 0.4535330533981323: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 16 | loss 1.4870970249176025, f_iou 0.45745131373405457: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.39it/s]
epoch 16 | loss 1.4870970249176025, f_iou 0.45745131373405457: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.38it/s]
epoch 16 | loss 3.8242087364196777, f_iou 0.4516134262084961: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.38it/s]
epoch 16 | loss 3.8242087364196777, f_iou 0.4516134262084961: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 16 | loss 0.8715952634811401, f_iou 0.45989686250686646: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.38it/s]
epoch 16 | loss 0.8715952634811401, f_iou 0.45989686250686646: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.36it/s]
epoch 16 | loss 1.880558967590332, f_iou 0.46702128648757935: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.36it/s]
epoch 16 | loss 1.880558967590332, f_iou 0.46702128648757935: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.34it/s]
epoch 16 | loss 2.138828754425049, f_iou 0.46818697452545166: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.34it/s]
epoch 16 | loss 2.138828754425049, f_iou 0.46818697452545166: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.34it/s]
epoch 16 | loss 4.4192023277282715, f_iou 0.47499027848243713: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.34it/s]
epoch 16 | loss 4.4192023277282715, f_iou 0.47499027848243713: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.34it/s]
epoch 16 | loss 7.577000141143799, f_iou 0.4742940366268158: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.34it/s]
epoch 16 | loss 7.577000141143799, f_iou 0.4742940366268158: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.35it/s]
epoch 16 | loss 2.7159037590026855, f_iou 0.4789210259914398: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.35it/s]
epoch 16 | loss 2.7159037590026855, f_iou 0.4789210259914398: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.36it/s]
epoch 16 | loss 9.166213035583496, f_iou 0.4773971140384674: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.36it/s]
epoch 16 | loss 9.166213035583496, f_iou 0.4773971140384674: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 16 | loss 1.6702430248260498, f_iou 0.4723372757434845: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.37it/s]
epoch 16 | loss 1.6702430248260498, f_iou 0.4723372757434845: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 16 | loss 1.8052947521209717, f_iou 0.4778079688549042: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 16 | loss 1.8052947521209717, f_iou 0.4778079688549042: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 16 | loss 2.983567237854004, f_iou 0.47098225355148315: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 16 | loss 2.983567237854004, f_iou 0.47098225355148315: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 16 | loss 5.394194602966309, f_iou 0.46475687623023987: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 16 | loss 5.394194602966309, f_iou 0.46475687623023987: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 16 | loss 5.157327651977539, f_iou 0.4635125696659088: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 16 | loss 5.157327651977539, f_iou 0.4635125696659088: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 16 | loss 2.576629638671875, f_iou 0.46908703446388245: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 16 | loss 2.576629638671875, f_iou 0.46908703446388245: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 16 | loss 4.274694442749023, f_iou 0.4653833210468292: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 16 | loss 4.274694442749023, f_iou 0.4653833210468292: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 16 | loss 4.274694442749023, f_iou 0.4653833210468292: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 16 | valid.f_iou 0.7043300271034241, valid.f_f-score 0.73: 0%| | 0/16 [00:05, ?it/s]
epoch 16 | valid.f_iou 0.7043300271034241, valid.f_f-score 0.73: 6%|██▏ | 1/16 [00:05<01:23, 5.55s/it]
epoch 16 | valid.f_iou 0.6863899827003479, valid.f_f-score 0.83082: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 16 | valid.f_iou 0.6863899827003479, valid.f_f-score 0.83082: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 16 | valid.f_iou 0.5728700160980225, valid.f_f-score 0.7622: 12%|████ | 2/16 [00:06<00:35, 2.55s/it]
epoch 16 | valid.f_iou 0.5728700160980225, valid.f_f-score 0.7622: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 16 | valid.f_iou 0.5834699869155884, valid.f_f-score 0.77447: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 16 | valid.f_iou 0.5834699869155884, valid.f_f-score 0.77447: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 16 | valid.f_iou 0.5713499784469604, valid.f_f-score 0.77954: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 16 | valid.f_iou 0.5713499784469604, valid.f_f-score 0.77954: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 16 | valid.f_iou 0.5350199937820435, valid.f_f-score 0.73847: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 16 | valid.f_iou 0.5350199937820435, valid.f_f-score 0.73847: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 16 | valid.f_iou 0.5347300171852112, valid.f_f-score 0.74076: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 16 | valid.f_iou 0.5347300171852112, valid.f_f-score 0.74076: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 16 | valid.f_iou 0.5171899795532227, valid.f_f-score 0.72772: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 16 | valid.f_iou 0.5171899795532227, valid.f_f-score 0.72772: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 16 | valid.f_iou 0.524619996547699, valid.f_f-score 0.71854: 50%|████████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 16 | valid.f_iou 0.524619996547699, valid.f_f-score 0.71854: 56%|██████████████████ | 9/16 [00:08<00:03, 1.99it/s]
epoch 16 | valid.f_iou 0.5118700265884399, valid.f_f-score 0.72389: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 16 | valid.f_iou 0.5118700265884399, valid.f_f-score 0.72389: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 16 | valid.f_iou 0.5040599703788757, valid.f_f-score 0.71424: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 16 | valid.f_iou 0.5040599703788757, valid.f_f-score 0.71424: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.13it/s]
epoch 16 | valid.f_iou 0.5266900062561035, valid.f_f-score 0.7304: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.13it/s]
epoch 16 | valid.f_iou 0.5266900062561035, valid.f_f-score 0.7304: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.17it/s]
epoch 16 | valid.f_iou 0.5412799715995789, valid.f_f-score 0.7439: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.17it/s]
epoch 16 | valid.f_iou 0.5412799715995789, valid.f_f-score 0.7439: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.31it/s]
epoch 16 | valid.f_iou 0.5253499746322632, valid.f_f-score 0.73308: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.31it/s]
epoch 16 | valid.f_iou 0.5253499746322632, valid.f_f-score 0.73308: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 16 | valid.f_iou 0.528980016708374, valid.f_f-score 0.7323: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.43it/s]
epoch 16 | valid.f_iou 0.528980016708374, valid.f_f-score 0.7323: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.51it/s]
epoch 16 | valid.f_iou 0.5364300012588501, valid.f_f-score 0.7323: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.51it/s]
epoch 16 | valid.f_iou 0.5364300012588501, valid.f_f-score 0.7323: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 16 | valid.f_iou 0.5364300012588501, valid.f_f-score 0.7323: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 16 | valid.f_iou 0.6645399928092957, valid.f_f-score 0.64237: 0%| | 0/16 [00:04, ?it/s]
epoch 16 | valid.f_iou 0.6645399928092957, valid.f_f-score 0.64237: 6%|█▉ | 1/16 [00:04<01:11, 4.79s/it]
epoch 16 | valid.f_iou 0.7632499933242798, valid.f_f-score 0.79363: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 16 | valid.f_iou 0.7632499933242798, valid.f_f-score 0.79363: 12%|███▉ | 2/16 [00:05<00:30, 2.20s/it]
epoch 16 | valid.f_iou 0.6354900002479553, valid.f_f-score 0.72644: 12%|███▉ | 2/16 [00:05<00:30, 2.20s/it]
epoch 16 | valid.f_iou 0.6354900002479553, valid.f_f-score 0.72644: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 16 | valid.f_iou 0.6230300068855286, valid.f_f-score 0.70724: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 16 | valid.f_iou 0.6230300068855286, valid.f_f-score 0.70724: 25%|███████▊ | 4/16 [00:05<00:11, 1.03it/s]
epoch 16 | valid.f_iou 0.6014099717140198, valid.f_f-score 0.70168: 25%|███████▊ | 4/16 [00:06<00:11, 1.03it/s]
epoch 16 | valid.f_iou 0.6014099717140198, valid.f_f-score 0.70168: 31%|█████████▋ | 5/16 [00:06<00:08, 1.33it/s]
epoch 16 | valid.f_iou 0.588890016078949, valid.f_f-score 0.68599: 31%|██████████ | 5/16 [00:06<00:08, 1.33it/s]
epoch 16 | valid.f_iou 0.588890016078949, valid.f_f-score 0.68599: 38%|████████████ | 6/16 [00:06<00:06, 1.58it/s]
epoch 16 | valid.f_iou 0.5966600179672241, valid.f_f-score 0.70042: 38%|███████████▋ | 6/16 [00:07<00:06, 1.58it/s]
epoch 16 | valid.f_iou 0.5966600179672241, valid.f_f-score 0.70042: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.82it/s]
epoch 16 | valid.f_iou 0.5758600234985352, valid.f_f-score 0.68017: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.82it/s]
epoch 16 | valid.f_iou 0.5758600234985352, valid.f_f-score 0.68017: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 16 | valid.f_iou 0.6065999865531921, valid.f_f-score 0.7031: 50%|████████████████ | 8/16 [00:07<00:03, 2.04it/s]
epoch 16 | valid.f_iou 0.6065999865531921, valid.f_f-score 0.7031: 56%|██████████████████ | 9/16 [00:07<00:03, 2.26it/s]
epoch 16 | valid.f_iou 0.6203299760818481, valid.f_f-score 0.72255: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.26it/s]
epoch 16 | valid.f_iou 0.6203299760818481, valid.f_f-score 0.72255: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.39it/s]
epoch 16 | valid.f_iou 0.5975000262260437, valid.f_f-score 0.69303: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.39it/s]
epoch 16 | valid.f_iou 0.5975000262260437, valid.f_f-score 0.69303: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.49it/s]
epoch 16 | valid.f_iou 0.6121900081634521, valid.f_f-score 0.7071: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.49it/s]
epoch 16 | valid.f_iou 0.6121900081634521, valid.f_f-score 0.7071: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.55it/s]
epoch 16 | valid.f_iou 0.623420000076294, valid.f_f-score 0.71819: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.55it/s]
epoch 16 | valid.f_iou 0.623420000076294, valid.f_f-score 0.71819: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.61it/s]
epoch 16 | valid.f_iou 0.6207299828529358, valid.f_f-score 0.71695: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 16 | valid.f_iou 0.6207299828529358, valid.f_f-score 0.71695: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.63it/s]
epoch 16 | valid.f_iou 0.6297799944877625, valid.f_f-score 0.72846: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.63it/s]
epoch 16 | valid.f_iou 0.6297799944877625, valid.f_f-score 0.72846: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.66it/s]
epoch 16 | valid.f_iou 0.6324099898338318, valid.f_f-score 0.72862: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 16 | valid.f_iou 0.6324099898338318, valid.f_f-score 0.72862: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 16 | valid.f_iou 0.6324099898338318, valid.f_f-score 0.72862: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.55it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 16 | valid.f_iou 0.6645399928092957, valid.f_f-score 0.64237: 0%| | 0/16 [00:04, ?it/s]
epoch 16 | valid.f_iou 0.6645399928092957, valid.f_f-score 0.64237: 6%|█▉ | 1/16 [00:04<01:11, 4.79s/it]
epoch 16 | valid.f_iou 0.7632499933242798, valid.f_f-score 0.79363: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 16 | valid.f_iou 0.7632499933242798, valid.f_f-score 0.79363: 12%|███▉ | 2/16 [00:05<00:34, 2.43s/it]
epoch 16 | valid.f_iou 0.6354900002479553, valid.f_f-score 0.72644: 12%|███▉ | 2/16 [00:06<00:34, 2.43s/it]
epoch 16 | valid.f_iou 0.6354900002479553, valid.f_f-score 0.72644: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 16 | valid.f_iou 0.6230999827384949, valid.f_f-score 0.70724: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 16 | valid.f_iou 0.6230999827384949, valid.f_f-score 0.70724: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 16 | valid.f_iou 0.6014599800109863, valid.f_f-score 0.70168: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 16 | valid.f_iou 0.6014599800109863, valid.f_f-score 0.70168: 31%|█████████▋ | 5/16 [00:06<00:09, 1.15it/s]
epoch 16 | valid.f_iou 0.5889400243759155, valid.f_f-score 0.68599: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 16 | valid.f_iou 0.5889400243759155, valid.f_f-score 0.68599: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 16 | valid.f_iou 0.5967000126838684, valid.f_f-score 0.70042: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 16 | valid.f_iou 0.5967000126838684, valid.f_f-score 0.70042: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 16 | valid.f_iou 0.5758900046348572, valid.f_f-score 0.68017: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 16 | valid.f_iou 0.5758900046348572, valid.f_f-score 0.68017: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 16 | valid.f_iou 0.6081500053405762, valid.f_f-score 0.7031: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 16 | valid.f_iou 0.6081500053405762, valid.f_f-score 0.7031: 56%|██████████████████ | 9/16 [00:08<00:03, 2.00it/s]
epoch 16 | valid.f_iou 0.6142500042915344, valid.f_f-score 0.71235: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.00it/s]
epoch 16 | valid.f_iou 0.6142500042915344, valid.f_f-score 0.71235: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 16 | valid.f_iou 0.5919700264930725, valid.f_f-score 0.68338: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 16 | valid.f_iou 0.5919700264930725, valid.f_f-score 0.68338: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 16 | valid.f_iou 0.6071100234985352, valid.f_f-score 0.69825: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 16 | valid.f_iou 0.6071100234985352, valid.f_f-score 0.69825: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.16it/s]
epoch 16 | valid.f_iou 0.6187300086021423, valid.f_f-score 0.71003: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.16it/s]
epoch 16 | valid.f_iou 0.6187300086021423, valid.f_f-score 0.71003: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.28it/s]
epoch 16 | valid.f_iou 0.616379976272583, valid.f_f-score 0.70937: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.28it/s]
epoch 16 | valid.f_iou 0.616379976272583, valid.f_f-score 0.70937: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.40it/s]
epoch 16 | valid.f_iou 0.6257200241088867, valid.f_f-score 0.72139: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.40it/s]
epoch 16 | valid.f_iou 0.6257200241088867, valid.f_f-score 0.72139: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 16 | valid.f_iou 0.628600001335144, valid.f_f-score 0.72199: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.49it/s]
epoch 16 | valid.f_iou 0.628600001335144, valid.f_f-score 0.72199: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 16 | valid.f_iou 0.628600001335144, valid.f_f-score 0.72199: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 17 | loss 1.1883327960968018, f_iou 0.1709641069173813: 0%| | 0/74 [00:05, ?it/s]
epoch 17 | loss 1.1883327960968018, f_iou 0.1709641069173813: 1%|▌ | 1/74 [00:05<07:13, 5.94s/it]
epoch 17 | loss 0.9356550574302673, f_iou 0.49138569831848145: 1%|▍ | 1/74 [00:06<07:13, 5.94s/it]
epoch 17 | loss 0.9356550574302673, f_iou 0.49138569831848145: 3%|▉ | 2/74 [00:06<03:31, 2.94s/it]
epoch 17 | loss 5.641077041625977, f_iou 0.5419376492500305: 3%|█ | 2/74 [00:07<03:31, 2.94s/it]
epoch 17 | loss 5.641077041625977, f_iou 0.5419376492500305: 4%|█▌ | 3/74 [00:07<02:22, 2.00s/it]
epoch 17 | loss 2.1939384937286377, f_iou 0.6148684024810791: 4%|█▌ | 3/74 [00:08<02:22, 2.00s/it]
epoch 17 | loss 2.1939384937286377, f_iou 0.6148684024810791: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 17 | loss 2.0268938541412354, f_iou 0.6541855931282043: 5%|██ | 4/74 [00:09<01:47, 1.54s/it]
epoch 17 | loss 2.0268938541412354, f_iou 0.6541855931282043: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 17 | loss 5.019087314605713, f_iou 0.5902619361877441: 7%|██▌ | 5/74 [00:10<01:27, 1.27s/it]
epoch 17 | loss 5.019087314605713, f_iou 0.5902619361877441: 8%|███ | 6/74 [00:10<01:15, 1.12s/it]
epoch 17 | loss 3.475548267364502, f_iou 0.5059388279914856: 8%|███ | 6/74 [00:10<01:15, 1.12s/it]
epoch 17 | loss 3.475548267364502, f_iou 0.5059388279914856: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 17 | loss 3.225633382797241, f_iou 0.5341760516166687: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 17 | loss 3.225633382797241, f_iou 0.5341760516166687: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 17 | loss 3.71138334274292, f_iou 0.5579853653907776: 11%|████▏ | 8/74 [00:12<01:02, 1.06it/s]
epoch 17 | loss 3.71138334274292, f_iou 0.5579853653907776: 12%|████▋ | 9/74 [00:12<00:58, 1.12it/s]
epoch 17 | loss 6.096315383911133, f_iou 0.5651799440383911: 12%|████▌ | 9/74 [00:13<00:58, 1.12it/s]
epoch 17 | loss 6.096315383911133, f_iou 0.5651799440383911: 14%|█████ | 10/74 [00:13<00:55, 1.16it/s]
epoch 17 | loss 0.7489097118377686, f_iou 0.6002616286277771: 14%|████▊ | 10/74 [00:14<00:55, 1.16it/s]
epoch 17 | loss 0.7489097118377686, f_iou 0.6002616286277771: 15%|█████▎ | 11/74 [00:14<00:52, 1.19it/s]
epoch 17 | loss 7.962911605834961, f_iou 0.6146327257156372: 15%|█████▌ | 11/74 [00:14<00:52, 1.19it/s]
epoch 17 | loss 7.962911605834961, f_iou 0.6146327257156372: 16%|██████ | 12/74 [00:14<00:50, 1.22it/s]
epoch 17 | loss 3.2674038410186768, f_iou 0.5761997699737549: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 17 | loss 3.2674038410186768, f_iou 0.5761997699737549: 18%|██████▎ | 13/74 [00:15<00:48, 1.26it/s]
epoch 17 | loss 3.8302924633026123, f_iou 0.5736263394355774: 18%|██████▎ | 13/74 [00:16<00:48, 1.26it/s]
epoch 17 | loss 3.8302924633026123, f_iou 0.5736263394355774: 19%|██████▊ | 14/74 [00:16<00:46, 1.29it/s]
epoch 17 | loss 1.6388438940048218, f_iou 0.5520224571228027: 19%|██████▊ | 14/74 [00:17<00:46, 1.29it/s]
epoch 17 | loss 1.6388438940048218, f_iou 0.5520224571228027: 20%|███████▎ | 15/74 [00:17<00:44, 1.32it/s]
epoch 17 | loss 4.330191612243652, f_iou 0.5585015416145325: 20%|███████▌ | 15/74 [00:17<00:44, 1.32it/s]
epoch 17 | loss 4.330191612243652, f_iou 0.5585015416145325: 22%|████████ | 16/74 [00:17<00:44, 1.30it/s]
epoch 17 | loss 4.397195339202881, f_iou 0.5563767552375793: 22%|████████ | 16/74 [00:18<00:44, 1.30it/s]
epoch 17 | loss 4.397195339202881, f_iou 0.5563767552375793: 23%|████████▌ | 17/74 [00:18<00:44, 1.29it/s]
epoch 17 | loss 8.930723190307617, f_iou 0.5770090222358704: 23%|████████▌ | 17/74 [00:19<00:44, 1.29it/s]
epoch 17 | loss 8.930723190307617, f_iou 0.5770090222358704: 24%|█████████ | 18/74 [00:19<00:43, 1.29it/s]
epoch 17 | loss 4.777486324310303, f_iou 0.5519645810127258: 24%|█████████ | 18/74 [00:20<00:43, 1.29it/s]
epoch 17 | loss 4.777486324310303, f_iou 0.5519645810127258: 26%|█████████▌ | 19/74 [00:20<00:42, 1.29it/s]
epoch 17 | loss 3.583723783493042, f_iou 0.5260511636734009: 26%|█████████▌ | 19/74 [00:20<00:42, 1.29it/s]
epoch 17 | loss 3.583723783493042, f_iou 0.5260511636734009: 27%|██████████ | 20/74 [00:20<00:41, 1.29it/s]
epoch 17 | loss 4.6028032302856445, f_iou 0.511928141117096: 27%|██████████ | 20/74 [00:21<00:41, 1.29it/s]
epoch 17 | loss 4.6028032302856445, f_iou 0.511928141117096: 28%|██████████▌ | 21/74 [00:21<00:41, 1.28it/s]
epoch 17 | loss 6.636990547180176, f_iou 0.4978032112121582: 28%|██████████▌ | 21/74 [00:22<00:41, 1.28it/s]
epoch 17 | loss 6.636990547180176, f_iou 0.4978032112121582: 30%|███████████ | 22/74 [00:22<00:40, 1.27it/s]
epoch 17 | loss 2.9764089584350586, f_iou 0.4796508848667145: 30%|██████████▋ | 22/74 [00:23<00:40, 1.27it/s]
epoch 17 | loss 2.9764089584350586, f_iou 0.4796508848667145: 31%|███████████▏ | 23/74 [00:23<00:39, 1.28it/s]
epoch 17 | loss 0.8534820675849915, f_iou 0.49957388639450073: 31%|██████████▉ | 23/74 [00:24<00:39, 1.28it/s]
epoch 17 | loss 0.8534820675849915, f_iou 0.49957388639450073: 32%|███████████▎ | 24/74 [00:24<00:40, 1.24it/s]
epoch 17 | loss 1.7519416809082031, f_iou 0.5110247135162354: 32%|███████████▋ | 24/74 [00:24<00:40, 1.24it/s]
epoch 17 | loss 1.7519416809082031, f_iou 0.5110247135162354: 34%|████████████▏ | 25/74 [00:24<00:38, 1.27it/s]
epoch 17 | loss 7.147071838378906, f_iou 0.49630606174468994: 34%|████████████▏ | 25/74 [00:25<00:38, 1.27it/s]
epoch 17 | loss 7.147071838378906, f_iou 0.49630606174468994: 35%|████████████▋ | 26/74 [00:25<00:37, 1.29it/s]
epoch 17 | loss 3.7678792476654053, f_iou 0.49312514066696167: 35%|████████████▎ | 26/74 [00:26<00:37, 1.29it/s]
epoch 17 | loss 3.7678792476654053, f_iou 0.49312514066696167: 36%|████████████▊ | 27/74 [00:26<00:35, 1.32it/s]
epoch 17 | loss 2.863161563873291, f_iou 0.5077812075614929: 36%|█████████████▌ | 27/74 [00:27<00:35, 1.32it/s]
epoch 17 | loss 2.863161563873291, f_iou 0.5077812075614929: 38%|██████████████ | 28/74 [00:27<00:34, 1.33it/s]
epoch 17 | loss 2.1394851207733154, f_iou 0.5095235109329224: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.33it/s]
epoch 17 | loss 2.1394851207733154, f_iou 0.5095235109329224: 39%|██████████████ | 29/74 [00:27<00:33, 1.34it/s]
epoch 17 | loss 2.0828027725219727, f_iou 0.4990079998970032: 39%|██████████████ | 29/74 [00:28<00:33, 1.34it/s]
epoch 17 | loss 2.0828027725219727, f_iou 0.4990079998970032: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.34it/s]
epoch 17 | loss 4.5936150550842285, f_iou 0.49855539202690125: 41%|██████████████▏ | 30/74 [00:29<00:32, 1.34it/s]
epoch 17 | loss 4.5936150550842285, f_iou 0.49855539202690125: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.35it/s]
epoch 17 | loss 5.132248878479004, f_iou 0.4986047148704529: 42%|███████████████▌ | 31/74 [00:30<00:31, 1.35it/s]
epoch 17 | loss 5.132248878479004, f_iou 0.4986047148704529: 43%|████████████████ | 32/74 [00:30<00:31, 1.32it/s]
epoch 17 | loss 6.196750640869141, f_iou 0.502128005027771: 43%|████████████████▍ | 32/74 [00:30<00:31, 1.32it/s]
epoch 17 | loss 6.196750640869141, f_iou 0.502128005027771: 45%|████████████████▉ | 33/74 [00:30<00:31, 1.31it/s]
epoch 17 | loss 6.225032806396484, f_iou 0.49913451075553894: 45%|████████████████ | 33/74 [00:31<00:31, 1.31it/s]
epoch 17 | loss 6.225032806396484, f_iou 0.49913451075553894: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.30it/s]
epoch 17 | loss 3.145224094390869, f_iou 0.5025168061256409: 46%|█████████████████ | 34/74 [00:32<00:30, 1.30it/s]
epoch 17 | loss 3.145224094390869, f_iou 0.5025168061256409: 47%|█████████████████▌ | 35/74 [00:32<00:30, 1.29it/s]
epoch 17 | loss 6.090787887573242, f_iou 0.4963900148868561: 47%|█████████████████▌ | 35/74 [00:33<00:30, 1.29it/s]
epoch 17 | loss 6.090787887573242, f_iou 0.4963900148868561: 49%|██████████████████ | 36/74 [00:33<00:29, 1.28it/s]
epoch 17 | loss 3.822237968444824, f_iou 0.5058255791664124: 49%|██████████████████ | 36/74 [00:34<00:29, 1.28it/s]
epoch 17 | loss 3.822237968444824, f_iou 0.5058255791664124: 50%|██████████████████▌ | 37/74 [00:34<00:28, 1.28it/s]
epoch 17 | loss 5.752307891845703, f_iou 0.5018114447593689: 50%|██████████████████▌ | 37/74 [00:34<00:28, 1.28it/s]
epoch 17 | loss 5.752307891845703, f_iou 0.5018114447593689: 51%|███████████████████ | 38/74 [00:34<00:27, 1.29it/s]
epoch 17 | loss 2.0634713172912598, f_iou 0.5049874186515808: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.29it/s]
epoch 17 | loss 2.0634713172912598, f_iou 0.5049874186515808: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.32it/s]
epoch 17 | loss 4.133227348327637, f_iou 0.493516206741333: 53%|████████████████████ | 39/74 [00:36<00:26, 1.32it/s]
epoch 17 | loss 4.133227348327637, f_iou 0.493516206741333: 54%|████████████████████▌ | 40/74 [00:36<00:25, 1.34it/s]
epoch 17 | loss 4.943238258361816, f_iou 0.4972081482410431: 54%|████████████████████ | 40/74 [00:36<00:25, 1.34it/s]
epoch 17 | loss 4.943238258361816, f_iou 0.4972081482410431: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.34it/s]
epoch 17 | loss 4.322853088378906, f_iou 0.4895641803741455: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.34it/s]
epoch 17 | loss 4.322853088378906, f_iou 0.4895641803741455: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.35it/s]
epoch 17 | loss 1.981756567955017, f_iou 0.47817957401275635: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.35it/s]
epoch 17 | loss 1.981756567955017, f_iou 0.47817957401275635: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.35it/s]
epoch 17 | loss 6.139969825744629, f_iou 0.470552921295166: 58%|██████████████████████ | 43/74 [00:39<00:22, 1.35it/s]
epoch 17 | loss 6.139969825744629, f_iou 0.470552921295166: 59%|██████████████████████▌ | 44/74 [00:39<00:22, 1.36it/s]
epoch 17 | loss 4.71368408203125, f_iou 0.463853120803833: 59%|███████████████████████▏ | 44/74 [00:39<00:22, 1.36it/s]
epoch 17 | loss 4.71368408203125, f_iou 0.463853120803833: 61%|███████████████████████▋ | 45/74 [00:39<00:21, 1.36it/s]
epoch 17 | loss 4.571841239929199, f_iou 0.45377060770988464: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.36it/s]
epoch 17 | loss 4.571841239929199, f_iou 0.45377060770988464: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 17 | loss 1.738142967224121, f_iou 0.44582054018974304: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.36it/s]
epoch 17 | loss 1.738142967224121, f_iou 0.44582054018974304: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 17 | loss 3.362138271331787, f_iou 0.4366191625595093: 64%|███████████████████████▌ | 47/74 [00:42<00:19, 1.37it/s]
epoch 17 | loss 3.362138271331787, f_iou 0.4366191625595093: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.37it/s]
epoch 17 | loss 5.5588579177856445, f_iou 0.43093860149383545: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.37it/s]
epoch 17 | loss 5.5588579177856445, f_iou 0.43093860149383545: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 17 | loss 4.471251964569092, f_iou 0.42803576588630676: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.38it/s]
epoch 17 | loss 4.471251964569092, f_iou 0.42803576588630676: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 17 | loss 3.7933225631713867, f_iou 0.41964292526245117: 68%|███████████████████████▋ | 50/74 [00:44<00:17, 1.39it/s]
epoch 17 | loss 3.7933225631713867, f_iou 0.41964292526245117: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.38it/s]
epoch 17 | loss 1.9888372421264648, f_iou 0.42635515332221985: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.38it/s]
epoch 17 | loss 1.9888372421264648, f_iou 0.42635515332221985: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.39it/s]
epoch 17 | loss 4.0920515060424805, f_iou 0.42876219749450684: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.39it/s]
epoch 17 | loss 4.0920515060424805, f_iou 0.42876219749450684: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.39it/s]
epoch 17 | loss 3.1378962993621826, f_iou 0.43273288011550903: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.39it/s]
epoch 17 | loss 3.1378962993621826, f_iou 0.43273288011550903: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.39it/s]
epoch 17 | loss 4.603267669677734, f_iou 0.4335085153579712: 73%|███████████████████████████ | 54/74 [00:47<00:14, 1.39it/s]
epoch 17 | loss 4.603267669677734, f_iou 0.4335085153579712: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 17 | loss 7.986713409423828, f_iou 0.4285372495651245: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 17 | loss 7.986713409423828, f_iou 0.4285372495651245: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 17 | loss 7.933405876159668, f_iou 0.4214150905609131: 76%|████████████████████████████ | 56/74 [00:48<00:12, 1.39it/s]
epoch 17 | loss 7.933405876159668, f_iou 0.4214150905609131: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.39it/s]
epoch 17 | loss 6.972868919372559, f_iou 0.41414931416511536: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.39it/s]
epoch 17 | loss 6.972868919372559, f_iou 0.41414931416511536: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 17 | loss 2.1856517791748047, f_iou 0.4107510447502136: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 17 | loss 2.1856517791748047, f_iou 0.4107510447502136: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 17 | loss 2.5581343173980713, f_iou 0.41389626264572144: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.39it/s]
epoch 17 | loss 2.5581343173980713, f_iou 0.41389626264572144: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.39it/s]
epoch 17 | loss 4.6026458740234375, f_iou 0.4200167953968048: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.39it/s]
epoch 17 | loss 4.6026458740234375, f_iou 0.4200167953968048: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 17 | loss 4.036150932312012, f_iou 0.4199196696281433: 82%|██████████████████████████████▌ | 61/74 [00:52<00:09, 1.39it/s]
epoch 17 | loss 4.036150932312012, f_iou 0.4199196696281433: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.39it/s]
epoch 17 | loss 2.3413472175598145, f_iou 0.4144202172756195: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 17 | loss 2.3413472175598145, f_iou 0.4144202172756195: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 17 | loss 7.398188591003418, f_iou 0.40812501311302185: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 17 | loss 7.398188591003418, f_iou 0.40812501311302185: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 17 | loss 4.1415486335754395, f_iou 0.41216251254081726: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.39it/s]
epoch 17 | loss 4.1415486335754395, f_iou 0.41216251254081726: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.39it/s]
epoch 17 | loss 4.08901309967041, f_iou 0.4127517342567444: 88%|█████████████████████████████████▍ | 65/74 [00:55<00:06, 1.39it/s]
epoch 17 | loss 4.08901309967041, f_iou 0.4127517342567444: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:05, 1.39it/s]
epoch 17 | loss 9.88037109375, f_iou 0.42139583826065063: 89%|███████████████████████████████████▋ | 66/74 [00:55<00:05, 1.39it/s]
epoch 17 | loss 9.88037109375, f_iou 0.42139583826065063: 91%|████████████████████████████████████▏ | 67/74 [00:55<00:05, 1.39it/s]
epoch 17 | loss 6.096334457397461, f_iou 0.4231186807155609: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 17 | loss 6.096334457397461, f_iou 0.4231186807155609: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 17 | loss 2.562293529510498, f_iou 0.42736196517944336: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.39it/s]
epoch 17 | loss 2.562293529510498, f_iou 0.42736196517944336: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 17 | loss 2.684098720550537, f_iou 0.42346832156181335: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 17 | loss 2.684098720550537, f_iou 0.42346832156181335: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 17 | loss 2.7303049564361572, f_iou 0.4201032519340515: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 17 | loss 2.7303049564361572, f_iou 0.4201032519340515: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 17 | loss 2.6267857551574707, f_iou 0.4207974076271057: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 17 | loss 2.6267857551574707, f_iou 0.4207974076271057: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 17 | loss 8.119976997375488, f_iou 0.426593154668808: 97%|████████████████████████████████████▉ | 72/74 [01:00<00:01, 1.41it/s]
epoch 17 | loss 8.119976997375488, f_iou 0.426593154668808: 99%|█████████████████████████████████████▍| 73/74 [01:00<00:00, 1.41it/s]
epoch 17 | loss 4.707790374755859, f_iou 0.42332765460014343: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 17 | loss 4.707790374755859, f_iou 0.42332765460014343: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 17 | loss 4.707790374755859, f_iou 0.42332765460014343: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 17 | valid.f_iou 0.4433700144290924, valid.f_f-score 0.61884: 0%| | 0/16 [00:05, ?it/s]
epoch 17 | valid.f_iou 0.4433700144290924, valid.f_f-score 0.61884: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 17 | valid.f_iou 0.38199999928474426, valid.f_f-score 0.71308: 6%|█▉ | 1/16 [00:06<01:23, 5.55s/it]
epoch 17 | valid.f_iou 0.38199999928474426, valid.f_f-score 0.71308: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 17 | valid.f_iou 0.2950100004673004, valid.f_f-score 0.65315: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 17 | valid.f_iou 0.2950100004673004, valid.f_f-score 0.65315: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 17 | valid.f_iou 0.3204500079154968, valid.f_f-score 0.65534: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 17 | valid.f_iou 0.3204500079154968, valid.f_f-score 0.65534: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 17 | valid.f_iou 0.30320000648498535, valid.f_f-score 0.66862: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 17 | valid.f_iou 0.30320000648498535, valid.f_f-score 0.66862: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 17 | valid.f_iou 0.2876099944114685, valid.f_f-score 0.64876: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 17 | valid.f_iou 0.2876099944114685, valid.f_f-score 0.64876: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 17 | valid.f_iou 0.3069800138473511, valid.f_f-score 0.65587: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 17 | valid.f_iou 0.3069800138473511, valid.f_f-score 0.65587: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 17 | valid.f_iou 0.29967001080513, valid.f_f-score 0.64896: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.58it/s]
epoch 17 | valid.f_iou 0.29967001080513, valid.f_f-score 0.64896: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 17 | valid.f_iou 0.31746000051498413, valid.f_f-score 0.64049: 50%|███████████████ | 8/16 [00:09<00:04, 1.75it/s]
epoch 17 | valid.f_iou 0.31746000051498413, valid.f_f-score 0.64049: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.94it/s]
epoch 17 | valid.f_iou 0.31294000148773193, valid.f_f-score 0.64962: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.94it/s]
epoch 17 | valid.f_iou 0.31294000148773193, valid.f_f-score 0.64962: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.13it/s]
epoch 17 | valid.f_iou 0.32745999097824097, valid.f_f-score 0.65407: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.13it/s]
epoch 17 | valid.f_iou 0.32745999097824097, valid.f_f-score 0.65407: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 17 | valid.f_iou 0.3296000063419342, valid.f_f-score 0.67253: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.28it/s]
epoch 17 | valid.f_iou 0.3296000063419342, valid.f_f-score 0.67253: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 17 | valid.f_iou 0.3182600140571594, valid.f_f-score 0.6791: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.40it/s]
epoch 17 | valid.f_iou 0.3182600140571594, valid.f_f-score 0.6791: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 17 | valid.f_iou 0.3148699998855591, valid.f_f-score 0.66783: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 17 | valid.f_iou 0.3148699998855591, valid.f_f-score 0.66783: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 17 | valid.f_iou 0.32207998633384705, valid.f_f-score 0.66218: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.56it/s]
epoch 17 | valid.f_iou 0.32207998633384705, valid.f_f-score 0.66218: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 17 | valid.f_iou 0.334199994802475, valid.f_f-score 0.65623: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.63it/s]
epoch 17 | valid.f_iou 0.334199994802475, valid.f_f-score 0.65623: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 17 | valid.f_iou 0.334199994802475, valid.f_f-score 0.65623: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 17 | valid.f_iou 0.6362699866294861, valid.f_f-score 0.74515: 0%| | 0/16 [00:05, ?it/s]
epoch 17 | valid.f_iou 0.6362699866294861, valid.f_f-score 0.74515: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 17 | valid.f_iou 0.7032899856567383, valid.f_f-score 0.82055: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 17 | valid.f_iou 0.7032899856567383, valid.f_f-score 0.82055: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 17 | valid.f_iou 0.5479599833488464, valid.f_f-score 0.73441: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 17 | valid.f_iou 0.5479599833488464, valid.f_f-score 0.73441: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 17 | valid.f_iou 0.5721700191497803, valid.f_f-score 0.73436: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 17 | valid.f_iou 0.5721700191497803, valid.f_f-score 0.73436: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 17 | valid.f_iou 0.574679970741272, valid.f_f-score 0.74151: 25%|████████ | 4/16 [00:07<00:13, 1.13s/it]
epoch 17 | valid.f_iou 0.574679970741272, valid.f_f-score 0.74151: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 17 | valid.f_iou 0.5494999885559082, valid.f_f-score 0.71047: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 17 | valid.f_iou 0.5494999885559082, valid.f_f-score 0.71047: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 17 | valid.f_iou 0.546999990940094, valid.f_f-score 0.71266: 38%|████████████ | 6/16 [00:08<00:07, 1.37it/s]
epoch 17 | valid.f_iou 0.546999990940094, valid.f_f-score 0.71266: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 17 | valid.f_iou 0.5438500046730042, valid.f_f-score 0.70681: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 17 | valid.f_iou 0.5438500046730042, valid.f_f-score 0.70681: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 17 | valid.f_iou 0.5728999972343445, valid.f_f-score 0.72657: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 17 | valid.f_iou 0.5728999972343445, valid.f_f-score 0.72657: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 17 | valid.f_iou 0.5727099776268005, valid.f_f-score 0.73933: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 17 | valid.f_iou 0.5727099776268005, valid.f_f-score 0.73933: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 17 | valid.f_iou 0.5567399859428406, valid.f_f-score 0.71556: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 17 | valid.f_iou 0.5567399859428406, valid.f_f-score 0.71556: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 17 | valid.f_iou 0.5673699975013733, valid.f_f-score 0.72649: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.15it/s]
epoch 17 | valid.f_iou 0.5673699975013733, valid.f_f-score 0.72649: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 17 | valid.f_iou 0.5858700275421143, valid.f_f-score 0.73706: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 17 | valid.f_iou 0.5858700275421143, valid.f_f-score 0.73706: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 17 | valid.f_iou 0.5791900157928467, valid.f_f-score 0.73081: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 17 | valid.f_iou 0.5791900157928467, valid.f_f-score 0.73081: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 17 | valid.f_iou 0.5721499919891357, valid.f_f-score 0.71949: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 17 | valid.f_iou 0.5721499919891357, valid.f_f-score 0.71949: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 17 | valid.f_iou 0.5781800150871277, valid.f_f-score 0.72296: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 17 | valid.f_iou 0.5781800150871277, valid.f_f-score 0.72296: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 17 | valid.f_iou 0.5781800150871277, valid.f_f-score 0.72296: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 17 | valid.f_iou 0.45416000485420227, valid.f_f-score 0.57975: 0%| | 0/16 [00:04, ?it/s]
epoch 17 | valid.f_iou 0.45416000485420227, valid.f_f-score 0.57975: 6%|█▉ | 1/16 [00:04<01:14, 4.98s/it]
epoch 17 | valid.f_iou 0.4950299859046936, valid.f_f-score 0.6166: 6%|██ | 1/16 [00:05<01:14, 4.98s/it]
epoch 17 | valid.f_iou 0.4950299859046936, valid.f_f-score 0.6166: 12%|████ | 2/16 [00:05<00:32, 2.31s/it]
epoch 17 | valid.f_iou 0.40448999404907227, valid.f_f-score 0.58849: 12%|███▊ | 2/16 [00:05<00:32, 2.31s/it]
epoch 17 | valid.f_iou 0.40448999404907227, valid.f_f-score 0.58849: 19%|█████▋ | 3/16 [00:05<00:18, 1.46s/it]
epoch 17 | valid.f_iou 0.470770001411438, valid.f_f-score 0.6214: 19%|██████▏ | 3/16 [00:06<00:18, 1.46s/it]
epoch 17 | valid.f_iou 0.470770001411438, valid.f_f-score 0.6214: 25%|████████▎ | 4/16 [00:06<00:12, 1.05s/it]
epoch 17 | valid.f_iou 0.49355998635292053, valid.f_f-score 0.65114: 25%|███████▌ | 4/16 [00:06<00:12, 1.05s/it]
epoch 17 | valid.f_iou 0.49355998635292053, valid.f_f-score 0.65114: 31%|█████████▍ | 5/16 [00:06<00:09, 1.20it/s]
epoch 17 | valid.f_iou 0.4820399880409241, valid.f_f-score 0.63516: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 17 | valid.f_iou 0.4820399880409241, valid.f_f-score 0.63516: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 17 | valid.f_iou 0.4895699918270111, valid.f_f-score 0.64209: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 17 | valid.f_iou 0.4895699918270111, valid.f_f-score 0.64209: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 17 | valid.f_iou 0.484499990940094, valid.f_f-score 0.63226: 44%|██████████████ | 7/16 [00:07<00:05, 1.68it/s]
epoch 17 | valid.f_iou 0.484499990940094, valid.f_f-score 0.63226: 50%|████████████████ | 8/16 [00:07<00:04, 1.84it/s]
epoch 17 | valid.f_iou 0.5243600010871887, valid.f_f-score 0.66031: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.84it/s]
epoch 17 | valid.f_iou 0.5243600010871887, valid.f_f-score 0.66031: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 17 | valid.f_iou 0.5202999711036682, valid.f_f-score 0.67236: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 17 | valid.f_iou 0.5202999711036682, valid.f_f-score 0.67236: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.22it/s]
epoch 17 | valid.f_iou 0.48385998606681824, valid.f_f-score 0.62862: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.22it/s]
epoch 17 | valid.f_iou 0.48385998606681824, valid.f_f-score 0.62862: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.36it/s]
epoch 17 | valid.f_iou 0.4999299943447113, valid.f_f-score 0.64619: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 17 | valid.f_iou 0.4999299943447113, valid.f_f-score 0.64619: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 17 | valid.f_iou 0.5198500156402588, valid.f_f-score 0.66167: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 17 | valid.f_iou 0.5198500156402588, valid.f_f-score 0.66167: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.54it/s]
epoch 17 | valid.f_iou 0.5071700215339661, valid.f_f-score 0.6486: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.54it/s]
epoch 17 | valid.f_iou 0.5071700215339661, valid.f_f-score 0.6486: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.60it/s]
epoch 17 | valid.f_iou 0.5049300193786621, valid.f_f-score 0.64276: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 17 | valid.f_iou 0.5049300193786621, valid.f_f-score 0.64276: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 17 | valid.f_iou 0.5156999826431274, valid.f_f-score 0.65103: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 17 | valid.f_iou 0.5156999826431274, valid.f_f-score 0.65103: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 17 | valid.f_iou 0.5156999826431274, valid.f_f-score 0.65103: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 18 | loss 1.7665070295333862, f_iou 0.05855918675661087: 0%| | 0/74 [00:06, ?it/s]
epoch 18 | loss 1.7665070295333862, f_iou 0.05855918675661087: 1%|▍ | 1/74 [00:06<07:29, 6.16s/it]
epoch 18 | loss 5.396739482879639, f_iou 0.09746144711971283: 1%|▌ | 1/74 [00:06<07:29, 6.16s/it]
epoch 18 | loss 5.396739482879639, f_iou 0.09746144711971283: 3%|█ | 2/74 [00:06<03:35, 2.99s/it]
epoch 18 | loss 5.460057258605957, f_iou 0.17099153995513916: 3%|█ | 2/74 [00:07<03:35, 2.99s/it]
epoch 18 | loss 5.460057258605957, f_iou 0.17099153995513916: 4%|█▌ | 3/74 [00:07<02:21, 2.00s/it]
epoch 18 | loss 3.7684621810913086, f_iou 0.17292320728302002: 4%|█▍ | 3/74 [00:08<02:21, 2.00s/it]
epoch 18 | loss 3.7684621810913086, f_iou 0.17292320728302002: 5%|█▉ | 4/74 [00:08<01:45, 1.51s/it]
epoch 18 | loss 1.8684226274490356, f_iou 0.22246424853801727: 5%|█▉ | 4/74 [00:09<01:45, 1.51s/it]
epoch 18 | loss 1.8684226274490356, f_iou 0.22246424853801727: 7%|██▍ | 5/74 [00:09<01:25, 1.24s/it]
epoch 18 | loss 5.070648193359375, f_iou 0.23042210936546326: 7%|██▌ | 5/74 [00:10<01:25, 1.24s/it]
epoch 18 | loss 5.070648193359375, f_iou 0.23042210936546326: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 18 | loss 8.435497283935547, f_iou 0.2071905881166458: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 18 | loss 8.435497283935547, f_iou 0.2071905881166458: 9%|███▌ | 7/74 [00:10<01:04, 1.04it/s]
epoch 18 | loss 2.4155941009521484, f_iou 0.1933341771364212: 9%|███▌ | 7/74 [00:11<01:04, 1.04it/s]
epoch 18 | loss 2.4155941009521484, f_iou 0.1933341771364212: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 18 | loss 1.7818293571472168, f_iou 0.26478731632232666: 11%|███▉ | 8/74 [00:12<00:58, 1.13it/s]
epoch 18 | loss 1.7818293571472168, f_iou 0.26478731632232666: 12%|████▍ | 9/74 [00:12<00:54, 1.20it/s]
epoch 18 | loss 7.4693145751953125, f_iou 0.28590524196624756: 12%|████▍ | 9/74 [00:12<00:54, 1.20it/s]
epoch 18 | loss 7.4693145751953125, f_iou 0.28590524196624756: 14%|████▋ | 10/74 [00:12<00:51, 1.25it/s]
epoch 18 | loss 4.9995527267456055, f_iou 0.30904242396354675: 14%|████▋ | 10/74 [00:13<00:51, 1.25it/s]
epoch 18 | loss 4.9995527267456055, f_iou 0.30904242396354675: 15%|█████▏ | 11/74 [00:13<00:48, 1.29it/s]
epoch 18 | loss 4.120312213897705, f_iou 0.32983386516571045: 15%|█████▎ | 11/74 [00:14<00:48, 1.29it/s]
epoch 18 | loss 4.120312213897705, f_iou 0.32983386516571045: 16%|█████▊ | 12/74 [00:14<00:46, 1.32it/s]
epoch 18 | loss 9.021235466003418, f_iou 0.36459213495254517: 16%|█████▊ | 12/74 [00:15<00:46, 1.32it/s]
epoch 18 | loss 9.021235466003418, f_iou 0.36459213495254517: 18%|██████▎ | 13/74 [00:15<00:45, 1.34it/s]
epoch 18 | loss 3.2420127391815186, f_iou 0.34934523701667786: 18%|██████▏ | 13/74 [00:15<00:45, 1.34it/s]
epoch 18 | loss 3.2420127391815186, f_iou 0.34934523701667786: 19%|██████▌ | 14/74 [00:15<00:44, 1.36it/s]
epoch 18 | loss 2.0579917430877686, f_iou 0.3260555565357208: 19%|██████▊ | 14/74 [00:16<00:44, 1.36it/s]
epoch 18 | loss 2.0579917430877686, f_iou 0.3260555565357208: 20%|███████▎ | 15/74 [00:16<00:43, 1.37it/s]
epoch 18 | loss 1.3835440874099731, f_iou 0.3057708442211151: 20%|███████▎ | 15/74 [00:17<00:43, 1.37it/s]
epoch 18 | loss 1.3835440874099731, f_iou 0.3057708442211151: 22%|███████▊ | 16/74 [00:17<00:42, 1.38it/s]
epoch 18 | loss 2.4543285369873047, f_iou 0.3190161883831024: 22%|███████▊ | 16/74 [00:17<00:42, 1.38it/s]
epoch 18 | loss 2.4543285369873047, f_iou 0.3190161883831024: 23%|████████▎ | 17/74 [00:17<00:41, 1.38it/s]
epoch 18 | loss 5.280468940734863, f_iou 0.31874558329582214: 23%|████████▎ | 17/74 [00:18<00:41, 1.38it/s]
epoch 18 | loss 5.280468940734863, f_iou 0.31874558329582214: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 18 | loss 4.330332279205322, f_iou 0.31339702010154724: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 18 | loss 4.330332279205322, f_iou 0.31339702010154724: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 18 | loss 1.6405162811279297, f_iou 0.3034777045249939: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 18 | loss 1.6405162811279297, f_iou 0.3034777045249939: 27%|█████████▋ | 20/74 [00:20<00:40, 1.35it/s]
epoch 18 | loss 2.0694408416748047, f_iou 0.2953051030635834: 27%|█████████▋ | 20/74 [00:20<00:40, 1.35it/s]
epoch 18 | loss 2.0694408416748047, f_iou 0.2953051030635834: 28%|██████████▏ | 21/74 [00:20<00:40, 1.32it/s]
epoch 18 | loss 1.9880691766738892, f_iou 0.2961007356643677: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 18 | loss 1.9880691766738892, f_iou 0.2961007356643677: 30%|██████████▋ | 22/74 [00:21<00:39, 1.32it/s]
epoch 18 | loss 8.22832202911377, f_iou 0.32178694009780884: 30%|███████████ | 22/74 [00:22<00:39, 1.32it/s]
epoch 18 | loss 8.22832202911377, f_iou 0.32178694009780884: 31%|███████████▌ | 23/74 [00:22<00:39, 1.30it/s]
epoch 18 | loss 2.008159637451172, f_iou 0.31948089599609375: 31%|███████████▏ | 23/74 [00:23<00:39, 1.30it/s]
epoch 18 | loss 2.008159637451172, f_iou 0.31948089599609375: 32%|███████████▋ | 24/74 [00:23<00:38, 1.31it/s]
epoch 18 | loss 2.973397731781006, f_iou 0.3188483417034149: 32%|████████████ | 24/74 [00:23<00:38, 1.31it/s]
epoch 18 | loss 2.973397731781006, f_iou 0.3188483417034149: 34%|████████████▌ | 25/74 [00:23<00:36, 1.33it/s]
epoch 18 | loss 2.688366413116455, f_iou 0.32748693227767944: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 18 | loss 2.688366413116455, f_iou 0.32748693227767944: 35%|████████████▋ | 26/74 [00:24<00:35, 1.35it/s]
epoch 18 | loss 3.8158369064331055, f_iou 0.32725316286087036: 35%|████████████▎ | 26/74 [00:25<00:35, 1.35it/s]
epoch 18 | loss 3.8158369064331055, f_iou 0.32725316286087036: 36%|████████████▊ | 27/74 [00:25<00:35, 1.33it/s]
epoch 18 | loss 3.981278419494629, f_iou 0.3335142433643341: 36%|█████████████▌ | 27/74 [00:26<00:35, 1.33it/s]
epoch 18 | loss 3.981278419494629, f_iou 0.3335142433643341: 38%|██████████████ | 28/74 [00:26<00:35, 1.31it/s]
epoch 18 | loss 4.010876655578613, f_iou 0.325374037027359: 38%|██████████████▍ | 28/74 [00:27<00:35, 1.31it/s]
epoch 18 | loss 4.010876655578613, f_iou 0.325374037027359: 39%|██████████████▉ | 29/74 [00:27<00:34, 1.29it/s]
epoch 18 | loss 10.396724700927734, f_iou 0.3396604359149933: 39%|██████████████ | 29/74 [00:27<00:34, 1.29it/s]
epoch 18 | loss 10.396724700927734, f_iou 0.3396604359149933: 41%|██████████████▌ | 30/74 [00:27<00:34, 1.28it/s]
epoch 18 | loss 10.208497047424316, f_iou 0.3554186522960663: 41%|██████████████▌ | 30/74 [00:28<00:34, 1.28it/s]
epoch 18 | loss 10.208497047424316, f_iou 0.3554186522960663: 42%|███████████████ | 31/74 [00:28<00:33, 1.28it/s]
epoch 18 | loss 5.997096538543701, f_iou 0.34953388571739197: 42%|███████████████ | 31/74 [00:29<00:33, 1.28it/s]
epoch 18 | loss 5.997096538543701, f_iou 0.34953388571739197: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.28it/s]
epoch 18 | loss 1.4975740909576416, f_iou 0.3389453589916229: 43%|███████████████▌ | 32/74 [00:30<00:32, 1.28it/s]
epoch 18 | loss 1.4975740909576416, f_iou 0.3389453589916229: 45%|████████████████ | 33/74 [00:30<00:31, 1.30it/s]
epoch 18 | loss 1.3612544536590576, f_iou 0.3291759788990021: 45%|████████████████ | 33/74 [00:30<00:31, 1.30it/s]
epoch 18 | loss 1.3612544536590576, f_iou 0.3291759788990021: 46%|████████████████▌ | 34/74 [00:30<00:30, 1.33it/s]
epoch 18 | loss 3.527622699737549, f_iou 0.3303350806236267: 46%|█████████████████ | 34/74 [00:31<00:30, 1.33it/s]
epoch 18 | loss 3.527622699737549, f_iou 0.3303350806236267: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.35it/s]
epoch 18 | loss 5.497551918029785, f_iou 0.32770422101020813: 47%|█████████████████ | 35/74 [00:32<00:28, 1.35it/s]
epoch 18 | loss 5.497551918029785, f_iou 0.32770422101020813: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.36it/s]
epoch 18 | loss 6.966800689697266, f_iou 0.33443212509155273: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.36it/s]
epoch 18 | loss 6.966800689697266, f_iou 0.33443212509155273: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 18 | loss 5.793309211730957, f_iou 0.34309861063957214: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 18 | loss 5.793309211730957, f_iou 0.34309861063957214: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 18 | loss 0.6964426040649414, f_iou 0.33448827266693115: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 18 | loss 0.6964426040649414, f_iou 0.33448827266693115: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.37it/s]
epoch 18 | loss 2.3881945610046387, f_iou 0.3391295373439789: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.37it/s]
epoch 18 | loss 2.3881945610046387, f_iou 0.3391295373439789: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 18 | loss 6.1024088859558105, f_iou 0.3371265232563019: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 18 | loss 6.1024088859558105, f_iou 0.3371265232563019: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 18 | loss 4.787065505981445, f_iou 0.33519595861434937: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 18 | loss 4.787065505981445, f_iou 0.33519595861434937: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 18 | loss 1.8208277225494385, f_iou 0.34678658843040466: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.39it/s]
epoch 18 | loss 1.8208277225494385, f_iou 0.34678658843040466: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.38it/s]
epoch 18 | loss 7.06239128112793, f_iou 0.34097903966903687: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.38it/s]
epoch 18 | loss 7.06239128112793, f_iou 0.34097903966903687: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.38it/s]
epoch 18 | loss 2.6374497413635254, f_iou 0.3515516221523285: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 18 | loss 2.6374497413635254, f_iou 0.3515516221523285: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.39it/s]
epoch 18 | loss 3.1039505004882812, f_iou 0.3502327501773834: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 18 | loss 3.1039505004882812, f_iou 0.3502327501773834: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 18 | loss 3.0530946254730225, f_iou 0.36055177450180054: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.39it/s]
epoch 18 | loss 3.0530946254730225, f_iou 0.36055177450180054: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 18 | loss 2.0163841247558594, f_iou 0.36975693702697754: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 18 | loss 2.0163841247558594, f_iou 0.36975693702697754: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 18 | loss 2.521482467651367, f_iou 0.3727366626262665: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 18 | loss 2.521482467651367, f_iou 0.3727366626262665: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.39it/s]
epoch 18 | loss 3.7236328125, f_iou 0.38275009393692017: 66%|███████████████████████████▏ | 49/74 [00:42<00:17, 1.39it/s]
epoch 18 | loss 3.7236328125, f_iou 0.38275009393692017: 68%|███████████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 18 | loss 1.583091139793396, f_iou 0.39150717854499817: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 18 | loss 1.583091139793396, f_iou 0.39150717854499817: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 18 | loss 2.3261444568634033, f_iou 0.3928963243961334: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 18 | loss 2.3261444568634033, f_iou 0.3928963243961334: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 18 | loss 1.84847891330719, f_iou 0.40029728412628174: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 18 | loss 1.84847891330719, f_iou 0.40029728412628174: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 18 | loss 1.8893542289733887, f_iou 0.4060908854007721: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 18 | loss 1.8893542289733887, f_iou 0.4060908854007721: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 18 | loss 3.0628554821014404, f_iou 0.4075409173965454: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 18 | loss 3.0628554821014404, f_iou 0.4075409173965454: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.40it/s]
epoch 18 | loss 2.638599157333374, f_iou 0.41576969623565674: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 18 | loss 2.638599157333374, f_iou 0.41576969623565674: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.40it/s]
epoch 18 | loss 1.3215579986572266, f_iou 0.4138433039188385: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.40it/s]
epoch 18 | loss 1.3215579986572266, f_iou 0.4138433039188385: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.31it/s]
epoch 18 | loss 7.316275119781494, f_iou 0.4104596674442291: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.31it/s]
epoch 18 | loss 7.316275119781494, f_iou 0.4104596674442291: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.32it/s]
epoch 18 | loss 5.201721668243408, f_iou 0.4091581702232361: 78%|█████████████████████████████ | 58/74 [00:49<00:12, 1.32it/s]
epoch 18 | loss 5.201721668243408, f_iou 0.4091581702232361: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.34it/s]
epoch 18 | loss 4.451137065887451, f_iou 0.4051617383956909: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.34it/s]
epoch 18 | loss 4.451137065887451, f_iou 0.4051617383956909: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.35it/s]
epoch 18 | loss 0.9756829738616943, f_iou 0.398747056722641: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.35it/s]
epoch 18 | loss 0.9756829738616943, f_iou 0.398747056722641: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.35it/s]
epoch 18 | loss 5.108986854553223, f_iou 0.3966170847415924: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.35it/s]
epoch 18 | loss 5.108986854553223, f_iou 0.3966170847415924: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.37it/s]
epoch 18 | loss 1.6974785327911377, f_iou 0.3903358280658722: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.37it/s]
epoch 18 | loss 1.6974785327911377, f_iou 0.3903358280658722: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 18 | loss 0.6447687149047852, f_iou 0.38903746008872986: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.38it/s]
epoch 18 | loss 0.6447687149047852, f_iou 0.38903746008872986: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.38it/s]
epoch 18 | loss 5.04034423828125, f_iou 0.38601815700531006: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 18 | loss 5.04034423828125, f_iou 0.38601815700531006: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 18 | loss 2.452934741973877, f_iou 0.3880206346511841: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 18 | loss 2.452934741973877, f_iou 0.3880206346511841: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 18 | loss 2.3300416469573975, f_iou 0.39114663004875183: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.38it/s]
epoch 18 | loss 2.3300416469573975, f_iou 0.39114663004875183: 91%|███████████████████████████████▋ | 67/74 [00:54<00:05, 1.39it/s]
epoch 18 | loss 7.587642669677734, f_iou 0.3876717686653137: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 18 | loss 7.587642669677734, f_iou 0.3876717686653137: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 18 | loss 4.03450870513916, f_iou 0.3866969048976898: 92%|██████████████████████████████████▉ | 68/74 [00:56<00:04, 1.40it/s]
epoch 18 | loss 4.03450870513916, f_iou 0.3866969048976898: 93%|███████████████████████████████████▍ | 69/74 [00:56<00:03, 1.40it/s]
epoch 18 | loss 5.07047176361084, f_iou 0.38571852445602417: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 18 | loss 5.07047176361084, f_iou 0.38571852445602417: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 18 | loss 4.383077144622803, f_iou 0.39022305607795715: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 18 | loss 4.383077144622803, f_iou 0.39022305607795715: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 18 | loss 3.0952301025390625, f_iou 0.3853205442428589: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 18 | loss 3.0952301025390625, f_iou 0.3853205442428589: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 18 | loss 2.43550968170166, f_iou 0.3931027054786682: 97%|████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.40it/s]
epoch 18 | loss 2.43550968170166, f_iou 0.3931027054786682: 99%|█████████████████████████████████████▍| 73/74 [00:59<00:00, 1.40it/s]
epoch 18 | loss 3.3112964630126953, f_iou 0.39420586824417114: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 18 | loss 3.3112964630126953, f_iou 0.39420586824417114: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 18 | loss 3.3112964630126953, f_iou 0.39420586824417114: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 18 | valid.f_iou 0.7149699926376343, valid.f_f-score 0.75023: 0%| | 0/16 [00:05, ?it/s]
epoch 18 | valid.f_iou 0.7149699926376343, valid.f_f-score 0.75023: 6%|█▉ | 1/16 [00:05<01:23, 5.57s/it]
epoch 18 | valid.f_iou 0.5076599717140198, valid.f_f-score 0.71669: 6%|█▉ | 1/16 [00:06<01:23, 5.57s/it]
epoch 18 | valid.f_iou 0.5076599717140198, valid.f_f-score 0.71669: 12%|███▉ | 2/16 [00:06<00:36, 2.57s/it]
epoch 18 | valid.f_iou 0.4453200101852417, valid.f_f-score 0.67985: 12%|███▉ | 2/16 [00:06<00:36, 2.57s/it]
epoch 18 | valid.f_iou 0.4453200101852417, valid.f_f-score 0.67985: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 18 | valid.f_iou 0.4869700074195862, valid.f_f-score 0.68077: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 18 | valid.f_iou 0.4869700074195862, valid.f_f-score 0.68077: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 18 | valid.f_iou 0.47442999482154846, valid.f_f-score 0.68937: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 18 | valid.f_iou 0.47442999482154846, valid.f_f-score 0.68937: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 18 | valid.f_iou 0.4622499942779541, valid.f_f-score 0.681: 31%|██████████▎ | 5/16 [00:07<00:09, 1.12it/s]
epoch 18 | valid.f_iou 0.4622499942779541, valid.f_f-score 0.681: 38%|████████████▍ | 6/16 [00:07<00:07, 1.36it/s]
epoch 18 | valid.f_iou 0.4536899924278259, valid.f_f-score 0.67707: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 18 | valid.f_iou 0.4536899924278259, valid.f_f-score 0.67707: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 18 | valid.f_iou 0.4296000003814697, valid.f_f-score 0.66845: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 18 | valid.f_iou 0.4296000003814697, valid.f_f-score 0.66845: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 18 | valid.f_iou 0.43143001198768616, valid.f_f-score 0.6555: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 18 | valid.f_iou 0.43143001198768616, valid.f_f-score 0.6555: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 18 | valid.f_iou 0.42208001017570496, valid.f_f-score 0.66362: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 18 | valid.f_iou 0.42208001017570496, valid.f_f-score 0.66362: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.15it/s]
epoch 18 | valid.f_iou 0.4222399890422821, valid.f_f-score 0.66052: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.15it/s]
epoch 18 | valid.f_iou 0.4222399890422821, valid.f_f-score 0.66052: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.30it/s]
epoch 18 | valid.f_iou 0.4454300105571747, valid.f_f-score 0.67963: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.30it/s]
epoch 18 | valid.f_iou 0.4454300105571747, valid.f_f-score 0.67963: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 18 | valid.f_iou 0.43939998745918274, valid.f_f-score 0.68813: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 18 | valid.f_iou 0.43939998745918274, valid.f_f-score 0.68813: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 18 | valid.f_iou 0.416159987449646, valid.f_f-score 0.67567: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 18 | valid.f_iou 0.416159987449646, valid.f_f-score 0.67567: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.56it/s]
epoch 18 | valid.f_iou 0.4212299883365631, valid.f_f-score 0.67976: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 18 | valid.f_iou 0.4212299883365631, valid.f_f-score 0.67976: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 18 | valid.f_iou 0.42149999737739563, valid.f_f-score 0.67104: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 18 | valid.f_iou 0.42149999737739563, valid.f_f-score 0.67104: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 18 | valid.f_iou 0.42149999737739563, valid.f_f-score 0.67104: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 18 | valid.f_iou 0.8038899898529053, valid.f_f-score 0.75909: 0%| | 0/16 [00:05, ?it/s]
epoch 18 | valid.f_iou 0.8038899898529053, valid.f_f-score 0.75909: 6%|█▉ | 1/16 [00:05<01:17, 5.16s/it]
epoch 18 | valid.f_iou 0.7703800201416016, valid.f_f-score 0.8333: 6%|██ | 1/16 [00:05<01:17, 5.16s/it]
epoch 18 | valid.f_iou 0.7703800201416016, valid.f_f-score 0.8333: 12%|████ | 2/16 [00:05<00:33, 2.39s/it]
epoch 18 | valid.f_iou 0.6324800252914429, valid.f_f-score 0.75858: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 18 | valid.f_iou 0.6324800252914429, valid.f_f-score 0.75858: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 18 | valid.f_iou 0.6274799704551697, valid.f_f-score 0.72506: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 18 | valid.f_iou 0.6274799704551697, valid.f_f-score 0.72506: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 18 | valid.f_iou 0.6299499869346619, valid.f_f-score 0.73998: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 18 | valid.f_iou 0.6299499869346619, valid.f_f-score 0.73998: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 18 | valid.f_iou 0.5977200269699097, valid.f_f-score 0.719: 31%|██████████▎ | 5/16 [00:07<00:09, 1.15it/s]
epoch 18 | valid.f_iou 0.5977200269699097, valid.f_f-score 0.719: 38%|████████████▍ | 6/16 [00:07<00:07, 1.42it/s]
epoch 18 | valid.f_iou 0.588670015335083, valid.f_f-score 0.71687: 38%|████████████ | 6/16 [00:07<00:07, 1.42it/s]
epoch 18 | valid.f_iou 0.588670015335083, valid.f_f-score 0.71687: 44%|██████████████ | 7/16 [00:07<00:05, 1.63it/s]
epoch 18 | valid.f_iou 0.570169985294342, valid.f_f-score 0.70121: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 18 | valid.f_iou 0.570169985294342, valid.f_f-score 0.70121: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 18 | valid.f_iou 0.5898100137710571, valid.f_f-score 0.72289: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 18 | valid.f_iou 0.5898100137710571, valid.f_f-score 0.72289: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 18 | valid.f_iou 0.6063299775123596, valid.f_f-score 0.74067: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 18 | valid.f_iou 0.6063299775123596, valid.f_f-score 0.74067: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 18 | valid.f_iou 0.6067699790000916, valid.f_f-score 0.73346: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 18 | valid.f_iou 0.6067699790000916, valid.f_f-score 0.73346: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 18 | valid.f_iou 0.6260799765586853, valid.f_f-score 0.74899: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 18 | valid.f_iou 0.6260799765586853, valid.f_f-score 0.74899: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.24it/s]
epoch 18 | valid.f_iou 0.639930009841919, valid.f_f-score 0.76137: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.24it/s]
epoch 18 | valid.f_iou 0.639930009841919, valid.f_f-score 0.76137: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.27it/s]
epoch 18 | valid.f_iou 0.6360099911689758, valid.f_f-score 0.75631: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.27it/s]
epoch 18 | valid.f_iou 0.6360099911689758, valid.f_f-score 0.75631: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.30it/s]
epoch 18 | valid.f_iou 0.6360399723052979, valid.f_f-score 0.75716: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.30it/s]
epoch 18 | valid.f_iou 0.6360399723052979, valid.f_f-score 0.75716: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.31it/s]
epoch 18 | valid.f_iou 0.6386799812316895, valid.f_f-score 0.75624: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.31it/s]
epoch 18 | valid.f_iou 0.6386799812316895, valid.f_f-score 0.75624: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.41it/s]
epoch 18 | valid.f_iou 0.6386799812316895, valid.f_f-score 0.75624: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 18 | valid.f_iou 0.8038899898529053, valid.f_f-score 0.75909: 0%| | 0/16 [00:05, ?it/s]
epoch 18 | valid.f_iou 0.8038899898529053, valid.f_f-score 0.75909: 6%|█▉ | 1/16 [00:05<01:15, 5.05s/it]
epoch 18 | valid.f_iou 0.7078800201416016, valid.f_f-score 0.7754: 6%|██ | 1/16 [00:05<01:15, 5.05s/it]
epoch 18 | valid.f_iou 0.7078800201416016, valid.f_f-score 0.7754: 12%|████ | 2/16 [00:05<00:32, 2.35s/it]
epoch 18 | valid.f_iou 0.5908100008964539, valid.f_f-score 0.71998: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 18 | valid.f_iou 0.5908100008964539, valid.f_f-score 0.71998: 19%|█████▊ | 3/16 [00:05<00:19, 1.49s/it]
epoch 18 | valid.f_iou 0.5912700295448303, valid.f_f-score 0.67264: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 18 | valid.f_iou 0.5912700295448303, valid.f_f-score 0.67264: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 18 | valid.f_iou 0.608210027217865, valid.f_f-score 0.69804: 25%|████████ | 4/16 [00:06<00:12, 1.08s/it]
epoch 18 | valid.f_iou 0.608210027217865, valid.f_f-score 0.69804: 31%|██████████ | 5/16 [00:06<00:09, 1.18it/s]
epoch 18 | valid.f_iou 0.5807600021362305, valid.f_f-score 0.68405: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 18 | valid.f_iou 0.5807600021362305, valid.f_f-score 0.68405: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 18 | valid.f_iou 0.5768899917602539, valid.f_f-score 0.68692: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 18 | valid.f_iou 0.5768899917602539, valid.f_f-score 0.68692: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.57it/s]
epoch 18 | valid.f_iou 0.5598700046539307, valid.f_f-score 0.675: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.57it/s]
epoch 18 | valid.f_iou 0.5598700046539307, valid.f_f-score 0.675: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 18 | valid.f_iou 0.584659993648529, valid.f_f-score 0.69959: 50%|████████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 18 | valid.f_iou 0.584659993648529, valid.f_f-score 0.69959: 56%|██████████████████ | 9/16 [00:08<00:03, 1.88it/s]
epoch 18 | valid.f_iou 0.5992000102996826, valid.f_f-score 0.71663: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 18 | valid.f_iou 0.5992000102996826, valid.f_f-score 0.71663: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 18 | valid.f_iou 0.5735399723052979, valid.f_f-score 0.68811: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 18 | valid.f_iou 0.5735399723052979, valid.f_f-score 0.68811: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.16it/s]
epoch 18 | valid.f_iou 0.5956199765205383, valid.f_f-score 0.70742: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.16it/s]
epoch 18 | valid.f_iou 0.5956199765205383, valid.f_f-score 0.70742: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.30it/s]
epoch 18 | valid.f_iou 0.611810028553009, valid.f_f-score 0.723: 75%|████████████████████████▊ | 12/16 [00:10<00:01, 2.30it/s]
epoch 18 | valid.f_iou 0.611810028553009, valid.f_f-score 0.723: 81%|██████████████████████████▊ | 13/16 [00:10<00:01, 2.42it/s]
epoch 18 | valid.f_iou 0.6098899841308594, valid.f_f-score 0.72068: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 18 | valid.f_iou 0.6098899841308594, valid.f_f-score 0.72068: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.51it/s]
epoch 18 | valid.f_iou 0.6116600036621094, valid.f_f-score 0.72391: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.51it/s]
epoch 18 | valid.f_iou 0.6116600036621094, valid.f_f-score 0.72391: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 18 | valid.f_iou 0.6151000261306763, valid.f_f-score 0.72316: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 18 | valid.f_iou 0.6151000261306763, valid.f_f-score 0.72316: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 18 | valid.f_iou 0.6151000261306763, valid.f_f-score 0.72316: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 19 | loss 0.9738551378250122, f_iou 0.2440670281648636: 0%| | 0/74 [00:06, ?it/s]
epoch 19 | loss 0.9738551378250122, f_iou 0.2440670281648636: 1%|▌ | 1/74 [00:06<07:36, 6.25s/it]
epoch 19 | loss 2.0745584964752197, f_iou 0.5218366384506226: 1%|▌ | 1/74 [00:07<07:36, 6.25s/it]
epoch 19 | loss 2.0745584964752197, f_iou 0.5218366384506226: 3%|█ | 2/74 [00:07<03:40, 3.06s/it]
epoch 19 | loss 1.2665749788284302, f_iou 0.34956395626068115: 3%|▉ | 2/74 [00:07<03:40, 3.06s/it]
epoch 19 | loss 1.2665749788284302, f_iou 0.34956395626068115: 4%|█▍ | 3/74 [00:07<02:24, 2.04s/it]
epoch 19 | loss 3.3114876747131348, f_iou 0.2996237277984619: 4%|█▌ | 3/74 [00:08<02:24, 2.04s/it]
epoch 19 | loss 3.3114876747131348, f_iou 0.2996237277984619: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 19 | loss 3.7176601886749268, f_iou 0.30987322330474854: 5%|█▉ | 4/74 [00:09<01:49, 1.56s/it]
epoch 19 | loss 3.7176601886749268, f_iou 0.30987322330474854: 7%|██▍ | 5/74 [00:09<01:29, 1.29s/it]
epoch 19 | loss 6.387110710144043, f_iou 0.273159384727478: 7%|██▋ | 5/74 [00:10<01:29, 1.29s/it]
epoch 19 | loss 6.387110710144043, f_iou 0.273159384727478: 8%|███▏ | 6/74 [00:10<01:16, 1.12s/it]
epoch 19 | loss 1.460810899734497, f_iou 0.2341652810573578: 8%|███ | 6/74 [00:11<01:16, 1.12s/it]
epoch 19 | loss 1.460810899734497, f_iou 0.2341652810573578: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 19 | loss 1.2076985836029053, f_iou 0.31369727849960327: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 19 | loss 1.2076985836029053, f_iou 0.31369727849960327: 11%|███▉ | 8/74 [00:11<01:02, 1.06it/s]
epoch 19 | loss 4.781581401824951, f_iou 0.31895914673805237: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 19 | loss 4.781581401824951, f_iou 0.31895914673805237: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 19 | loss 3.1552317142486572, f_iou 0.33053526282310486: 12%|████▍ | 9/74 [00:13<00:57, 1.13it/s]
epoch 19 | loss 3.1552317142486572, f_iou 0.33053526282310486: 14%|████▋ | 10/74 [00:13<00:54, 1.18it/s]
epoch 19 | loss 0.8710770606994629, f_iou 0.36365175247192383: 14%|████▋ | 10/74 [00:14<00:54, 1.18it/s]
epoch 19 | loss 0.8710770606994629, f_iou 0.36365175247192383: 15%|█████▏ | 11/74 [00:14<00:52, 1.21it/s]
epoch 19 | loss 2.733443021774292, f_iou 0.37006255984306335: 15%|█████▎ | 11/74 [00:14<00:52, 1.21it/s]
epoch 19 | loss 2.733443021774292, f_iou 0.37006255984306335: 16%|█████▊ | 12/74 [00:14<00:50, 1.23it/s]
epoch 19 | loss 1.7546443939208984, f_iou 0.40826278924942017: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 19 | loss 1.7546443939208984, f_iou 0.40826278924942017: 18%|██████▏ | 13/74 [00:15<00:48, 1.25it/s]
epoch 19 | loss 5.408408164978027, f_iou 0.38340920209884644: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 19 | loss 5.408408164978027, f_iou 0.38340920209884644: 19%|██████▊ | 14/74 [00:16<00:47, 1.27it/s]
epoch 19 | loss 4.220584392547607, f_iou 0.37563708424568176: 19%|██████▊ | 14/74 [00:17<00:47, 1.27it/s]
epoch 19 | loss 4.220584392547607, f_iou 0.37563708424568176: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 19 | loss 4.6148295402526855, f_iou 0.37361329793930054: 20%|███████ | 15/74 [00:17<00:45, 1.30it/s]
epoch 19 | loss 4.6148295402526855, f_iou 0.37361329793930054: 22%|███████▌ | 16/74 [00:18<00:44, 1.31it/s]
epoch 19 | loss 7.689980983734131, f_iou 0.3544926941394806: 22%|████████ | 16/74 [00:18<00:44, 1.31it/s]
epoch 19 | loss 7.689980983734131, f_iou 0.3544926941394806: 23%|████████▌ | 17/74 [00:18<00:44, 1.29it/s]
epoch 19 | loss 1.6431217193603516, f_iou 0.3832193911075592: 23%|████████▎ | 17/74 [00:19<00:44, 1.29it/s]
epoch 19 | loss 1.6431217193603516, f_iou 0.3832193911075592: 24%|████████▊ | 18/74 [00:19<00:43, 1.28it/s]
epoch 19 | loss 2.406670093536377, f_iou 0.3885742425918579: 24%|█████████ | 18/74 [00:20<00:43, 1.28it/s]
epoch 19 | loss 2.406670093536377, f_iou 0.3885742425918579: 26%|█████████▌ | 19/74 [00:20<00:42, 1.29it/s]
epoch 19 | loss 4.418818473815918, f_iou 0.3874036967754364: 26%|█████████▌ | 19/74 [00:21<00:42, 1.29it/s]
epoch 19 | loss 4.418818473815918, f_iou 0.3874036967754364: 27%|██████████ | 20/74 [00:21<00:41, 1.31it/s]
epoch 19 | loss 2.1926913261413574, f_iou 0.3996531665325165: 27%|█████████▋ | 20/74 [00:21<00:41, 1.31it/s]
epoch 19 | loss 2.1926913261413574, f_iou 0.3996531665325165: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 19 | loss 9.812417984008789, f_iou 0.42272821068763733: 28%|██████████▏ | 21/74 [00:22<00:40, 1.32it/s]
epoch 19 | loss 9.812417984008789, f_iou 0.42272821068763733: 30%|██████████▋ | 22/74 [00:22<00:39, 1.32it/s]
epoch 19 | loss 1.8220906257629395, f_iou 0.42719295620918274: 30%|██████████▍ | 22/74 [00:23<00:39, 1.32it/s]
epoch 19 | loss 1.8220906257629395, f_iou 0.42719295620918274: 31%|██████████▉ | 23/74 [00:23<00:39, 1.30it/s]
epoch 19 | loss 2.63911771774292, f_iou 0.4376049041748047: 31%|███████████▊ | 23/74 [00:24<00:39, 1.30it/s]
epoch 19 | loss 2.63911771774292, f_iou 0.4376049041748047: 32%|████████████▎ | 24/74 [00:24<00:38, 1.29it/s]
epoch 19 | loss 6.14555549621582, f_iou 0.4251890182495117: 32%|████████████▎ | 24/74 [00:24<00:38, 1.29it/s]
epoch 19 | loss 6.14555549621582, f_iou 0.4251890182495117: 34%|████████████▊ | 25/74 [00:24<00:38, 1.28it/s]
epoch 19 | loss 2.2319984436035156, f_iou 0.42429664731025696: 34%|███████████▊ | 25/74 [00:25<00:38, 1.28it/s]
epoch 19 | loss 2.2319984436035156, f_iou 0.42429664731025696: 35%|████████████▎ | 26/74 [00:25<00:37, 1.27it/s]
epoch 19 | loss 0.9985146522521973, f_iou 0.408588171005249: 35%|█████████████ | 26/74 [00:26<00:37, 1.27it/s]
epoch 19 | loss 0.9985146522521973, f_iou 0.408588171005249: 36%|█████████████▌ | 27/74 [00:26<00:36, 1.28it/s]
epoch 19 | loss 1.6499240398406982, f_iou 0.4242367148399353: 36%|█████████████▏ | 27/74 [00:27<00:36, 1.28it/s]
epoch 19 | loss 1.6499240398406982, f_iou 0.4242367148399353: 38%|█████████████▌ | 28/74 [00:27<00:38, 1.19it/s]
epoch 19 | loss 8.218942642211914, f_iou 0.41611945629119873: 38%|█████████████▌ | 28/74 [00:28<00:38, 1.19it/s]
epoch 19 | loss 8.218942642211914, f_iou 0.41611945629119873: 39%|██████████████ | 29/74 [00:28<00:36, 1.22it/s]
epoch 19 | loss 4.420895576477051, f_iou 0.4172021150588989: 39%|██████████████▌ | 29/74 [00:29<00:36, 1.22it/s]
epoch 19 | loss 4.420895576477051, f_iou 0.4172021150588989: 41%|███████████████ | 30/74 [00:29<00:35, 1.24it/s]
epoch 19 | loss 1.2363914251327515, f_iou 0.4176928699016571: 41%|██████████████▌ | 30/74 [00:29<00:35, 1.24it/s]
epoch 19 | loss 1.2363914251327515, f_iou 0.4176928699016571: 42%|███████████████ | 31/74 [00:29<00:34, 1.26it/s]
epoch 19 | loss 1.7661991119384766, f_iou 0.431138813495636: 42%|███████████████▌ | 31/74 [00:30<00:34, 1.26it/s]
epoch 19 | loss 1.7661991119384766, f_iou 0.431138813495636: 43%|████████████████ | 32/74 [00:30<00:32, 1.29it/s]
epoch 19 | loss 3.462106227874756, f_iou 0.4324636161327362: 43%|████████████████ | 32/74 [00:31<00:32, 1.29it/s]
epoch 19 | loss 3.462106227874756, f_iou 0.4324636161327362: 45%|████████████████▌ | 33/74 [00:31<00:31, 1.31it/s]
epoch 19 | loss 2.6692748069763184, f_iou 0.43890348076820374: 45%|███████████████▌ | 33/74 [00:32<00:31, 1.31it/s]
epoch 19 | loss 2.6692748069763184, f_iou 0.43890348076820374: 46%|████████████████ | 34/74 [00:32<00:30, 1.33it/s]
epoch 19 | loss 1.498924732208252, f_iou 0.44766345620155334: 46%|████████████████▌ | 34/74 [00:32<00:30, 1.33it/s]
epoch 19 | loss 1.498924732208252, f_iou 0.44766345620155334: 47%|█████████████████ | 35/74 [00:32<00:29, 1.34it/s]
epoch 19 | loss 1.6374521255493164, f_iou 0.4567280411720276: 47%|█████████████████ | 35/74 [00:33<00:29, 1.34it/s]
epoch 19 | loss 1.6374521255493164, f_iou 0.4567280411720276: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.34it/s]
epoch 19 | loss 1.8343042135238647, f_iou 0.4596055746078491: 49%|█████████████████▌ | 36/74 [00:34<00:28, 1.34it/s]
epoch 19 | loss 1.8343042135238647, f_iou 0.4596055746078491: 50%|██████████████████ | 37/74 [00:34<00:28, 1.32it/s]
epoch 19 | loss 1.0319323539733887, f_iou 0.44764643907546997: 50%|█████████████████▌ | 37/74 [00:35<00:28, 1.32it/s]
epoch 19 | loss 1.0319323539733887, f_iou 0.44764643907546997: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.34it/s]
epoch 19 | loss 4.430551528930664, f_iou 0.44322067499160767: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.34it/s]
epoch 19 | loss 4.430551528930664, f_iou 0.44322067499160767: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.35it/s]
epoch 19 | loss 3.075768232345581, f_iou 0.4502483308315277: 53%|███████████████████▍ | 39/74 [00:36<00:25, 1.35it/s]
epoch 19 | loss 3.075768232345581, f_iou 0.4502483308315277: 54%|████████████████████ | 40/74 [00:36<00:25, 1.35it/s]
epoch 19 | loss 1.1818344593048096, f_iou 0.45793309807777405: 54%|██████████████████▉ | 40/74 [00:37<00:25, 1.35it/s]
epoch 19 | loss 1.1818344593048096, f_iou 0.45793309807777405: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.32it/s]
epoch 19 | loss 5.293039798736572, f_iou 0.4544934332370758: 55%|████████████████████▌ | 41/74 [00:38<00:24, 1.32it/s]
epoch 19 | loss 5.293039798736572, f_iou 0.4544934332370758: 57%|█████████████████████ | 42/74 [00:38<00:24, 1.31it/s]
epoch 19 | loss 1.4401473999023438, f_iou 0.46017691493034363: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.31it/s]
epoch 19 | loss 1.4401473999023438, f_iou 0.46017691493034363: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.32it/s]
epoch 19 | loss 1.5798479318618774, f_iou 0.45686668157577515: 58%|████████████████████▎ | 43/74 [00:39<00:23, 1.32it/s]
epoch 19 | loss 1.5798479318618774, f_iou 0.45686668157577515: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.34it/s]
epoch 19 | loss 4.1348876953125, f_iou 0.44694939255714417: 59%|██████████████████████▌ | 44/74 [00:40<00:22, 1.34it/s]
epoch 19 | loss 4.1348876953125, f_iou 0.44694939255714417: 61%|███████████████████████ | 45/74 [00:40<00:21, 1.35it/s]
epoch 19 | loss 1.0272471904754639, f_iou 0.4556686282157898: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.35it/s]
epoch 19 | loss 1.0272471904754639, f_iou 0.4556686282157898: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 19 | loss 1.0749495029449463, f_iou 0.4656432271003723: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.36it/s]
epoch 19 | loss 1.0749495029449463, f_iou 0.4656432271003723: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 19 | loss 2.7497494220733643, f_iou 0.4664485454559326: 64%|██████████████████████▊ | 47/74 [00:42<00:19, 1.37it/s]
epoch 19 | loss 2.7497494220733643, f_iou 0.4664485454559326: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.38it/s]
epoch 19 | loss 2.2023072242736816, f_iou 0.4639216661453247: 65%|███████████████████████▎ | 48/74 [00:43<00:18, 1.38it/s]
epoch 19 | loss 2.2023072242736816, f_iou 0.4639216661453247: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.38it/s]
epoch 19 | loss 2.648660659790039, f_iou 0.46176695823669434: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.38it/s]
epoch 19 | loss 2.648660659790039, f_iou 0.46176695823669434: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 19 | loss 2.9811391830444336, f_iou 0.4527846574783325: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.39it/s]
epoch 19 | loss 2.9811391830444336, f_iou 0.4527846574783325: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 19 | loss 2.4070348739624023, f_iou 0.44817665219306946: 69%|████████████████████████ | 51/74 [00:45<00:16, 1.39it/s]
epoch 19 | loss 2.4070348739624023, f_iou 0.44817665219306946: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.39it/s]
epoch 19 | loss 3.172287940979004, f_iou 0.4485873878002167: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.39it/s]
epoch 19 | loss 3.172287940979004, f_iou 0.4485873878002167: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.39it/s]
epoch 19 | loss 2.3333606719970703, f_iou 0.4548732340335846: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.39it/s]
epoch 19 | loss 2.3333606719970703, f_iou 0.4548732340335846: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 19 | loss 2.99960994720459, f_iou 0.4599495530128479: 73%|███████████████████████████▋ | 54/74 [00:47<00:14, 1.39it/s]
epoch 19 | loss 2.99960994720459, f_iou 0.4599495530128479: 74%|████████████████████████████▏ | 55/74 [00:47<00:13, 1.39it/s]
epoch 19 | loss 10.012181282043457, f_iou 0.4562150239944458: 74%|██████████████████████████▊ | 55/74 [00:48<00:13, 1.39it/s]
epoch 19 | loss 10.012181282043457, f_iou 0.4562150239944458: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 19 | loss 4.532331466674805, f_iou 0.45607417821884155: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 19 | loss 4.532331466674805, f_iou 0.45607417821884155: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 19 | loss 3.409478187561035, f_iou 0.4545139968395233: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.39it/s]
epoch 19 | loss 3.409478187561035, f_iou 0.4545139968395233: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.39it/s]
epoch 19 | loss 1.2737534046173096, f_iou 0.4617072641849518: 78%|████████████████████████████▏ | 58/74 [00:50<00:11, 1.39it/s]
epoch 19 | loss 1.2737534046173096, f_iou 0.4617072641849518: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 19 | loss 3.3954243659973145, f_iou 0.4602345824241638: 80%|████████████████████████████▋ | 59/74 [00:51<00:10, 1.39it/s]
epoch 19 | loss 3.3954243659973145, f_iou 0.4602345824241638: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.39it/s]
epoch 19 | loss 1.139665961265564, f_iou 0.4530003070831299: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.39it/s]
epoch 19 | loss 1.139665961265564, f_iou 0.4530003070831299: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.38it/s]
epoch 19 | loss 3.2144007682800293, f_iou 0.45627865195274353: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.38it/s]
epoch 19 | loss 3.2144007682800293, f_iou 0.45627865195274353: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.39it/s]
epoch 19 | loss 3.6692020893096924, f_iou 0.45784619450569153: 84%|█████████████████████████████▎ | 62/74 [00:53<00:08, 1.39it/s]
epoch 19 | loss 3.6692020893096924, f_iou 0.45784619450569153: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.39it/s]
epoch 19 | loss 1.8664995431900024, f_iou 0.4629102349281311: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 19 | loss 1.8664995431900024, f_iou 0.4629102349281311: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 19 | loss 4.61604118347168, f_iou 0.46233922243118286: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.39it/s]
epoch 19 | loss 4.61604118347168, f_iou 0.46233922243118286: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.35it/s]
epoch 19 | loss 2.808201313018799, f_iou 0.4678473174571991: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.35it/s]
epoch 19 | loss 2.808201313018799, f_iou 0.4678473174571991: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.33it/s]
epoch 19 | loss 4.249258995056152, f_iou 0.46323540806770325: 89%|████████████████████████████████ | 66/74 [00:56<00:06, 1.33it/s]
epoch 19 | loss 4.249258995056152, f_iou 0.46323540806770325: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.31it/s]
epoch 19 | loss 4.099627494812012, f_iou 0.4592677056789398: 91%|█████████████████████████████████▌ | 67/74 [00:57<00:05, 1.31it/s]
epoch 19 | loss 4.099627494812012, f_iou 0.4592677056789398: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.31it/s]
epoch 19 | loss 2.688943386077881, f_iou 0.45940661430358887: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.31it/s]
epoch 19 | loss 2.688943386077881, f_iou 0.45940661430358887: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.31it/s]
epoch 19 | loss 2.647409439086914, f_iou 0.4568573534488678: 93%|██████████████████████████████████▌ | 69/74 [00:58<00:03, 1.31it/s]
epoch 19 | loss 2.647409439086914, f_iou 0.4568573534488678: 95%|███████████████████████████████████ | 70/74 [00:58<00:03, 1.30it/s]
epoch 19 | loss 5.620157718658447, f_iou 0.4597233831882477: 95%|███████████████████████████████████ | 70/74 [00:59<00:03, 1.30it/s]
epoch 19 | loss 5.620157718658447, f_iou 0.4597233831882477: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.30it/s]
epoch 19 | loss 2.7103075981140137, f_iou 0.46171385049819946: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.30it/s]
epoch 19 | loss 2.7103075981140137, f_iou 0.46171385049819946: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.32it/s]
epoch 19 | loss 6.142275810241699, f_iou 0.458398699760437: 97%|████████████████████████████████████▉ | 72/74 [01:00<00:01, 1.32it/s]
epoch 19 | loss 6.142275810241699, f_iou 0.458398699760437: 99%|█████████████████████████████████████▍| 73/74 [01:00<00:00, 1.33it/s]
epoch 19 | loss 1.249238133430481, f_iou 0.46223780512809753: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.33it/s]
epoch 19 | loss 1.249238133430481, f_iou 0.46223780512809753: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.36it/s]
epoch 19 | loss 1.249238133430481, f_iou 0.46223780512809753: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 19 | valid.f_iou 0.6327199935913086, valid.f_f-score 0.78828: 0%| | 0/16 [00:05, ?it/s]
epoch 19 | valid.f_iou 0.6327199935913086, valid.f_f-score 0.78828: 6%|█▉ | 1/16 [00:05<01:24, 5.63s/it]
epoch 19 | valid.f_iou 0.49465999007225037, valid.f_f-score 0.7301: 6%|█▉ | 1/16 [00:06<01:24, 5.63s/it]
epoch 19 | valid.f_iou 0.49465999007225037, valid.f_f-score 0.7301: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 19 | valid.f_iou 0.3709700107574463, valid.f_f-score 0.69482: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 19 | valid.f_iou 0.3709700107574463, valid.f_f-score 0.69482: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 19 | valid.f_iou 0.430620014667511, valid.f_f-score 0.7144: 19%|██████▏ | 3/16 [00:07<00:21, 1.62s/it]
epoch 19 | valid.f_iou 0.430620014667511, valid.f_f-score 0.7144: 25%|████████▎ | 4/16 [00:07<00:13, 1.16s/it]
epoch 19 | valid.f_iou 0.420740008354187, valid.f_f-score 0.71917: 25%|████████ | 4/16 [00:07<00:13, 1.16s/it]
epoch 19 | valid.f_iou 0.420740008354187, valid.f_f-score 0.71917: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 19 | valid.f_iou 0.4024200141429901, valid.f_f-score 0.69421: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 19 | valid.f_iou 0.4024200141429901, valid.f_f-score 0.69421: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 19 | valid.f_iou 0.41054999828338623, valid.f_f-score 0.70888: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 19 | valid.f_iou 0.41054999828338623, valid.f_f-score 0.70888: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 19 | valid.f_iou 0.38964998722076416, valid.f_f-score 0.69169: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 19 | valid.f_iou 0.38964998722076416, valid.f_f-score 0.69169: 50%|███████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 19 | valid.f_iou 0.3986999988555908, valid.f_f-score 0.67786: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.81it/s]
epoch 19 | valid.f_iou 0.3986999988555908, valid.f_f-score 0.67786: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.05it/s]
epoch 19 | valid.f_iou 0.3921799957752228, valid.f_f-score 0.68512: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.05it/s]
epoch 19 | valid.f_iou 0.3921799957752228, valid.f_f-score 0.68512: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.23it/s]
epoch 19 | valid.f_iou 0.3907099962234497, valid.f_f-score 0.67296: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.23it/s]
epoch 19 | valid.f_iou 0.3907099962234497, valid.f_f-score 0.67296: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 19 | valid.f_iou 0.3962399959564209, valid.f_f-score 0.69261: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.35it/s]
epoch 19 | valid.f_iou 0.3962399959564209, valid.f_f-score 0.69261: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.46it/s]
epoch 19 | valid.f_iou 0.4105699956417084, valid.f_f-score 0.71111: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.46it/s]
epoch 19 | valid.f_iou 0.4105699956417084, valid.f_f-score 0.71111: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 19 | valid.f_iou 0.39667001366615295, valid.f_f-score 0.69058: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.54it/s]
epoch 19 | valid.f_iou 0.39667001366615295, valid.f_f-score 0.69058: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.60it/s]
epoch 19 | valid.f_iou 0.40786001086235046, valid.f_f-score 0.69084: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.60it/s]
epoch 19 | valid.f_iou 0.40786001086235046, valid.f_f-score 0.69084: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 19 | valid.f_iou 0.4191800057888031, valid.f_f-score 0.6899: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.63it/s]
epoch 19 | valid.f_iou 0.4191800057888031, valid.f_f-score 0.6899: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 19 | valid.f_iou 0.4191800057888031, valid.f_f-score 0.6899: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 19 | valid.f_iou 0.7493600249290466, valid.f_f-score 0.73395: 0%| | 0/16 [00:04, ?it/s]
epoch 19 | valid.f_iou 0.7493600249290466, valid.f_f-score 0.73395: 6%|█▉ | 1/16 [00:04<01:14, 4.97s/it]
epoch 19 | valid.f_iou 0.7535300254821777, valid.f_f-score 0.79945: 6%|█▉ | 1/16 [00:05<01:14, 4.97s/it]
epoch 19 | valid.f_iou 0.7535300254821777, valid.f_f-score 0.79945: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 19 | valid.f_iou 0.5892199873924255, valid.f_f-score 0.74108: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 19 | valid.f_iou 0.5892199873924255, valid.f_f-score 0.74108: 19%|█████▊ | 3/16 [00:05<00:19, 1.46s/it]
epoch 19 | valid.f_iou 0.5999400019645691, valid.f_f-score 0.72606: 19%|█████▊ | 3/16 [00:06<00:19, 1.46s/it]
epoch 19 | valid.f_iou 0.5999400019645691, valid.f_f-score 0.72606: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 19 | valid.f_iou 0.5995399951934814, valid.f_f-score 0.73178: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 19 | valid.f_iou 0.5995399951934814, valid.f_f-score 0.73178: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 19 | valid.f_iou 0.559689998626709, valid.f_f-score 0.69977: 31%|██████████ | 5/16 [00:07<00:09, 1.20it/s]
epoch 19 | valid.f_iou 0.559689998626709, valid.f_f-score 0.69977: 38%|████████████ | 6/16 [00:07<00:06, 1.43it/s]
epoch 19 | valid.f_iou 0.5698300004005432, valid.f_f-score 0.71108: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 19 | valid.f_iou 0.5698300004005432, valid.f_f-score 0.71108: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 19 | valid.f_iou 0.5506899952888489, valid.f_f-score 0.69677: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.65it/s]
epoch 19 | valid.f_iou 0.5506899952888489, valid.f_f-score 0.69677: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 19 | valid.f_iou 0.5623199939727783, valid.f_f-score 0.69136: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 19 | valid.f_iou 0.5623199939727783, valid.f_f-score 0.69136: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 19 | valid.f_iou 0.571370005607605, valid.f_f-score 0.71219: 56%|██████████████████ | 9/16 [00:08<00:03, 1.95it/s]
epoch 19 | valid.f_iou 0.571370005607605, valid.f_f-score 0.71219: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.12it/s]
epoch 19 | valid.f_iou 0.5716099739074707, valid.f_f-score 0.70587: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 19 | valid.f_iou 0.5716099739074707, valid.f_f-score 0.70587: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 19 | valid.f_iou 0.590179979801178, valid.f_f-score 0.72344: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.29it/s]
epoch 19 | valid.f_iou 0.590179979801178, valid.f_f-score 0.72344: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.41it/s]
epoch 19 | valid.f_iou 0.611240029335022, valid.f_f-score 0.73918: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.41it/s]
epoch 19 | valid.f_iou 0.611240029335022, valid.f_f-score 0.73918: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.50it/s]
epoch 19 | valid.f_iou 0.6032000184059143, valid.f_f-score 0.7319: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 19 | valid.f_iou 0.6032000184059143, valid.f_f-score 0.7319: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.57it/s]
epoch 19 | valid.f_iou 0.59375, valid.f_f-score 0.72173: 88%|███████████████████████████████████▉ | 14/16 [00:10<00:00, 2.57it/s]
epoch 19 | valid.f_iou 0.59375, valid.f_f-score 0.72173: 94%|██████████████████████████████████████▍ | 15/16 [00:10<00:00, 2.62it/s]
epoch 19 | valid.f_iou 0.5992000102996826, valid.f_f-score 0.72213: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 19 | valid.f_iou 0.5992000102996826, valid.f_f-score 0.72213: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 19 | valid.f_iou 0.5992000102996826, valid.f_f-score 0.72213: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 19 | valid.f_iou 0.7493600249290466, valid.f_f-score 0.73395: 0%| | 0/16 [00:04, ?it/s]
epoch 19 | valid.f_iou 0.7493600249290466, valid.f_f-score 0.73395: 6%|█▉ | 1/16 [00:04<01:07, 4.49s/it]
epoch 19 | valid.f_iou 0.7535300254821777, valid.f_f-score 0.79945: 6%|█▉ | 1/16 [00:04<01:07, 4.49s/it]
epoch 19 | valid.f_iou 0.7535300254821777, valid.f_f-score 0.79945: 12%|███▉ | 2/16 [00:04<00:29, 2.11s/it]
epoch 19 | valid.f_iou 0.5892199873924255, valid.f_f-score 0.74108: 12%|███▉ | 2/16 [00:05<00:29, 2.11s/it]
epoch 19 | valid.f_iou 0.5892199873924255, valid.f_f-score 0.74108: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 19 | valid.f_iou 0.6013200283050537, valid.f_f-score 0.71552: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 19 | valid.f_iou 0.6013200283050537, valid.f_f-score 0.71552: 25%|███████▊ | 4/16 [00:05<00:11, 1.01it/s]
epoch 19 | valid.f_iou 0.6006500124931335, valid.f_f-score 0.72335: 25%|███████▊ | 4/16 [00:06<00:11, 1.01it/s]
epoch 19 | valid.f_iou 0.6006500124931335, valid.f_f-score 0.72335: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 19 | valid.f_iou 0.5618100166320801, valid.f_f-score 0.69274: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 19 | valid.f_iou 0.5618100166320801, valid.f_f-score 0.69274: 38%|███████████▋ | 6/16 [00:06<00:06, 1.50it/s]
epoch 19 | valid.f_iou 0.5727400183677673, valid.f_f-score 0.70506: 38%|███████████▋ | 6/16 [00:07<00:06, 1.50it/s]
epoch 19 | valid.f_iou 0.5727400183677673, valid.f_f-score 0.70506: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 19 | valid.f_iou 0.5532299876213074, valid.f_f-score 0.6915: 44%|██████████████ | 7/16 [00:07<00:05, 1.69it/s]
epoch 19 | valid.f_iou 0.5532299876213074, valid.f_f-score 0.6915: 50%|████████████████ | 8/16 [00:07<00:04, 1.86it/s]
epoch 19 | valid.f_iou 0.5666900277137756, valid.f_f-score 0.68668: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.86it/s]
epoch 19 | valid.f_iou 0.5666900277137756, valid.f_f-score 0.68668: 56%|█████████████████▍ | 9/16 [00:07<00:03, 1.99it/s]
epoch 19 | valid.f_iou 0.5729299783706665, valid.f_f-score 0.70456: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 19 | valid.f_iou 0.5729299783706665, valid.f_f-score 0.70456: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 19 | valid.f_iou 0.568809986114502, valid.f_f-score 0.6957: 62%|████████████████████ | 10/16 [00:08<00:02, 2.17it/s]
epoch 19 | valid.f_iou 0.568809986114502, valid.f_f-score 0.6957: 69%|██████████████████████ | 11/16 [00:08<00:02, 2.32it/s]
epoch 19 | valid.f_iou 0.5876200199127197, valid.f_f-score 0.71411: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 19 | valid.f_iou 0.5876200199127197, valid.f_f-score 0.71411: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 19 | valid.f_iou 0.6055399775505066, valid.f_f-score 0.72816: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 19 | valid.f_iou 0.6055399775505066, valid.f_f-score 0.72816: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.51it/s]
epoch 19 | valid.f_iou 0.591509997844696, valid.f_f-score 0.71564: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.51it/s]
epoch 19 | valid.f_iou 0.591509997844696, valid.f_f-score 0.71564: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.58it/s]
epoch 19 | valid.f_iou 0.5828400254249573, valid.f_f-score 0.70656: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 19 | valid.f_iou 0.5828400254249573, valid.f_f-score 0.70656: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 19 | valid.f_iou 0.5867900252342224, valid.f_f-score 0.70528: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 19 | valid.f_iou 0.5867900252342224, valid.f_f-score 0.70528: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 19 | valid.f_iou 0.5867900252342224, valid.f_f-score 0.70528: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 20 | loss 2.5621564388275146, f_iou 0.6871164441108704: 0%| | 0/74 [00:06, ?it/s]
epoch 20 | loss 2.5621564388275146, f_iou 0.6871164441108704: 1%|▌ | 1/74 [00:06<07:52, 6.47s/it]
epoch 20 | loss 4.870392799377441, f_iou 0.3625437319278717: 1%|▌ | 1/74 [00:07<07:52, 6.47s/it]
epoch 20 | loss 4.870392799377441, f_iou 0.3625437319278717: 3%|█ | 2/74 [00:07<03:47, 3.16s/it]
epoch 20 | loss 2.545292854309082, f_iou 0.43339285254478455: 3%|█ | 2/74 [00:08<03:47, 3.16s/it]
epoch 20 | loss 2.545292854309082, f_iou 0.43339285254478455: 4%|█▌ | 3/74 [00:08<02:29, 2.11s/it]
epoch 20 | loss 3.4254262447357178, f_iou 0.4383847117424011: 4%|█▌ | 3/74 [00:08<02:29, 2.11s/it]
epoch 20 | loss 3.4254262447357178, f_iou 0.4383847117424011: 5%|██ | 4/74 [00:08<01:50, 1.59s/it]
epoch 20 | loss 2.171862840652466, f_iou 0.4843764007091522: 5%|██ | 4/74 [00:09<01:50, 1.59s/it]
epoch 20 | loss 2.171862840652466, f_iou 0.4843764007091522: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 20 | loss 3.1464571952819824, f_iou 0.4942244291305542: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 20 | loss 3.1464571952819824, f_iou 0.4942244291305542: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 20 | loss 0.265625, f_iou 0.5540035963058472: 8%|███▊ | 6/74 [00:11<01:16, 1.13s/it]
epoch 20 | loss 0.265625, f_iou 0.5540035963058472: 9%|████▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 20 | loss 6.210513114929199, f_iou 0.501175582408905: 9%|███▋ | 7/74 [00:12<01:08, 1.02s/it]
epoch 20 | loss 6.210513114929199, f_iou 0.501175582408905: 11%|████▏ | 8/74 [00:12<01:02, 1.06it/s]
epoch 20 | loss 1.476002812385559, f_iou 0.5294569730758667: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 20 | loss 1.476002812385559, f_iou 0.5294569730758667: 12%|████▌ | 9/74 [00:12<00:58, 1.12it/s]
epoch 20 | loss 0.856220006942749, f_iou 0.47741371393203735: 12%|████▌ | 9/74 [00:13<00:58, 1.12it/s]
epoch 20 | loss 0.856220006942749, f_iou 0.47741371393203735: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 20 | loss 6.93109130859375, f_iou 0.44872215390205383: 14%|█████ | 10/74 [00:14<00:54, 1.18it/s]
epoch 20 | loss 6.93109130859375, f_iou 0.44872215390205383: 15%|█████▌ | 11/74 [00:14<00:51, 1.23it/s]
epoch 20 | loss 3.6611900329589844, f_iou 0.46912193298339844: 15%|█████▏ | 11/74 [00:15<00:51, 1.23it/s]
epoch 20 | loss 3.6611900329589844, f_iou 0.46912193298339844: 16%|█████▋ | 12/74 [00:15<00:48, 1.28it/s]
epoch 20 | loss 1.7045013904571533, f_iou 0.4988865554332733: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 20 | loss 1.7045013904571533, f_iou 0.4988865554332733: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 20 | loss 0.7920396327972412, f_iou 0.46325182914733887: 18%|██████▏ | 13/74 [00:16<00:46, 1.31it/s]
epoch 20 | loss 0.7920396327972412, f_iou 0.46325182914733887: 19%|██████▌ | 14/74 [00:16<00:45, 1.33it/s]
epoch 20 | loss 2.995569944381714, f_iou 0.46184661984443665: 19%|██████▊ | 14/74 [00:17<00:45, 1.33it/s]
epoch 20 | loss 2.995569944381714, f_iou 0.46184661984443665: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 20 | loss 1.188059687614441, f_iou 0.4807293117046356: 20%|███████▌ | 15/74 [00:18<00:45, 1.30it/s]
epoch 20 | loss 1.188059687614441, f_iou 0.4807293117046356: 22%|████████ | 16/74 [00:18<00:44, 1.29it/s]
epoch 20 | loss 5.735994338989258, f_iou 0.47630271315574646: 22%|███████▊ | 16/74 [00:18<00:44, 1.29it/s]
epoch 20 | loss 5.735994338989258, f_iou 0.47630271315574646: 23%|████████▎ | 17/74 [00:18<00:44, 1.28it/s]
epoch 20 | loss 1.3165152072906494, f_iou 0.45578351616859436: 23%|████████ | 17/74 [00:19<00:44, 1.28it/s]
epoch 20 | loss 1.3165152072906494, f_iou 0.45578351616859436: 24%|████████▌ | 18/74 [00:19<00:43, 1.28it/s]
epoch 20 | loss 2.1682777404785156, f_iou 0.44680255651474: 24%|█████████▏ | 18/74 [00:20<00:43, 1.28it/s]
epoch 20 | loss 2.1682777404785156, f_iou 0.44680255651474: 26%|█████████▊ | 19/74 [00:20<00:43, 1.28it/s]
epoch 20 | loss 0.5078125, f_iou 0.4713342785835266: 26%|███████████▌ | 19/74 [00:21<00:43, 1.28it/s]
epoch 20 | loss 0.5078125, f_iou 0.4713342785835266: 27%|████████████▏ | 20/74 [00:21<00:42, 1.28it/s]
epoch 20 | loss 1.2906259298324585, f_iou 0.4852985739707947: 27%|█████████▋ | 20/74 [00:22<00:42, 1.28it/s]
epoch 20 | loss 1.2906259298324585, f_iou 0.4852985739707947: 28%|██████████▏ | 21/74 [00:22<00:41, 1.29it/s]
epoch 20 | loss 1.7607386112213135, f_iou 0.5002729892730713: 28%|██████████▏ | 21/74 [00:22<00:41, 1.29it/s]
epoch 20 | loss 1.7607386112213135, f_iou 0.5002729892730713: 30%|██████████▋ | 22/74 [00:22<00:39, 1.32it/s]
epoch 20 | loss 4.928709983825684, f_iou 0.510499119758606: 30%|███████████▎ | 22/74 [00:23<00:39, 1.32it/s]
epoch 20 | loss 4.928709983825684, f_iou 0.510499119758606: 31%|███████████▊ | 23/74 [00:23<00:38, 1.33it/s]
epoch 20 | loss 4.5990142822265625, f_iou 0.5068573951721191: 31%|███████████▏ | 23/74 [00:24<00:38, 1.33it/s]
epoch 20 | loss 4.5990142822265625, f_iou 0.5068573951721191: 32%|███████████▋ | 24/74 [00:24<00:37, 1.33it/s]
epoch 20 | loss 1.4152097702026367, f_iou 0.5215050578117371: 32%|███████████▋ | 24/74 [00:25<00:37, 1.33it/s]
epoch 20 | loss 1.4152097702026367, f_iou 0.5215050578117371: 34%|████████████▏ | 25/74 [00:25<00:37, 1.32it/s]
epoch 20 | loss 2.00173020362854, f_iou 0.5121009349822998: 34%|████████████▊ | 25/74 [00:25<00:37, 1.32it/s]
epoch 20 | loss 2.00173020362854, f_iou 0.5121009349822998: 35%|█████████████▎ | 26/74 [00:25<00:36, 1.31it/s]
epoch 20 | loss 6.451873302459717, f_iou 0.49314597249031067: 35%|████████████▋ | 26/74 [00:26<00:36, 1.31it/s]
epoch 20 | loss 6.451873302459717, f_iou 0.49314597249031067: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.30it/s]
epoch 20 | loss 3.9609827995300293, f_iou 0.4969806671142578: 36%|█████████████▏ | 27/74 [00:27<00:36, 1.30it/s]
epoch 20 | loss 3.9609827995300293, f_iou 0.4969806671142578: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.30it/s]
epoch 20 | loss 5.3234453201293945, f_iou 0.49195536971092224: 38%|█████████████▏ | 28/74 [00:28<00:35, 1.30it/s]
epoch 20 | loss 5.3234453201293945, f_iou 0.49195536971092224: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.31it/s]
epoch 20 | loss 3.544483184814453, f_iou 0.4967632293701172: 39%|██████████████▌ | 29/74 [00:28<00:34, 1.31it/s]
epoch 20 | loss 3.544483184814453, f_iou 0.4967632293701172: 41%|███████████████ | 30/74 [00:28<00:33, 1.30it/s]
epoch 20 | loss 0.790497899055481, f_iou 0.5053178668022156: 41%|███████████████ | 30/74 [00:29<00:33, 1.30it/s]
epoch 20 | loss 0.790497899055481, f_iou 0.5053178668022156: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.32it/s]
epoch 20 | loss 2.044671058654785, f_iou 0.515356719493866: 42%|███████████████▉ | 31/74 [00:30<00:32, 1.32it/s]
epoch 20 | loss 2.044671058654785, f_iou 0.515356719493866: 43%|████████████████▍ | 32/74 [00:30<00:31, 1.34it/s]
epoch 20 | loss 7.714738845825195, f_iou 0.5277038216590881: 43%|████████████████ | 32/74 [00:31<00:31, 1.34it/s]
epoch 20 | loss 7.714738845825195, f_iou 0.5277038216590881: 45%|████████████████▌ | 33/74 [00:31<00:31, 1.32it/s]
epoch 20 | loss 5.242680549621582, f_iou 0.5299004316329956: 45%|████████████████▌ | 33/74 [00:31<00:31, 1.32it/s]
epoch 20 | loss 5.242680549621582, f_iou 0.5299004316329956: 46%|█████████████████ | 34/74 [00:31<00:29, 1.34it/s]
epoch 20 | loss 0.947147786617279, f_iou 0.5409752130508423: 46%|█████████████████ | 34/74 [00:32<00:29, 1.34it/s]
epoch 20 | loss 0.947147786617279, f_iou 0.5409752130508423: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.36it/s]
epoch 20 | loss 1.6566174030303955, f_iou 0.5274260640144348: 47%|█████████████████ | 35/74 [00:33<00:28, 1.36it/s]
epoch 20 | loss 1.6566174030303955, f_iou 0.5274260640144348: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 20 | loss 6.00817346572876, f_iou 0.5161344408988953: 49%|██████████████████▍ | 36/74 [00:33<00:27, 1.37it/s]
epoch 20 | loss 6.00817346572876, f_iou 0.5161344408988953: 50%|███████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 20 | loss 8.215609550476074, f_iou 0.522476077079773: 50%|███████████████████ | 37/74 [00:34<00:26, 1.37it/s]
epoch 20 | loss 8.215609550476074, f_iou 0.522476077079773: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.38it/s]
epoch 20 | loss 6.3576178550720215, f_iou 0.5212625861167908: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.38it/s]
epoch 20 | loss 6.3576178550720215, f_iou 0.5212625861167908: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 20 | loss 1.1760050058364868, f_iou 0.5184926390647888: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.38it/s]
epoch 20 | loss 1.1760050058364868, f_iou 0.5184926390647888: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 20 | loss 6.958899021148682, f_iou 0.5076230764389038: 54%|████████████████████ | 40/74 [00:36<00:24, 1.38it/s]
epoch 20 | loss 6.958899021148682, f_iou 0.5076230764389038: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.38it/s]
epoch 20 | loss 1.5061707496643066, f_iou 0.49570152163505554: 55%|███████████████████▍ | 41/74 [00:37<00:23, 1.38it/s]
epoch 20 | loss 1.5061707496643066, f_iou 0.49570152163505554: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.38it/s]
epoch 20 | loss 2.1813294887542725, f_iou 0.499254047870636: 57%|█████████████████████ | 42/74 [00:38<00:23, 1.38it/s]
epoch 20 | loss 2.1813294887542725, f_iou 0.499254047870636: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.38it/s]
epoch 20 | loss 1.1337963342666626, f_iou 0.4884864389896393: 58%|████████████████████▉ | 43/74 [00:39<00:22, 1.38it/s]
epoch 20 | loss 1.1337963342666626, f_iou 0.4884864389896393: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 20 | loss 1.5068265199661255, f_iou 0.4840380549430847: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 20 | loss 1.5068265199661255, f_iou 0.4840380549430847: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 20 | loss 1.610353946685791, f_iou 0.47591841220855713: 61%|█████████████████████▉ | 45/74 [00:40<00:20, 1.39it/s]
epoch 20 | loss 1.610353946685791, f_iou 0.47591841220855713: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 20 | loss 2.0661003589630127, f_iou 0.48013749718666077: 62%|█████████████████████▊ | 46/74 [00:41<00:20, 1.39it/s]
epoch 20 | loss 2.0661003589630127, f_iou 0.48013749718666077: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.39it/s]
epoch 20 | loss 2.9173643589019775, f_iou 0.4781019687652588: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 20 | loss 2.9173643589019775, f_iou 0.4781019687652588: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 20 | loss 3.5108771324157715, f_iou 0.4746743440628052: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.39it/s]
epoch 20 | loss 3.5108771324157715, f_iou 0.4746743440628052: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.40it/s]
epoch 20 | loss 2.452986240386963, f_iou 0.4652669131755829: 66%|████████████████████████▌ | 49/74 [00:43<00:17, 1.40it/s]
epoch 20 | loss 2.452986240386963, f_iou 0.4652669131755829: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.40it/s]
epoch 20 | loss 3.8582606315612793, f_iou 0.46604183316230774: 68%|███████████████████████▋ | 50/74 [00:44<00:17, 1.40it/s]
epoch 20 | loss 3.8582606315612793, f_iou 0.46604183316230774: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.40it/s]
epoch 20 | loss 2.531877040863037, f_iou 0.4716719388961792: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.40it/s]
epoch 20 | loss 2.531877040863037, f_iou 0.4716719388961792: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 20 | loss 1.5277957916259766, f_iou 0.47859659790992737: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.39it/s]
epoch 20 | loss 1.5277957916259766, f_iou 0.47859659790992737: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 20 | loss 4.804357051849365, f_iou 0.4723656177520752: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.38it/s]
epoch 20 | loss 4.804357051849365, f_iou 0.4723656177520752: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 20 | loss 3.1944167613983154, f_iou 0.4684455394744873: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.38it/s]
epoch 20 | loss 3.1944167613983154, f_iou 0.4684455394744873: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 20 | loss 2.7268738746643066, f_iou 0.4678407311439514: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.38it/s]
epoch 20 | loss 2.7268738746643066, f_iou 0.4678407311439514: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 20 | loss 3.9860663414001465, f_iou 0.46447259187698364: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.38it/s]
epoch 20 | loss 3.9860663414001465, f_iou 0.46447259187698364: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.38it/s]
epoch 20 | loss 2.581528902053833, f_iou 0.4631234109401703: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.38it/s]
epoch 20 | loss 2.581528902053833, f_iou 0.4631234109401703: 78%|█████████████████████████████ | 58/74 [00:49<00:12, 1.31it/s]
epoch 20 | loss 1.3953497409820557, f_iou 0.45974022150039673: 78%|███████████████████████████▍ | 58/74 [00:50<00:12, 1.31it/s]
epoch 20 | loss 1.3953497409820557, f_iou 0.45974022150039673: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.32it/s]
epoch 20 | loss 0.8717333078384399, f_iou 0.45839443802833557: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.32it/s]
epoch 20 | loss 0.8717333078384399, f_iou 0.45839443802833557: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.34it/s]
epoch 20 | loss 7.60911226272583, f_iou 0.4518495500087738: 81%|██████████████████████████████▊ | 60/74 [00:51<00:10, 1.34it/s]
epoch 20 | loss 7.60911226272583, f_iou 0.4518495500087738: 82%|███████████████████████████████▎ | 61/74 [00:51<00:09, 1.35it/s]
epoch 20 | loss 8.274473190307617, f_iou 0.4447084963321686: 82%|██████████████████████████████▌ | 61/74 [00:52<00:09, 1.35it/s]
epoch 20 | loss 8.274473190307617, f_iou 0.4447084963321686: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.34it/s]
epoch 20 | loss 1.2675707340240479, f_iou 0.44284260272979736: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.34it/s]
epoch 20 | loss 1.2675707340240479, f_iou 0.44284260272979736: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.33it/s]
epoch 20 | loss 4.915894508361816, f_iou 0.4422548711299896: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.33it/s]
epoch 20 | loss 4.915894508361816, f_iou 0.4422548711299896: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.32it/s]
epoch 20 | loss 1.6703522205352783, f_iou 0.4483613967895508: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.32it/s]
epoch 20 | loss 1.6703522205352783, f_iou 0.4483613967895508: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.31it/s]
epoch 20 | loss 5.137796401977539, f_iou 0.4476713538169861: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.31it/s]
epoch 20 | loss 5.137796401977539, f_iou 0.4476713538169861: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.34it/s]
epoch 20 | loss 2.7622926235198975, f_iou 0.4472748041152954: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.34it/s]
epoch 20 | loss 2.7622926235198975, f_iou 0.4472748041152954: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.35it/s]
epoch 20 | loss 4.040772438049316, f_iou 0.4409182667732239: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.35it/s]
epoch 20 | loss 4.040772438049316, f_iou 0.4409182667732239: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 20 | loss 3.079529285430908, f_iou 0.43603286147117615: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.36it/s]
epoch 20 | loss 3.079529285430908, f_iou 0.43603286147117615: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.37it/s]
epoch 20 | loss 6.511728286743164, f_iou 0.43198028206825256: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.37it/s]
epoch 20 | loss 6.511728286743164, f_iou 0.43198028206825256: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.37it/s]
epoch 20 | loss 3.11136531829834, f_iou 0.42670953273773193: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.37it/s]
epoch 20 | loss 3.11136531829834, f_iou 0.42670953273773193: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 20 | loss 3.2376251220703125, f_iou 0.42335548996925354: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.37it/s]
epoch 20 | loss 3.2376251220703125, f_iou 0.42335548996925354: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 20 | loss 0.8612443804740906, f_iou 0.4248010516166687: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 20 | loss 0.8612443804740906, f_iou 0.4248010516166687: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 20 | loss 3.5591912269592285, f_iou 0.42272505164146423: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.38it/s]
epoch 20 | loss 3.5591912269592285, f_iou 0.42272505164146423: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 20 | loss 3.5591912269592285, f_iou 0.42272505164146423: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 20 | valid.f_iou 0.6027100086212158, valid.f_f-score 0.74168: 0%| | 0/16 [00:05, ?it/s]
epoch 20 | valid.f_iou 0.6027100086212158, valid.f_f-score 0.74168: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 20 | valid.f_iou 0.394320011138916, valid.f_f-score 0.69861: 6%|██ | 1/16 [00:05<01:19, 5.30s/it]
epoch 20 | valid.f_iou 0.394320011138916, valid.f_f-score 0.69861: 12%|████ | 2/16 [00:05<00:34, 2.45s/it]
epoch 20 | valid.f_iou 0.31029999256134033, valid.f_f-score 0.66615: 12%|███▊ | 2/16 [00:06<00:34, 2.45s/it]
epoch 20 | valid.f_iou 0.31029999256134033, valid.f_f-score 0.66615: 19%|█████▋ | 3/16 [00:06<00:19, 1.54s/it]
epoch 20 | valid.f_iou 0.3849000036716461, valid.f_f-score 0.68358: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 20 | valid.f_iou 0.3849000036716461, valid.f_f-score 0.68358: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 20 | valid.f_iou 0.3591099977493286, valid.f_f-score 0.68738: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 20 | valid.f_iou 0.3591099977493286, valid.f_f-score 0.68738: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 20 | valid.f_iou 0.3496600091457367, valid.f_f-score 0.6704: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 20 | valid.f_iou 0.3496600091457367, valid.f_f-score 0.6704: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 20 | valid.f_iou 0.35717999935150146, valid.f_f-score 0.67592: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 20 | valid.f_iou 0.35717999935150146, valid.f_f-score 0.67592: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.58it/s]
epoch 20 | valid.f_iou 0.3371700048446655, valid.f_f-score 0.67368: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 20 | valid.f_iou 0.3371700048446655, valid.f_f-score 0.67368: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 20 | valid.f_iou 0.35280999541282654, valid.f_f-score 0.65833: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 20 | valid.f_iou 0.35280999541282654, valid.f_f-score 0.65833: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.93it/s]
epoch 20 | valid.f_iou 0.3481999933719635, valid.f_f-score 0.66505: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.93it/s]
epoch 20 | valid.f_iou 0.3481999933719635, valid.f_f-score 0.66505: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 20 | valid.f_iou 0.3560299873352051, valid.f_f-score 0.66676: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 20 | valid.f_iou 0.3560299873352051, valid.f_f-score 0.66676: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 20 | valid.f_iou 0.37599000334739685, valid.f_f-score 0.68518: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.10it/s]
epoch 20 | valid.f_iou 0.37599000334739685, valid.f_f-score 0.68518: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.25it/s]
epoch 20 | valid.f_iou 0.3671799898147583, valid.f_f-score 0.68625: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.25it/s]
epoch 20 | valid.f_iou 0.3671799898147583, valid.f_f-score 0.68625: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 20 | valid.f_iou 0.3475300073623657, valid.f_f-score 0.66431: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 20 | valid.f_iou 0.3475300073623657, valid.f_f-score 0.66431: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 20 | valid.f_iou 0.353630006313324, valid.f_f-score 0.6662: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.47it/s]
epoch 20 | valid.f_iou 0.353630006313324, valid.f_f-score 0.6662: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.52it/s]
epoch 20 | valid.f_iou 0.3604600131511688, valid.f_f-score 0.65914: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 20 | valid.f_iou 0.3604600131511688, valid.f_f-score 0.65914: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 20 | valid.f_iou 0.3604600131511688, valid.f_f-score 0.65914: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 20 | valid.f_iou 0.7097799777984619, valid.f_f-score 0.71871: 0%| | 0/16 [00:05, ?it/s]
epoch 20 | valid.f_iou 0.7097799777984619, valid.f_f-score 0.71871: 6%|█▉ | 1/16 [00:05<01:17, 5.16s/it]
epoch 20 | valid.f_iou 0.7871900200843811, valid.f_f-score 0.83185: 6%|█▉ | 1/16 [00:05<01:17, 5.16s/it]
epoch 20 | valid.f_iou 0.7871900200843811, valid.f_f-score 0.83185: 12%|███▉ | 2/16 [00:05<00:33, 2.39s/it]
epoch 20 | valid.f_iou 0.6823800206184387, valid.f_f-score 0.78695: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 20 | valid.f_iou 0.6823800206184387, valid.f_f-score 0.78695: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 20 | valid.f_iou 0.6702700257301331, valid.f_f-score 0.75003: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 20 | valid.f_iou 0.6702700257301331, valid.f_f-score 0.75003: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 20 | valid.f_iou 0.6615800261497498, valid.f_f-score 0.76023: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 20 | valid.f_iou 0.6615800261497498, valid.f_f-score 0.76023: 31%|█████████▋ | 5/16 [00:06<00:09, 1.16it/s]
epoch 20 | valid.f_iou 0.6134300231933594, valid.f_f-score 0.72105: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 20 | valid.f_iou 0.6134300231933594, valid.f_f-score 0.72105: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 20 | valid.f_iou 0.6045100092887878, valid.f_f-score 0.72725: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 20 | valid.f_iou 0.6045100092887878, valid.f_f-score 0.72725: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 20 | valid.f_iou 0.591920018196106, valid.f_f-score 0.72759: 44%|██████████████ | 7/16 [00:08<00:05, 1.60it/s]
epoch 20 | valid.f_iou 0.591920018196106, valid.f_f-score 0.72759: 50%|████████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 20 | valid.f_iou 0.6130399703979492, valid.f_f-score 0.74693: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 20 | valid.f_iou 0.6130399703979492, valid.f_f-score 0.74693: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 20 | valid.f_iou 0.6266599893569946, valid.f_f-score 0.76418: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 20 | valid.f_iou 0.6266599893569946, valid.f_f-score 0.76418: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 20 | valid.f_iou 0.6250500082969666, valid.f_f-score 0.75521: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 20 | valid.f_iou 0.6250500082969666, valid.f_f-score 0.75521: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 20 | valid.f_iou 0.638759970664978, valid.f_f-score 0.76701: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.15it/s]
epoch 20 | valid.f_iou 0.638759970664978, valid.f_f-score 0.76701: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.31it/s]
epoch 20 | valid.f_iou 0.6485000252723694, valid.f_f-score 0.77434: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 20 | valid.f_iou 0.6485000252723694, valid.f_f-score 0.77434: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 20 | valid.f_iou 0.6402000188827515, valid.f_f-score 0.76684: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 20 | valid.f_iou 0.6402000188827515, valid.f_f-score 0.76684: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 20 | valid.f_iou 0.6373699903488159, valid.f_f-score 0.76272: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.50it/s]
epoch 20 | valid.f_iou 0.6373699903488159, valid.f_f-score 0.76272: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 20 | valid.f_iou 0.6408900022506714, valid.f_f-score 0.76133: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 20 | valid.f_iou 0.6408900022506714, valid.f_f-score 0.76133: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 20 | valid.f_iou 0.6408900022506714, valid.f_f-score 0.76133: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 20 | valid.f_iou 0.7097799777984619, valid.f_f-score 0.71871: 0%| | 0/16 [00:05, ?it/s]
epoch 20 | valid.f_iou 0.7097799777984619, valid.f_f-score 0.71871: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 20 | valid.f_iou 0.7871900200843811, valid.f_f-score 0.83185: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 20 | valid.f_iou 0.7871900200843811, valid.f_f-score 0.83185: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 20 | valid.f_iou 0.6823800206184387, valid.f_f-score 0.78695: 12%|███▉ | 2/16 [00:06<00:35, 2.53s/it]
epoch 20 | valid.f_iou 0.6823800206184387, valid.f_f-score 0.78695: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 20 | valid.f_iou 0.6714400053024292, valid.f_f-score 0.74546: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 20 | valid.f_iou 0.6714400053024292, valid.f_f-score 0.74546: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 20 | valid.f_iou 0.6625800132751465, valid.f_f-score 0.75657: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 20 | valid.f_iou 0.6625800132751465, valid.f_f-score 0.75657: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 20 | valid.f_iou 0.6142699718475342, valid.f_f-score 0.718: 31%|██████████▎ | 5/16 [00:07<00:09, 1.12it/s]
epoch 20 | valid.f_iou 0.6142699718475342, valid.f_f-score 0.718: 38%|████████████▍ | 6/16 [00:07<00:07, 1.34it/s]
epoch 20 | valid.f_iou 0.6071900129318237, valid.f_f-score 0.72464: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 20 | valid.f_iou 0.6071900129318237, valid.f_f-score 0.72464: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 20 | valid.f_iou 0.5942599773406982, valid.f_f-score 0.72531: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 20 | valid.f_iou 0.5942599773406982, valid.f_f-score 0.72531: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 20 | valid.f_iou 0.6184399724006653, valid.f_f-score 0.7449: 50%|████████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 20 | valid.f_iou 0.6184399724006653, valid.f_f-score 0.7449: 56%|██████████████████ | 9/16 [00:08<00:03, 1.98it/s]
epoch 20 | valid.f_iou 0.6291300058364868, valid.f_f-score 0.75876: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 20 | valid.f_iou 0.6291300058364868, valid.f_f-score 0.75876: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.06it/s]
epoch 20 | valid.f_iou 0.6161999702453613, valid.f_f-score 0.74317: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.06it/s]
epoch 20 | valid.f_iou 0.6161999702453613, valid.f_f-score 0.74317: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 20 | valid.f_iou 0.6306399703025818, valid.f_f-score 0.75598: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.15it/s]
epoch 20 | valid.f_iou 0.6306399703025818, valid.f_f-score 0.75598: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.30it/s]
epoch 20 | valid.f_iou 0.6410099864006042, valid.f_f-score 0.76416: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.30it/s]
epoch 20 | valid.f_iou 0.6410099864006042, valid.f_f-score 0.76416: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 20 | valid.f_iou 0.6269199848175049, valid.f_f-score 0.75144: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 20 | valid.f_iou 0.6269199848175049, valid.f_f-score 0.75144: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 20 | valid.f_iou 0.6249799728393555, valid.f_f-score 0.74835: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 20 | valid.f_iou 0.6249799728393555, valid.f_f-score 0.74835: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 20 | valid.f_iou 0.6271399855613708, valid.f_f-score 0.74525: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 20 | valid.f_iou 0.6271399855613708, valid.f_f-score 0.74525: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 20 | valid.f_iou 0.6271399855613708, valid.f_f-score 0.74525: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 21 | loss 5.561120510101318, f_iou 0.10134413093328476: 0%| | 0/74 [00:06, ?it/s]
epoch 21 | loss 5.561120510101318, f_iou 0.10134413093328476: 1%|▌ | 1/74 [00:06<08:10, 6.72s/it]
epoch 21 | loss 4.7560343742370605, f_iou 0.36934056878089905: 1%|▍ | 1/74 [00:07<08:10, 6.72s/it]
epoch 21 | loss 4.7560343742370605, f_iou 0.36934056878089905: 3%|▉ | 2/74 [00:07<03:54, 3.25s/it]
epoch 21 | loss 2.5089738368988037, f_iou 0.3933660387992859: 3%|█ | 2/74 [00:08<03:54, 3.25s/it]
epoch 21 | loss 2.5089738368988037, f_iou 0.3933660387992859: 4%|█▌ | 3/74 [00:08<02:33, 2.17s/it]
epoch 21 | loss 6.594779014587402, f_iou 0.40382951498031616: 4%|█▌ | 3/74 [00:09<02:33, 2.17s/it]
epoch 21 | loss 6.594779014587402, f_iou 0.40382951498031616: 5%|██ | 4/74 [00:09<01:54, 1.63s/it]
epoch 21 | loss 4.4284539222717285, f_iou 0.38013043999671936: 5%|█▉ | 4/74 [00:10<01:54, 1.63s/it]
epoch 21 | loss 4.4284539222717285, f_iou 0.38013043999671936: 7%|██▍ | 5/74 [00:10<01:32, 1.34s/it]
epoch 21 | loss 1.0062018632888794, f_iou 0.4496706426143646: 7%|██▌ | 5/74 [00:10<01:32, 1.34s/it]
epoch 21 | loss 1.0062018632888794, f_iou 0.4496706426143646: 8%|███ | 6/74 [00:10<01:21, 1.20s/it]
epoch 21 | loss 1.5897581577301025, f_iou 0.4993857145309448: 8%|███ | 6/74 [00:11<01:21, 1.20s/it]
epoch 21 | loss 1.5897581577301025, f_iou 0.4993857145309448: 9%|███▌ | 7/74 [00:11<01:10, 1.04s/it]
epoch 21 | loss 2.8733749389648438, f_iou 0.4757966995239258: 9%|███▌ | 7/74 [00:12<01:10, 1.04s/it]
epoch 21 | loss 2.8733749389648438, f_iou 0.4757966995239258: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 21 | loss 1.8376624584197998, f_iou 0.47852060198783875: 11%|███▉ | 8/74 [00:13<01:02, 1.06it/s]
epoch 21 | loss 1.8376624584197998, f_iou 0.47852060198783875: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 21 | loss 3.5440821647644043, f_iou 0.46582475304603577: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 21 | loss 3.5440821647644043, f_iou 0.46582475304603577: 14%|████▋ | 10/74 [00:13<00:54, 1.18it/s]
epoch 21 | loss 3.3839406967163086, f_iou 0.43897977471351624: 14%|████▋ | 10/74 [00:14<00:54, 1.18it/s]
epoch 21 | loss 3.3839406967163086, f_iou 0.43897977471351624: 15%|█████▏ | 11/74 [00:14<00:51, 1.23it/s]
epoch 21 | loss 2.823371171951294, f_iou 0.466788649559021: 15%|█████▋ | 11/74 [00:15<00:51, 1.23it/s]
epoch 21 | loss 2.823371171951294, f_iou 0.466788649559021: 16%|██████▏ | 12/74 [00:15<00:49, 1.26it/s]
epoch 21 | loss 1.5757670402526855, f_iou 0.49362871050834656: 16%|█████▋ | 12/74 [00:16<00:49, 1.26it/s]
epoch 21 | loss 1.5757670402526855, f_iou 0.49362871050834656: 18%|██████▏ | 13/74 [00:16<00:48, 1.25it/s]
epoch 21 | loss 2.5513596534729004, f_iou 0.478720486164093: 18%|██████▌ | 13/74 [00:17<00:48, 1.25it/s]
epoch 21 | loss 2.5513596534729004, f_iou 0.478720486164093: 19%|███████ | 14/74 [00:17<00:47, 1.27it/s]
epoch 21 | loss 3.233069896697998, f_iou 0.4934389293193817: 19%|███████ | 14/74 [00:17<00:47, 1.27it/s]
epoch 21 | loss 3.233069896697998, f_iou 0.4934389293193817: 20%|███████▌ | 15/74 [00:17<00:45, 1.31it/s]
epoch 21 | loss 2.4486496448516846, f_iou 0.4702599346637726: 20%|███████▎ | 15/74 [00:18<00:45, 1.31it/s]
epoch 21 | loss 2.4486496448516846, f_iou 0.4702599346637726: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 21 | loss 6.087921142578125, f_iou 0.4444290101528168: 22%|████████ | 16/74 [00:19<00:43, 1.33it/s]
epoch 21 | loss 6.087921142578125, f_iou 0.4444290101528168: 23%|████████▌ | 17/74 [00:19<00:42, 1.35it/s]
epoch 21 | loss 6.195136070251465, f_iou 0.42007264494895935: 23%|████████▎ | 17/74 [00:19<00:42, 1.35it/s]
epoch 21 | loss 6.195136070251465, f_iou 0.42007264494895935: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 21 | loss 1.8834943771362305, f_iou 0.4343312084674835: 24%|████████▊ | 18/74 [00:20<00:41, 1.36it/s]
epoch 21 | loss 1.8834943771362305, f_iou 0.4343312084674835: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 21 | loss 0.6856040954589844, f_iou 0.45648813247680664: 26%|████████▉ | 19/74 [00:21<00:40, 1.37it/s]
epoch 21 | loss 0.6856040954589844, f_iou 0.45648813247680664: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 21 | loss 4.148515701293945, f_iou 0.4472455680370331: 27%|██████████ | 20/74 [00:22<00:39, 1.37it/s]
epoch 21 | loss 4.148515701293945, f_iou 0.4472455680370331: 28%|██████████▌ | 21/74 [00:22<00:38, 1.37it/s]
epoch 21 | loss 2.8017890453338623, f_iou 0.45107847452163696: 28%|█████████▉ | 21/74 [00:22<00:38, 1.37it/s]
epoch 21 | loss 2.8017890453338623, f_iou 0.45107847452163696: 30%|██████████▍ | 22/74 [00:22<00:37, 1.37it/s]
epoch 21 | loss 1.4554879665374756, f_iou 0.45926550030708313: 30%|██████████▍ | 22/74 [00:23<00:37, 1.37it/s]
epoch 21 | loss 1.4554879665374756, f_iou 0.45926550030708313: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 21 | loss 3.0665066242218018, f_iou 0.46982845664024353: 31%|██████████▉ | 23/74 [00:24<00:37, 1.38it/s]
epoch 21 | loss 3.0665066242218018, f_iou 0.46982845664024353: 32%|███████████▎ | 24/74 [00:24<00:36, 1.38it/s]
epoch 21 | loss 2.158428430557251, f_iou 0.4623457193374634: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 21 | loss 2.158428430557251, f_iou 0.4623457193374634: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 21 | loss 0.5830923318862915, f_iou 0.47362685203552246: 34%|███████████▊ | 25/74 [00:25<00:35, 1.39it/s]
epoch 21 | loss 0.5830923318862915, f_iou 0.47362685203552246: 35%|████████████▎ | 26/74 [00:25<00:34, 1.39it/s]
epoch 21 | loss 4.019463539123535, f_iou 0.4698944091796875: 35%|█████████████ | 26/74 [00:26<00:34, 1.39it/s]
epoch 21 | loss 4.019463539123535, f_iou 0.4698944091796875: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.38it/s]
epoch 21 | loss 1.204629898071289, f_iou 0.4874183237552643: 36%|█████████████▌ | 27/74 [00:27<00:33, 1.38it/s]
epoch 21 | loss 1.204629898071289, f_iou 0.4874183237552643: 38%|██████████████ | 28/74 [00:27<00:34, 1.35it/s]
epoch 21 | loss 3.6054136753082275, f_iou 0.4997807741165161: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.35it/s]
epoch 21 | loss 3.6054136753082275, f_iou 0.4997807741165161: 39%|██████████████ | 29/74 [00:27<00:33, 1.32it/s]
epoch 21 | loss 4.199986457824707, f_iou 0.484414279460907: 39%|██████████████▉ | 29/74 [00:28<00:33, 1.32it/s]
epoch 21 | loss 4.199986457824707, f_iou 0.484414279460907: 41%|███████████████▍ | 30/74 [00:28<00:33, 1.31it/s]
epoch 21 | loss 1.6177873611450195, f_iou 0.4765397608280182: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.31it/s]
epoch 21 | loss 1.6177873611450195, f_iou 0.4765397608280182: 42%|███████████████ | 31/74 [00:29<00:33, 1.30it/s]
epoch 21 | loss 2.189105272293091, f_iou 0.4847395420074463: 42%|███████████████▌ | 31/74 [00:30<00:33, 1.30it/s]
epoch 21 | loss 2.189105272293091, f_iou 0.4847395420074463: 43%|████████████████ | 32/74 [00:30<00:31, 1.32it/s]
epoch 21 | loss 2.3677945137023926, f_iou 0.4888005256652832: 43%|███████████████▌ | 32/74 [00:31<00:31, 1.32it/s]
epoch 21 | loss 2.3677945137023926, f_iou 0.4888005256652832: 45%|████████████████ | 33/74 [00:31<00:30, 1.34it/s]
epoch 21 | loss 2.544959545135498, f_iou 0.49101290106773376: 45%|████████████████ | 33/74 [00:31<00:30, 1.34it/s]
epoch 21 | loss 2.544959545135498, f_iou 0.49101290106773376: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.35it/s]
epoch 21 | loss 1.4385766983032227, f_iou 0.49775269627571106: 46%|████████████████ | 34/74 [00:32<00:29, 1.35it/s]
epoch 21 | loss 1.4385766983032227, f_iou 0.49775269627571106: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.35it/s]
epoch 21 | loss 2.1267848014831543, f_iou 0.4839283525943756: 47%|█████████████████ | 35/74 [00:33<00:28, 1.35it/s]
epoch 21 | loss 2.1267848014831543, f_iou 0.4839283525943756: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 21 | loss 2.1481447219848633, f_iou 0.4905710518360138: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 21 | loss 2.1481447219848633, f_iou 0.4905710518360138: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 21 | loss 1.5760037899017334, f_iou 0.5004225373268127: 50%|██████████████████ | 37/74 [00:34<00:26, 1.37it/s]
epoch 21 | loss 1.5760037899017334, f_iou 0.5004225373268127: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 21 | loss 2.00471568107605, f_iou 0.5019585490226746: 51%|███████████████████▌ | 38/74 [00:35<00:26, 1.38it/s]
epoch 21 | loss 2.00471568107605, f_iou 0.5019585490226746: 53%|████████████████████ | 39/74 [00:35<00:25, 1.38it/s]
epoch 21 | loss 3.6051809787750244, f_iou 0.49835047125816345: 53%|██████████████████▍ | 39/74 [00:36<00:25, 1.38it/s]
epoch 21 | loss 3.6051809787750244, f_iou 0.49835047125816345: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.35it/s]
epoch 21 | loss 6.055427551269531, f_iou 0.4861980378627777: 54%|████████████████████ | 40/74 [00:36<00:25, 1.35it/s]
epoch 21 | loss 6.055427551269531, f_iou 0.4861980378627777: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.34it/s]
epoch 21 | loss 2.86144757270813, f_iou 0.48500412702560425: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.34it/s]
epoch 21 | loss 2.86144757270813, f_iou 0.48500412702560425: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.34it/s]
epoch 21 | loss 3.1941256523132324, f_iou 0.4873450994491577: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.34it/s]
epoch 21 | loss 3.1941256523132324, f_iou 0.4873450994491577: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.33it/s]
epoch 21 | loss 3.954598903656006, f_iou 0.4884006083011627: 58%|█████████████████████▍ | 43/74 [00:39<00:23, 1.33it/s]
epoch 21 | loss 3.954598903656006, f_iou 0.4884006083011627: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.33it/s]
epoch 21 | loss 4.52779483795166, f_iou 0.4926399290561676: 59%|██████████████████████▌ | 44/74 [00:39<00:22, 1.33it/s]
epoch 21 | loss 4.52779483795166, f_iou 0.4926399290561676: 61%|███████████████████████ | 45/74 [00:39<00:21, 1.34it/s]
epoch 21 | loss 2.077549457550049, f_iou 0.4978819489479065: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.34it/s]
epoch 21 | loss 2.077549457550049, f_iou 0.4978819489479065: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.35it/s]
epoch 21 | loss 1.163644552230835, f_iou 0.4981498420238495: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.35it/s]
epoch 21 | loss 1.163644552230835, f_iou 0.4981498420238495: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.36it/s]
epoch 21 | loss 2.192140817642212, f_iou 0.4930351972579956: 64%|███████████████████████▌ | 47/74 [00:42<00:19, 1.36it/s]
epoch 21 | loss 2.192140817642212, f_iou 0.4930351972579956: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.36it/s]
epoch 21 | loss 2.112412452697754, f_iou 0.497695654630661: 65%|████████████████████████▋ | 48/74 [00:42<00:19, 1.36it/s]
epoch 21 | loss 2.112412452697754, f_iou 0.497695654630661: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.37it/s]
epoch 21 | loss 2.3615243434906006, f_iou 0.505828320980072: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.37it/s]
epoch 21 | loss 2.3615243434906006, f_iou 0.505828320980072: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.38it/s]
epoch 21 | loss 1.5642437934875488, f_iou 0.5128802061080933: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.38it/s]
epoch 21 | loss 1.5642437934875488, f_iou 0.5128802061080933: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.36it/s]
epoch 21 | loss 1.8806989192962646, f_iou 0.5096938610076904: 69%|████████████████████████▊ | 51/74 [00:45<00:16, 1.36it/s]
epoch 21 | loss 1.8806989192962646, f_iou 0.5096938610076904: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.35it/s]
epoch 21 | loss 3.3867788314819336, f_iou 0.5044223666191101: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.35it/s]
epoch 21 | loss 3.3867788314819336, f_iou 0.5044223666191101: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.34it/s]
epoch 21 | loss 2.887352228164673, f_iou 0.5039210915565491: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.34it/s]
epoch 21 | loss 2.887352228164673, f_iou 0.5039210915565491: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.34it/s]
epoch 21 | loss 2.212052822113037, f_iou 0.5115313529968262: 73%|███████████████████████████ | 54/74 [00:47<00:14, 1.34it/s]
epoch 21 | loss 2.212052822113037, f_iou 0.5115313529968262: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.36it/s]
epoch 21 | loss 3.444908380508423, f_iou 0.5135051012039185: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.36it/s]
epoch 21 | loss 3.444908380508423, f_iou 0.5135051012039185: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.37it/s]
epoch 21 | loss 3.3218493461608887, f_iou 0.5078739523887634: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.37it/s]
epoch 21 | loss 3.3218493461608887, f_iou 0.5078739523887634: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 21 | loss 3.535545825958252, f_iou 0.5031982660293579: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.38it/s]
epoch 21 | loss 3.535545825958252, f_iou 0.5031982660293579: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.38it/s]
epoch 21 | loss 1.2005386352539062, f_iou 0.5002232789993286: 78%|████████████████████████████▏ | 58/74 [00:50<00:11, 1.38it/s]
epoch 21 | loss 1.2005386352539062, f_iou 0.5002232789993286: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 21 | loss 3.246730327606201, f_iou 0.4961196780204773: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.39it/s]
epoch 21 | loss 3.246730327606201, f_iou 0.4961196780204773: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.38it/s]
epoch 21 | loss 0.9731627702713013, f_iou 0.5035983324050903: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.38it/s]
epoch 21 | loss 0.9731627702713013, f_iou 0.5035983324050903: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 21 | loss 6.934942245483398, f_iou 0.49811995029449463: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.39it/s]
epoch 21 | loss 6.934942245483398, f_iou 0.49811995029449463: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 21 | loss 2.3201100826263428, f_iou 0.5004438161849976: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.38it/s]
epoch 21 | loss 2.3201100826263428, f_iou 0.5004438161849976: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 21 | loss 2.8696725368499756, f_iou 0.5023502111434937: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 21 | loss 2.8696725368499756, f_iou 0.5023502111434937: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 21 | loss 1.7059910297393799, f_iou 0.5036477446556091: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.38it/s]
epoch 21 | loss 1.7059910297393799, f_iou 0.5036477446556091: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 21 | loss 1.0288220643997192, f_iou 0.5098481774330139: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.38it/s]
epoch 21 | loss 1.0288220643997192, f_iou 0.5098481774330139: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 21 | loss 6.567378520965576, f_iou 0.5029517412185669: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 21 | loss 6.567378520965576, f_iou 0.5029517412185669: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 21 | loss 2.131481170654297, f_iou 0.5045424699783325: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 21 | loss 2.131481170654297, f_iou 0.5045424699783325: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 21 | loss 1.170385479927063, f_iou 0.5105040073394775: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.39it/s]
epoch 21 | loss 1.170385479927063, f_iou 0.5105040073394775: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 21 | loss 1.8209633827209473, f_iou 0.5140764713287354: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.40it/s]
epoch 21 | loss 1.8209633827209473, f_iou 0.5140764713287354: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 21 | loss 2.9847137928009033, f_iou 0.5076479911804199: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 21 | loss 2.9847137928009033, f_iou 0.5076479911804199: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 21 | loss 1.8527321815490723, f_iou 0.508436918258667: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 21 | loss 1.8527321815490723, f_iou 0.508436918258667: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 21 | loss 12.809571266174316, f_iou 0.5030176639556885: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.41it/s]
epoch 21 | loss 12.809571266174316, f_iou 0.5030176639556885: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 21 | loss 6.443861484527588, f_iou 0.497427761554718: 99%|█████████████████████████████████████▍| 73/74 [01:00<00:00, 1.41it/s]
epoch 21 | loss 6.443861484527588, f_iou 0.497427761554718: 100%|██████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 21 | loss 6.443861484527588, f_iou 0.497427761554718: 100%|██████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 21 | valid.f_iou 0.7165499925613403, valid.f_f-score 0.75513: 0%| | 0/16 [00:05, ?it/s]
epoch 21 | valid.f_iou 0.7165499925613403, valid.f_f-score 0.75513: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 21 | valid.f_iou 0.5348399877548218, valid.f_f-score 0.73846: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 21 | valid.f_iou 0.5348399877548218, valid.f_f-score 0.73846: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 21 | valid.f_iou 0.44850999116897583, valid.f_f-score 0.70039: 12%|███▊ | 2/16 [00:06<00:34, 2.45s/it]
epoch 21 | valid.f_iou 0.44850999116897583, valid.f_f-score 0.70039: 19%|█████▋ | 3/16 [00:06<00:19, 1.54s/it]
epoch 21 | valid.f_iou 0.49674999713897705, valid.f_f-score 0.73395: 19%|█████▋ | 3/16 [00:06<00:19, 1.54s/it]
epoch 21 | valid.f_iou 0.49674999713897705, valid.f_f-score 0.73395: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 21 | valid.f_iou 0.46990999579429626, valid.f_f-score 0.72719: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 21 | valid.f_iou 0.46990999579429626, valid.f_f-score 0.72719: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 21 | valid.f_iou 0.4508199989795685, valid.f_f-score 0.69856: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 21 | valid.f_iou 0.4508199989795685, valid.f_f-score 0.69856: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 21 | valid.f_iou 0.47056999802589417, valid.f_f-score 0.70733: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 21 | valid.f_iou 0.47056999802589417, valid.f_f-score 0.70733: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.61it/s]
epoch 21 | valid.f_iou 0.46094998717308044, valid.f_f-score 0.70925: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 21 | valid.f_iou 0.46094998717308044, valid.f_f-score 0.70925: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 21 | valid.f_iou 0.4619100093841553, valid.f_f-score 0.69497: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 21 | valid.f_iou 0.4619100093841553, valid.f_f-score 0.69497: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 21 | valid.f_iou 0.45489001274108887, valid.f_f-score 0.70186: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.98it/s]
epoch 21 | valid.f_iou 0.45489001274108887, valid.f_f-score 0.70186: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 21 | valid.f_iou 0.45379000902175903, valid.f_f-score 0.69069: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 21 | valid.f_iou 0.45379000902175903, valid.f_f-score 0.69069: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.11it/s]
epoch 21 | valid.f_iou 0.4760499894618988, valid.f_f-score 0.70708: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.11it/s]
epoch 21 | valid.f_iou 0.4760499894618988, valid.f_f-score 0.70708: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 21 | valid.f_iou 0.48611998558044434, valid.f_f-score 0.71808: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.23it/s]
epoch 21 | valid.f_iou 0.48611998558044434, valid.f_f-score 0.71808: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.36it/s]
epoch 21 | valid.f_iou 0.47336000204086304, valid.f_f-score 0.70511: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.36it/s]
epoch 21 | valid.f_iou 0.47336000204086304, valid.f_f-score 0.70511: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.46it/s]
epoch 21 | valid.f_iou 0.47780999541282654, valid.f_f-score 0.70694: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 21 | valid.f_iou 0.47780999541282654, valid.f_f-score 0.70694: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.53it/s]
epoch 21 | valid.f_iou 0.4843499958515167, valid.f_f-score 0.70477: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.53it/s]
epoch 21 | valid.f_iou 0.4843499958515167, valid.f_f-score 0.70477: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 21 | valid.f_iou 0.4843499958515167, valid.f_f-score 0.70477: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 21 | valid.f_iou 0.763189971446991, valid.f_f-score 0.70461: 0%| | 0/16 [00:04, ?it/s]
epoch 21 | valid.f_iou 0.763189971446991, valid.f_f-score 0.70461: 6%|██ | 1/16 [00:04<01:06, 4.42s/it]
epoch 21 | valid.f_iou 0.8008099794387817, valid.f_f-score 0.822: 6%|██ | 1/16 [00:04<01:06, 4.42s/it]
epoch 21 | valid.f_iou 0.8008099794387817, valid.f_f-score 0.822: 12%|████▏ | 2/16 [00:04<00:29, 2.09s/it]
epoch 21 | valid.f_iou 0.672789990901947, valid.f_f-score 0.75544: 12%|████ | 2/16 [00:05<00:29, 2.09s/it]
epoch 21 | valid.f_iou 0.672789990901947, valid.f_f-score 0.75544: 19%|██████ | 3/16 [00:05<00:17, 1.34s/it]
epoch 21 | valid.f_iou 0.6590499877929688, valid.f_f-score 0.72745: 19%|█████▊ | 3/16 [00:05<00:17, 1.34s/it]
epoch 21 | valid.f_iou 0.6590499877929688, valid.f_f-score 0.72745: 25%|███████▊ | 4/16 [00:05<00:11, 1.00it/s]
epoch 21 | valid.f_iou 0.6550300121307373, valid.f_f-score 0.73719: 25%|███████▊ | 4/16 [00:06<00:11, 1.00it/s]
epoch 21 | valid.f_iou 0.6550300121307373, valid.f_f-score 0.73719: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 21 | valid.f_iou 0.6298699975013733, valid.f_f-score 0.70572: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 21 | valid.f_iou 0.6298699975013733, valid.f_f-score 0.70572: 38%|███████████▋ | 6/16 [00:06<00:06, 1.48it/s]
epoch 21 | valid.f_iou 0.6428499817848206, valid.f_f-score 0.72996: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 21 | valid.f_iou 0.6428499817848206, valid.f_f-score 0.72996: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 21 | valid.f_iou 0.6366699934005737, valid.f_f-score 0.72618: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 21 | valid.f_iou 0.6366699934005737, valid.f_f-score 0.72618: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 21 | valid.f_iou 0.6568599939346313, valid.f_f-score 0.74355: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 21 | valid.f_iou 0.6568599939346313, valid.f_f-score 0.74355: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.06it/s]
epoch 21 | valid.f_iou 0.6667799949645996, valid.f_f-score 0.75969: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.06it/s]
epoch 21 | valid.f_iou 0.6667799949645996, valid.f_f-score 0.75969: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.12it/s]
epoch 21 | valid.f_iou 0.6581500172615051, valid.f_f-score 0.74537: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.12it/s]
epoch 21 | valid.f_iou 0.6581500172615051, valid.f_f-score 0.74537: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.26it/s]
epoch 21 | valid.f_iou 0.6718800067901611, valid.f_f-score 0.75989: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 21 | valid.f_iou 0.6718800067901611, valid.f_f-score 0.75989: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 21 | valid.f_iou 0.6858500242233276, valid.f_f-score 0.77216: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 21 | valid.f_iou 0.6858500242233276, valid.f_f-score 0.77216: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 21 | valid.f_iou 0.6736000180244446, valid.f_f-score 0.76254: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 21 | valid.f_iou 0.6736000180244446, valid.f_f-score 0.76254: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.54it/s]
epoch 21 | valid.f_iou 0.6662399768829346, valid.f_f-score 0.7577: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 21 | valid.f_iou 0.6662399768829346, valid.f_f-score 0.7577: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.60it/s]
epoch 21 | valid.f_iou 0.6674100160598755, valid.f_f-score 0.76227: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 21 | valid.f_iou 0.6674100160598755, valid.f_f-score 0.76227: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 21 | valid.f_iou 0.6674100160598755, valid.f_f-score 0.76227: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 21 | valid.f_iou 0.763189971446991, valid.f_f-score 0.70461: 0%| | 0/16 [00:05, ?it/s]
epoch 21 | valid.f_iou 0.763189971446991, valid.f_f-score 0.70461: 6%|██ | 1/16 [00:05<01:15, 5.05s/it]
epoch 21 | valid.f_iou 0.8008099794387817, valid.f_f-score 0.822: 6%|██ | 1/16 [00:05<01:15, 5.05s/it]
epoch 21 | valid.f_iou 0.8008099794387817, valid.f_f-score 0.822: 12%|████▏ | 2/16 [00:05<00:32, 2.35s/it]
epoch 21 | valid.f_iou 0.672789990901947, valid.f_f-score 0.75544: 12%|████ | 2/16 [00:05<00:32, 2.35s/it]
epoch 21 | valid.f_iou 0.672789990901947, valid.f_f-score 0.75544: 19%|██████ | 3/16 [00:05<00:19, 1.49s/it]
epoch 21 | valid.f_iou 0.6610699892044067, valid.f_f-score 0.72196: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 21 | valid.f_iou 0.6610699892044067, valid.f_f-score 0.72196: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 21 | valid.f_iou 0.6566399931907654, valid.f_f-score 0.7328: 25%|████████ | 4/16 [00:06<00:13, 1.08s/it]
epoch 21 | valid.f_iou 0.6566399931907654, valid.f_f-score 0.7328: 31%|██████████ | 5/16 [00:06<00:09, 1.18it/s]
epoch 21 | valid.f_iou 0.632390022277832, valid.f_f-score 0.70206: 31%|██████████ | 5/16 [00:07<00:09, 1.18it/s]
epoch 21 | valid.f_iou 0.632390022277832, valid.f_f-score 0.70206: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 21 | valid.f_iou 0.6473100185394287, valid.f_f-score 0.72683: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 21 | valid.f_iou 0.6473100185394287, valid.f_f-score 0.72683: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.57it/s]
epoch 21 | valid.f_iou 0.6405699849128723, valid.f_f-score 0.72343: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 21 | valid.f_iou 0.6405699849128723, valid.f_f-score 0.72343: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 21 | valid.f_iou 0.6632000207901001, valid.f_f-score 0.74111: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 21 | valid.f_iou 0.6632000207901001, valid.f_f-score 0.74111: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.88it/s]
epoch 21 | valid.f_iou 0.6678299903869629, valid.f_f-score 0.75383: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 21 | valid.f_iou 0.6678299903869629, valid.f_f-score 0.75383: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 21 | valid.f_iou 0.6591100096702576, valid.f_f-score 0.74005: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 21 | valid.f_iou 0.6591100096702576, valid.f_f-score 0.74005: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 21 | valid.f_iou 0.672760009765625, valid.f_f-score 0.75501: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.24it/s]
epoch 21 | valid.f_iou 0.672760009765625, valid.f_f-score 0.75501: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.37it/s]
epoch 21 | valid.f_iou 0.6851999759674072, valid.f_f-score 0.7665: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.37it/s]
epoch 21 | valid.f_iou 0.6851999759674072, valid.f_f-score 0.7665: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 21 | valid.f_iou 0.6668099761009216, valid.f_f-score 0.75138: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 21 | valid.f_iou 0.6668099761009216, valid.f_f-score 0.75138: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 21 | valid.f_iou 0.6598899960517883, valid.f_f-score 0.74729: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 21 | valid.f_iou 0.6598899960517883, valid.f_f-score 0.74729: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 21 | valid.f_iou 0.6605600118637085, valid.f_f-score 0.7497: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 21 | valid.f_iou 0.6605600118637085, valid.f_f-score 0.7497: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 21 | valid.f_iou 0.6605600118637085, valid.f_f-score 0.7497: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 22 | loss 1.5380356311798096, f_iou 0.19886426627635956: 0%| | 0/74 [00:06, ?it/s]
epoch 22 | loss 1.5380356311798096, f_iou 0.19886426627635956: 1%|▍ | 1/74 [00:06<07:54, 6.50s/it]
epoch 22 | loss 0.6654404401779175, f_iou 0.3722400367259979: 1%|▌ | 1/74 [00:07<07:54, 6.50s/it]
epoch 22 | loss 0.6654404401779175, f_iou 0.3722400367259979: 3%|█ | 2/74 [00:07<03:50, 3.20s/it]
epoch 22 | loss 3.7013726234436035, f_iou 0.4510587155818939: 3%|█ | 2/74 [00:08<03:50, 3.20s/it]
epoch 22 | loss 3.7013726234436035, f_iou 0.4510587155818939: 4%|█▌ | 3/74 [00:08<02:31, 2.14s/it]
epoch 22 | loss 1.3480403423309326, f_iou 0.4601261615753174: 4%|█▌ | 3/74 [00:09<02:31, 2.14s/it]
epoch 22 | loss 1.3480403423309326, f_iou 0.4601261615753174: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 22 | loss 2.8720498085021973, f_iou 0.4814523756504059: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 22 | loss 2.8720498085021973, f_iou 0.4814523756504059: 7%|██▌ | 5/74 [00:09<01:31, 1.33s/it]
epoch 22 | loss 1.579457402229309, f_iou 0.5171114206314087: 7%|██▌ | 5/74 [00:10<01:31, 1.33s/it]
epoch 22 | loss 1.579457402229309, f_iou 0.5171114206314087: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 22 | loss 0.8165390491485596, f_iou 0.5773104429244995: 8%|███ | 6/74 [00:11<01:18, 1.15s/it]
epoch 22 | loss 0.8165390491485596, f_iou 0.5773104429244995: 9%|███▌ | 7/74 [00:11<01:09, 1.04s/it]
epoch 22 | loss 1.9858920574188232, f_iou 0.5051466226577759: 9%|███▌ | 7/74 [00:12<01:09, 1.04s/it]
epoch 22 | loss 1.9858920574188232, f_iou 0.5051466226577759: 11%|████ | 8/74 [00:12<01:03, 1.04it/s]
epoch 22 | loss 1.961036205291748, f_iou 0.48140302300453186: 11%|████ | 8/74 [00:13<01:03, 1.04it/s]
epoch 22 | loss 1.961036205291748, f_iou 0.48140302300453186: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 22 | loss 1.9385037422180176, f_iou 0.5055259466171265: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 22 | loss 1.9385037422180176, f_iou 0.5055259466171265: 14%|████▊ | 10/74 [00:13<00:55, 1.15it/s]
epoch 22 | loss 2.790003538131714, f_iou 0.5206279158592224: 14%|█████ | 10/74 [00:14<00:55, 1.15it/s]
epoch 22 | loss 2.790003538131714, f_iou 0.5206279158592224: 15%|█████▌ | 11/74 [00:14<00:52, 1.19it/s]
epoch 22 | loss 2.1013410091400146, f_iou 0.5369971990585327: 15%|█████▎ | 11/74 [00:15<00:52, 1.19it/s]
epoch 22 | loss 2.1013410091400146, f_iou 0.5369971990585327: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 22 | loss 0.805336594581604, f_iou 0.49568989872932434: 16%|█████▊ | 12/74 [00:16<00:50, 1.23it/s]
epoch 22 | loss 0.805336594581604, f_iou 0.49568989872932434: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 22 | loss 0.8386746644973755, f_iou 0.5084757804870605: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 22 | loss 0.8386746644973755, f_iou 0.5084757804870605: 19%|██████▊ | 14/74 [00:16<00:47, 1.27it/s]
epoch 22 | loss 2.0915889739990234, f_iou 0.5205604434013367: 19%|██████▊ | 14/74 [00:17<00:47, 1.27it/s]
epoch 22 | loss 2.0915889739990234, f_iou 0.5205604434013367: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 22 | loss 1.8870505094528198, f_iou 0.5401577353477478: 20%|███████▎ | 15/74 [00:18<00:46, 1.28it/s]
epoch 22 | loss 1.8870505094528198, f_iou 0.5401577353477478: 22%|███████▊ | 16/74 [00:18<00:44, 1.31it/s]
epoch 22 | loss 1.897324562072754, f_iou 0.5408082008361816: 22%|████████ | 16/74 [00:19<00:44, 1.31it/s]
epoch 22 | loss 1.897324562072754, f_iou 0.5408082008361816: 23%|████████▌ | 17/74 [00:19<00:42, 1.33it/s]
epoch 22 | loss 3.8326468467712402, f_iou 0.5350006222724915: 23%|████████▎ | 17/74 [00:19<00:42, 1.33it/s]
epoch 22 | loss 3.8326468467712402, f_iou 0.5350006222724915: 24%|████████▊ | 18/74 [00:19<00:41, 1.35it/s]
epoch 22 | loss 3.943256378173828, f_iou 0.5363508462905884: 24%|█████████ | 18/74 [00:20<00:41, 1.35it/s]
epoch 22 | loss 3.943256378173828, f_iou 0.5363508462905884: 26%|█████████▌ | 19/74 [00:20<00:40, 1.36it/s]
epoch 22 | loss 3.350127696990967, f_iou 0.5325645804405212: 26%|█████████▌ | 19/74 [00:21<00:40, 1.36it/s]
epoch 22 | loss 3.350127696990967, f_iou 0.5325645804405212: 27%|██████████ | 20/74 [00:21<00:39, 1.36it/s]
epoch 22 | loss 1.7077027559280396, f_iou 0.5436073541641235: 27%|█████████▋ | 20/74 [00:22<00:39, 1.36it/s]
epoch 22 | loss 1.7077027559280396, f_iou 0.5436073541641235: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 22 | loss 1.5614235401153564, f_iou 0.5577602386474609: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 22 | loss 1.5614235401153564, f_iou 0.5577602386474609: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 22 | loss 1.3762264251708984, f_iou 0.5712900161743164: 30%|██████████▋ | 22/74 [00:23<00:37, 1.37it/s]
epoch 22 | loss 1.3762264251708984, f_iou 0.5712900161743164: 31%|███████████▏ | 23/74 [00:23<00:37, 1.38it/s]
epoch 22 | loss 2.006823778152466, f_iou 0.5751726031303406: 31%|███████████▌ | 23/74 [00:24<00:37, 1.38it/s]
epoch 22 | loss 2.006823778152466, f_iou 0.5751726031303406: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 22 | loss 2.501591920852661, f_iou 0.5557764768600464: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 22 | loss 2.501591920852661, f_iou 0.5557764768600464: 34%|████████████▌ | 25/74 [00:24<00:35, 1.38it/s]
epoch 22 | loss 0.265625, f_iou 0.5716292858123779: 34%|███████████████▌ | 25/74 [00:25<00:35, 1.38it/s]
epoch 22 | loss 0.265625, f_iou 0.5716292858123779: 35%|████████████████▏ | 26/74 [00:25<00:34, 1.38it/s]
epoch 22 | loss 2.476863384246826, f_iou 0.5638335347175598: 35%|█████████████ | 26/74 [00:26<00:34, 1.38it/s]
epoch 22 | loss 2.476863384246826, f_iou 0.5638335347175598: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.38it/s]
epoch 22 | loss 0.8405892252922058, f_iou 0.5763753652572632: 36%|█████████████▏ | 27/74 [00:27<00:33, 1.38it/s]
epoch 22 | loss 0.8405892252922058, f_iou 0.5763753652572632: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 22 | loss 4.26231575012207, f_iou 0.5858439207077026: 38%|██████████████▍ | 28/74 [00:27<00:33, 1.38it/s]
epoch 22 | loss 4.26231575012207, f_iou 0.5858439207077026: 39%|██████████████▉ | 29/74 [00:27<00:32, 1.38it/s]
epoch 22 | loss 4.521655082702637, f_iou 0.5793166160583496: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.38it/s]
epoch 22 | loss 4.521655082702637, f_iou 0.5793166160583496: 41%|███████████████ | 30/74 [00:28<00:31, 1.38it/s]
epoch 22 | loss 2.6068685054779053, f_iou 0.58614182472229: 41%|███████████████▍ | 30/74 [00:29<00:31, 1.38it/s]
epoch 22 | loss 2.6068685054779053, f_iou 0.58614182472229: 42%|███████████████▉ | 31/74 [00:29<00:31, 1.38it/s]
epoch 22 | loss 3.3793766498565674, f_iou 0.5907337069511414: 42%|███████████████ | 31/74 [00:30<00:31, 1.38it/s]
epoch 22 | loss 3.3793766498565674, f_iou 0.5907337069511414: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.35it/s]
epoch 22 | loss 0.9921875, f_iou 0.6021869778633118: 43%|███████████████████▍ | 32/74 [00:30<00:31, 1.35it/s]
epoch 22 | loss 0.9921875, f_iou 0.6021869778633118: 45%|████████████████████ | 33/74 [00:30<00:30, 1.33it/s]
epoch 22 | loss 2.4316210746765137, f_iou 0.6066158413887024: 45%|████████████████ | 33/74 [00:31<00:30, 1.33it/s]
epoch 22 | loss 2.4316210746765137, f_iou 0.6066158413887024: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.32it/s]
epoch 22 | loss 2.1956167221069336, f_iou 0.6063442826271057: 46%|████████████████▌ | 34/74 [00:32<00:30, 1.32it/s]
epoch 22 | loss 2.1956167221069336, f_iou 0.6063442826271057: 47%|█████████████████ | 35/74 [00:32<00:29, 1.34it/s]
epoch 22 | loss 5.763609886169434, f_iou 0.5927465558052063: 47%|█████████████████▌ | 35/74 [00:33<00:29, 1.34it/s]
epoch 22 | loss 5.763609886169434, f_iou 0.5927465558052063: 49%|██████████████████ | 36/74 [00:33<00:27, 1.36it/s]
epoch 22 | loss 3.361762046813965, f_iou 0.5830223560333252: 49%|██████████████████ | 36/74 [00:33<00:27, 1.36it/s]
epoch 22 | loss 3.361762046813965, f_iou 0.5830223560333252: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.37it/s]
epoch 22 | loss 2.615222930908203, f_iou 0.5774521827697754: 50%|██████████████████▌ | 37/74 [00:34<00:27, 1.37it/s]
epoch 22 | loss 2.615222930908203, f_iou 0.5774521827697754: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 22 | loss 3.312525510787964, f_iou 0.5739725232124329: 51%|███████████████████ | 38/74 [00:35<00:26, 1.38it/s]
epoch 22 | loss 3.312525510787964, f_iou 0.5739725232124329: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 22 | loss 1.4737861156463623, f_iou 0.5806130170822144: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 22 | loss 1.4737861156463623, f_iou 0.5806130170822144: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 22 | loss 2.2445826530456543, f_iou 0.579514741897583: 54%|████████████████████ | 40/74 [00:36<00:24, 1.38it/s]
epoch 22 | loss 2.2445826530456543, f_iou 0.579514741897583: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.38it/s]
epoch 22 | loss 1.6989381313323975, f_iou 0.5716640949249268: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.38it/s]
epoch 22 | loss 1.6989381313323975, f_iou 0.5716640949249268: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 22 | loss 3.5699009895324707, f_iou 0.5760090947151184: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.38it/s]
epoch 22 | loss 3.5699009895324707, f_iou 0.5760090947151184: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 22 | loss 1.5311986207962036, f_iou 0.5697661638259888: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 22 | loss 1.5311986207962036, f_iou 0.5697661638259888: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 22 | loss 0.4596153795719147, f_iou 0.5741333961486816: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.38it/s]
epoch 22 | loss 0.4596153795719147, f_iou 0.5741333961486816: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 22 | loss 1.4532105922698975, f_iou 0.5760911107063293: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.38it/s]
epoch 22 | loss 1.4532105922698975, f_iou 0.5760911107063293: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 22 | loss 3.171628475189209, f_iou 0.5741236209869385: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 22 | loss 3.171628475189209, f_iou 0.5741236209869385: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.38it/s]
epoch 22 | loss 3.0940003395080566, f_iou 0.5697913765907288: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 22 | loss 3.0940003395080566, f_iou 0.5697913765907288: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 22 | loss 0.991421103477478, f_iou 0.5637590289115906: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.38it/s]
epoch 22 | loss 0.991421103477478, f_iou 0.5637590289115906: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 22 | loss 6.489191055297852, f_iou 0.5631303787231445: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.38it/s]
epoch 22 | loss 6.489191055297852, f_iou 0.5631303787231445: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.38it/s]
epoch 22 | loss 2.580533504486084, f_iou 0.5608554482460022: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.38it/s]
epoch 22 | loss 2.580533504486084, f_iou 0.5608554482460022: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.38it/s]
epoch 22 | loss 1.7679754495620728, f_iou 0.5654118657112122: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 22 | loss 1.7679754495620728, f_iou 0.5654118657112122: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 22 | loss 1.7945013046264648, f_iou 0.5559552907943726: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 22 | loss 1.7945013046264648, f_iou 0.5559552907943726: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 22 | loss 3.506272554397583, f_iou 0.5569323301315308: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.38it/s]
epoch 22 | loss 3.506272554397583, f_iou 0.5569323301315308: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 22 | loss 1.2439874410629272, f_iou 0.5576929450035095: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.38it/s]
epoch 22 | loss 1.2439874410629272, f_iou 0.5576929450035095: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.36it/s]
epoch 22 | loss 2.070603847503662, f_iou 0.5589473247528076: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.36it/s]
epoch 22 | loss 2.070603847503662, f_iou 0.5589473247528076: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.34it/s]
epoch 22 | loss 3.4267191886901855, f_iou 0.5610895752906799: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.34it/s]
epoch 22 | loss 3.4267191886901855, f_iou 0.5610895752906799: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.32it/s]
epoch 22 | loss 2.1862006187438965, f_iou 0.5594120025634766: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.32it/s]
epoch 22 | loss 2.1862006187438965, f_iou 0.5594120025634766: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.31it/s]
epoch 22 | loss 1.0451122522354126, f_iou 0.5586218237876892: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.31it/s]
epoch 22 | loss 1.0451122522354126, f_iou 0.5586218237876892: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.31it/s]
epoch 22 | loss 4.201283931732178, f_iou 0.5592253804206848: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.31it/s]
epoch 22 | loss 4.201283931732178, f_iou 0.5592253804206848: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.31it/s]
epoch 22 | loss 2.122011423110962, f_iou 0.5614039897918701: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.31it/s]
epoch 22 | loss 2.122011423110962, f_iou 0.5614039897918701: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.31it/s]
epoch 22 | loss 4.691641807556152, f_iou 0.5581771731376648: 82%|██████████████████████████████▌ | 61/74 [00:52<00:09, 1.31it/s]
epoch 22 | loss 4.691641807556152, f_iou 0.5581771731376648: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.30it/s]
epoch 22 | loss 5.178662300109863, f_iou 0.5574039816856384: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.30it/s]
epoch 22 | loss 5.178662300109863, f_iou 0.5574039816856384: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.30it/s]
epoch 22 | loss 1.5457305908203125, f_iou 0.561798632144928: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.30it/s]
epoch 22 | loss 1.5457305908203125, f_iou 0.561798632144928: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.30it/s]
epoch 22 | loss 2.5468363761901855, f_iou 0.5601692199707031: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.30it/s]
epoch 22 | loss 2.5468363761901855, f_iou 0.5601692199707031: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.30it/s]
epoch 22 | loss 2.537057876586914, f_iou 0.564558207988739: 88%|█████████████████████████████████▍ | 65/74 [00:55<00:06, 1.30it/s]
epoch 22 | loss 2.537057876586914, f_iou 0.564558207988739: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:06, 1.33it/s]
epoch 22 | loss 8.014440536499023, f_iou 0.565674364566803: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:06, 1.33it/s]
epoch 22 | loss 8.014440536499023, f_iou 0.565674364566803: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.35it/s]
epoch 22 | loss 12.624397277832031, f_iou 0.5598942637443542: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.35it/s]
epoch 22 | loss 12.624397277832031, f_iou 0.5598942637443542: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 22 | loss 3.291431427001953, f_iou 0.556960940361023: 92%|██████████████████████████████████▉ | 68/74 [00:57<00:04, 1.36it/s]
epoch 22 | loss 3.291431427001953, f_iou 0.556960940361023: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.37it/s]
epoch 22 | loss 1.7022287845611572, f_iou 0.559396505355835: 93%|██████████████████████████████████▌ | 69/74 [00:58<00:03, 1.37it/s]
epoch 22 | loss 1.7022287845611572, f_iou 0.559396505355835: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.38it/s]
epoch 22 | loss 1.7661664485931396, f_iou 0.5644289255142212: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.38it/s]
epoch 22 | loss 1.7661664485931396, f_iou 0.5644289255142212: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 22 | loss 3.7426083087921143, f_iou 0.5644954442977905: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 22 | loss 3.7426083087921143, f_iou 0.5644954442977905: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 22 | loss 4.734059810638428, f_iou 0.5571897029876709: 97%|████████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 22 | loss 4.734059810638428, f_iou 0.5571897029876709: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 22 | loss 5.5084381103515625, f_iou 0.5557125210762024: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 22 | loss 5.5084381103515625, f_iou 0.5557125210762024: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 22 | loss 5.5084381103515625, f_iou 0.5557125210762024: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 22 | valid.f_iou 0.6557199954986572, valid.f_f-score 0.74873: 0%| | 0/16 [00:05, ?it/s]
epoch 22 | valid.f_iou 0.6557199954986572, valid.f_f-score 0.74873: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 22 | valid.f_iou 0.5375400185585022, valid.f_f-score 0.75374: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 22 | valid.f_iou 0.5375400185585022, valid.f_f-score 0.75374: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 22 | valid.f_iou 0.4094800055027008, valid.f_f-score 0.67384: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 22 | valid.f_iou 0.4094800055027008, valid.f_f-score 0.67384: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 22 | valid.f_iou 0.4449099898338318, valid.f_f-score 0.68088: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 22 | valid.f_iou 0.4449099898338318, valid.f_f-score 0.68088: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 22 | valid.f_iou 0.42100998759269714, valid.f_f-score 0.68308: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 22 | valid.f_iou 0.42100998759269714, valid.f_f-score 0.68308: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 22 | valid.f_iou 0.4027400016784668, valid.f_f-score 0.66365: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 22 | valid.f_iou 0.4027400016784668, valid.f_f-score 0.66365: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 22 | valid.f_iou 0.4181700050830841, valid.f_f-score 0.66459: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 22 | valid.f_iou 0.4181700050830841, valid.f_f-score 0.66459: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 22 | valid.f_iou 0.40303999185562134, valid.f_f-score 0.65147: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 22 | valid.f_iou 0.40303999185562134, valid.f_f-score 0.65147: 50%|███████████████ | 8/16 [00:08<00:04, 1.71it/s]
epoch 22 | valid.f_iou 0.418040007352829, valid.f_f-score 0.6486: 50%|████████████████▌ | 8/16 [00:09<00:04, 1.71it/s]
epoch 22 | valid.f_iou 0.418040007352829, valid.f_f-score 0.6486: 56%|██████████████████▌ | 9/16 [00:09<00:03, 1.96it/s]
epoch 22 | valid.f_iou 0.4083400070667267, valid.f_f-score 0.6603: 56%|██████████████████ | 9/16 [00:09<00:03, 1.96it/s]
epoch 22 | valid.f_iou 0.4083400070667267, valid.f_f-score 0.6603: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.09it/s]
epoch 22 | valid.f_iou 0.4202499985694885, valid.f_f-score 0.66979: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 22 | valid.f_iou 0.4202499985694885, valid.f_f-score 0.66979: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 22 | valid.f_iou 0.4377500116825104, valid.f_f-score 0.68861: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.25it/s]
epoch 22 | valid.f_iou 0.4377500116825104, valid.f_f-score 0.68861: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 22 | valid.f_iou 0.44861000776290894, valid.f_f-score 0.7052: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 22 | valid.f_iou 0.44861000776290894, valid.f_f-score 0.7052: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 22 | valid.f_iou 0.4359999895095825, valid.f_f-score 0.69197: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 22 | valid.f_iou 0.4359999895095825, valid.f_f-score 0.69197: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 22 | valid.f_iou 0.4453299939632416, valid.f_f-score 0.69544: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 22 | valid.f_iou 0.4453299939632416, valid.f_f-score 0.69544: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 22 | valid.f_iou 0.45813000202178955, valid.f_f-score 0.69564: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 22 | valid.f_iou 0.45813000202178955, valid.f_f-score 0.69564: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 22 | valid.f_iou 0.45813000202178955, valid.f_f-score 0.69564: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 22 | valid.f_iou 0.7311099767684937, valid.f_f-score 0.71055: 0%| | 0/16 [00:05, ?it/s]
epoch 22 | valid.f_iou 0.7311099767684937, valid.f_f-score 0.71055: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 22 | valid.f_iou 0.7922199964523315, valid.f_f-score 0.82552: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 22 | valid.f_iou 0.7922199964523315, valid.f_f-score 0.82552: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 22 | valid.f_iou 0.6418200135231018, valid.f_f-score 0.74552: 12%|███▉ | 2/16 [00:06<00:34, 2.45s/it]
epoch 22 | valid.f_iou 0.6418200135231018, valid.f_f-score 0.74552: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 22 | valid.f_iou 0.6364799737930298, valid.f_f-score 0.7164: 19%|██████ | 3/16 [00:06<00:19, 1.54s/it]
epoch 22 | valid.f_iou 0.6364799737930298, valid.f_f-score 0.7164: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 22 | valid.f_iou 0.629610002040863, valid.f_f-score 0.71734: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 22 | valid.f_iou 0.629610002040863, valid.f_f-score 0.71734: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 22 | valid.f_iou 0.5930200219154358, valid.f_f-score 0.688: 31%|██████████▎ | 5/16 [00:07<00:09, 1.15it/s]
epoch 22 | valid.f_iou 0.5930200219154358, valid.f_f-score 0.688: 38%|████████████▍ | 6/16 [00:07<00:07, 1.37it/s]
epoch 22 | valid.f_iou 0.5922099947929382, valid.f_f-score 0.6931: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 22 | valid.f_iou 0.5922099947929382, valid.f_f-score 0.6931: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 22 | valid.f_iou 0.5726600289344788, valid.f_f-score 0.67925: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 22 | valid.f_iou 0.5726600289344788, valid.f_f-score 0.67925: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 22 | valid.f_iou 0.6020699739456177, valid.f_f-score 0.7038: 50%|████████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 22 | valid.f_iou 0.6020699739456177, valid.f_f-score 0.7038: 56%|██████████████████ | 9/16 [00:08<00:03, 1.88it/s]
epoch 22 | valid.f_iou 0.6129400134086609, valid.f_f-score 0.72442: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 22 | valid.f_iou 0.6129400134086609, valid.f_f-score 0.72442: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 22 | valid.f_iou 0.610539972782135, valid.f_f-score 0.71464: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.02it/s]
epoch 22 | valid.f_iou 0.610539972782135, valid.f_f-score 0.71464: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.11it/s]
epoch 22 | valid.f_iou 0.6185399889945984, valid.f_f-score 0.72829: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.11it/s]
epoch 22 | valid.f_iou 0.6185399889945984, valid.f_f-score 0.72829: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 22 | valid.f_iou 0.6334900259971619, valid.f_f-score 0.73962: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 22 | valid.f_iou 0.6334900259971619, valid.f_f-score 0.73962: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 22 | valid.f_iou 0.6278799772262573, valid.f_f-score 0.73494: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 22 | valid.f_iou 0.6278799772262573, valid.f_f-score 0.73494: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 22 | valid.f_iou 0.6209999918937683, valid.f_f-score 0.73212: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 22 | valid.f_iou 0.6209999918937683, valid.f_f-score 0.73212: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 22 | valid.f_iou 0.6251599788665771, valid.f_f-score 0.73702: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 22 | valid.f_iou 0.6251599788665771, valid.f_f-score 0.73702: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 22 | valid.f_iou 0.6251599788665771, valid.f_f-score 0.73702: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 22 | valid.f_iou 0.7311099767684937, valid.f_f-score 0.71055: 0%| | 0/16 [00:05, ?it/s]
epoch 22 | valid.f_iou 0.7311099767684937, valid.f_f-score 0.71055: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 22 | valid.f_iou 0.7922199964523315, valid.f_f-score 0.82552: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 22 | valid.f_iou 0.7922199964523315, valid.f_f-score 0.82552: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 22 | valid.f_iou 0.6418200135231018, valid.f_f-score 0.74552: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 22 | valid.f_iou 0.6418200135231018, valid.f_f-score 0.74552: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 22 | valid.f_iou 0.6384599804878235, valid.f_f-score 0.71184: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 22 | valid.f_iou 0.6384599804878235, valid.f_f-score 0.71184: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 22 | valid.f_iou 0.6312000155448914, valid.f_f-score 0.7137: 25%|████████ | 4/16 [00:06<00:12, 1.07s/it]
epoch 22 | valid.f_iou 0.6312000155448914, valid.f_f-score 0.7137: 31%|██████████ | 5/16 [00:06<00:09, 1.22it/s]
epoch 22 | valid.f_iou 0.5943400263786316, valid.f_f-score 0.68496: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 22 | valid.f_iou 0.5943400263786316, valid.f_f-score 0.68496: 38%|███████████▋ | 6/16 [00:07<00:06, 1.50it/s]
epoch 22 | valid.f_iou 0.5933499932289124, valid.f_f-score 0.6905: 38%|████████████ | 6/16 [00:07<00:06, 1.50it/s]
epoch 22 | valid.f_iou 0.5933499932289124, valid.f_f-score 0.6905: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 22 | valid.f_iou 0.5736500024795532, valid.f_f-score 0.67697: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.76it/s]
epoch 22 | valid.f_iou 0.5736500024795532, valid.f_f-score 0.67697: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.98it/s]
epoch 22 | valid.f_iou 0.60521000623703, valid.f_f-score 0.70177: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.98it/s]
epoch 22 | valid.f_iou 0.60521000623703, valid.f_f-score 0.70177: 56%|██████████████████▌ | 9/16 [00:08<00:03, 2.19it/s]
epoch 22 | valid.f_iou 0.6135799884796143, valid.f_f-score 0.71913: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 22 | valid.f_iou 0.6135799884796143, valid.f_f-score 0.71913: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 22 | valid.f_iou 0.6111199855804443, valid.f_f-score 0.70982: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.33it/s]
epoch 22 | valid.f_iou 0.6111199855804443, valid.f_f-score 0.70982: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.45it/s]
epoch 22 | valid.f_iou 0.6190699934959412, valid.f_f-score 0.72388: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.45it/s]
epoch 22 | valid.f_iou 0.6190699934959412, valid.f_f-score 0.72388: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 22 | valid.f_iou 0.6268799901008606, valid.f_f-score 0.7306: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.52it/s]
epoch 22 | valid.f_iou 0.6268799901008606, valid.f_f-score 0.7306: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.59it/s]
epoch 22 | valid.f_iou 0.6153799891471863, valid.f_f-score 0.72053: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.59it/s]
epoch 22 | valid.f_iou 0.6153799891471863, valid.f_f-score 0.72053: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 22 | valid.f_iou 0.6093400120735168, valid.f_f-score 0.71867: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 22 | valid.f_iou 0.6093400120735168, valid.f_f-score 0.71867: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 22 | valid.f_iou 0.6147099733352661, valid.f_f-score 0.72441: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 22 | valid.f_iou 0.6147099733352661, valid.f_f-score 0.72441: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 22 | valid.f_iou 0.6147099733352661, valid.f_f-score 0.72441: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.45it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 23 | loss 4.615148067474365, f_iou 0.46895843744277954: 0%| | 0/74 [00:06, ?it/s]
epoch 23 | loss 4.615148067474365, f_iou 0.46895843744277954: 1%|▌ | 1/74 [00:06<07:46, 6.38s/it]
epoch 23 | loss 2.8148341178894043, f_iou 0.5982363224029541: 1%|▌ | 1/74 [00:07<07:46, 6.38s/it]
epoch 23 | loss 2.8148341178894043, f_iou 0.5982363224029541: 3%|█ | 2/74 [00:07<03:44, 3.12s/it]
epoch 23 | loss 4.333719730377197, f_iou 0.4937298893928528: 3%|█ | 2/74 [00:07<03:44, 3.12s/it]
epoch 23 | loss 4.333719730377197, f_iou 0.4937298893928528: 4%|█▌ | 3/74 [00:07<02:25, 2.05s/it]
epoch 23 | loss 3.5832273960113525, f_iou 0.5061975121498108: 4%|█▌ | 3/74 [00:08<02:25, 2.05s/it]
epoch 23 | loss 3.5832273960113525, f_iou 0.5061975121498108: 5%|██ | 4/74 [00:08<01:48, 1.55s/it]
epoch 23 | loss 3.3078432083129883, f_iou 0.4432850480079651: 5%|██ | 4/74 [00:09<01:48, 1.55s/it]
epoch 23 | loss 3.3078432083129883, f_iou 0.4432850480079651: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 23 | loss 6.719167709350586, f_iou 0.38888272643089294: 7%|██▌ | 5/74 [00:10<01:27, 1.27s/it]
epoch 23 | loss 6.719167709350586, f_iou 0.38888272643089294: 8%|███ | 6/74 [00:10<01:15, 1.10s/it]
epoch 23 | loss 1.49265456199646, f_iou 0.3440708816051483: 8%|███▏ | 6/74 [00:11<01:15, 1.10s/it]
epoch 23 | loss 1.49265456199646, f_iou 0.3440708816051483: 9%|███▋ | 7/74 [00:11<01:08, 1.02s/it]
epoch 23 | loss 1.0525670051574707, f_iou 0.3745845854282379: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 23 | loss 1.0525670051574707, f_iou 0.3745845854282379: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 23 | loss 2.827364444732666, f_iou 0.38703182339668274: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 23 | loss 2.827364444732666, f_iou 0.38703182339668274: 12%|████▌ | 9/74 [00:12<00:58, 1.12it/s]
epoch 23 | loss 1.9290302991867065, f_iou 0.43619251251220703: 12%|████▍ | 9/74 [00:13<00:58, 1.12it/s]
epoch 23 | loss 1.9290302991867065, f_iou 0.43619251251220703: 14%|████▋ | 10/74 [00:13<00:53, 1.19it/s]
epoch 23 | loss 2.4974827766418457, f_iou 0.4799470901489258: 14%|████▊ | 10/74 [00:14<00:53, 1.19it/s]
epoch 23 | loss 2.4974827766418457, f_iou 0.4799470901489258: 15%|█████▎ | 11/74 [00:14<00:50, 1.24it/s]
epoch 23 | loss 1.5765756368637085, f_iou 0.5123907923698425: 15%|█████▎ | 11/74 [00:14<00:50, 1.24it/s]
epoch 23 | loss 1.5765756368637085, f_iou 0.5123907923698425: 16%|█████▊ | 12/74 [00:14<00:49, 1.26it/s]
epoch 23 | loss 1.216683268547058, f_iou 0.4755435585975647: 16%|██████ | 12/74 [00:15<00:49, 1.26it/s]
epoch 23 | loss 1.216683268547058, f_iou 0.4755435585975647: 18%|██████▌ | 13/74 [00:15<00:48, 1.26it/s]
epoch 23 | loss 5.177932262420654, f_iou 0.48146405816078186: 18%|██████▎ | 13/74 [00:16<00:48, 1.26it/s]
epoch 23 | loss 5.177932262420654, f_iou 0.48146405816078186: 19%|██████▊ | 14/74 [00:16<00:47, 1.28it/s]
epoch 23 | loss 0.9402738213539124, f_iou 0.4928465187549591: 19%|██████▊ | 14/74 [00:17<00:47, 1.28it/s]
epoch 23 | loss 0.9402738213539124, f_iou 0.4928465187549591: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 23 | loss 1.8633917570114136, f_iou 0.5113072395324707: 20%|███████▎ | 15/74 [00:18<00:46, 1.28it/s]
epoch 23 | loss 1.8633917570114136, f_iou 0.5113072395324707: 22%|███████▊ | 16/74 [00:18<00:45, 1.28it/s]
epoch 23 | loss 1.5039150714874268, f_iou 0.49780723452568054: 22%|███████▌ | 16/74 [00:18<00:45, 1.28it/s]
epoch 23 | loss 1.5039150714874268, f_iou 0.49780723452568054: 23%|████████ | 17/74 [00:18<00:43, 1.30it/s]
epoch 23 | loss 1.715355396270752, f_iou 0.5146198868751526: 23%|████████▌ | 17/74 [00:19<00:43, 1.30it/s]
epoch 23 | loss 1.715355396270752, f_iou 0.5146198868751526: 24%|█████████ | 18/74 [00:19<00:42, 1.33it/s]
epoch 23 | loss 1.184834599494934, f_iou 0.48788392543792725: 24%|████████▊ | 18/74 [00:20<00:42, 1.33it/s]
epoch 23 | loss 1.184834599494934, f_iou 0.48788392543792725: 26%|█████████▏ | 19/74 [00:20<00:40, 1.35it/s]
epoch 23 | loss 2.2477543354034424, f_iou 0.47944003343582153: 26%|████████▉ | 19/74 [00:20<00:40, 1.35it/s]
epoch 23 | loss 2.2477543354034424, f_iou 0.47944003343582153: 27%|█████████▍ | 20/74 [00:20<00:39, 1.37it/s]
epoch 23 | loss 0.8980344533920288, f_iou 0.5001561045646667: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 23 | loss 0.8980344533920288, f_iou 0.5001561045646667: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 23 | loss 3.512098550796509, f_iou 0.480549693107605: 28%|██████████▊ | 21/74 [00:22<00:38, 1.37it/s]
epoch 23 | loss 3.512098550796509, f_iou 0.480549693107605: 30%|███████████▎ | 22/74 [00:22<00:37, 1.38it/s]
epoch 23 | loss 5.888603687286377, f_iou 0.4734530746936798: 30%|███████████ | 22/74 [00:23<00:37, 1.38it/s]
epoch 23 | loss 5.888603687286377, f_iou 0.4734530746936798: 31%|███████████▌ | 23/74 [00:23<00:36, 1.38it/s]
epoch 23 | loss 3.2858715057373047, f_iou 0.455729603767395: 31%|███████████▌ | 23/74 [00:23<00:36, 1.38it/s]
epoch 23 | loss 3.2858715057373047, f_iou 0.455729603767395: 32%|████████████ | 24/74 [00:23<00:36, 1.39it/s]
epoch 23 | loss 5.719352722167969, f_iou 0.4510551691055298: 32%|████████████ | 24/74 [00:24<00:36, 1.39it/s]
epoch 23 | loss 5.719352722167969, f_iou 0.4510551691055298: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 23 | loss 4.393202781677246, f_iou 0.44347676634788513: 34%|████████████▏ | 25/74 [00:25<00:35, 1.39it/s]
epoch 23 | loss 4.393202781677246, f_iou 0.44347676634788513: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 23 | loss 2.4951040744781494, f_iou 0.42765864729881287: 35%|████████████▎ | 26/74 [00:25<00:34, 1.39it/s]
epoch 23 | loss 2.4951040744781494, f_iou 0.42765864729881287: 36%|████████████▊ | 27/74 [00:25<00:33, 1.39it/s]
epoch 23 | loss 1.13590669631958, f_iou 0.4190889894962311: 36%|█████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 23 | loss 1.13590669631958, f_iou 0.4190889894962311: 38%|██████████████▍ | 28/74 [00:26<00:33, 1.39it/s]
epoch 23 | loss 1.0318281650543213, f_iou 0.42446237802505493: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.39it/s]
epoch 23 | loss 1.0318281650543213, f_iou 0.42446237802505493: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.39it/s]
epoch 23 | loss 4.45051383972168, f_iou 0.4345756769180298: 39%|██████████████▉ | 29/74 [00:28<00:32, 1.39it/s]
epoch 23 | loss 4.45051383972168, f_iou 0.4345756769180298: 41%|███████████████▍ | 30/74 [00:28<00:31, 1.39it/s]
epoch 23 | loss 2.879532814025879, f_iou 0.42266350984573364: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 23 | loss 2.879532814025879, f_iou 0.42266350984573364: 42%|███████████████ | 31/74 [00:28<00:31, 1.38it/s]
epoch 23 | loss 3.344522476196289, f_iou 0.41036248207092285: 42%|███████████████ | 31/74 [00:29<00:31, 1.38it/s]
epoch 23 | loss 3.344522476196289, f_iou 0.41036248207092285: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.38it/s]
epoch 23 | loss 2.2721457481384277, f_iou 0.4156930446624756: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.38it/s]
epoch 23 | loss 2.2721457481384277, f_iou 0.4156930446624756: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 23 | loss 7.918033123016357, f_iou 0.40810608863830566: 45%|████████████████ | 33/74 [00:31<00:29, 1.39it/s]
epoch 23 | loss 7.918033123016357, f_iou 0.40810608863830566: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 23 | loss 3.0071215629577637, f_iou 0.40682196617126465: 46%|████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 23 | loss 3.0071215629577637, f_iou 0.40682196617126465: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 23 | loss 0.140625, f_iou 0.4207776188850403: 47%|█████████████████████▊ | 35/74 [00:32<00:28, 1.39it/s]
epoch 23 | loss 0.140625, f_iou 0.4207776188850403: 49%|██████████████████████▍ | 36/74 [00:32<00:27, 1.39it/s]
epoch 23 | loss 2.3767940998077393, f_iou 0.42105284333229065: 49%|█████████████████ | 36/74 [00:33<00:27, 1.39it/s]
epoch 23 | loss 2.3767940998077393, f_iou 0.42105284333229065: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 23 | loss 3.117642402648926, f_iou 0.40997248888015747: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 23 | loss 3.117642402648926, f_iou 0.40997248888015747: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 23 | loss 1.6623215675354004, f_iou 0.40930792689323425: 51%|█████████████████▉ | 38/74 [00:34<00:25, 1.39it/s]
epoch 23 | loss 1.6623215675354004, f_iou 0.40930792689323425: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 23 | loss 2.776942491531372, f_iou 0.41204914450645447: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.39it/s]
epoch 23 | loss 2.776942491531372, f_iou 0.41204914450645447: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 23 | loss 1.8568588495254517, f_iou 0.41846194863319397: 54%|██████████████████▉ | 40/74 [00:36<00:24, 1.37it/s]
epoch 23 | loss 1.8568588495254517, f_iou 0.41846194863319397: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.35it/s]
epoch 23 | loss 0.787614643573761, f_iou 0.42978179454803467: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.35it/s]
epoch 23 | loss 0.787614643573761, f_iou 0.42978179454803467: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.34it/s]
epoch 23 | loss 4.969765663146973, f_iou 0.4210987389087677: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.34it/s]
epoch 23 | loss 4.969765663146973, f_iou 0.4210987389087677: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.32it/s]
epoch 23 | loss 3.398787498474121, f_iou 0.4115321636199951: 58%|█████████████████████▍ | 43/74 [00:38<00:23, 1.32it/s]
epoch 23 | loss 3.398787498474121, f_iou 0.4115321636199951: 59%|██████████████████████ | 44/74 [00:38<00:22, 1.32it/s]
epoch 23 | loss 4.428619384765625, f_iou 0.4074769914150238: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.32it/s]
epoch 23 | loss 4.428619384765625, f_iou 0.4074769914150238: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.34it/s]
epoch 23 | loss 2.634803056716919, f_iou 0.4000398814678192: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.34it/s]
epoch 23 | loss 2.634803056716919, f_iou 0.4000398814678192: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.35it/s]
epoch 23 | loss 1.6212890148162842, f_iou 0.4102530777454376: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.35it/s]
epoch 23 | loss 1.6212890148162842, f_iou 0.4102530777454376: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.36it/s]
epoch 23 | loss 2.9436254501342773, f_iou 0.40892672538757324: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.36it/s]
epoch 23 | loss 2.9436254501342773, f_iou 0.40892672538757324: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.37it/s]
epoch 23 | loss 5.81280517578125, f_iou 0.41312435269355774: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.37it/s]
epoch 23 | loss 5.81280517578125, f_iou 0.41312435269355774: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 23 | loss 2.0819411277770996, f_iou 0.42131751775741577: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 23 | loss 2.0819411277770996, f_iou 0.42131751775741577: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 23 | loss 3.192983388900757, f_iou 0.4297972023487091: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 23 | loss 3.192983388900757, f_iou 0.4297972023487091: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 23 | loss 1.016635775566101, f_iou 0.4281682074069977: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.39it/s]
epoch 23 | loss 1.016635775566101, f_iou 0.4281682074069977: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 23 | loss 1.7203352451324463, f_iou 0.4326091408729553: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 23 | loss 1.7203352451324463, f_iou 0.4326091408729553: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 23 | loss 0.8666186928749084, f_iou 0.43589475750923157: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.39it/s]
epoch 23 | loss 0.8666186928749084, f_iou 0.43589475750923157: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.39it/s]
epoch 23 | loss 1.7455456256866455, f_iou 0.44357946515083313: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.39it/s]
epoch 23 | loss 1.7455456256866455, f_iou 0.44357946515083313: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.39it/s]
epoch 23 | loss 3.26869535446167, f_iou 0.43975386023521423: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 23 | loss 3.26869535446167, f_iou 0.43975386023521423: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.40it/s]
epoch 23 | loss 1.2793973684310913, f_iou 0.44648322463035583: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.40it/s]
epoch 23 | loss 1.2793973684310913, f_iou 0.44648322463035583: 77%|██████████████████████████▉ | 57/74 [00:47<00:12, 1.39it/s]
epoch 23 | loss 2.361198902130127, f_iou 0.4509375989437103: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.39it/s]
epoch 23 | loss 2.361198902130127, f_iou 0.4509375989437103: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.40it/s]
epoch 23 | loss 3.053138017654419, f_iou 0.4499110281467438: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.40it/s]
epoch 23 | loss 3.053138017654419, f_iou 0.4499110281467438: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 23 | loss 1.1711134910583496, f_iou 0.45029547810554504: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.39it/s]
epoch 23 | loss 1.1711134910583496, f_iou 0.45029547810554504: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.40it/s]
epoch 23 | loss 2.18570613861084, f_iou 0.4542631208896637: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.40it/s]
epoch 23 | loss 2.18570613861084, f_iou 0.4542631208896637: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.40it/s]
epoch 23 | loss 1.8762962818145752, f_iou 0.45303642749786377: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.40it/s]
epoch 23 | loss 1.8762962818145752, f_iou 0.45303642749786377: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.40it/s]
epoch 23 | loss 4.353777885437012, f_iou 0.4606441259384155: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.40it/s]
epoch 23 | loss 4.353777885437012, f_iou 0.4606441259384155: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.40it/s]
epoch 23 | loss 0.38797295093536377, f_iou 0.4677095115184784: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.40it/s]
epoch 23 | loss 0.38797295093536377, f_iou 0.4677095115184784: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.40it/s]
epoch 23 | loss 2.5422322750091553, f_iou 0.4713328182697296: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.40it/s]
epoch 23 | loss 2.5422322750091553, f_iou 0.4713328182697296: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 23 | loss 1.4743218421936035, f_iou 0.4744997024536133: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 23 | loss 1.4743218421936035, f_iou 0.4744997024536133: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.35it/s]
epoch 23 | loss 0.5452537536621094, f_iou 0.48134294152259827: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.35it/s]
epoch 23 | loss 0.5452537536621094, f_iou 0.48134294152259827: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.36it/s]
epoch 23 | loss 3.664466381072998, f_iou 0.48623326420783997: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.36it/s]
epoch 23 | loss 3.664466381072998, f_iou 0.48623326420783997: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 23 | loss 3.874250888824463, f_iou 0.4927257001399994: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 23 | loss 3.874250888824463, f_iou 0.4927257001399994: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 23 | loss 3.0833559036254883, f_iou 0.49145054817199707: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.39it/s]
epoch 23 | loss 3.0833559036254883, f_iou 0.49145054817199707: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 23 | loss 3.4704089164733887, f_iou 0.48452872037887573: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 23 | loss 3.4704089164733887, f_iou 0.48452872037887573: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 23 | loss 1.2062523365020752, f_iou 0.4862743616104126: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 23 | loss 1.2062523365020752, f_iou 0.4862743616104126: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 23 | loss 1.717872977256775, f_iou 0.48927703499794006: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 23 | loss 1.717872977256775, f_iou 0.48927703499794006: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 23 | loss 2.4521484375, f_iou 0.4961727261543274: 99%|█████████████████████████████████████████▍| 73/74 [00:59<00:00, 1.41it/s]
epoch 23 | loss 2.4521484375, f_iou 0.4961727261543274: 100%|██████████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 23 | loss 2.4521484375, f_iou 0.4961727261543274: 100%|██████████████████████████████████████████| 74/74 [00:59<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 23 | valid.f_iou 0.6210200190544128, valid.f_f-score 0.75971: 0%| | 0/16 [00:05, ?it/s]
epoch 23 | valid.f_iou 0.6210200190544128, valid.f_f-score 0.75971: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 23 | valid.f_iou 0.4749799966812134, valid.f_f-score 0.75582: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 23 | valid.f_iou 0.4749799966812134, valid.f_f-score 0.75582: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 23 | valid.f_iou 0.3744499981403351, valid.f_f-score 0.71122: 12%|███▉ | 2/16 [00:06<00:34, 2.45s/it]
epoch 23 | valid.f_iou 0.3744499981403351, valid.f_f-score 0.71122: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 23 | valid.f_iou 0.44916999340057373, valid.f_f-score 0.73993: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 23 | valid.f_iou 0.44916999340057373, valid.f_f-score 0.73993: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 23 | valid.f_iou 0.43377000093460083, valid.f_f-score 0.73059: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 23 | valid.f_iou 0.43377000093460083, valid.f_f-score 0.73059: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 23 | valid.f_iou 0.41269999742507935, valid.f_f-score 0.7044: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 23 | valid.f_iou 0.41269999742507935, valid.f_f-score 0.7044: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 23 | valid.f_iou 0.419869989156723, valid.f_f-score 0.70578: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 23 | valid.f_iou 0.419869989156723, valid.f_f-score 0.70578: 44%|██████████████ | 7/16 [00:07<00:05, 1.61it/s]
epoch 23 | valid.f_iou 0.40095001459121704, valid.f_f-score 0.70449: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 23 | valid.f_iou 0.40095001459121704, valid.f_f-score 0.70449: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 23 | valid.f_iou 0.41324999928474426, valid.f_f-score 0.6927: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 23 | valid.f_iou 0.41324999928474426, valid.f_f-score 0.6927: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 23 | valid.f_iou 0.40801000595092773, valid.f_f-score 0.69977: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 23 | valid.f_iou 0.40801000595092773, valid.f_f-score 0.69977: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.09it/s]
epoch 23 | valid.f_iou 0.4125500023365021, valid.f_f-score 0.69351: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 23 | valid.f_iou 0.4125500023365021, valid.f_f-score 0.69351: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 23 | valid.f_iou 0.42381998896598816, valid.f_f-score 0.70913: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.25it/s]
epoch 23 | valid.f_iou 0.42381998896598816, valid.f_f-score 0.70913: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.38it/s]
epoch 23 | valid.f_iou 0.4360100030899048, valid.f_f-score 0.72269: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 23 | valid.f_iou 0.4360100030899048, valid.f_f-score 0.72269: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 23 | valid.f_iou 0.41863998770713806, valid.f_f-score 0.70467: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 23 | valid.f_iou 0.41863998770713806, valid.f_f-score 0.70467: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 23 | valid.f_iou 0.4304800033569336, valid.f_f-score 0.70832: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 23 | valid.f_iou 0.4304800033569336, valid.f_f-score 0.70832: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 23 | valid.f_iou 0.4374000132083893, valid.f_f-score 0.70605: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 23 | valid.f_iou 0.4374000132083893, valid.f_f-score 0.70605: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 23 | valid.f_iou 0.4374000132083893, valid.f_f-score 0.70605: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 23 | valid.f_iou 0.7501400113105774, valid.f_f-score 0.75105: 0%| | 0/16 [00:04, ?it/s]
epoch 23 | valid.f_iou 0.7501400113105774, valid.f_f-score 0.75105: 6%|█▉ | 1/16 [00:04<01:11, 4.79s/it]
epoch 23 | valid.f_iou 0.8089100122451782, valid.f_f-score 0.85147: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 23 | valid.f_iou 0.8089100122451782, valid.f_f-score 0.85147: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 23 | valid.f_iou 0.7145599722862244, valid.f_f-score 0.7994: 12%|████ | 2/16 [00:05<00:31, 2.25s/it]
epoch 23 | valid.f_iou 0.7145599722862244, valid.f_f-score 0.7994: 19%|██████ | 3/16 [00:05<00:18, 1.43s/it]
epoch 23 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.75834: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 23 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.75834: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 23 | valid.f_iou 0.6680499911308289, valid.f_f-score 0.74228: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 23 | valid.f_iou 0.6680499911308289, valid.f_f-score 0.74228: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 23 | valid.f_iou 0.6292700171470642, valid.f_f-score 0.71289: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 23 | valid.f_iou 0.6292700171470642, valid.f_f-score 0.71289: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 23 | valid.f_iou 0.6133800148963928, valid.f_f-score 0.70826: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 23 | valid.f_iou 0.6133800148963928, valid.f_f-score 0.70826: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 23 | valid.f_iou 0.6137099862098694, valid.f_f-score 0.71859: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 23 | valid.f_iou 0.6137099862098694, valid.f_f-score 0.71859: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.80it/s]
epoch 23 | valid.f_iou 0.6390600204467773, valid.f_f-score 0.73906: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 23 | valid.f_iou 0.6390600204467773, valid.f_f-score 0.73906: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 23 | valid.f_iou 0.6561599969863892, valid.f_f-score 0.75734: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 23 | valid.f_iou 0.6561599969863892, valid.f_f-score 0.75734: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.19it/s]
epoch 23 | valid.f_iou 0.6534299850463867, valid.f_f-score 0.74767: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 23 | valid.f_iou 0.6534299850463867, valid.f_f-score 0.74767: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 23 | valid.f_iou 0.66389000415802, valid.f_f-score 0.75835: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.32it/s]
epoch 23 | valid.f_iou 0.66389000415802, valid.f_f-score 0.75835: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.43it/s]
epoch 23 | valid.f_iou 0.6771100163459778, valid.f_f-score 0.76958: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 23 | valid.f_iou 0.6771100163459778, valid.f_f-score 0.76958: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 23 | valid.f_iou 0.6647199988365173, valid.f_f-score 0.76259: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 23 | valid.f_iou 0.6647199988365173, valid.f_f-score 0.76259: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 23 | valid.f_iou 0.669950008392334, valid.f_f-score 0.76933: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.58it/s]
epoch 23 | valid.f_iou 0.669950008392334, valid.f_f-score 0.76933: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.64it/s]
epoch 23 | valid.f_iou 0.6736900210380554, valid.f_f-score 0.77223: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 23 | valid.f_iou 0.6736900210380554, valid.f_f-score 0.77223: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 23 | valid.f_iou 0.6736900210380554, valid.f_f-score 0.77223: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 23 | valid.f_iou 0.7501400113105774, valid.f_f-score 0.75105: 0%| | 0/16 [00:04, ?it/s]
epoch 23 | valid.f_iou 0.7501400113105774, valid.f_f-score 0.75105: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 23 | valid.f_iou 0.8089100122451782, valid.f_f-score 0.85147: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 23 | valid.f_iou 0.8089100122451782, valid.f_f-score 0.85147: 12%|███▉ | 2/16 [00:04<00:29, 2.12s/it]
epoch 23 | valid.f_iou 0.7145599722862244, valid.f_f-score 0.7994: 12%|████ | 2/16 [00:05<00:29, 2.12s/it]
epoch 23 | valid.f_iou 0.7145599722862244, valid.f_f-score 0.7994: 19%|██████ | 3/16 [00:05<00:17, 1.33s/it]
epoch 23 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.75834: 19%|█████▊ | 3/16 [00:05<00:17, 1.33s/it]
epoch 23 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.75834: 25%|███████▊ | 4/16 [00:05<00:11, 1.05it/s]
epoch 23 | valid.f_iou 0.6680499911308289, valid.f_f-score 0.74228: 25%|███████▊ | 4/16 [00:06<00:11, 1.05it/s]
epoch 23 | valid.f_iou 0.6680499911308289, valid.f_f-score 0.74228: 31%|█████████▋ | 5/16 [00:06<00:08, 1.35it/s]
epoch 23 | valid.f_iou 0.6292700171470642, valid.f_f-score 0.71289: 31%|█████████▋ | 5/16 [00:06<00:08, 1.35it/s]
epoch 23 | valid.f_iou 0.6292700171470642, valid.f_f-score 0.71289: 38%|███████████▋ | 6/16 [00:06<00:06, 1.62it/s]
epoch 23 | valid.f_iou 0.6133800148963928, valid.f_f-score 0.70826: 38%|███████████▋ | 6/16 [00:06<00:06, 1.62it/s]
epoch 23 | valid.f_iou 0.6133800148963928, valid.f_f-score 0.70826: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.88it/s]
epoch 23 | valid.f_iou 0.6137099862098694, valid.f_f-score 0.71859: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.88it/s]
epoch 23 | valid.f_iou 0.6137099862098694, valid.f_f-score 0.71859: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.09it/s]
epoch 23 | valid.f_iou 0.6390600204467773, valid.f_f-score 0.73906: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.09it/s]
epoch 23 | valid.f_iou 0.6390600204467773, valid.f_f-score 0.73906: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.28it/s]
epoch 23 | valid.f_iou 0.6561599969863892, valid.f_f-score 0.75734: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.28it/s]
epoch 23 | valid.f_iou 0.6561599969863892, valid.f_f-score 0.75734: 62%|██████████████████▊ | 10/16 [00:07<00:02, 2.40it/s]
epoch 23 | valid.f_iou 0.6534299850463867, valid.f_f-score 0.74767: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.40it/s]
epoch 23 | valid.f_iou 0.6534299850463867, valid.f_f-score 0.74767: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.49it/s]
epoch 23 | valid.f_iou 0.66389000415802, valid.f_f-score 0.75835: 69%|██████████████████████ | 11/16 [00:08<00:02, 2.49it/s]
epoch 23 | valid.f_iou 0.66389000415802, valid.f_f-score 0.75835: 75%|████████████████████████ | 12/16 [00:08<00:01, 2.56it/s]
epoch 23 | valid.f_iou 0.6734600067138672, valid.f_f-score 0.76616: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.56it/s]
epoch 23 | valid.f_iou 0.6734600067138672, valid.f_f-score 0.76616: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 23 | valid.f_iou 0.6582300066947937, valid.f_f-score 0.75637: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 23 | valid.f_iou 0.6582300066947937, valid.f_f-score 0.75637: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 23 | valid.f_iou 0.6639000177383423, valid.f_f-score 0.76352: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 23 | valid.f_iou 0.6639000177383423, valid.f_f-score 0.76352: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.68it/s]
epoch 23 | valid.f_iou 0.6682900190353394, valid.f_f-score 0.76679: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 23 | valid.f_iou 0.6682900190353394, valid.f_f-score 0.76679: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.71it/s]
epoch 23 | valid.f_iou 0.6682900190353394, valid.f_f-score 0.76679: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.58it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 24 | loss 0.3628670871257782, f_iou 0.0: 0%| | 0/74 [00:05, ?it/s]
epoch 24 | loss 0.3628670871257782, f_iou 0.0: 1%|▋ | 1/74 [00:05<06:39, 5.47s/it]
epoch 24 | loss 1.8070076704025269, f_iou 0.321286678314209: 1%|▌ | 1/74 [00:06<06:39, 5.47s/it]
epoch 24 | loss 1.8070076704025269, f_iou 0.321286678314209: 3%|█ | 2/74 [00:06<03:17, 2.75s/it]
epoch 24 | loss 7.226912975311279, f_iou 0.26260972023010254: 3%|█ | 2/74 [00:07<03:17, 2.75s/it]
epoch 24 | loss 7.226912975311279, f_iou 0.26260972023010254: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 24 | loss 1.2332520484924316, f_iou 0.4199438691139221: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 24 | loss 1.2332520484924316, f_iou 0.4199438691139221: 5%|██ | 4/74 [00:07<01:41, 1.46s/it]
epoch 24 | loss 6.518944263458252, f_iou 0.3659948408603668: 5%|██ | 4/74 [00:08<01:41, 1.46s/it]
epoch 24 | loss 6.518944263458252, f_iou 0.3659948408603668: 7%|██▌ | 5/74 [00:08<01:24, 1.22s/it]
epoch 24 | loss 0.6078695058822632, f_iou 0.4656991958618164: 7%|██▌ | 5/74 [00:09<01:24, 1.22s/it]
epoch 24 | loss 0.6078695058822632, f_iou 0.4656991958618164: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 24 | loss 2.2801501750946045, f_iou 0.44024309515953064: 8%|██▉ | 6/74 [00:10<01:13, 1.08s/it]
epoch 24 | loss 2.2801501750946045, f_iou 0.44024309515953064: 9%|███▍ | 7/74 [00:10<01:05, 1.02it/s]
epoch 24 | loss 11.79766845703125, f_iou 0.507675051689148: 9%|███▋ | 7/74 [00:11<01:05, 1.02it/s]
epoch 24 | loss 11.79766845703125, f_iou 0.507675051689148: 11%|████▏ | 8/74 [00:11<01:00, 1.08it/s]
epoch 24 | loss 3.3178815841674805, f_iou 0.4845696687698364: 11%|████ | 8/74 [00:11<01:00, 1.08it/s]
epoch 24 | loss 3.3178815841674805, f_iou 0.4845696687698364: 12%|████▌ | 9/74 [00:11<00:57, 1.13it/s]
epoch 24 | loss 3.426259756088257, f_iou 0.4914860427379608: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 24 | loss 3.426259756088257, f_iou 0.4914860427379608: 14%|█████ | 10/74 [00:12<00:54, 1.18it/s]
epoch 24 | loss 0.6777039766311646, f_iou 0.5301694273948669: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 24 | loss 0.6777039766311646, f_iou 0.5301694273948669: 15%|█████▎ | 11/74 [00:13<00:52, 1.21it/s]
epoch 24 | loss 1.0780094861984253, f_iou 0.4864901304244995: 15%|█████▎ | 11/74 [00:14<00:52, 1.21it/s]
epoch 24 | loss 1.0780094861984253, f_iou 0.4864901304244995: 16%|█████▊ | 12/74 [00:14<00:49, 1.26it/s]
epoch 24 | loss 1.7416973114013672, f_iou 0.4607071280479431: 16%|█████▊ | 12/74 [00:14<00:49, 1.26it/s]
epoch 24 | loss 1.7416973114013672, f_iou 0.4607071280479431: 18%|██████▎ | 13/74 [00:14<00:47, 1.29it/s]
epoch 24 | loss 3.865645408630371, f_iou 0.46847134828567505: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 24 | loss 3.865645408630371, f_iou 0.46847134828567505: 19%|██████▊ | 14/74 [00:15<00:45, 1.31it/s]
epoch 24 | loss 0.9215054512023926, f_iou 0.4569540023803711: 19%|██████▊ | 14/74 [00:16<00:45, 1.31it/s]
epoch 24 | loss 0.9215054512023926, f_iou 0.4569540023803711: 20%|███████▎ | 15/74 [00:16<00:44, 1.33it/s]
epoch 24 | loss 0.9396210312843323, f_iou 0.4831778109073639: 20%|███████▎ | 15/74 [00:17<00:44, 1.33it/s]
epoch 24 | loss 0.9396210312843323, f_iou 0.4831778109073639: 22%|███████▊ | 16/74 [00:17<00:43, 1.35it/s]
epoch 24 | loss 2.2232446670532227, f_iou 0.49715176224708557: 22%|███████▌ | 16/74 [00:17<00:43, 1.35it/s]
epoch 24 | loss 2.2232446670532227, f_iou 0.49715176224708557: 23%|████████ | 17/74 [00:17<00:42, 1.35it/s]
epoch 24 | loss 1.1457420587539673, f_iou 0.5152240991592407: 23%|████████▎ | 17/74 [00:18<00:42, 1.35it/s]
epoch 24 | loss 1.1457420587539673, f_iou 0.5152240991592407: 24%|████████▊ | 18/74 [00:18<00:41, 1.35it/s]
epoch 24 | loss 2.216123342514038, f_iou 0.5180694460868835: 24%|█████████ | 18/74 [00:19<00:41, 1.35it/s]
epoch 24 | loss 2.216123342514038, f_iou 0.5180694460868835: 26%|█████████▌ | 19/74 [00:19<00:40, 1.36it/s]
epoch 24 | loss 1.9095088243484497, f_iou 0.5023533701896667: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 24 | loss 1.9095088243484497, f_iou 0.5023533701896667: 27%|█████████▋ | 20/74 [00:20<00:39, 1.36it/s]
epoch 24 | loss 0.7610673904418945, f_iou 0.4790535867214203: 27%|█████████▋ | 20/74 [00:20<00:39, 1.36it/s]
epoch 24 | loss 0.7610673904418945, f_iou 0.4790535867214203: 28%|██████████▏ | 21/74 [00:20<00:38, 1.37it/s]
epoch 24 | loss 4.661715030670166, f_iou 0.4933301508426666: 28%|██████████▌ | 21/74 [00:21<00:38, 1.37it/s]
epoch 24 | loss 4.661715030670166, f_iou 0.4933301508426666: 30%|███████████ | 22/74 [00:21<00:37, 1.38it/s]
epoch 24 | loss 4.3954548835754395, f_iou 0.4896794557571411: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 24 | loss 4.3954548835754395, f_iou 0.4896794557571411: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 24 | loss 3.0078418254852295, f_iou 0.47267159819602966: 31%|██████████▉ | 23/74 [00:22<00:37, 1.37it/s]
epoch 24 | loss 3.0078418254852295, f_iou 0.47267159819602966: 32%|███████████▎ | 24/74 [00:22<00:36, 1.38it/s]
epoch 24 | loss 1.6032023429870605, f_iou 0.4801207482814789: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 24 | loss 1.6032023429870605, f_iou 0.4801207482814789: 34%|████████████▏ | 25/74 [00:23<00:35, 1.37it/s]
epoch 24 | loss 3.229879379272461, f_iou 0.47616642713546753: 34%|████████████▏ | 25/74 [00:24<00:35, 1.37it/s]
epoch 24 | loss 3.229879379272461, f_iou 0.47616642713546753: 35%|████████████▋ | 26/74 [00:24<00:34, 1.37it/s]
epoch 24 | loss 1.012434720993042, f_iou 0.4905208647251129: 35%|█████████████ | 26/74 [00:25<00:34, 1.37it/s]
epoch 24 | loss 1.012434720993042, f_iou 0.4905208647251129: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.37it/s]
epoch 24 | loss 2.4202523231506348, f_iou 0.48847097158432007: 36%|████████████▊ | 27/74 [00:25<00:34, 1.37it/s]
epoch 24 | loss 2.4202523231506348, f_iou 0.48847097158432007: 38%|█████████████▏ | 28/74 [00:25<00:33, 1.38it/s]
epoch 24 | loss 1.588592290878296, f_iou 0.49226149916648865: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.38it/s]
epoch 24 | loss 1.588592290878296, f_iou 0.49226149916648865: 39%|██████████████ | 29/74 [00:26<00:32, 1.38it/s]
epoch 24 | loss 3.309553623199463, f_iou 0.48491355776786804: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 24 | loss 3.309553623199463, f_iou 0.48491355776786804: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 24 | loss 3.2795279026031494, f_iou 0.4967647194862366: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 24 | loss 3.2795279026031494, f_iou 0.4967647194862366: 42%|███████████████ | 31/74 [00:27<00:30, 1.39it/s]
epoch 24 | loss 2.7078027725219727, f_iou 0.49541300535202026: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.39it/s]
epoch 24 | loss 2.7078027725219727, f_iou 0.49541300535202026: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.39it/s]
epoch 24 | loss 4.135328769683838, f_iou 0.4824146628379822: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 24 | loss 4.135328769683838, f_iou 0.4824146628379822: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.39it/s]
epoch 24 | loss 0.6731588840484619, f_iou 0.46851783990859985: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 24 | loss 0.6731588840484619, f_iou 0.46851783990859985: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 24 | loss 9.835655212402344, f_iou 0.45872852206230164: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 24 | loss 9.835655212402344, f_iou 0.45872852206230164: 47%|█████████████████ | 35/74 [00:30<00:28, 1.39it/s]
epoch 24 | loss 1.4879143238067627, f_iou 0.4625770151615143: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 24 | loss 1.4879143238067627, f_iou 0.4625770151615143: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 24 | loss 0.4157196879386902, f_iou 0.47586312890052795: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 24 | loss 0.4157196879386902, f_iou 0.47586312890052795: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 24 | loss 1.5272400379180908, f_iou 0.4776986241340637: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 24 | loss 1.5272400379180908, f_iou 0.4776986241340637: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 24 | loss 5.9206671714782715, f_iou 0.47868072986602783: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.39it/s]
epoch 24 | loss 5.9206671714782715, f_iou 0.47868072986602783: 53%|██████████████████▍ | 39/74 [00:33<00:25, 1.39it/s]
epoch 24 | loss 2.9173922538757324, f_iou 0.4793723523616791: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 24 | loss 2.9173922538757324, f_iou 0.4793723523616791: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 24 | loss 3.224360466003418, f_iou 0.47666841745376587: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 24 | loss 3.224360466003418, f_iou 0.47666841745376587: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 24 | loss 1.3272278308868408, f_iou 0.4734615683555603: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 24 | loss 1.3272278308868408, f_iou 0.4734615683555603: 57%|████████████████████▍ | 42/74 [00:35<00:22, 1.39it/s]
epoch 24 | loss 2.5206093788146973, f_iou 0.467774361371994: 57%|█████████████████████ | 42/74 [00:36<00:22, 1.39it/s]
epoch 24 | loss 2.5206093788146973, f_iou 0.467774361371994: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.39it/s]
epoch 24 | loss 1.8207671642303467, f_iou 0.4690764844417572: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 24 | loss 1.8207671642303467, f_iou 0.4690764844417572: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 24 | loss 4.7737274169921875, f_iou 0.46000558137893677: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.39it/s]
epoch 24 | loss 4.7737274169921875, f_iou 0.46000558137893677: 61%|█████████████████████▎ | 45/74 [00:38<00:20, 1.39it/s]
epoch 24 | loss 3.5289955139160156, f_iou 0.4649984538555145: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.39it/s]
epoch 24 | loss 3.5289955139160156, f_iou 0.4649984538555145: 62%|██████████████████████▍ | 46/74 [00:38<00:20, 1.39it/s]
epoch 24 | loss 2.4407882690429688, f_iou 0.46465975046157837: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.39it/s]
epoch 24 | loss 2.4407882690429688, f_iou 0.46465975046157837: 64%|██████████████████████▏ | 47/74 [00:39<00:19, 1.39it/s]
epoch 24 | loss 2.114637613296509, f_iou 0.46730515360832214: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 24 | loss 2.114637613296509, f_iou 0.46730515360832214: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 24 | loss 0.9139967560768127, f_iou 0.47665709257125854: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 24 | loss 0.9139967560768127, f_iou 0.47665709257125854: 66%|███████████████████████▏ | 49/74 [00:40<00:18, 1.36it/s]
epoch 24 | loss 3.025143623352051, f_iou 0.47220978140830994: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.36it/s]
epoch 24 | loss 3.025143623352051, f_iou 0.47220978140830994: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.35it/s]
epoch 24 | loss 0.6986640691757202, f_iou 0.48137545585632324: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.35it/s]
epoch 24 | loss 0.6986640691757202, f_iou 0.48137545585632324: 69%|████████████████████████ | 51/74 [00:42<00:17, 1.34it/s]
epoch 24 | loss 3.7913146018981934, f_iou 0.4820263981819153: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.34it/s]
epoch 24 | loss 3.7913146018981934, f_iou 0.4820263981819153: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.33it/s]
epoch 24 | loss 5.145747184753418, f_iou 0.47295984625816345: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.33it/s]
epoch 24 | loss 5.145747184753418, f_iou 0.47295984625816345: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.32it/s]
epoch 24 | loss 2.0370211601257324, f_iou 0.4806104600429535: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.32it/s]
epoch 24 | loss 2.0370211601257324, f_iou 0.4806104600429535: 73%|██████████████████████████▎ | 54/74 [00:44<00:15, 1.31it/s]
epoch 24 | loss 4.243314266204834, f_iou 0.48886558413505554: 73%|██████████████████████████▎ | 54/74 [00:45<00:15, 1.31it/s]
epoch 24 | loss 4.243314266204834, f_iou 0.48886558413505554: 74%|██████████████████████████▊ | 55/74 [00:45<00:14, 1.32it/s]
epoch 24 | loss 2.2203786373138428, f_iou 0.4863121807575226: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.32it/s]
epoch 24 | loss 2.2203786373138428, f_iou 0.4863121807575226: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.34it/s]
epoch 24 | loss 1.5034037828445435, f_iou 0.47997748851776123: 76%|██████████████████████████▍ | 56/74 [00:46<00:13, 1.34it/s]
epoch 24 | loss 1.5034037828445435, f_iou 0.47997748851776123: 77%|██████████████████████████▉ | 57/74 [00:46<00:12, 1.36it/s]
epoch 24 | loss 1.5378496646881104, f_iou 0.471854567527771: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.36it/s]
epoch 24 | loss 1.5378496646881104, f_iou 0.471854567527771: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.37it/s]
epoch 24 | loss 5.748785018920898, f_iou 0.4702911972999573: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.37it/s]
epoch 24 | loss 5.748785018920898, f_iou 0.4702911972999573: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.38it/s]
epoch 24 | loss 0.9451197385787964, f_iou 0.4777787923812866: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 24 | loss 0.9451197385787964, f_iou 0.4777787923812866: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 24 | loss 2.9395570755004883, f_iou 0.4767257273197174: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 24 | loss 2.9395570755004883, f_iou 0.4767257273197174: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.38it/s]
epoch 24 | loss 1.5108877420425415, f_iou 0.47493571043014526: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.38it/s]
epoch 24 | loss 1.5108877420425415, f_iou 0.47493571043014526: 84%|█████████████████████████████▎ | 62/74 [00:50<00:08, 1.39it/s]
epoch 24 | loss 5.019602298736572, f_iou 0.46879148483276367: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 24 | loss 5.019602298736572, f_iou 0.46879148483276367: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 24 | loss 0.7849327921867371, f_iou 0.4722321629524231: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 24 | loss 0.7849327921867371, f_iou 0.4722321629524231: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 24 | loss 2.5334830284118652, f_iou 0.4728007912635803: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 24 | loss 2.5334830284118652, f_iou 0.4728007912635803: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 24 | loss 1.6873176097869873, f_iou 0.47791722416877747: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.39it/s]
epoch 24 | loss 1.6873176097869873, f_iou 0.47791722416877747: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.39it/s]
epoch 24 | loss 1.6697862148284912, f_iou 0.4818992018699646: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 24 | loss 1.6697862148284912, f_iou 0.4818992018699646: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 24 | loss 1.733552098274231, f_iou 0.4803175628185272: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 24 | loss 1.733552098274231, f_iou 0.4803175628185272: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.39it/s]
epoch 24 | loss 1.350311279296875, f_iou 0.47994381189346313: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 24 | loss 1.350311279296875, f_iou 0.47994381189346313: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.39it/s]
epoch 24 | loss 2.7260212898254395, f_iou 0.4819549024105072: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 24 | loss 2.7260212898254395, f_iou 0.4819549024105072: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 24 | loss 1.5300248861312866, f_iou 0.48661530017852783: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 24 | loss 1.5300248861312866, f_iou 0.48661530017852783: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 24 | loss 3.7159199714660645, f_iou 0.484014630317688: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 24 | loss 3.7159199714660645, f_iou 0.484014630317688: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.39it/s]
epoch 24 | loss 2.0195677280426025, f_iou 0.4873782992362976: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 24 | loss 2.0195677280426025, f_iou 0.4873782992362976: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 24 | loss 3.229573965072632, f_iou 0.49239757657051086: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 24 | loss 3.229573965072632, f_iou 0.49239757657051086: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 24 | loss 3.229573965072632, f_iou 0.49239757657051086: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 24 | valid.f_iou 0.7024400234222412, valid.f_f-score 0.74361: 0%| | 0/16 [00:05, ?it/s]
epoch 24 | valid.f_iou 0.7024400234222412, valid.f_f-score 0.74361: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 24 | valid.f_iou 0.5529099702835083, valid.f_f-score 0.7321: 6%|██ | 1/16 [00:05<01:23, 5.54s/it]
epoch 24 | valid.f_iou 0.5529099702835083, valid.f_f-score 0.7321: 12%|████ | 2/16 [00:06<00:35, 2.55s/it]
epoch 24 | valid.f_iou 0.4684300124645233, valid.f_f-score 0.69743: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 24 | valid.f_iou 0.4684300124645233, valid.f_f-score 0.69743: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 24 | valid.f_iou 0.5222300291061401, valid.f_f-score 0.72478: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 24 | valid.f_iou 0.5222300291061401, valid.f_f-score 0.72478: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 24 | valid.f_iou 0.48956000804901123, valid.f_f-score 0.71806: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 24 | valid.f_iou 0.48956000804901123, valid.f_f-score 0.71806: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 24 | valid.f_iou 0.46654999256134033, valid.f_f-score 0.69076: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 24 | valid.f_iou 0.46654999256134033, valid.f_f-score 0.69076: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 24 | valid.f_iou 0.4923099875450134, valid.f_f-score 0.71145: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 24 | valid.f_iou 0.4923099875450134, valid.f_f-score 0.71145: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 24 | valid.f_iou 0.47071999311447144, valid.f_f-score 0.69706: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 24 | valid.f_iou 0.47071999311447144, valid.f_f-score 0.69706: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 24 | valid.f_iou 0.4718399941921234, valid.f_f-score 0.6837: 50%|████████████████ | 8/16 [00:09<00:04, 1.72it/s]
epoch 24 | valid.f_iou 0.4718399941921234, valid.f_f-score 0.6837: 56%|██████████████████ | 9/16 [00:09<00:03, 1.87it/s]
epoch 24 | valid.f_iou 0.4704799950122833, valid.f_f-score 0.69258: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 24 | valid.f_iou 0.4704799950122833, valid.f_f-score 0.69258: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 24 | valid.f_iou 0.4784899950027466, valid.f_f-score 0.68915: 62%|██████████████████▊ | 10/16 [00:10<00:03, 1.98it/s]
epoch 24 | valid.f_iou 0.4784899950027466, valid.f_f-score 0.68915: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 24 | valid.f_iou 0.5022799968719482, valid.f_f-score 0.70749: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 24 | valid.f_iou 0.5022799968719482, valid.f_f-score 0.70749: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 24 | valid.f_iou 0.5120099782943726, valid.f_f-score 0.72246: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 24 | valid.f_iou 0.5120099782943726, valid.f_f-score 0.72246: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.36it/s]
epoch 24 | valid.f_iou 0.4939500093460083, valid.f_f-score 0.70711: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.36it/s]
epoch 24 | valid.f_iou 0.4939500093460083, valid.f_f-score 0.70711: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.46it/s]
epoch 24 | valid.f_iou 0.5000399947166443, valid.f_f-score 0.70936: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.46it/s]
epoch 24 | valid.f_iou 0.5000399947166443, valid.f_f-score 0.70936: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 24 | valid.f_iou 0.5079799890518188, valid.f_f-score 0.70872: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 24 | valid.f_iou 0.5079799890518188, valid.f_f-score 0.70872: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 24 | valid.f_iou 0.5079799890518188, valid.f_f-score 0.70872: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 24 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.67297: 0%| | 0/16 [00:05, ?it/s]
epoch 24 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.67297: 6%|█▉ | 1/16 [00:05<01:15, 5.06s/it]
epoch 24 | valid.f_iou 0.7968800067901611, valid.f_f-score 0.80767: 6%|█▉ | 1/16 [00:05<01:15, 5.06s/it]
epoch 24 | valid.f_iou 0.7968800067901611, valid.f_f-score 0.80767: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 24 | valid.f_iou 0.6661999821662903, valid.f_f-score 0.75545: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 24 | valid.f_iou 0.6661999821662903, valid.f_f-score 0.75545: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 24 | valid.f_iou 0.6532099843025208, valid.f_f-score 0.72413: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 24 | valid.f_iou 0.6532099843025208, valid.f_f-score 0.72413: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 24 | valid.f_iou 0.6430400013923645, valid.f_f-score 0.73561: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 24 | valid.f_iou 0.6430400013923645, valid.f_f-score 0.73561: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 24 | valid.f_iou 0.6080800294876099, valid.f_f-score 0.71388: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 24 | valid.f_iou 0.6080800294876099, valid.f_f-score 0.71388: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 24 | valid.f_iou 0.6211699843406677, valid.f_f-score 0.72897: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 24 | valid.f_iou 0.6211699843406677, valid.f_f-score 0.72897: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 24 | valid.f_iou 0.6081799864768982, valid.f_f-score 0.7152: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 24 | valid.f_iou 0.6081799864768982, valid.f_f-score 0.7152: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 24 | valid.f_iou 0.6338300108909607, valid.f_f-score 0.73593: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 24 | valid.f_iou 0.6338300108909607, valid.f_f-score 0.73593: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 24 | valid.f_iou 0.6513400077819824, valid.f_f-score 0.75362: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 24 | valid.f_iou 0.6513400077819824, valid.f_f-score 0.75362: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 24 | valid.f_iou 0.6446800231933594, valid.f_f-score 0.73926: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 24 | valid.f_iou 0.6446800231933594, valid.f_f-score 0.73926: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 24 | valid.f_iou 0.6533799767494202, valid.f_f-score 0.74846: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 24 | valid.f_iou 0.6533799767494202, valid.f_f-score 0.74846: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.33it/s]
epoch 24 | valid.f_iou 0.6680200099945068, valid.f_f-score 0.7593: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.33it/s]
epoch 24 | valid.f_iou 0.6680200099945068, valid.f_f-score 0.7593: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.41it/s]
epoch 24 | valid.f_iou 0.6562399864196777, valid.f_f-score 0.75321: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.41it/s]
epoch 24 | valid.f_iou 0.6562399864196777, valid.f_f-score 0.75321: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 24 | valid.f_iou 0.649940013885498, valid.f_f-score 0.74908: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.50it/s]
epoch 24 | valid.f_iou 0.649940013885498, valid.f_f-score 0.74908: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.56it/s]
epoch 24 | valid.f_iou 0.6539199948310852, valid.f_f-score 0.75437: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 24 | valid.f_iou 0.6539199948310852, valid.f_f-score 0.75437: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 24 | valid.f_iou 0.6539199948310852, valid.f_f-score 0.75437: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 24 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.67297: 0%| | 0/16 [00:05, ?it/s]
epoch 24 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.67297: 6%|█▉ | 1/16 [00:05<01:16, 5.13s/it]
epoch 24 | valid.f_iou 0.7968800067901611, valid.f_f-score 0.80767: 6%|█▉ | 1/16 [00:05<01:16, 5.13s/it]
epoch 24 | valid.f_iou 0.7968800067901611, valid.f_f-score 0.80767: 12%|███▉ | 2/16 [00:05<00:33, 2.38s/it]
epoch 24 | valid.f_iou 0.6661999821662903, valid.f_f-score 0.75545: 12%|███▉ | 2/16 [00:06<00:33, 2.38s/it]
epoch 24 | valid.f_iou 0.6661999821662903, valid.f_f-score 0.75545: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 24 | valid.f_iou 0.6532999873161316, valid.f_f-score 0.72413: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 24 | valid.f_iou 0.6532999873161316, valid.f_f-score 0.72413: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 24 | valid.f_iou 0.6431099772453308, valid.f_f-score 0.73561: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 24 | valid.f_iou 0.6431099772453308, valid.f_f-score 0.73561: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 24 | valid.f_iou 0.6081399917602539, valid.f_f-score 0.71388: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 24 | valid.f_iou 0.6081399917602539, valid.f_f-score 0.71388: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 24 | valid.f_iou 0.6212199926376343, valid.f_f-score 0.72897: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 24 | valid.f_iou 0.6212199926376343, valid.f_f-score 0.72897: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 24 | valid.f_iou 0.6082199811935425, valid.f_f-score 0.7152: 44%|██████████████ | 7/16 [00:08<00:05, 1.64it/s]
epoch 24 | valid.f_iou 0.6082199811935425, valid.f_f-score 0.7152: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 24 | valid.f_iou 0.633870005607605, valid.f_f-score 0.73593: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 24 | valid.f_iou 0.633870005607605, valid.f_f-score 0.73593: 56%|██████████████████ | 9/16 [00:08<00:03, 1.98it/s]
epoch 24 | valid.f_iou 0.6513800024986267, valid.f_f-score 0.75362: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 24 | valid.f_iou 0.6513800024986267, valid.f_f-score 0.75362: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.11it/s]
epoch 24 | valid.f_iou 0.6447200179100037, valid.f_f-score 0.73926: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 24 | valid.f_iou 0.6447200179100037, valid.f_f-score 0.73926: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 24 | valid.f_iou 0.653410017490387, valid.f_f-score 0.74846: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.26it/s]
epoch 24 | valid.f_iou 0.653410017490387, valid.f_f-score 0.74846: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.38it/s]
epoch 24 | valid.f_iou 0.6647700071334839, valid.f_f-score 0.75716: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 24 | valid.f_iou 0.6647700071334839, valid.f_f-score 0.75716: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 24 | valid.f_iou 0.6532300114631653, valid.f_f-score 0.75123: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 24 | valid.f_iou 0.6532300114631653, valid.f_f-score 0.75123: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 24 | valid.f_iou 0.647130012512207, valid.f_f-score 0.74724: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 24 | valid.f_iou 0.647130012512207, valid.f_f-score 0.74724: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 24 | valid.f_iou 0.6517599821090698, valid.f_f-score 0.75265: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 24 | valid.f_iou 0.6517599821090698, valid.f_f-score 0.75265: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 24 | valid.f_iou 0.6517599821090698, valid.f_f-score 0.75265: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 25 | loss 1.9725837707519531, f_iou 0.6681980490684509: 0%| | 0/74 [00:05, ?it/s]
epoch 25 | loss 1.9725837707519531, f_iou 0.6681980490684509: 1%|▌ | 1/74 [00:05<07:08, 5.87s/it]
epoch 25 | loss 2.5319082736968994, f_iou 0.5607191324234009: 1%|▌ | 1/74 [00:06<07:08, 5.87s/it]
epoch 25 | loss 2.5319082736968994, f_iou 0.5607191324234009: 3%|█ | 2/74 [00:06<03:31, 2.94s/it]
epoch 25 | loss 2.145164728164673, f_iou 0.6085614562034607: 3%|█ | 2/74 [00:07<03:31, 2.94s/it]
epoch 25 | loss 2.145164728164673, f_iou 0.6085614562034607: 4%|█▌ | 3/74 [00:07<02:20, 1.98s/it]
epoch 25 | loss 4.353179931640625, f_iou 0.589384913444519: 4%|█▌ | 3/74 [00:08<02:20, 1.98s/it]
epoch 25 | loss 4.353179931640625, f_iou 0.589384913444519: 5%|██ | 4/74 [00:08<01:45, 1.51s/it]
epoch 25 | loss 0.453125, f_iou 0.6549769639968872: 5%|██▌ | 4/74 [00:09<01:45, 1.51s/it]
epoch 25 | loss 0.453125, f_iou 0.6549769639968872: 7%|███▏ | 5/74 [00:09<01:25, 1.24s/it]
epoch 25 | loss 2.7867751121520996, f_iou 0.6535772085189819: 7%|██▌ | 5/74 [00:10<01:25, 1.24s/it]
epoch 25 | loss 2.7867751121520996, f_iou 0.6535772085189819: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 25 | loss 3.7139272689819336, f_iou 0.5743483901023865: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 25 | loss 3.7139272689819336, f_iou 0.5743483901023865: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 25 | loss 2.1020946502685547, f_iou 0.5614926218986511: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 25 | loss 2.1020946502685547, f_iou 0.5614926218986511: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 25 | loss 1.252669095993042, f_iou 0.5894094109535217: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 25 | loss 1.252669095993042, f_iou 0.5894094109535217: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 25 | loss 2.59475040435791, f_iou 0.5547919273376465: 12%|████▋ | 9/74 [00:13<00:57, 1.14it/s]
epoch 25 | loss 2.59475040435791, f_iou 0.5547919273376465: 14%|█████▏ | 10/74 [00:13<00:53, 1.19it/s]
epoch 25 | loss 5.641504764556885, f_iou 0.54764723777771: 14%|█████▎ | 10/74 [00:13<00:53, 1.19it/s]
epoch 25 | loss 5.641504764556885, f_iou 0.54764723777771: 15%|█████▊ | 11/74 [00:13<00:51, 1.22it/s]
epoch 25 | loss 2.413198947906494, f_iou 0.5285477042198181: 15%|█████▌ | 11/74 [00:14<00:51, 1.22it/s]
epoch 25 | loss 2.413198947906494, f_iou 0.5285477042198181: 16%|██████ | 12/74 [00:14<00:49, 1.24it/s]
epoch 25 | loss 1.3407310247421265, f_iou 0.5106607675552368: 16%|█████▊ | 12/74 [00:15<00:49, 1.24it/s]
epoch 25 | loss 1.3407310247421265, f_iou 0.5106607675552368: 18%|██████▎ | 13/74 [00:15<00:48, 1.26it/s]
epoch 25 | loss 2.494269847869873, f_iou 0.4742148816585541: 18%|██████▌ | 13/74 [00:16<00:48, 1.26it/s]
epoch 25 | loss 2.494269847869873, f_iou 0.4742148816585541: 19%|███████ | 14/74 [00:16<00:47, 1.27it/s]
epoch 25 | loss 1.551265835762024, f_iou 0.44443562626838684: 19%|██████▊ | 14/74 [00:16<00:47, 1.27it/s]
epoch 25 | loss 1.551265835762024, f_iou 0.44443562626838684: 20%|███████▎ | 15/74 [00:16<00:45, 1.30it/s]
epoch 25 | loss 1.0562138557434082, f_iou 0.4612392485141754: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 25 | loss 1.0562138557434082, f_iou 0.4612392485141754: 22%|███████▊ | 16/74 [00:17<00:43, 1.33it/s]
epoch 25 | loss 2.7973504066467285, f_iou 0.47695377469062805: 22%|███████▌ | 16/74 [00:18<00:43, 1.33it/s]
epoch 25 | loss 2.7973504066467285, f_iou 0.47695377469062805: 23%|████████ | 17/74 [00:18<00:42, 1.35it/s]
epoch 25 | loss 1.9606505632400513, f_iou 0.4861140251159668: 23%|████████▎ | 17/74 [00:19<00:42, 1.35it/s]
epoch 25 | loss 1.9606505632400513, f_iou 0.4861140251159668: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 25 | loss 3.875027656555176, f_iou 0.47673091292381287: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 25 | loss 3.875027656555176, f_iou 0.47673091292381287: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 25 | loss 2.088716506958008, f_iou 0.46359220147132874: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 25 | loss 2.088716506958008, f_iou 0.46359220147132874: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 25 | loss 1.3901020288467407, f_iou 0.4818004369735718: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 25 | loss 1.3901020288467407, f_iou 0.4818004369735718: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 25 | loss 3.5511083602905273, f_iou 0.47227877378463745: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 25 | loss 3.5511083602905273, f_iou 0.47227877378463745: 30%|██████████▍ | 22/74 [00:21<00:37, 1.39it/s]
epoch 25 | loss 1.7922708988189697, f_iou 0.47946029901504517: 30%|██████████▍ | 22/74 [00:22<00:37, 1.39it/s]
epoch 25 | loss 1.7922708988189697, f_iou 0.47946029901504517: 31%|██████████▉ | 23/74 [00:22<00:36, 1.39it/s]
epoch 25 | loss 2.3580329418182373, f_iou 0.4877970218658447: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 25 | loss 2.3580329418182373, f_iou 0.4877970218658447: 32%|███████████▋ | 24/74 [00:23<00:35, 1.40it/s]
epoch 25 | loss 1.3225451707839966, f_iou 0.46880125999450684: 32%|███████████▎ | 24/74 [00:24<00:35, 1.40it/s]
epoch 25 | loss 1.3225451707839966, f_iou 0.46880125999450684: 34%|███████████▊ | 25/74 [00:24<00:35, 1.37it/s]
epoch 25 | loss 6.485830783843994, f_iou 0.4866063892841339: 34%|████████████▌ | 25/74 [00:24<00:35, 1.37it/s]
epoch 25 | loss 6.485830783843994, f_iou 0.4866063892841339: 35%|█████████████ | 26/74 [00:24<00:34, 1.37it/s]
epoch 25 | loss 2.4755520820617676, f_iou 0.46983757615089417: 35%|████████████▎ | 26/74 [00:25<00:34, 1.37it/s]
epoch 25 | loss 2.4755520820617676, f_iou 0.46983757615089417: 36%|████████████▊ | 27/74 [00:25<00:34, 1.38it/s]
epoch 25 | loss 7.010680198669434, f_iou 0.45432308316230774: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 25 | loss 7.010680198669434, f_iou 0.45432308316230774: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 25 | loss 1.108965516090393, f_iou 0.43878498673439026: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 25 | loss 1.108965516090393, f_iou 0.43878498673439026: 39%|██████████████ | 29/74 [00:26<00:32, 1.38it/s]
epoch 25 | loss 1.981162428855896, f_iou 0.44174647331237793: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 25 | loss 1.981162428855896, f_iou 0.44174647331237793: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.37it/s]
epoch 25 | loss 1.841991901397705, f_iou 0.4559990167617798: 41%|███████████████ | 30/74 [00:28<00:32, 1.37it/s]
epoch 25 | loss 1.841991901397705, f_iou 0.4559990167617798: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.37it/s]
epoch 25 | loss 8.000225067138672, f_iou 0.4437824785709381: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.37it/s]
epoch 25 | loss 8.000225067138672, f_iou 0.4437824785709381: 43%|████████████████ | 32/74 [00:29<00:30, 1.36it/s]
epoch 25 | loss 4.888898849487305, f_iou 0.4419828951358795: 43%|████████████████ | 32/74 [00:29<00:30, 1.36it/s]
epoch 25 | loss 4.888898849487305, f_iou 0.4419828951358795: 45%|████████████████▌ | 33/74 [00:29<00:30, 1.35it/s]
epoch 25 | loss 2.3648009300231934, f_iou 0.43684762716293335: 45%|███████████████▌ | 33/74 [00:30<00:30, 1.35it/s]
epoch 25 | loss 2.3648009300231934, f_iou 0.43684762716293335: 46%|████████████████ | 34/74 [00:30<00:29, 1.34it/s]
epoch 25 | loss 4.865234375, f_iou 0.43344470858573914: 46%|███████████████████▎ | 34/74 [00:31<00:29, 1.34it/s]
epoch 25 | loss 4.865234375, f_iou 0.43344470858573914: 47%|███████████████████▊ | 35/74 [00:31<00:28, 1.35it/s]
epoch 25 | loss 4.803463459014893, f_iou 0.438100129365921: 47%|█████████████████▉ | 35/74 [00:32<00:28, 1.35it/s]
epoch 25 | loss 4.803463459014893, f_iou 0.438100129365921: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.37it/s]
epoch 25 | loss 1.2764277458190918, f_iou 0.42628851532936096: 49%|█████████████████ | 36/74 [00:32<00:27, 1.37it/s]
epoch 25 | loss 1.2764277458190918, f_iou 0.42628851532936096: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.38it/s]
epoch 25 | loss 2.5939579010009766, f_iou 0.4381333291530609: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 25 | loss 2.5939579010009766, f_iou 0.4381333291530609: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.37it/s]
epoch 25 | loss 5.851633071899414, f_iou 0.42693954706192017: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.37it/s]
epoch 25 | loss 5.851633071899414, f_iou 0.42693954706192017: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.36it/s]
epoch 25 | loss 3.0995490550994873, f_iou 0.4374750554561615: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.36it/s]
epoch 25 | loss 3.0995490550994873, f_iou 0.4374750554561615: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.34it/s]
epoch 25 | loss 3.5817291736602783, f_iou 0.4437054693698883: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.34it/s]
epoch 25 | loss 3.5817291736602783, f_iou 0.4437054693698883: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.33it/s]
epoch 25 | loss 2.417262554168701, f_iou 0.45294004678726196: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.33it/s]
epoch 25 | loss 2.417262554168701, f_iou 0.45294004678726196: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.34it/s]
epoch 25 | loss 2.718186378479004, f_iou 0.44431495666503906: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.34it/s]
epoch 25 | loss 2.718186378479004, f_iou 0.44431495666503906: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.35it/s]
epoch 25 | loss 5.0843610763549805, f_iou 0.45250850915908813: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.35it/s]
epoch 25 | loss 5.0843610763549805, f_iou 0.45250850915908813: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.37it/s]
epoch 25 | loss 1.4529327154159546, f_iou 0.4461385905742645: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 25 | loss 1.4529327154159546, f_iou 0.4461385905742645: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 25 | loss 3.4238195419311523, f_iou 0.4537799656391144: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 25 | loss 3.4238195419311523, f_iou 0.4537799656391144: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 25 | loss 2.3389601707458496, f_iou 0.4550721347332001: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 25 | loss 2.3389601707458496, f_iou 0.4550721347332001: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 25 | loss 0.6301391124725342, f_iou 0.44559168815612793: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 25 | loss 0.6301391124725342, f_iou 0.44559168815612793: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 25 | loss 1.9635686874389648, f_iou 0.4493695795536041: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 25 | loss 1.9635686874389648, f_iou 0.4493695795536041: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.39it/s]
epoch 25 | loss 1.4490268230438232, f_iou 0.45721083879470825: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.39it/s]
epoch 25 | loss 1.4490268230438232, f_iou 0.45721083879470825: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 25 | loss 4.828701019287109, f_iou 0.45052164793014526: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 25 | loss 4.828701019287109, f_iou 0.45052164793014526: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 25 | loss 3.537616729736328, f_iou 0.44918519258499146: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 25 | loss 3.537616729736328, f_iou 0.44918519258499146: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 25 | loss 0.265625, f_iou 0.4561763107776642: 70%|████████████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 25 | loss 0.265625, f_iou 0.4561763107776642: 72%|████████████████████████████████▉ | 53/74 [00:44<00:15, 1.39it/s]
epoch 25 | loss 1.1419907808303833, f_iou 0.4540073573589325: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 25 | loss 1.1419907808303833, f_iou 0.4540073573589325: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 25 | loss 1.2373937368392944, f_iou 0.45242220163345337: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.39it/s]
epoch 25 | loss 1.2373937368392944, f_iou 0.45242220163345337: 74%|██████████████████████████ | 55/74 [00:45<00:13, 1.39it/s]
epoch 25 | loss 4.825040340423584, f_iou 0.4466899633407593: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 25 | loss 4.825040340423584, f_iou 0.4466899633407593: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 25 | loss 1.540266990661621, f_iou 0.4548265337944031: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 25 | loss 1.540266990661621, f_iou 0.4548265337944031: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 25 | loss 4.034022808074951, f_iou 0.45189666748046875: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 25 | loss 4.034022808074951, f_iou 0.45189666748046875: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 25 | loss 1.4171333312988281, f_iou 0.4500962197780609: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 25 | loss 1.4171333312988281, f_iou 0.4500962197780609: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 25 | loss 3.467306137084961, f_iou 0.455496221780777: 80%|██████████████████████████████▎ | 59/74 [00:49<00:10, 1.39it/s]
epoch 25 | loss 3.467306137084961, f_iou 0.455496221780777: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.39it/s]
epoch 25 | loss 1.4797089099884033, f_iou 0.44803258776664734: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.39it/s]
epoch 25 | loss 1.4797089099884033, f_iou 0.44803258776664734: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.39it/s]
epoch 25 | loss 1.4446312189102173, f_iou 0.451368123292923: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 25 | loss 1.4446312189102173, f_iou 0.451368123292923: 84%|███████████████████████████████ | 62/74 [00:50<00:08, 1.39it/s]
epoch 25 | loss 5.687371253967285, f_iou 0.4558279514312744: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 25 | loss 5.687371253967285, f_iou 0.4558279514312744: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.39it/s]
epoch 25 | loss 2.8629181385040283, f_iou 0.4536353051662445: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 25 | loss 2.8629181385040283, f_iou 0.4536353051662445: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 25 | loss 2.3197121620178223, f_iou 0.447367399930954: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 25 | loss 2.3197121620178223, f_iou 0.447367399930954: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 25 | loss 5.244809627532959, f_iou 0.44808024168014526: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 25 | loss 5.244809627532959, f_iou 0.44808024168014526: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 25 | loss 3.136958599090576, f_iou 0.4432474672794342: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 25 | loss 3.136958599090576, f_iou 0.4432474672794342: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 25 | loss 3.4259719848632812, f_iou 0.43727990984916687: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.39it/s]
epoch 25 | loss 3.4259719848632812, f_iou 0.43727990984916687: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.40it/s]
epoch 25 | loss 1.6972646713256836, f_iou 0.4436163306236267: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 25 | loss 1.6972646713256836, f_iou 0.4436163306236267: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 25 | loss 1.8226714134216309, f_iou 0.4505484700202942: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 25 | loss 1.8226714134216309, f_iou 0.4505484700202942: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 25 | loss 1.593454360961914, f_iou 0.4552772343158722: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 25 | loss 1.593454360961914, f_iou 0.4552772343158722: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 25 | loss 0.8902844786643982, f_iou 0.4567565321922302: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 25 | loss 0.8902844786643982, f_iou 0.4567565321922302: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 25 | loss 5.029013633728027, f_iou 0.45955750346183777: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 25 | loss 5.029013633728027, f_iou 0.45955750346183777: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 25 | loss 2.0473341941833496, f_iou 0.45930466055870056: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 25 | loss 2.0473341941833496, f_iou 0.45930466055870056: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 25 | loss 2.0473341941833496, f_iou 0.45930466055870056: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 25 | valid.f_iou 0.6947399973869324, valid.f_f-score 0.76122: 0%| | 0/16 [00:05, ?it/s]
epoch 25 | valid.f_iou 0.6947399973869324, valid.f_f-score 0.76122: 6%|█▉ | 1/16 [00:05<01:21, 5.41s/it]
epoch 25 | valid.f_iou 0.5816199779510498, valid.f_f-score 0.81511: 6%|█▉ | 1/16 [00:05<01:21, 5.41s/it]
epoch 25 | valid.f_iou 0.5816199779510498, valid.f_f-score 0.81511: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 25 | valid.f_iou 0.4639100134372711, valid.f_f-score 0.76089: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 25 | valid.f_iou 0.4639100134372711, valid.f_f-score 0.76089: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 25 | valid.f_iou 0.5009099841117859, valid.f_f-score 0.73505: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 25 | valid.f_iou 0.5009099841117859, valid.f_f-score 0.73505: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 25 | valid.f_iou 0.46568000316619873, valid.f_f-score 0.73636: 25%|███████▌ | 4/16 [00:07<00:13, 1.10s/it]
epoch 25 | valid.f_iou 0.46568000316619873, valid.f_f-score 0.73636: 31%|█████████▍ | 5/16 [00:07<00:09, 1.20it/s]
epoch 25 | valid.f_iou 0.4422900080680847, valid.f_f-score 0.70994: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 25 | valid.f_iou 0.4422900080680847, valid.f_f-score 0.70994: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 25 | valid.f_iou 0.4502899944782257, valid.f_f-score 0.71973: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 25 | valid.f_iou 0.4502899944782257, valid.f_f-score 0.71973: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.74it/s]
epoch 25 | valid.f_iou 0.4268200099468231, valid.f_f-score 0.71011: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.74it/s]
epoch 25 | valid.f_iou 0.4268200099468231, valid.f_f-score 0.71011: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.97it/s]
epoch 25 | valid.f_iou 0.43977999687194824, valid.f_f-score 0.70845: 50%|███████████████ | 8/16 [00:08<00:04, 1.97it/s]
epoch 25 | valid.f_iou 0.43977999687194824, valid.f_f-score 0.70845: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.18it/s]
epoch 25 | valid.f_iou 0.43389999866485596, valid.f_f-score 0.71401: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.18it/s]
epoch 25 | valid.f_iou 0.43389999866485596, valid.f_f-score 0.71401: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.32it/s]
epoch 25 | valid.f_iou 0.44009000062942505, valid.f_f-score 0.70379: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.32it/s]
epoch 25 | valid.f_iou 0.44009000062942505, valid.f_f-score 0.70379: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.44it/s]
epoch 25 | valid.f_iou 0.4670200049877167, valid.f_f-score 0.72151: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 25 | valid.f_iou 0.4670200049877167, valid.f_f-score 0.72151: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 25 | valid.f_iou 0.4733699858188629, valid.f_f-score 0.73391: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 25 | valid.f_iou 0.4733699858188629, valid.f_f-score 0.73391: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 25 | valid.f_iou 0.457830011844635, valid.f_f-score 0.72241: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.56it/s]
epoch 25 | valid.f_iou 0.457830011844635, valid.f_f-score 0.72241: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 25 | valid.f_iou 0.46803998947143555, valid.f_f-score 0.7241: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 25 | valid.f_iou 0.46803998947143555, valid.f_f-score 0.7241: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 25 | valid.f_iou 0.4778299927711487, valid.f_f-score 0.72338: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 25 | valid.f_iou 0.4778299927711487, valid.f_f-score 0.72338: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 25 | valid.f_iou 0.4778299927711487, valid.f_f-score 0.72338: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 25 | valid.f_iou 0.6011599898338318, valid.f_f-score 0.64845: 0%| | 0/16 [00:04, ?it/s]
epoch 25 | valid.f_iou 0.6011599898338318, valid.f_f-score 0.64845: 6%|█▉ | 1/16 [00:04<01:13, 4.88s/it]
epoch 25 | valid.f_iou 0.7238199710845947, valid.f_f-score 0.7908: 6%|██ | 1/16 [00:05<01:13, 4.88s/it]
epoch 25 | valid.f_iou 0.7238199710845947, valid.f_f-score 0.7908: 12%|████ | 2/16 [00:05<00:31, 2.28s/it]
epoch 25 | valid.f_iou 0.6449300050735474, valid.f_f-score 0.74379: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 25 | valid.f_iou 0.6449300050735474, valid.f_f-score 0.74379: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 25 | valid.f_iou 0.6446099877357483, valid.f_f-score 0.75384: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 25 | valid.f_iou 0.6446099877357483, valid.f_f-score 0.75384: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 25 | valid.f_iou 0.6115900278091431, valid.f_f-score 0.7452: 25%|████████ | 4/16 [00:06<00:12, 1.02s/it]
epoch 25 | valid.f_iou 0.6115900278091431, valid.f_f-score 0.7452: 31%|██████████ | 5/16 [00:06<00:08, 1.24it/s]
epoch 25 | valid.f_iou 0.5885999798774719, valid.f_f-score 0.7275: 31%|██████████ | 5/16 [00:06<00:08, 1.24it/s]
epoch 25 | valid.f_iou 0.5885999798774719, valid.f_f-score 0.7275: 38%|████████████ | 6/16 [00:06<00:06, 1.48it/s]
epoch 25 | valid.f_iou 0.5903400182723999, valid.f_f-score 0.72885: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 25 | valid.f_iou 0.5903400182723999, valid.f_f-score 0.72885: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 25 | valid.f_iou 0.5789999961853027, valid.f_f-score 0.71678: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 25 | valid.f_iou 0.5789999961853027, valid.f_f-score 0.71678: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 25 | valid.f_iou 0.6093199849128723, valid.f_f-score 0.73254: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 25 | valid.f_iou 0.6093199849128723, valid.f_f-score 0.73254: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 25 | valid.f_iou 0.6211299896240234, valid.f_f-score 0.74929: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 25 | valid.f_iou 0.6211299896240234, valid.f_f-score 0.74929: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.08it/s]
epoch 25 | valid.f_iou 0.6175400018692017, valid.f_f-score 0.7369: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.08it/s]
epoch 25 | valid.f_iou 0.6175400018692017, valid.f_f-score 0.7369: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.23it/s]
epoch 25 | valid.f_iou 0.6256200075149536, valid.f_f-score 0.74201: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 25 | valid.f_iou 0.6256200075149536, valid.f_f-score 0.74201: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.36it/s]
epoch 25 | valid.f_iou 0.6376199722290039, valid.f_f-score 0.752: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.36it/s]
epoch 25 | valid.f_iou 0.6376199722290039, valid.f_f-score 0.752: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.46it/s]
epoch 25 | valid.f_iou 0.6315900087356567, valid.f_f-score 0.74632: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 25 | valid.f_iou 0.6315900087356567, valid.f_f-score 0.74632: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 25 | valid.f_iou 0.6370300054550171, valid.f_f-score 0.75315: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 25 | valid.f_iou 0.6370300054550171, valid.f_f-score 0.75315: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 25 | valid.f_iou 0.6380599737167358, valid.f_f-score 0.75179: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 25 | valid.f_iou 0.6380599737167358, valid.f_f-score 0.75179: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 25 | valid.f_iou 0.6380599737167358, valid.f_f-score 0.75179: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 25 | valid.f_iou 0.5705699920654297, valid.f_f-score 0.62973: 0%| | 0/16 [00:04, ?it/s]
epoch 25 | valid.f_iou 0.5705699920654297, valid.f_f-score 0.62973: 6%|█▉ | 1/16 [00:04<01:07, 4.49s/it]
epoch 25 | valid.f_iou 0.66389000415802, valid.f_f-score 0.74358: 6%|██ | 1/16 [00:05<01:07, 4.49s/it]
epoch 25 | valid.f_iou 0.66389000415802, valid.f_f-score 0.74358: 12%|████▏ | 2/16 [00:05<00:32, 2.34s/it]
epoch 25 | valid.f_iou 0.6049699783325195, valid.f_f-score 0.71231: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 25 | valid.f_iou 0.6049699783325195, valid.f_f-score 0.71231: 19%|█████▊ | 3/16 [00:05<00:19, 1.49s/it]
epoch 25 | valid.f_iou 0.6040499806404114, valid.f_f-score 0.71078: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 25 | valid.f_iou 0.6040499806404114, valid.f_f-score 0.71078: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 25 | valid.f_iou 0.5840499997138977, valid.f_f-score 0.71075: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 25 | valid.f_iou 0.5840499997138977, valid.f_f-score 0.71075: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 25 | valid.f_iou 0.5673499703407288, valid.f_f-score 0.69879: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 25 | valid.f_iou 0.5673499703407288, valid.f_f-score 0.69879: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 25 | valid.f_iou 0.5745000243186951, valid.f_f-score 0.70425: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 25 | valid.f_iou 0.5745000243186951, valid.f_f-score 0.70425: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 25 | valid.f_iou 0.5651400089263916, valid.f_f-score 0.69525: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 25 | valid.f_iou 0.5651400089263916, valid.f_f-score 0.69525: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 25 | valid.f_iou 0.5997499823570251, valid.f_f-score 0.7134: 50%|████████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 25 | valid.f_iou 0.5997499823570251, valid.f_f-score 0.7134: 56%|██████████████████ | 9/16 [00:08<00:03, 1.95it/s]
epoch 25 | valid.f_iou 0.61080002784729, valid.f_f-score 0.72856: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.95it/s]
epoch 25 | valid.f_iou 0.61080002784729, valid.f_f-score 0.72856: 62%|████████████████████ | 10/16 [00:08<00:02, 2.03it/s]
epoch 25 | valid.f_iou 0.6081500053405762, valid.f_f-score 0.71804: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 25 | valid.f_iou 0.6081500053405762, valid.f_f-score 0.71804: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.08it/s]
epoch 25 | valid.f_iou 0.6170099973678589, valid.f_f-score 0.72473: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.08it/s]
epoch 25 | valid.f_iou 0.6170099973678589, valid.f_f-score 0.72473: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.13it/s]
epoch 25 | valid.f_iou 0.625819981098175, valid.f_f-score 0.73164: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.13it/s]
epoch 25 | valid.f_iou 0.625819981098175, valid.f_f-score 0.73164: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.15it/s]
epoch 25 | valid.f_iou 0.6113100051879883, valid.f_f-score 0.71801: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.15it/s]
epoch 25 | valid.f_iou 0.6113100051879883, valid.f_f-score 0.71801: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.27it/s]
epoch 25 | valid.f_iou 0.6180999875068665, valid.f_f-score 0.72673: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.27it/s]
epoch 25 | valid.f_iou 0.6180999875068665, valid.f_f-score 0.72673: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.38it/s]
epoch 25 | valid.f_iou 0.6192700266838074, valid.f_f-score 0.72588: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.38it/s]
epoch 25 | valid.f_iou 0.6192700266838074, valid.f_f-score 0.72588: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.46it/s]
epoch 25 | valid.f_iou 0.6192700266838074, valid.f_f-score 0.72588: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 26 | loss 2.2374989986419678, f_iou 0.5027590990066528: 0%| | 0/74 [00:06, ?it/s]
epoch 26 | loss 2.2374989986419678, f_iou 0.5027590990066528: 1%|▌ | 1/74 [00:06<07:33, 6.22s/it]
epoch 26 | loss 0.8919629454612732, f_iou 0.6678972244262695: 1%|▌ | 1/74 [00:06<07:33, 6.22s/it]
epoch 26 | loss 0.8919629454612732, f_iou 0.6678972244262695: 3%|█ | 2/74 [00:06<03:36, 3.01s/it]
epoch 26 | loss 1.7047299146652222, f_iou 0.5152918696403503: 3%|█ | 2/74 [00:07<03:36, 3.01s/it]
epoch 26 | loss 1.7047299146652222, f_iou 0.5152918696403503: 4%|█▌ | 3/74 [00:07<02:22, 2.00s/it]
epoch 26 | loss 3.608196258544922, f_iou 0.45370471477508545: 4%|█▌ | 3/74 [00:08<02:22, 2.00s/it]
epoch 26 | loss 3.608196258544922, f_iou 0.45370471477508545: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 26 | loss 4.3441691398620605, f_iou 0.4977234899997711: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 26 | loss 4.3441691398620605, f_iou 0.4977234899997711: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 26 | loss 5.938961982727051, f_iou 0.43264442682266235: 7%|██▌ | 5/74 [00:10<01:26, 1.25s/it]
epoch 26 | loss 5.938961982727051, f_iou 0.43264442682266235: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 26 | loss 1.327900767326355, f_iou 0.38430917263031006: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 26 | loss 1.327900767326355, f_iou 0.38430917263031006: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 26 | loss 7.095418453216553, f_iou 0.352694571018219: 9%|███▋ | 7/74 [00:11<01:05, 1.02it/s]
epoch 26 | loss 7.095418453216553, f_iou 0.352694571018219: 11%|████▏ | 8/74 [00:11<00:59, 1.11it/s]
epoch 26 | loss 2.533231496810913, f_iou 0.3784482181072235: 11%|████ | 8/74 [00:12<00:59, 1.11it/s]
epoch 26 | loss 2.533231496810913, f_iou 0.3784482181072235: 12%|████▌ | 9/74 [00:12<00:54, 1.18it/s]
epoch 26 | loss 1.3077774047851562, f_iou 0.42789512872695923: 12%|████▍ | 9/74 [00:13<00:54, 1.18it/s]
epoch 26 | loss 1.3077774047851562, f_iou 0.42789512872695923: 14%|████▋ | 10/74 [00:13<00:51, 1.24it/s]
epoch 26 | loss 2.202629804611206, f_iou 0.44075697660446167: 14%|████▊ | 10/74 [00:13<00:51, 1.24it/s]
epoch 26 | loss 2.202629804611206, f_iou 0.44075697660446167: 15%|█████▎ | 11/74 [00:13<00:49, 1.28it/s]
epoch 26 | loss 1.6178816556930542, f_iou 0.4565419554710388: 15%|█████▎ | 11/74 [00:14<00:49, 1.28it/s]
epoch 26 | loss 1.6178816556930542, f_iou 0.4565419554710388: 16%|█████▊ | 12/74 [00:14<00:47, 1.31it/s]
epoch 26 | loss 1.6500425338745117, f_iou 0.49057379364967346: 16%|█████▋ | 12/74 [00:15<00:47, 1.31it/s]
epoch 26 | loss 1.6500425338745117, f_iou 0.49057379364967346: 18%|██████▏ | 13/74 [00:15<00:45, 1.33it/s]
epoch 26 | loss 3.2110142707824707, f_iou 0.49542683362960815: 18%|██████▏ | 13/74 [00:15<00:45, 1.33it/s]
epoch 26 | loss 3.2110142707824707, f_iou 0.49542683362960815: 19%|██████▌ | 14/74 [00:15<00:44, 1.35it/s]
epoch 26 | loss 2.9083943367004395, f_iou 0.49119138717651367: 19%|██████▌ | 14/74 [00:16<00:44, 1.35it/s]
epoch 26 | loss 2.9083943367004395, f_iou 0.49119138717651367: 20%|███████ | 15/74 [00:16<00:43, 1.36it/s]
epoch 26 | loss 5.616638660430908, f_iou 0.48856374621391296: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 26 | loss 5.616638660430908, f_iou 0.48856374621391296: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 26 | loss 2.312171220779419, f_iou 0.4981018006801605: 22%|████████ | 16/74 [00:18<00:42, 1.37it/s]
epoch 26 | loss 2.312171220779419, f_iou 0.4981018006801605: 23%|████████▌ | 17/74 [00:18<00:41, 1.37it/s]
epoch 26 | loss 6.7454094886779785, f_iou 0.470745712518692: 23%|████████▌ | 17/74 [00:18<00:41, 1.37it/s]
epoch 26 | loss 6.7454094886779785, f_iou 0.470745712518692: 24%|█████████ | 18/74 [00:18<00:40, 1.38it/s]
epoch 26 | loss 2.5674028396606445, f_iou 0.47784799337387085: 24%|████████▌ | 18/74 [00:19<00:40, 1.38it/s]
epoch 26 | loss 2.5674028396606445, f_iou 0.47784799337387085: 26%|████████▉ | 19/74 [00:19<00:39, 1.38it/s]
epoch 26 | loss 3.6515860557556152, f_iou 0.46315479278564453: 26%|████████▉ | 19/74 [00:20<00:39, 1.38it/s]
epoch 26 | loss 3.6515860557556152, f_iou 0.46315479278564453: 27%|█████████▍ | 20/74 [00:20<00:39, 1.38it/s]
epoch 26 | loss 1.8421249389648438, f_iou 0.4835094213485718: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 26 | loss 1.8421249389648438, f_iou 0.4835094213485718: 28%|██████████▏ | 21/74 [00:20<00:38, 1.39it/s]
epoch 26 | loss 2.565560817718506, f_iou 0.4880852699279785: 28%|██████████▌ | 21/74 [00:21<00:38, 1.39it/s]
epoch 26 | loss 2.565560817718506, f_iou 0.4880852699279785: 30%|███████████ | 22/74 [00:21<00:37, 1.37it/s]
epoch 26 | loss 4.261999130249023, f_iou 0.48404785990715027: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 26 | loss 4.261999130249023, f_iou 0.48404785990715027: 31%|███████████▏ | 23/74 [00:22<00:37, 1.38it/s]
epoch 26 | loss 6.5870747566223145, f_iou 0.4800684154033661: 31%|███████████▏ | 23/74 [00:23<00:37, 1.38it/s]
epoch 26 | loss 6.5870747566223145, f_iou 0.4800684154033661: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 26 | loss 4.42274284362793, f_iou 0.46686941385269165: 32%|████████████ | 24/74 [00:23<00:36, 1.39it/s]
epoch 26 | loss 4.42274284362793, f_iou 0.46686941385269165: 34%|████████████▌ | 25/74 [00:23<00:35, 1.39it/s]
epoch 26 | loss 1.9813082218170166, f_iou 0.4606316387653351: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 26 | loss 1.9813082218170166, f_iou 0.4606316387653351: 35%|████████████▋ | 26/74 [00:24<00:35, 1.36it/s]
epoch 26 | loss 1.2126764059066772, f_iou 0.4582231342792511: 35%|████████████▋ | 26/74 [00:25<00:35, 1.36it/s]
epoch 26 | loss 1.2126764059066772, f_iou 0.4582231342792511: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.36it/s]
epoch 26 | loss 1.3039495944976807, f_iou 0.471224844455719: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.36it/s]
epoch 26 | loss 1.3039495944976807, f_iou 0.471224844455719: 38%|██████████████ | 28/74 [00:26<00:33, 1.37it/s]
epoch 26 | loss 2.671854019165039, f_iou 0.4653800129890442: 38%|██████████████ | 28/74 [00:26<00:33, 1.37it/s]
epoch 26 | loss 2.671854019165039, f_iou 0.4653800129890442: 39%|██████████████▌ | 29/74 [00:26<00:32, 1.37it/s]
epoch 26 | loss 2.050022840499878, f_iou 0.4733259975910187: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.37it/s]
epoch 26 | loss 2.050022840499878, f_iou 0.4733259975910187: 41%|███████████████ | 30/74 [00:27<00:32, 1.35it/s]
epoch 26 | loss 1.3272678852081299, f_iou 0.48119136691093445: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.35it/s]
epoch 26 | loss 1.3272678852081299, f_iou 0.48119136691093445: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.36it/s]
epoch 26 | loss 2.580721855163574, f_iou 0.47404050827026367: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 26 | loss 2.580721855163574, f_iou 0.47404050827026367: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 26 | loss 7.504245281219482, f_iou 0.47507280111312866: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 26 | loss 7.504245281219482, f_iou 0.47507280111312866: 45%|████████████████ | 33/74 [00:29<00:29, 1.38it/s]
epoch 26 | loss 1.3766065835952759, f_iou 0.47192034125328064: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.38it/s]
epoch 26 | loss 1.3766065835952759, f_iou 0.47192034125328064: 46%|████████████████ | 34/74 [00:30<00:29, 1.38it/s]
epoch 26 | loss 2.451150417327881, f_iou 0.4743003845214844: 46%|█████████████████ | 34/74 [00:31<00:29, 1.38it/s]
epoch 26 | loss 2.451150417327881, f_iou 0.4743003845214844: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.38it/s]
epoch 26 | loss 9.000137329101562, f_iou 0.46446493268013: 47%|██████████████████▍ | 35/74 [00:31<00:28, 1.38it/s]
epoch 26 | loss 9.000137329101562, f_iou 0.46446493268013: 49%|██████████████████▉ | 36/74 [00:31<00:27, 1.38it/s]
epoch 26 | loss 1.048413872718811, f_iou 0.4624306559562683: 49%|██████████████████ | 36/74 [00:32<00:27, 1.38it/s]
epoch 26 | loss 1.048413872718811, f_iou 0.4624306559562683: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.38it/s]
epoch 26 | loss 2.414268732070923, f_iou 0.47133296728134155: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 26 | loss 2.414268732070923, f_iou 0.47133296728134155: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 26 | loss 2.190812110900879, f_iou 0.4780183434486389: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 26 | loss 2.190812110900879, f_iou 0.4780183434486389: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.35it/s]
epoch 26 | loss 2.2108473777770996, f_iou 0.48378798365592957: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.35it/s]
epoch 26 | loss 2.2108473777770996, f_iou 0.48378798365592957: 54%|██████████████████▉ | 40/74 [00:34<00:25, 1.32it/s]
epoch 26 | loss 0.8529924154281616, f_iou 0.48973724246025085: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.32it/s]
epoch 26 | loss 0.8529924154281616, f_iou 0.48973724246025085: 55%|███████████████████▍ | 41/74 [00:35<00:25, 1.31it/s]
epoch 26 | loss 3.3177950382232666, f_iou 0.4907446503639221: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.31it/s]
epoch 26 | loss 3.3177950382232666, f_iou 0.4907446503639221: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.31it/s]
epoch 26 | loss 1.082804560661316, f_iou 0.4956764876842499: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.31it/s]
epoch 26 | loss 1.082804560661316, f_iou 0.4956764876842499: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.33it/s]
epoch 26 | loss 2.477567672729492, f_iou 0.501417338848114: 58%|██████████████████████ | 43/74 [00:37<00:23, 1.33it/s]
epoch 26 | loss 2.477567672729492, f_iou 0.501417338848114: 59%|██████████████████████▌ | 44/74 [00:37<00:22, 1.34it/s]
epoch 26 | loss 1.3194977045059204, f_iou 0.4903404414653778: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 26 | loss 1.3194977045059204, f_iou 0.4903404414653778: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.35it/s]
epoch 26 | loss 1.0340111255645752, f_iou 0.4980059564113617: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.35it/s]
epoch 26 | loss 1.0340111255645752, f_iou 0.4980059564113617: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.36it/s]
epoch 26 | loss 1.7012214660644531, f_iou 0.4967547059059143: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 26 | loss 1.7012214660644531, f_iou 0.4967547059059143: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 26 | loss 1.5484521389007568, f_iou 0.5033398270606995: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 26 | loss 1.5484521389007568, f_iou 0.5033398270606995: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 26 | loss 0.9932616949081421, f_iou 0.5095166563987732: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 26 | loss 0.9932616949081421, f_iou 0.5095166563987732: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 26 | loss 0.8968852758407593, f_iou 0.517380952835083: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 26 | loss 0.8968852758407593, f_iou 0.517380952835083: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.38it/s]
epoch 26 | loss 1.731032133102417, f_iou 0.521438717842102: 68%|█████████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 26 | loss 1.731032133102417, f_iou 0.521438717842102: 69%|██████████████████████████▏ | 51/74 [00:43<00:16, 1.38it/s]
epoch 26 | loss 4.11240291595459, f_iou 0.518181562423706: 69%|██████████████████████████▉ | 51/74 [00:43<00:16, 1.38it/s]
epoch 26 | loss 4.11240291595459, f_iou 0.518181562423706: 70%|███████████████████████████▍ | 52/74 [00:43<00:15, 1.38it/s]
epoch 26 | loss 3.3088340759277344, f_iou 0.5238173604011536: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 26 | loss 3.3088340759277344, f_iou 0.5238173604011536: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 26 | loss 2.381223201751709, f_iou 0.5221025347709656: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.38it/s]
epoch 26 | loss 2.381223201751709, f_iou 0.5221025347709656: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 26 | loss 1.5187923908233643, f_iou 0.5276755094528198: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 26 | loss 1.5187923908233643, f_iou 0.5276755094528198: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.36it/s]
epoch 26 | loss 2.248642921447754, f_iou 0.5240101218223572: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.36it/s]
epoch 26 | loss 2.248642921447754, f_iou 0.5240101218223572: 76%|████████████████████████████ | 56/74 [00:46<00:13, 1.36it/s]
epoch 26 | loss 4.34669303894043, f_iou 0.5213655829429626: 76%|████████████████████████████▊ | 56/74 [00:47<00:13, 1.36it/s]
epoch 26 | loss 4.34669303894043, f_iou 0.5213655829429626: 77%|█████████████████████████████▎ | 57/74 [00:47<00:12, 1.37it/s]
epoch 26 | loss 1.6513612270355225, f_iou 0.5221297144889832: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.37it/s]
epoch 26 | loss 1.6513612270355225, f_iou 0.5221297144889832: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 26 | loss 1.2552990913391113, f_iou 0.5294085741043091: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 26 | loss 1.2552990913391113, f_iou 0.5294085741043091: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 26 | loss 2.321930170059204, f_iou 0.5360920429229736: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.38it/s]
epoch 26 | loss 2.321930170059204, f_iou 0.5360920429229736: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.38it/s]
epoch 26 | loss 1.1660182476043701, f_iou 0.528531014919281: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.38it/s]
epoch 26 | loss 1.1660182476043701, f_iou 0.528531014919281: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.38it/s]
epoch 26 | loss 3.3668620586395264, f_iou 0.5318819284439087: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 26 | loss 3.3668620586395264, f_iou 0.5318819284439087: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.38it/s]
epoch 26 | loss 1.8854444026947021, f_iou 0.5320940613746643: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 26 | loss 1.8854444026947021, f_iou 0.5320940613746643: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.37it/s]
epoch 26 | loss 3.738579273223877, f_iou 0.5302730202674866: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.37it/s]
epoch 26 | loss 3.738579273223877, f_iou 0.5302730202674866: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 26 | loss 4.22578239440918, f_iou 0.5245177745819092: 86%|████████████████████████████████▊ | 64/74 [00:53<00:07, 1.38it/s]
epoch 26 | loss 4.22578239440918, f_iou 0.5245177745819092: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.38it/s]
epoch 26 | loss 1.9004721641540527, f_iou 0.5275440812110901: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 26 | loss 1.9004721641540527, f_iou 0.5275440812110901: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 26 | loss 1.5023781061172485, f_iou 0.5296736359596252: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 26 | loss 1.5023781061172485, f_iou 0.5296736359596252: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.37it/s]
epoch 26 | loss 4.160764217376709, f_iou 0.5224621295928955: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 26 | loss 4.160764217376709, f_iou 0.5224621295928955: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.36it/s]
epoch 26 | loss 3.9625332355499268, f_iou 0.5183526873588562: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 26 | loss 3.9625332355499268, f_iou 0.5183526873588562: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.35it/s]
epoch 26 | loss 0.0, f_iou 0.5249032378196716: 93%|███████████████████████████████████████████████▌ | 69/74 [00:56<00:03, 1.35it/s]
epoch 26 | loss 0.0, f_iou 0.5249032378196716: 95%|████████████████████████████████████████████████▏ | 70/74 [00:56<00:02, 1.34it/s]
epoch 26 | loss 1.9476388692855835, f_iou 0.5296261310577393: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.34it/s]
epoch 26 | loss 1.9476388692855835, f_iou 0.5296261310577393: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.33it/s]
epoch 26 | loss 1.8810383081436157, f_iou 0.5319172739982605: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.33it/s]
epoch 26 | loss 1.8810383081436157, f_iou 0.5319172739982605: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.32it/s]
epoch 26 | loss 0.9793566465377808, f_iou 0.537138044834137: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.32it/s]
epoch 26 | loss 0.9793566465377808, f_iou 0.537138044834137: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.34it/s]
epoch 26 | loss 1.5166800022125244, f_iou 0.5418793559074402: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.34it/s]
epoch 26 | loss 1.5166800022125244, f_iou 0.5418793559074402: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.36it/s]
epoch 26 | loss 1.5166800022125244, f_iou 0.5418793559074402: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 26 | valid.f_iou 0.7812600135803223, valid.f_f-score 0.79391: 0%| | 0/16 [00:05, ?it/s]
epoch 26 | valid.f_iou 0.7812600135803223, valid.f_f-score 0.79391: 6%|█▉ | 1/16 [00:05<01:26, 5.75s/it]
epoch 26 | valid.f_iou 0.6366699934005737, valid.f_f-score 0.78198: 6%|█▉ | 1/16 [00:06<01:26, 5.75s/it]
epoch 26 | valid.f_iou 0.6366699934005737, valid.f_f-score 0.78198: 12%|███▉ | 2/16 [00:06<00:36, 2.63s/it]
epoch 26 | valid.f_iou 0.5621799826622009, valid.f_f-score 0.73292: 12%|███▉ | 2/16 [00:06<00:36, 2.63s/it]
epoch 26 | valid.f_iou 0.5621799826622009, valid.f_f-score 0.73292: 19%|█████▊ | 3/16 [00:06<00:21, 1.63s/it]
epoch 26 | valid.f_iou 0.5818600058555603, valid.f_f-score 0.72598: 19%|█████▊ | 3/16 [00:07<00:21, 1.63s/it]
epoch 26 | valid.f_iou 0.5818600058555603, valid.f_f-score 0.72598: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 26 | valid.f_iou 0.5633400082588196, valid.f_f-score 0.72784: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 26 | valid.f_iou 0.5633400082588196, valid.f_f-score 0.72784: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 26 | valid.f_iou 0.5425099730491638, valid.f_f-score 0.70955: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 26 | valid.f_iou 0.5425099730491638, valid.f_f-score 0.70955: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 26 | valid.f_iou 0.5402100086212158, valid.f_f-score 0.71469: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 26 | valid.f_iou 0.5402100086212158, valid.f_f-score 0.71469: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 26 | valid.f_iou 0.5301399827003479, valid.f_f-score 0.70763: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 26 | valid.f_iou 0.5301399827003479, valid.f_f-score 0.70763: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 26 | valid.f_iou 0.5258200168609619, valid.f_f-score 0.69617: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 26 | valid.f_iou 0.5258200168609619, valid.f_f-score 0.69617: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 26 | valid.f_iou 0.5272300243377686, valid.f_f-score 0.70447: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 26 | valid.f_iou 0.5272300243377686, valid.f_f-score 0.70447: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 26 | valid.f_iou 0.5353699922561646, valid.f_f-score 0.70602: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 26 | valid.f_iou 0.5353699922561646, valid.f_f-score 0.70602: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 26 | valid.f_iou 0.5567299723625183, valid.f_f-score 0.72106: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.23it/s]
epoch 26 | valid.f_iou 0.5567299723625183, valid.f_f-score 0.72106: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 26 | valid.f_iou 0.5598999857902527, valid.f_f-score 0.73238: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 26 | valid.f_iou 0.5598999857902527, valid.f_f-score 0.73238: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 26 | valid.f_iou 0.5407299995422363, valid.f_f-score 0.71834: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.47it/s]
epoch 26 | valid.f_iou 0.5407299995422363, valid.f_f-score 0.71834: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 26 | valid.f_iou 0.5483899712562561, valid.f_f-score 0.72219: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 26 | valid.f_iou 0.5483899712562561, valid.f_f-score 0.72219: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 26 | valid.f_iou 0.553849995136261, valid.f_f-score 0.72072: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.60it/s]
epoch 26 | valid.f_iou 0.553849995136261, valid.f_f-score 0.72072: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 26 | valid.f_iou 0.553849995136261, valid.f_f-score 0.72072: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 26 | valid.f_iou 0.5456500053405762, valid.f_f-score 0.62154: 0%| | 0/16 [00:05, ?it/s]
epoch 26 | valid.f_iou 0.5456500053405762, valid.f_f-score 0.62154: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 26 | valid.f_iou 0.6821600198745728, valid.f_f-score 0.76942: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 26 | valid.f_iou 0.6821600198745728, valid.f_f-score 0.76942: 12%|███▉ | 2/16 [00:05<00:34, 2.47s/it]
epoch 26 | valid.f_iou 0.6327000260353088, valid.f_f-score 0.76768: 12%|███▉ | 2/16 [00:06<00:34, 2.47s/it]
epoch 26 | valid.f_iou 0.6327000260353088, valid.f_f-score 0.76768: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 26 | valid.f_iou 0.6252999901771545, valid.f_f-score 0.7381: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 26 | valid.f_iou 0.6252999901771545, valid.f_f-score 0.7381: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 26 | valid.f_iou 0.6366199851036072, valid.f_f-score 0.7549: 25%|████████ | 4/16 [00:07<00:13, 1.09s/it]
epoch 26 | valid.f_iou 0.6366199851036072, valid.f_f-score 0.7549: 31%|██████████ | 5/16 [00:07<00:09, 1.16it/s]
epoch 26 | valid.f_iou 0.6190099716186523, valid.f_f-score 0.73341: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 26 | valid.f_iou 0.6190099716186523, valid.f_f-score 0.73341: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 26 | valid.f_iou 0.6342200040817261, valid.f_f-score 0.75426: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 26 | valid.f_iou 0.6342200040817261, valid.f_f-score 0.75426: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 26 | valid.f_iou 0.6284199953079224, valid.f_f-score 0.74475: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 26 | valid.f_iou 0.6284199953079224, valid.f_f-score 0.74475: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 26 | valid.f_iou 0.6505399942398071, valid.f_f-score 0.76189: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 26 | valid.f_iou 0.6505399942398071, valid.f_f-score 0.76189: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 26 | valid.f_iou 0.6646999716758728, valid.f_f-score 0.77795: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 26 | valid.f_iou 0.6646999716758728, valid.f_f-score 0.77795: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 26 | valid.f_iou 0.6530699729919434, valid.f_f-score 0.76089: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 26 | valid.f_iou 0.6530699729919434, valid.f_f-score 0.76089: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 26 | valid.f_iou 0.664110004901886, valid.f_f-score 0.77369: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.27it/s]
epoch 26 | valid.f_iou 0.664110004901886, valid.f_f-score 0.77369: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.38it/s]
epoch 26 | valid.f_iou 0.6768800020217896, valid.f_f-score 0.78392: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 26 | valid.f_iou 0.6768800020217896, valid.f_f-score 0.78392: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 26 | valid.f_iou 0.6688500046730042, valid.f_f-score 0.77748: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 26 | valid.f_iou 0.6688500046730042, valid.f_f-score 0.77748: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 26 | valid.f_iou 0.6681100130081177, valid.f_f-score 0.77728: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 26 | valid.f_iou 0.6681100130081177, valid.f_f-score 0.77728: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 26 | valid.f_iou 0.6709799766540527, valid.f_f-score 0.77995: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 26 | valid.f_iou 0.6709799766540527, valid.f_f-score 0.77995: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 26 | valid.f_iou 0.6709799766540527, valid.f_f-score 0.77995: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 26 | valid.f_iou 0.5450000166893005, valid.f_f-score 0.61531: 0%| | 0/16 [00:04, ?it/s]
epoch 26 | valid.f_iou 0.5450000166893005, valid.f_f-score 0.61531: 6%|█▉ | 1/16 [00:04<01:13, 4.89s/it]
epoch 26 | valid.f_iou 0.6599500179290771, valid.f_f-score 0.74989: 6%|█▉ | 1/16 [00:05<01:13, 4.89s/it]
epoch 26 | valid.f_iou 0.6599500179290771, valid.f_f-score 0.74989: 12%|███▉ | 2/16 [00:05<00:32, 2.29s/it]
epoch 26 | valid.f_iou 0.617900013923645, valid.f_f-score 0.75466: 12%|████ | 2/16 [00:05<00:32, 2.29s/it]
epoch 26 | valid.f_iou 0.617900013923645, valid.f_f-score 0.75466: 19%|██████ | 3/16 [00:05<00:18, 1.44s/it]
epoch 26 | valid.f_iou 0.6142799854278564, valid.f_f-score 0.72834: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 26 | valid.f_iou 0.6142799854278564, valid.f_f-score 0.72834: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 26 | valid.f_iou 0.627240002155304, valid.f_f-score 0.73966: 25%|████████ | 4/16 [00:06<00:12, 1.02s/it]
epoch 26 | valid.f_iou 0.627240002155304, valid.f_f-score 0.73966: 31%|██████████ | 5/16 [00:06<00:08, 1.24it/s]
epoch 26 | valid.f_iou 0.6111900210380554, valid.f_f-score 0.72071: 31%|█████████▋ | 5/16 [00:07<00:08, 1.24it/s]
epoch 26 | valid.f_iou 0.6111900210380554, valid.f_f-score 0.72071: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 26 | valid.f_iou 0.629800021648407, valid.f_f-score 0.74338: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 26 | valid.f_iou 0.629800021648407, valid.f_f-score 0.74338: 44%|██████████████ | 7/16 [00:07<00:05, 1.67it/s]
epoch 26 | valid.f_iou 0.6245499849319458, valid.f_f-score 0.73522: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 26 | valid.f_iou 0.6245499849319458, valid.f_f-score 0.73522: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 26 | valid.f_iou 0.6503199934959412, valid.f_f-score 0.75343: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.89it/s]
epoch 26 | valid.f_iou 0.6503199934959412, valid.f_f-score 0.75343: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 26 | valid.f_iou 0.6597099900245667, valid.f_f-score 0.76652: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 26 | valid.f_iou 0.6597099900245667, valid.f_f-score 0.76652: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.28it/s]
epoch 26 | valid.f_iou 0.6485300064086914, valid.f_f-score 0.7505: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.28it/s]
epoch 26 | valid.f_iou 0.6485300064086914, valid.f_f-score 0.7505: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.39it/s]
epoch 26 | valid.f_iou 0.657829999923706, valid.f_f-score 0.76042: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.39it/s]
epoch 26 | valid.f_iou 0.657829999923706, valid.f_f-score 0.76042: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.48it/s]
epoch 26 | valid.f_iou 0.6658700108528137, valid.f_f-score 0.76772: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 26 | valid.f_iou 0.6658700108528137, valid.f_f-score 0.76772: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 26 | valid.f_iou 0.6524800062179565, valid.f_f-score 0.75642: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 26 | valid.f_iou 0.6524800062179565, valid.f_f-score 0.75642: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 26 | valid.f_iou 0.6528400182723999, valid.f_f-score 0.75763: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 26 | valid.f_iou 0.6528400182723999, valid.f_f-score 0.75763: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 26 | valid.f_iou 0.657480001449585, valid.f_f-score 0.76153: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.63it/s]
epoch 26 | valid.f_iou 0.657480001449585, valid.f_f-score 0.76153: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 26 | valid.f_iou 0.657480001449585, valid.f_f-score 0.76153: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 27 | loss 3.454075813293457, f_iou 0.7644262313842773: 0%| | 0/74 [00:06, ?it/s]
epoch 27 | loss 3.454075813293457, f_iou 0.7644262313842773: 1%|▌ | 1/74 [00:06<07:42, 6.34s/it]
epoch 27 | loss 1.3899668455123901, f_iou 0.7307467460632324: 1%|▌ | 1/74 [00:07<07:42, 6.34s/it]
epoch 27 | loss 1.3899668455123901, f_iou 0.7307467460632324: 3%|█ | 2/74 [00:07<03:42, 3.09s/it]
epoch 27 | loss 3.6488280296325684, f_iou 0.6503291130065918: 3%|█ | 2/74 [00:07<03:42, 3.09s/it]
epoch 27 | loss 3.6488280296325684, f_iou 0.6503291130065918: 4%|█▌ | 3/74 [00:07<02:25, 2.04s/it]
epoch 27 | loss 5.309038162231445, f_iou 0.657206654548645: 4%|█▌ | 3/74 [00:08<02:25, 2.04s/it]
epoch 27 | loss 5.309038162231445, f_iou 0.657206654548645: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 27 | loss 1.2297958135604858, f_iou 0.5808681845664978: 5%|██ | 4/74 [00:09<01:47, 1.54s/it]
epoch 27 | loss 1.2297958135604858, f_iou 0.5808681845664978: 7%|██▌ | 5/74 [00:09<01:28, 1.29s/it]
epoch 27 | loss 2.5787363052368164, f_iou 0.5896528959274292: 7%|██▌ | 5/74 [00:10<01:28, 1.29s/it]
epoch 27 | loss 2.5787363052368164, f_iou 0.5896528959274292: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 27 | loss 1.9401323795318604, f_iou 0.573993980884552: 8%|███ | 6/74 [00:11<01:16, 1.12s/it]
epoch 27 | loss 1.9401323795318604, f_iou 0.573993980884552: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 27 | loss 4.3254289627075195, f_iou 0.5365415215492249: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 27 | loss 4.3254289627075195, f_iou 0.5365415215492249: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 27 | loss 2.038710594177246, f_iou 0.542505145072937: 11%|████▏ | 8/74 [00:12<01:02, 1.06it/s]
epoch 27 | loss 2.038710594177246, f_iou 0.542505145072937: 12%|████▋ | 9/74 [00:12<00:58, 1.11it/s]
epoch 27 | loss 5.038806915283203, f_iou 0.5638120770454407: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 27 | loss 5.038806915283203, f_iou 0.5638120770454407: 14%|█████ | 10/74 [00:13<00:55, 1.15it/s]
epoch 27 | loss 2.8208556175231934, f_iou 0.5790497064590454: 14%|████▊ | 10/74 [00:14<00:55, 1.15it/s]
epoch 27 | loss 2.8208556175231934, f_iou 0.5790497064590454: 15%|█████▎ | 11/74 [00:14<00:53, 1.18it/s]
epoch 27 | loss 1.2555561065673828, f_iou 0.5596632957458496: 15%|█████▎ | 11/74 [00:15<00:53, 1.18it/s]
epoch 27 | loss 1.2555561065673828, f_iou 0.5596632957458496: 16%|█████▊ | 12/74 [00:15<00:50, 1.24it/s]
epoch 27 | loss 2.529829502105713, f_iou 0.562761127948761: 16%|██████▏ | 12/74 [00:15<00:50, 1.24it/s]
epoch 27 | loss 2.529829502105713, f_iou 0.562761127948761: 18%|██████▋ | 13/74 [00:15<00:47, 1.28it/s]
epoch 27 | loss 2.242654800415039, f_iou 0.5655733942985535: 18%|██████▌ | 13/74 [00:16<00:47, 1.28it/s]
epoch 27 | loss 2.242654800415039, f_iou 0.5655733942985535: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 27 | loss 3.83022141456604, f_iou 0.5696417093276978: 19%|███████▏ | 14/74 [00:17<00:45, 1.32it/s]
epoch 27 | loss 3.83022141456604, f_iou 0.5696417093276978: 20%|███████▋ | 15/74 [00:17<00:43, 1.34it/s]
epoch 27 | loss 1.8405221700668335, f_iou 0.5597518086433411: 20%|███████▎ | 15/74 [00:17<00:43, 1.34it/s]
epoch 27 | loss 1.8405221700668335, f_iou 0.5597518086433411: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 27 | loss 0.47725576162338257, f_iou 0.5268738269805908: 22%|███████▌ | 16/74 [00:18<00:42, 1.36it/s]
epoch 27 | loss 0.47725576162338257, f_iou 0.5268738269805908: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 27 | loss 2.9067959785461426, f_iou 0.5189857482910156: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 27 | loss 2.9067959785461426, f_iou 0.5189857482910156: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 27 | loss 3.4460768699645996, f_iou 0.521062433719635: 24%|█████████ | 18/74 [00:20<00:40, 1.38it/s]
epoch 27 | loss 3.4460768699645996, f_iou 0.521062433719635: 26%|█████████▌ | 19/74 [00:20<00:40, 1.36it/s]
epoch 27 | loss 0.9350488781929016, f_iou 0.5263883471488953: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 27 | loss 0.9350488781929016, f_iou 0.5263883471488953: 27%|█████████▋ | 20/74 [00:20<00:40, 1.34it/s]
epoch 27 | loss 1.575142502784729, f_iou 0.5218713283538818: 27%|██████████ | 20/74 [00:21<00:40, 1.34it/s]
epoch 27 | loss 1.575142502784729, f_iou 0.5218713283538818: 28%|██████████▌ | 21/74 [00:21<00:39, 1.36it/s]
epoch 27 | loss 3.2297544479370117, f_iou 0.5218613147735596: 28%|██████████▏ | 21/74 [00:22<00:39, 1.36it/s]
epoch 27 | loss 3.2297544479370117, f_iou 0.5218613147735596: 30%|██████████▋ | 22/74 [00:22<00:38, 1.35it/s]
epoch 27 | loss 5.678497791290283, f_iou 0.5178242325782776: 30%|███████████ | 22/74 [00:23<00:38, 1.35it/s]
epoch 27 | loss 5.678497791290283, f_iou 0.5178242325782776: 31%|███████████▌ | 23/74 [00:23<00:37, 1.36it/s]
epoch 27 | loss 3.798815965652466, f_iou 0.5089731216430664: 31%|███████████▌ | 23/74 [00:23<00:37, 1.36it/s]
epoch 27 | loss 3.798815965652466, f_iou 0.5089731216430664: 32%|████████████ | 24/74 [00:23<00:36, 1.37it/s]
epoch 27 | loss 0.8930171728134155, f_iou 0.5255756378173828: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 27 | loss 0.8930171728134155, f_iou 0.5255756378173828: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 27 | loss 0.9813762903213501, f_iou 0.5425606966018677: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 27 | loss 0.9813762903213501, f_iou 0.5425606966018677: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 27 | loss 1.183724284172058, f_iou 0.548888623714447: 35%|█████████████▎ | 26/74 [00:25<00:34, 1.39it/s]
epoch 27 | loss 1.183724284172058, f_iou 0.548888623714447: 36%|█████████████▊ | 27/74 [00:25<00:33, 1.39it/s]
epoch 27 | loss 0.6839162111282349, f_iou 0.5611648559570312: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 27 | loss 0.6839162111282349, f_iou 0.5611648559570312: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 27 | loss 4.2640700340271, f_iou 0.5493022203445435: 38%|██████████████▊ | 28/74 [00:27<00:33, 1.37it/s]
epoch 27 | loss 4.2640700340271, f_iou 0.5493022203445435: 39%|███████████████▎ | 29/74 [00:27<00:32, 1.38it/s]
epoch 27 | loss 2.500810146331787, f_iou 0.5411116480827332: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.38it/s]
epoch 27 | loss 2.500810146331787, f_iou 0.5411116480827332: 41%|███████████████ | 30/74 [00:28<00:31, 1.38it/s]
epoch 27 | loss 5.130687713623047, f_iou 0.550295352935791: 41%|███████████████▍ | 30/74 [00:29<00:31, 1.38it/s]
epoch 27 | loss 5.130687713623047, f_iou 0.550295352935791: 42%|███████████████▉ | 31/74 [00:29<00:33, 1.29it/s]
epoch 27 | loss 3.9931955337524414, f_iou 0.5495555400848389: 42%|███████████████ | 31/74 [00:29<00:33, 1.29it/s]
epoch 27 | loss 3.9931955337524414, f_iou 0.5495555400848389: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.32it/s]
epoch 27 | loss 1.4799656867980957, f_iou 0.5563267469406128: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.32it/s]
epoch 27 | loss 1.4799656867980957, f_iou 0.5563267469406128: 45%|████████████████ | 33/74 [00:30<00:30, 1.34it/s]
epoch 27 | loss 0.015625, f_iou 0.564346194267273: 45%|████████████████████▉ | 33/74 [00:31<00:30, 1.34it/s]
epoch 27 | loss 0.015625, f_iou 0.564346194267273: 46%|█████████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 27 | loss 1.0353138446807861, f_iou 0.5749754905700684: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 27 | loss 1.0353138446807861, f_iou 0.5749754905700684: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 27 | loss 2.9620540142059326, f_iou 0.5754369497299194: 47%|█████████████████ | 35/74 [00:32<00:28, 1.37it/s]
epoch 27 | loss 2.9620540142059326, f_iou 0.5754369497299194: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 27 | loss 2.34896183013916, f_iou 0.5721460580825806: 49%|██████████████████▍ | 36/74 [00:33<00:27, 1.38it/s]
epoch 27 | loss 2.34896183013916, f_iou 0.5721460580825806: 50%|███████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 27 | loss 1.0619349479675293, f_iou 0.5727547407150269: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 27 | loss 1.0619349479675293, f_iou 0.5727547407150269: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 27 | loss 2.6014013290405273, f_iou 0.5739823579788208: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 27 | loss 2.6014013290405273, f_iou 0.5739823579788208: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 27 | loss 4.842982292175293, f_iou 0.5671002268791199: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 27 | loss 4.842982292175293, f_iou 0.5671002268791199: 54%|████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 27 | loss 6.383363246917725, f_iou 0.5555129647254944: 54%|████████████████████ | 40/74 [00:36<00:24, 1.39it/s]
epoch 27 | loss 6.383363246917725, f_iou 0.5555129647254944: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 27 | loss 3.8550052642822266, f_iou 0.5426729917526245: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 27 | loss 3.8550052642822266, f_iou 0.5426729917526245: 57%|████████████████████▍ | 42/74 [00:36<00:22, 1.39it/s]
epoch 27 | loss 1.5678577423095703, f_iou 0.5484058260917664: 57%|████████████████████▍ | 42/74 [00:37<00:22, 1.39it/s]
epoch 27 | loss 1.5678577423095703, f_iou 0.5484058260917664: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.40it/s]
epoch 27 | loss 1.6890733242034912, f_iou 0.5467532277107239: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.40it/s]
epoch 27 | loss 1.6890733242034912, f_iou 0.5467532277107239: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.40it/s]
epoch 27 | loss 2.3538918495178223, f_iou 0.5442649722099304: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.40it/s]
epoch 27 | loss 2.3538918495178223, f_iou 0.5442649722099304: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.40it/s]
epoch 27 | loss 4.347967147827148, f_iou 0.5381788015365601: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.40it/s]
epoch 27 | loss 4.347967147827148, f_iou 0.5381788015365601: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.40it/s]
epoch 27 | loss 1.865734338760376, f_iou 0.5386083722114563: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.40it/s]
epoch 27 | loss 1.865734338760376, f_iou 0.5386083722114563: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.40it/s]
epoch 27 | loss 3.494480848312378, f_iou 0.5362877249717712: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.40it/s]
epoch 27 | loss 3.494480848312378, f_iou 0.5362877249717712: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.40it/s]
epoch 27 | loss 0.6660076975822449, f_iou 0.5253949165344238: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.40it/s]
epoch 27 | loss 0.6660076975822449, f_iou 0.5253949165344238: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.40it/s]
epoch 27 | loss 0.8890000581741333, f_iou 0.5294060111045837: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.40it/s]
epoch 27 | loss 0.8890000581741333, f_iou 0.5294060111045837: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 27 | loss 2.290344715118408, f_iou 0.5313935279846191: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.40it/s]
epoch 27 | loss 2.290344715118408, f_iou 0.5313935279846191: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.40it/s]
epoch 27 | loss 4.423222541809082, f_iou 0.5301128029823303: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.40it/s]
epoch 27 | loss 4.423222541809082, f_iou 0.5301128029823303: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.40it/s]
epoch 27 | loss 2.294083833694458, f_iou 0.5240217447280884: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.40it/s]
epoch 27 | loss 2.294083833694458, f_iou 0.5240217447280884: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 27 | loss 2.7383298873901367, f_iou 0.5305160880088806: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 27 | loss 2.7383298873901367, f_iou 0.5305160880088806: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 27 | loss 1.1957319974899292, f_iou 0.5263127684593201: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 27 | loss 1.1957319974899292, f_iou 0.5263127684593201: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 27 | loss 4.777048587799072, f_iou 0.5278419852256775: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.40it/s]
epoch 27 | loss 4.777048587799072, f_iou 0.5278419852256775: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.40it/s]
epoch 27 | loss 0.6386315822601318, f_iou 0.5345066785812378: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.40it/s]
epoch 27 | loss 0.6386315822601318, f_iou 0.5345066785812378: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 27 | loss 1.9806032180786133, f_iou 0.5253009796142578: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 27 | loss 1.9806032180786133, f_iou 0.5253009796142578: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.40it/s]
epoch 27 | loss 3.740838050842285, f_iou 0.5217616558074951: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.40it/s]
epoch 27 | loss 3.740838050842285, f_iou 0.5217616558074951: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.40it/s]
epoch 27 | loss 1.3726037740707397, f_iou 0.5224252939224243: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 27 | loss 1.3726037740707397, f_iou 0.5224252939224243: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.40it/s]
epoch 27 | loss 3.517022132873535, f_iou 0.5167003870010376: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.40it/s]
epoch 27 | loss 3.517022132873535, f_iou 0.5167003870010376: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 27 | loss 1.2670767307281494, f_iou 0.5164007544517517: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 27 | loss 1.2670767307281494, f_iou 0.5164007544517517: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 27 | loss 2.136716842651367, f_iou 0.5221085548400879: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 27 | loss 2.136716842651367, f_iou 0.5221085548400879: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.39it/s]
epoch 27 | loss 2.437150478363037, f_iou 0.5260200500488281: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.39it/s]
epoch 27 | loss 2.437150478363037, f_iou 0.5260200500488281: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.40it/s]
epoch 27 | loss 2.607996702194214, f_iou 0.5200462937355042: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.40it/s]
epoch 27 | loss 2.607996702194214, f_iou 0.5200462937355042: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 27 | loss 1.164618968963623, f_iou 0.5256234407424927: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 27 | loss 1.164618968963623, f_iou 0.5256234407424927: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 27 | loss 0.6311718225479126, f_iou 0.5201279520988464: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 27 | loss 0.6311718225479126, f_iou 0.5201279520988464: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 27 | loss 2.2960751056671143, f_iou 0.523459792137146: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 27 | loss 2.2960751056671143, f_iou 0.523459792137146: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 27 | loss 2.370620012283325, f_iou 0.5190564393997192: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 27 | loss 2.370620012283325, f_iou 0.5190564393997192: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 27 | loss 0.8043501377105713, f_iou 0.5181783437728882: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 27 | loss 0.8043501377105713, f_iou 0.5181783437728882: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 27 | loss 0.7980552911758423, f_iou 0.5226229429244995: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 27 | loss 0.7980552911758423, f_iou 0.5226229429244995: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 27 | loss 0.7925771474838257, f_iou 0.5274732112884521: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 27 | loss 0.7925771474838257, f_iou 0.5274732112884521: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 27 | loss 0.5810582637786865, f_iou 0.5254343152046204: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 27 | loss 0.5810582637786865, f_iou 0.5254343152046204: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 27 | loss 0.7192516922950745, f_iou 0.5308105945587158: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 27 | loss 0.7192516922950745, f_iou 0.5308105945587158: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 27 | loss 0.7192516922950745, f_iou 0.5308105945587158: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 27 | valid.f_iou 0.7591800093650818, valid.f_f-score 0.79659: 0%| | 0/16 [00:05, ?it/s]
epoch 27 | valid.f_iou 0.7591800093650818, valid.f_f-score 0.79659: 6%|█▉ | 1/16 [00:05<01:24, 5.61s/it]
epoch 27 | valid.f_iou 0.6189200282096863, valid.f_f-score 0.80719: 6%|█▉ | 1/16 [00:06<01:24, 5.61s/it]
epoch 27 | valid.f_iou 0.6189200282096863, valid.f_f-score 0.80719: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 27 | valid.f_iou 0.4703199863433838, valid.f_f-score 0.72593: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 27 | valid.f_iou 0.4703199863433838, valid.f_f-score 0.72593: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 27 | valid.f_iou 0.5074399709701538, valid.f_f-score 0.74001: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 27 | valid.f_iou 0.5074399709701538, valid.f_f-score 0.74001: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 27 | valid.f_iou 0.4925599992275238, valid.f_f-score 0.73821: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 27 | valid.f_iou 0.4925599992275238, valid.f_f-score 0.73821: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 27 | valid.f_iou 0.4693700075149536, valid.f_f-score 0.70687: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 27 | valid.f_iou 0.4693700075149536, valid.f_f-score 0.70687: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 27 | valid.f_iou 0.4718500077724457, valid.f_f-score 0.70831: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 27 | valid.f_iou 0.4718500077724457, valid.f_f-score 0.70831: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 27 | valid.f_iou 0.46369001269340515, valid.f_f-score 0.70784: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 27 | valid.f_iou 0.46369001269340515, valid.f_f-score 0.70784: 50%|███████████████ | 8/16 [00:08<00:04, 1.71it/s]
epoch 27 | valid.f_iou 0.4663600027561188, valid.f_f-score 0.69341: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.71it/s]
epoch 27 | valid.f_iou 0.4663600027561188, valid.f_f-score 0.69341: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.86it/s]
epoch 27 | valid.f_iou 0.45750999450683594, valid.f_f-score 0.69753: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 27 | valid.f_iou 0.45750999450683594, valid.f_f-score 0.69753: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 27 | valid.f_iou 0.46779999136924744, valid.f_f-score 0.69762: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.05it/s]
epoch 27 | valid.f_iou 0.46779999136924744, valid.f_f-score 0.69762: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.13it/s]
epoch 27 | valid.f_iou 0.49055999517440796, valid.f_f-score 0.71388: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.13it/s]
epoch 27 | valid.f_iou 0.49055999517440796, valid.f_f-score 0.71388: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.19it/s]
epoch 27 | valid.f_iou 0.5033599734306335, valid.f_f-score 0.72938: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.19it/s]
epoch 27 | valid.f_iou 0.5033599734306335, valid.f_f-score 0.72938: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.31it/s]
epoch 27 | valid.f_iou 0.4946399927139282, valid.f_f-score 0.71779: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.31it/s]
epoch 27 | valid.f_iou 0.4946399927139282, valid.f_f-score 0.71779: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 27 | valid.f_iou 0.4947800040245056, valid.f_f-score 0.70941: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 27 | valid.f_iou 0.4947800040245056, valid.f_f-score 0.70941: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 27 | valid.f_iou 0.5047500133514404, valid.f_f-score 0.70979: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 27 | valid.f_iou 0.5047500133514404, valid.f_f-score 0.70979: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 27 | valid.f_iou 0.5047500133514404, valid.f_f-score 0.70979: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 27 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.77176: 0%| | 0/16 [00:05, ?it/s]
epoch 27 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.77176: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 27 | valid.f_iou 0.7833399772644043, valid.f_f-score 0.84961: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 27 | valid.f_iou 0.7833399772644043, valid.f_f-score 0.84961: 12%|███▉ | 2/16 [00:05<00:34, 2.50s/it]
epoch 27 | valid.f_iou 0.6622599959373474, valid.f_f-score 0.77469: 12%|███▉ | 2/16 [00:06<00:34, 2.50s/it]
epoch 27 | valid.f_iou 0.6622599959373474, valid.f_f-score 0.77469: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 27 | valid.f_iou 0.6535400152206421, valid.f_f-score 0.74625: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 27 | valid.f_iou 0.6535400152206421, valid.f_f-score 0.74625: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 27 | valid.f_iou 0.654420018196106, valid.f_f-score 0.75881: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 27 | valid.f_iou 0.654420018196106, valid.f_f-score 0.75881: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 27 | valid.f_iou 0.6201900243759155, valid.f_f-score 0.71947: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 27 | valid.f_iou 0.6201900243759155, valid.f_f-score 0.71947: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 27 | valid.f_iou 0.6336899995803833, valid.f_f-score 0.73691: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 27 | valid.f_iou 0.6336899995803833, valid.f_f-score 0.73691: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 27 | valid.f_iou 0.6304399967193604, valid.f_f-score 0.73362: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 27 | valid.f_iou 0.6304399967193604, valid.f_f-score 0.73362: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 27 | valid.f_iou 0.6523600220680237, valid.f_f-score 0.75136: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 27 | valid.f_iou 0.6523600220680237, valid.f_f-score 0.75136: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 27 | valid.f_iou 0.6671500205993652, valid.f_f-score 0.76714: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 27 | valid.f_iou 0.6671500205993652, valid.f_f-score 0.76714: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 27 | valid.f_iou 0.6574500203132629, valid.f_f-score 0.75109: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 27 | valid.f_iou 0.6574500203132629, valid.f_f-score 0.75109: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.05it/s]
epoch 27 | valid.f_iou 0.6723399758338928, valid.f_f-score 0.76512: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 27 | valid.f_iou 0.6723399758338928, valid.f_f-score 0.76512: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 27 | valid.f_iou 0.6882799863815308, valid.f_f-score 0.77891: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 27 | valid.f_iou 0.6882799863815308, valid.f_f-score 0.77891: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.21it/s]
epoch 27 | valid.f_iou 0.6800500154495239, valid.f_f-score 0.77385: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.21it/s]
epoch 27 | valid.f_iou 0.6800500154495239, valid.f_f-score 0.77385: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.36it/s]
epoch 27 | valid.f_iou 0.6677899956703186, valid.f_f-score 0.76166: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.36it/s]
epoch 27 | valid.f_iou 0.6677899956703186, valid.f_f-score 0.76166: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 27 | valid.f_iou 0.6692799925804138, valid.f_f-score 0.76258: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 27 | valid.f_iou 0.6692799925804138, valid.f_f-score 0.76258: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.54it/s]
epoch 27 | valid.f_iou 0.6692799925804138, valid.f_f-score 0.76258: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 27 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.77176: 0%| | 0/16 [00:05, ?it/s]
epoch 27 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.77176: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 27 | valid.f_iou 0.7833399772644043, valid.f_f-score 0.84961: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 27 | valid.f_iou 0.7833399772644043, valid.f_f-score 0.84961: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 27 | valid.f_iou 0.6622599959373474, valid.f_f-score 0.77469: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 27 | valid.f_iou 0.6622599959373474, valid.f_f-score 0.77469: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 27 | valid.f_iou 0.6535400152206421, valid.f_f-score 0.74625: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 27 | valid.f_iou 0.6535400152206421, valid.f_f-score 0.74625: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 27 | valid.f_iou 0.6598700284957886, valid.f_f-score 0.75881: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 27 | valid.f_iou 0.6598700284957886, valid.f_f-score 0.75881: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 27 | valid.f_iou 0.6247299909591675, valid.f_f-score 0.71947: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 27 | valid.f_iou 0.6247299909591675, valid.f_f-score 0.71947: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 27 | valid.f_iou 0.6375899910926819, valid.f_f-score 0.73691: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 27 | valid.f_iou 0.6375899910926819, valid.f_f-score 0.73691: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 27 | valid.f_iou 0.6338499784469604, valid.f_f-score 0.73362: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 27 | valid.f_iou 0.6338499784469604, valid.f_f-score 0.73362: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 27 | valid.f_iou 0.6553900241851807, valid.f_f-score 0.75136: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.72it/s]
epoch 27 | valid.f_iou 0.6553900241851807, valid.f_f-score 0.75136: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.93it/s]
epoch 27 | valid.f_iou 0.6698799729347229, valid.f_f-score 0.76714: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.93it/s]
epoch 27 | valid.f_iou 0.6698799729347229, valid.f_f-score 0.76714: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 27 | valid.f_iou 0.6599299907684326, valid.f_f-score 0.75109: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 27 | valid.f_iou 0.6599299907684326, valid.f_f-score 0.75109: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 27 | valid.f_iou 0.6746100187301636, valid.f_f-score 0.76512: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 27 | valid.f_iou 0.6746100187301636, valid.f_f-score 0.76512: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 27 | valid.f_iou 0.6867700219154358, valid.f_f-score 0.77533: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 27 | valid.f_iou 0.6867700219154358, valid.f_f-score 0.77533: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 27 | valid.f_iou 0.6786500215530396, valid.f_f-score 0.77053: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 27 | valid.f_iou 0.6786500215530396, valid.f_f-score 0.77053: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 27 | valid.f_iou 0.6664800047874451, valid.f_f-score 0.75856: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 27 | valid.f_iou 0.6664800047874451, valid.f_f-score 0.75856: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 27 | valid.f_iou 0.6680600047111511, valid.f_f-score 0.75967: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 27 | valid.f_iou 0.6680600047111511, valid.f_f-score 0.75967: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 27 | valid.f_iou 0.6680600047111511, valid.f_f-score 0.75967: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 28 | loss 1.2378031015396118, f_iou 0.39295443892478943: 0%| | 0/74 [00:06, ?it/s]
epoch 28 | loss 1.2378031015396118, f_iou 0.39295443892478943: 1%|▍ | 1/74 [00:06<07:22, 6.06s/it]
epoch 28 | loss 1.8455710411071777, f_iou 0.4038417339324951: 1%|▌ | 1/74 [00:06<07:22, 6.06s/it]
epoch 28 | loss 1.8455710411071777, f_iou 0.4038417339324951: 3%|█ | 2/74 [00:06<03:33, 2.97s/it]
epoch 28 | loss 2.4109082221984863, f_iou 0.49574965238571167: 3%|▉ | 2/74 [00:07<03:33, 2.97s/it]
epoch 28 | loss 2.4109082221984863, f_iou 0.49574965238571167: 4%|█▍ | 3/74 [00:07<02:21, 1.99s/it]
epoch 28 | loss 1.0944085121154785, f_iou 0.524436354637146: 4%|█▌ | 3/74 [00:08<02:21, 1.99s/it]
epoch 28 | loss 1.0944085121154785, f_iou 0.524436354637146: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 28 | loss 2.898125171661377, f_iou 0.5499429702758789: 5%|██ | 4/74 [00:09<01:47, 1.54s/it]
epoch 28 | loss 2.898125171661377, f_iou 0.5499429702758789: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 28 | loss 8.185011863708496, f_iou 0.5149742960929871: 7%|██▌ | 5/74 [00:10<01:28, 1.28s/it]
epoch 28 | loss 8.185011863708496, f_iou 0.5149742960929871: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 28 | loss 3.704069137573242, f_iou 0.44420528411865234: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 28 | loss 3.704069137573242, f_iou 0.44420528411865234: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 28 | loss 1.0289382934570312, f_iou 0.49010539054870605: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 28 | loss 1.0289382934570312, f_iou 0.49010539054870605: 11%|███▉ | 8/74 [00:11<01:01, 1.07it/s]
epoch 28 | loss 0.7770258188247681, f_iou 0.499001145362854: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 28 | loss 0.7770258188247681, f_iou 0.499001145362854: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 28 | loss 0.7748719453811646, f_iou 0.5108621716499329: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 28 | loss 0.7748719453811646, f_iou 0.5108621716499329: 14%|████▊ | 10/74 [00:13<00:55, 1.16it/s]
epoch 28 | loss 1.6807692050933838, f_iou 0.529608964920044: 14%|█████ | 10/74 [00:14<00:55, 1.16it/s]
epoch 28 | loss 1.6807692050933838, f_iou 0.529608964920044: 15%|█████▌ | 11/74 [00:14<00:53, 1.19it/s]
epoch 28 | loss 1.6701297760009766, f_iou 0.5497329831123352: 15%|█████▎ | 11/74 [00:14<00:53, 1.19it/s]
epoch 28 | loss 1.6701297760009766, f_iou 0.5497329831123352: 16%|█████▊ | 12/74 [00:14<00:51, 1.20it/s]
epoch 28 | loss 1.0926555395126343, f_iou 0.5498235821723938: 16%|█████▊ | 12/74 [00:15<00:51, 1.20it/s]
epoch 28 | loss 1.0926555395126343, f_iou 0.5498235821723938: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 28 | loss 4.792721271514893, f_iou 0.5201926231384277: 18%|██████▌ | 13/74 [00:16<00:49, 1.24it/s]
epoch 28 | loss 4.792721271514893, f_iou 0.5201926231384277: 19%|███████ | 14/74 [00:16<00:47, 1.25it/s]
epoch 28 | loss 1.0361069440841675, f_iou 0.5374910235404968: 19%|██████▊ | 14/74 [00:17<00:47, 1.25it/s]
epoch 28 | loss 1.0361069440841675, f_iou 0.5374910235404968: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 28 | loss 1.5971705913543701, f_iou 0.5420812964439392: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 28 | loss 1.5971705913543701, f_iou 0.5420812964439392: 22%|███████▊ | 16/74 [00:17<00:44, 1.31it/s]
epoch 28 | loss 5.354450225830078, f_iou 0.5102028846740723: 22%|████████ | 16/74 [00:18<00:44, 1.31it/s]
epoch 28 | loss 5.354450225830078, f_iou 0.5102028846740723: 23%|████████▌ | 17/74 [00:18<00:42, 1.33it/s]
epoch 28 | loss 1.130677342414856, f_iou 0.5353235602378845: 23%|████████▌ | 17/74 [00:19<00:42, 1.33it/s]
epoch 28 | loss 1.130677342414856, f_iou 0.5353235602378845: 24%|█████████ | 18/74 [00:19<00:41, 1.35it/s]
epoch 28 | loss 3.138087034225464, f_iou 0.5119955539703369: 24%|█████████ | 18/74 [00:20<00:41, 1.35it/s]
epoch 28 | loss 3.138087034225464, f_iou 0.5119955539703369: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 28 | loss 2.1835694313049316, f_iou 0.49532395601272583: 26%|████████▉ | 19/74 [00:20<00:40, 1.35it/s]
epoch 28 | loss 2.1835694313049316, f_iou 0.49532395601272583: 27%|█████████▍ | 20/74 [00:20<00:39, 1.36it/s]
epoch 28 | loss 3.9116389751434326, f_iou 0.4854484498500824: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 28 | loss 3.9116389751434326, f_iou 0.4854484498500824: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 28 | loss 2.35968017578125, f_iou 0.4953940212726593: 28%|██████████▊ | 21/74 [00:22<00:38, 1.37it/s]
epoch 28 | loss 2.35968017578125, f_iou 0.4953940212726593: 30%|███████████▎ | 22/74 [00:22<00:38, 1.37it/s]
epoch 28 | loss 13.974689483642578, f_iou 0.48342692852020264: 30%|██████████▍ | 22/74 [00:22<00:38, 1.37it/s]
epoch 28 | loss 13.974689483642578, f_iou 0.48342692852020264: 31%|██████████▉ | 23/74 [00:22<00:37, 1.37it/s]
epoch 28 | loss 2.059648275375366, f_iou 0.4925234019756317: 31%|███████████▌ | 23/74 [00:23<00:37, 1.37it/s]
epoch 28 | loss 2.059648275375366, f_iou 0.4925234019756317: 32%|████████████ | 24/74 [00:23<00:36, 1.37it/s]
epoch 28 | loss 1.0646713972091675, f_iou 0.49096307158470154: 32%|███████████▎ | 24/74 [00:24<00:36, 1.37it/s]
epoch 28 | loss 1.0646713972091675, f_iou 0.49096307158470154: 34%|███████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 28 | loss 1.1483755111694336, f_iou 0.5077372193336487: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 28 | loss 1.1483755111694336, f_iou 0.5077372193336487: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 28 | loss 0.7631935477256775, f_iou 0.5201297998428345: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 28 | loss 0.7631935477256775, f_iou 0.5201297998428345: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 28 | loss 2.8799421787261963, f_iou 0.5242127180099487: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 28 | loss 2.8799421787261963, f_iou 0.5242127180099487: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 28 | loss 2.816270112991333, f_iou 0.5152803659439087: 38%|██████████████ | 28/74 [00:27<00:33, 1.39it/s]
epoch 28 | loss 2.816270112991333, f_iou 0.5152803659439087: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.38it/s]
epoch 28 | loss 2.3535492420196533, f_iou 0.5195854902267456: 39%|██████████████ | 29/74 [00:28<00:32, 1.38it/s]
epoch 28 | loss 2.3535492420196533, f_iou 0.5195854902267456: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.38it/s]
epoch 28 | loss 2.642390012741089, f_iou 0.5251355171203613: 41%|███████████████ | 30/74 [00:28<00:31, 1.38it/s]
epoch 28 | loss 2.642390012741089, f_iou 0.5251355171203613: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.38it/s]
epoch 28 | loss 1.4603595733642578, f_iou 0.535520076751709: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.38it/s]
epoch 28 | loss 1.4603595733642578, f_iou 0.535520076751709: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 28 | loss 1.000806212425232, f_iou 0.5463787913322449: 43%|████████████████ | 32/74 [00:30<00:30, 1.39it/s]
epoch 28 | loss 1.000806212425232, f_iou 0.5463787913322449: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 28 | loss 5.053433418273926, f_iou 0.5471857190132141: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 28 | loss 5.053433418273926, f_iou 0.5471857190132141: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 28 | loss 3.421699047088623, f_iou 0.5449579358100891: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 28 | loss 3.421699047088623, f_iou 0.5449579358100891: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 28 | loss 1.6881914138793945, f_iou 0.5482078194618225: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 28 | loss 1.6881914138793945, f_iou 0.5482078194618225: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 28 | loss 4.9276814460754395, f_iou 0.536774754524231: 49%|██████████████████ | 36/74 [00:33<00:27, 1.39it/s]
epoch 28 | loss 4.9276814460754395, f_iou 0.536774754524231: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 28 | loss 2.1334023475646973, f_iou 0.5450104475021362: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 28 | loss 2.1334023475646973, f_iou 0.5450104475021362: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 28 | loss 2.066802501678467, f_iou 0.533887505531311: 51%|███████████████████▌ | 38/74 [00:34<00:25, 1.39it/s]
epoch 28 | loss 2.066802501678467, f_iou 0.533887505531311: 53%|████████████████████ | 39/74 [00:34<00:25, 1.35it/s]
epoch 28 | loss 2.210556745529175, f_iou 0.539740264415741: 53%|████████████████████ | 39/74 [00:35<00:25, 1.35it/s]
epoch 28 | loss 2.210556745529175, f_iou 0.539740264415741: 54%|████████████████████▌ | 40/74 [00:35<00:25, 1.32it/s]
epoch 28 | loss 3.8453218936920166, f_iou 0.5434106588363647: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.32it/s]
epoch 28 | loss 3.8453218936920166, f_iou 0.5434106588363647: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.30it/s]
epoch 28 | loss 2.1713902950286865, f_iou 0.5405040383338928: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.30it/s]
epoch 28 | loss 2.1713902950286865, f_iou 0.5405040383338928: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.29it/s]
epoch 28 | loss 1.0098950862884521, f_iou 0.5383886098861694: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.29it/s]
epoch 28 | loss 1.0098950862884521, f_iou 0.5383886098861694: 58%|████████████████████▉ | 43/74 [00:37<00:24, 1.29it/s]
epoch 28 | loss 1.088215708732605, f_iou 0.5415339469909668: 58%|█████████████████████▍ | 43/74 [00:38<00:24, 1.29it/s]
epoch 28 | loss 1.088215708732605, f_iou 0.5415339469909668: 59%|██████████████████████ | 44/74 [00:38<00:22, 1.31it/s]
epoch 28 | loss 1.4545888900756836, f_iou 0.5486616492271423: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.31it/s]
epoch 28 | loss 1.4545888900756836, f_iou 0.5486616492271423: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 28 | loss 2.8729755878448486, f_iou 0.5383036732673645: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 28 | loss 2.8729755878448486, f_iou 0.5383036732673645: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.35it/s]
epoch 28 | loss 2.664444923400879, f_iou 0.5421872735023499: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.35it/s]
epoch 28 | loss 2.664444923400879, f_iou 0.5421872735023499: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.36it/s]
epoch 28 | loss 3.7793736457824707, f_iou 0.5348072052001953: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.36it/s]
epoch 28 | loss 3.7793736457824707, f_iou 0.5348072052001953: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.37it/s]
epoch 28 | loss 1.949378490447998, f_iou 0.5356645584106445: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.37it/s]
epoch 28 | loss 1.949378490447998, f_iou 0.5356645584106445: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 28 | loss 1.0195558071136475, f_iou 0.543367326259613: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 28 | loss 1.0195558071136475, f_iou 0.543367326259613: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.38it/s]
epoch 28 | loss 1.9293546676635742, f_iou 0.5423728227615356: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 28 | loss 1.9293546676635742, f_iou 0.5423728227615356: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 28 | loss 1.1623282432556152, f_iou 0.5442665219306946: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 28 | loss 1.1623282432556152, f_iou 0.5442665219306946: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 28 | loss 1.1742151975631714, f_iou 0.5464075207710266: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 28 | loss 1.1742151975631714, f_iou 0.5464075207710266: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 28 | loss 1.9974077939987183, f_iou 0.5481434464454651: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 28 | loss 1.9974077939987183, f_iou 0.5481434464454651: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.37it/s]
epoch 28 | loss 1.4346603155136108, f_iou 0.5461761951446533: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.37it/s]
epoch 28 | loss 1.4346603155136108, f_iou 0.5461761951446533: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.34it/s]
epoch 28 | loss 1.424970269203186, f_iou 0.5523550510406494: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.34it/s]
epoch 28 | loss 1.424970269203186, f_iou 0.5523550510406494: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.32it/s]
epoch 28 | loss 0.54296875, f_iou 0.5596535801887512: 76%|█████████████████████████████████▎ | 56/74 [00:48<00:13, 1.32it/s]
epoch 28 | loss 0.54296875, f_iou 0.5596535801887512: 77%|█████████████████████████████████▉ | 57/74 [00:48<00:13, 1.30it/s]
epoch 28 | loss 6.759943962097168, f_iou 0.5602038502693176: 77%|████████████████████████████▌ | 57/74 [00:48<00:13, 1.30it/s]
epoch 28 | loss 6.759943962097168, f_iou 0.5602038502693176: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.29it/s]
epoch 28 | loss 4.2019829750061035, f_iou 0.5587053298950195: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.29it/s]
epoch 28 | loss 4.2019829750061035, f_iou 0.5587053298950195: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.28it/s]
epoch 28 | loss 5.838161468505859, f_iou 0.558538019657135: 80%|██████████████████████████████▎ | 59/74 [00:50<00:11, 1.28it/s]
epoch 28 | loss 5.838161468505859, f_iou 0.558538019657135: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.32it/s]
epoch 28 | loss 1.3165040016174316, f_iou 0.5630853176116943: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.32it/s]
epoch 28 | loss 1.3165040016174316, f_iou 0.5630853176116943: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.34it/s]
epoch 28 | loss 1.213088035583496, f_iou 0.5696414113044739: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.34it/s]
epoch 28 | loss 1.213088035583496, f_iou 0.5696414113044739: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.35it/s]
epoch 28 | loss 2.9602749347686768, f_iou 0.5675321817398071: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.35it/s]
epoch 28 | loss 2.9602749347686768, f_iou 0.5675321817398071: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.36it/s]
epoch 28 | loss 2.6847739219665527, f_iou 0.5618224143981934: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.36it/s]
epoch 28 | loss 2.6847739219665527, f_iou 0.5618224143981934: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.37it/s]
epoch 28 | loss 1.5892572402954102, f_iou 0.5644907355308533: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.37it/s]
epoch 28 | loss 1.5892572402954102, f_iou 0.5644907355308533: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.35it/s]
epoch 28 | loss 1.5006464719772339, f_iou 0.5700255036354065: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.35it/s]
epoch 28 | loss 1.5006464719772339, f_iou 0.5700255036354065: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.36it/s]
epoch 28 | loss 1.5887980461120605, f_iou 0.5706037282943726: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.36it/s]
epoch 28 | loss 1.5887980461120605, f_iou 0.5706037282943726: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 28 | loss 2.0674469470977783, f_iou 0.5710870027542114: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.37it/s]
epoch 28 | loss 2.0674469470977783, f_iou 0.5710870027542114: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 28 | loss 1.0593042373657227, f_iou 0.5762766003608704: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 28 | loss 1.0593042373657227, f_iou 0.5762766003608704: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 28 | loss 1.2368226051330566, f_iou 0.5808375477790833: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 28 | loss 1.2368226051330566, f_iou 0.5808375477790833: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 28 | loss 1.1291167736053467, f_iou 0.5828030705451965: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 28 | loss 1.1291167736053467, f_iou 0.5828030705451965: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 28 | loss 1.2564207315444946, f_iou 0.5862377882003784: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 28 | loss 1.2564207315444946, f_iou 0.5862377882003784: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 28 | loss 3.9489378929138184, f_iou 0.5864352583885193: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 28 | loss 3.9489378929138184, f_iou 0.5864352583885193: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 28 | loss 0.125, f_iou 0.5905435681343079: 99%|████████████████████████████████████████████████▎| 73/74 [01:00<00:00, 1.41it/s]
epoch 28 | loss 0.125, f_iou 0.5905435681343079: 100%|█████████████████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 28 | loss 0.125, f_iou 0.5905435681343079: 100%|█████████████████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 28 | valid.f_iou 0.7581999897956848, valid.f_f-score 0.79473: 0%| | 0/16 [00:05, ?it/s]
epoch 28 | valid.f_iou 0.7581999897956848, valid.f_f-score 0.79473: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 28 | valid.f_iou 0.7059699892997742, valid.f_f-score 0.85465: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 28 | valid.f_iou 0.7059699892997742, valid.f_f-score 0.85465: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 28 | valid.f_iou 0.5418699979782104, valid.f_f-score 0.7758: 12%|████ | 2/16 [00:06<00:35, 2.53s/it]
epoch 28 | valid.f_iou 0.5418699979782104, valid.f_f-score 0.7758: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 28 | valid.f_iou 0.5622400045394897, valid.f_f-score 0.77491: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 28 | valid.f_iou 0.5622400045394897, valid.f_f-score 0.77491: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 28 | valid.f_iou 0.5689200162887573, valid.f_f-score 0.77472: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 28 | valid.f_iou 0.5689200162887573, valid.f_f-score 0.77472: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 28 | valid.f_iou 0.5410000085830688, valid.f_f-score 0.74813: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 28 | valid.f_iou 0.5410000085830688, valid.f_f-score 0.74813: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 28 | valid.f_iou 0.5335299968719482, valid.f_f-score 0.75254: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 28 | valid.f_iou 0.5335299968719482, valid.f_f-score 0.75254: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 28 | valid.f_iou 0.5209199786186218, valid.f_f-score 0.75031: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 28 | valid.f_iou 0.5209199786186218, valid.f_f-score 0.75031: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 28 | valid.f_iou 0.5270799994468689, valid.f_f-score 0.7382: 50%|████████████████ | 8/16 [00:09<00:04, 1.73it/s]
epoch 28 | valid.f_iou 0.5270799994468689, valid.f_f-score 0.7382: 56%|██████████████████ | 9/16 [00:09<00:03, 1.89it/s]
epoch 28 | valid.f_iou 0.5188400149345398, valid.f_f-score 0.74208: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 28 | valid.f_iou 0.5188400149345398, valid.f_f-score 0.74208: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 28 | valid.f_iou 0.5316100120544434, valid.f_f-score 0.74522: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 28 | valid.f_iou 0.5316100120544434, valid.f_f-score 0.74522: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.07it/s]
epoch 28 | valid.f_iou 0.551639974117279, valid.f_f-score 0.759: 69%|██████████████████████▋ | 11/16 [00:10<00:02, 2.07it/s]
epoch 28 | valid.f_iou 0.551639974117279, valid.f_f-score 0.759: 75%|████████████████████████▊ | 12/16 [00:10<00:01, 2.23it/s]
epoch 28 | valid.f_iou 0.5618900060653687, valid.f_f-score 0.76974: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 28 | valid.f_iou 0.5618900060653687, valid.f_f-score 0.76974: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 28 | valid.f_iou 0.5525199770927429, valid.f_f-score 0.76087: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 28 | valid.f_iou 0.5525199770927429, valid.f_f-score 0.76087: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 28 | valid.f_iou 0.5591800212860107, valid.f_f-score 0.76183: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 28 | valid.f_iou 0.5591800212860107, valid.f_f-score 0.76183: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 28 | valid.f_iou 0.5673499703407288, valid.f_f-score 0.76051: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 28 | valid.f_iou 0.5673499703407288, valid.f_f-score 0.76051: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 28 | valid.f_iou 0.5673499703407288, valid.f_f-score 0.76051: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 28 | valid.f_iou 0.7945600152015686, valid.f_f-score 0.77419: 0%| | 0/16 [00:04, ?it/s]
epoch 28 | valid.f_iou 0.7945600152015686, valid.f_f-score 0.77419: 6%|█▉ | 1/16 [00:04<01:10, 4.73s/it]
epoch 28 | valid.f_iou 0.8208799958229065, valid.f_f-score 0.85807: 6%|█▉ | 1/16 [00:05<01:10, 4.73s/it]
epoch 28 | valid.f_iou 0.8208799958229065, valid.f_f-score 0.85807: 12%|███▉ | 2/16 [00:05<00:31, 2.22s/it]
epoch 28 | valid.f_iou 0.7305200099945068, valid.f_f-score 0.83488: 12%|███▉ | 2/16 [00:05<00:31, 2.22s/it]
epoch 28 | valid.f_iou 0.7305200099945068, valid.f_f-score 0.83488: 19%|█████▊ | 3/16 [00:05<00:18, 1.41s/it]
epoch 28 | valid.f_iou 0.7061799764633179, valid.f_f-score 0.80081: 19%|█████▊ | 3/16 [00:05<00:18, 1.41s/it]
epoch 28 | valid.f_iou 0.7061799764633179, valid.f_f-score 0.80081: 25%|███████▊ | 4/16 [00:05<00:11, 1.01it/s]
epoch 28 | valid.f_iou 0.6942300200462341, valid.f_f-score 0.79907: 25%|███████▊ | 4/16 [00:06<00:11, 1.01it/s]
epoch 28 | valid.f_iou 0.6942300200462341, valid.f_f-score 0.79907: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 28 | valid.f_iou 0.6529399752616882, valid.f_f-score 0.75862: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 28 | valid.f_iou 0.6529399752616882, valid.f_f-score 0.75862: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 28 | valid.f_iou 0.661899983882904, valid.f_f-score 0.77544: 38%|████████████ | 6/16 [00:07<00:06, 1.49it/s]
epoch 28 | valid.f_iou 0.661899983882904, valid.f_f-score 0.77544: 44%|██████████████ | 7/16 [00:07<00:05, 1.69it/s]
epoch 28 | valid.f_iou 0.6566900014877319, valid.f_f-score 0.78033: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 28 | valid.f_iou 0.6566900014877319, valid.f_f-score 0.78033: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 28 | valid.f_iou 0.6747499704360962, valid.f_f-score 0.78946: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.85it/s]
epoch 28 | valid.f_iou 0.6747499704360962, valid.f_f-score 0.78946: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 28 | valid.f_iou 0.6888099908828735, valid.f_f-score 0.80222: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 28 | valid.f_iou 0.6888099908828735, valid.f_f-score 0.80222: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 28 | valid.f_iou 0.6785899996757507, valid.f_f-score 0.78241: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 28 | valid.f_iou 0.6785899996757507, valid.f_f-score 0.78241: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.24it/s]
epoch 28 | valid.f_iou 0.6913400292396545, valid.f_f-score 0.79398: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 28 | valid.f_iou 0.6913400292396545, valid.f_f-score 0.79398: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.37it/s]
epoch 28 | valid.f_iou 0.7056499719619751, valid.f_f-score 0.80476: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.37it/s]
epoch 28 | valid.f_iou 0.7056499719619751, valid.f_f-score 0.80476: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.46it/s]
epoch 28 | valid.f_iou 0.6956200003623962, valid.f_f-score 0.79595: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 28 | valid.f_iou 0.6956200003623962, valid.f_f-score 0.79595: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 28 | valid.f_iou 0.6885600090026855, valid.f_f-score 0.79242: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 28 | valid.f_iou 0.6885600090026855, valid.f_f-score 0.79242: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 28 | valid.f_iou 0.6923099756240845, valid.f_f-score 0.79533: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 28 | valid.f_iou 0.6923099756240845, valid.f_f-score 0.79533: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 28 | valid.f_iou 0.6923099756240845, valid.f_f-score 0.79533: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 28 | valid.f_iou 0.7945600152015686, valid.f_f-score 0.77419: 0%| | 0/16 [00:04, ?it/s]
epoch 28 | valid.f_iou 0.7945600152015686, valid.f_f-score 0.77419: 6%|█▉ | 1/16 [00:04<01:04, 4.33s/it]
epoch 28 | valid.f_iou 0.8208799958229065, valid.f_f-score 0.85807: 6%|█▉ | 1/16 [00:04<01:04, 4.33s/it]
epoch 28 | valid.f_iou 0.8208799958229065, valid.f_f-score 0.85807: 12%|███▉ | 2/16 [00:04<00:28, 2.05s/it]
epoch 28 | valid.f_iou 0.7305200099945068, valid.f_f-score 0.83488: 12%|███▉ | 2/16 [00:05<00:28, 2.05s/it]
epoch 28 | valid.f_iou 0.7305200099945068, valid.f_f-score 0.83488: 19%|█████▊ | 3/16 [00:05<00:16, 1.30s/it]
epoch 28 | valid.f_iou 0.7064200043678284, valid.f_f-score 0.80081: 19%|█████▊ | 3/16 [00:05<00:16, 1.30s/it]
epoch 28 | valid.f_iou 0.7064200043678284, valid.f_f-score 0.80081: 25%|███████▊ | 4/16 [00:05<00:11, 1.07it/s]
epoch 28 | valid.f_iou 0.6944199800491333, valid.f_f-score 0.79907: 25%|███████▊ | 4/16 [00:05<00:11, 1.07it/s]
epoch 28 | valid.f_iou 0.6944199800491333, valid.f_f-score 0.79907: 31%|█████████▋ | 5/16 [00:05<00:08, 1.37it/s]
epoch 28 | valid.f_iou 0.6543300151824951, valid.f_f-score 0.75862: 31%|█████████▋ | 5/16 [00:06<00:08, 1.37it/s]
epoch 28 | valid.f_iou 0.6543300151824951, valid.f_f-score 0.75862: 38%|███████████▋ | 6/16 [00:06<00:06, 1.64it/s]
epoch 28 | valid.f_iou 0.6648600101470947, valid.f_f-score 0.77544: 38%|███████████▋ | 6/16 [00:06<00:06, 1.64it/s]
epoch 28 | valid.f_iou 0.6648600101470947, valid.f_f-score 0.77544: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.91it/s]
epoch 28 | valid.f_iou 0.659280002117157, valid.f_f-score 0.78033: 44%|██████████████ | 7/16 [00:07<00:04, 1.91it/s]
epoch 28 | valid.f_iou 0.659280002117157, valid.f_f-score 0.78033: 50%|████████████████ | 8/16 [00:07<00:03, 2.10it/s]
epoch 28 | valid.f_iou 0.6802999973297119, valid.f_f-score 0.78946: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.10it/s]
epoch 28 | valid.f_iou 0.6802999973297119, valid.f_f-score 0.78946: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.29it/s]
epoch 28 | valid.f_iou 0.6894699931144714, valid.f_f-score 0.79857: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.29it/s]
epoch 28 | valid.f_iou 0.6894699931144714, valid.f_f-score 0.79857: 62%|██████████████████▊ | 10/16 [00:07<00:02, 2.41it/s]
epoch 28 | valid.f_iou 0.6791899800300598, valid.f_f-score 0.77909: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.41it/s]
epoch 28 | valid.f_iou 0.6791899800300598, valid.f_f-score 0.77909: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.51it/s]
epoch 28 | valid.f_iou 0.6918900012969971, valid.f_f-score 0.79094: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.51it/s]
epoch 28 | valid.f_iou 0.6918900012969971, valid.f_f-score 0.79094: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.58it/s]
epoch 28 | valid.f_iou 0.7024400234222412, valid.f_f-score 0.79901: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.58it/s]
epoch 28 | valid.f_iou 0.7024400234222412, valid.f_f-score 0.79901: 81%|████████████████████████▍ | 13/16 [00:08<00:01, 2.62it/s]
epoch 28 | valid.f_iou 0.6926400065422058, valid.f_f-score 0.79061: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.62it/s]
epoch 28 | valid.f_iou 0.6926400065422058, valid.f_f-score 0.79061: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.66it/s]
epoch 28 | valid.f_iou 0.6857699751853943, valid.f_f-score 0.78743: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.66it/s]
epoch 28 | valid.f_iou 0.6857699751853943, valid.f_f-score 0.78743: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.68it/s]
epoch 28 | valid.f_iou 0.690339982509613, valid.f_f-score 0.79066: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.68it/s]
epoch 28 | valid.f_iou 0.690339982509613, valid.f_f-score 0.79066: 100%|███████████████████████████████| 16/16 [00:09<00:00, 2.70it/s]
epoch 28 | valid.f_iou 0.690339982509613, valid.f_f-score 0.79066: 100%|███████████████████████████████| 16/16 [00:09<00:00, 1.61it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 29 | loss 0.6674026846885681, f_iou 0.0013315350515767932: 0%| | 0/74 [00:05, ?it/s]
epoch 29 | loss 0.6674026846885681, f_iou 0.0013315350515767932: 1%|▍ | 1/74 [00:05<06:53, 5.67s/it]
epoch 29 | loss 1.7368495464324951, f_iou 0.3160032033920288: 1%|▌ | 1/74 [00:06<06:53, 5.67s/it]
epoch 29 | loss 1.7368495464324951, f_iou 0.3160032033920288: 3%|█ | 2/74 [00:06<03:21, 2.80s/it]
epoch 29 | loss 1.1921223402023315, f_iou 0.2109612226486206: 3%|█ | 2/74 [00:07<03:21, 2.80s/it]
epoch 29 | loss 1.1921223402023315, f_iou 0.2109612226486206: 4%|█▌ | 3/74 [00:07<02:14, 1.89s/it]
epoch 29 | loss 1.432665228843689, f_iou 0.3654707074165344: 4%|█▌ | 3/74 [00:08<02:14, 1.89s/it]
epoch 29 | loss 1.432665228843689, f_iou 0.3654707074165344: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 29 | loss 0.805243968963623, f_iou 0.4668734669685364: 5%|██ | 4/74 [00:09<01:43, 1.48s/it]
epoch 29 | loss 0.805243968963623, f_iou 0.4668734669685364: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 29 | loss 1.92172110080719, f_iou 0.3890758454799652: 7%|██▋ | 5/74 [00:09<01:27, 1.27s/it]
epoch 29 | loss 1.92172110080719, f_iou 0.3890758454799652: 8%|███▏ | 6/74 [00:09<01:16, 1.13s/it]
epoch 29 | loss 1.985154628753662, f_iou 0.36440613865852356: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 29 | loss 1.985154628753662, f_iou 0.36440613865852356: 9%|███▌ | 7/74 [00:10<01:08, 1.02s/it]
epoch 29 | loss 1.8061065673828125, f_iou 0.4066346287727356: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 29 | loss 1.8061065673828125, f_iou 0.4066346287727356: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 29 | loss 1.4065837860107422, f_iou 0.4403504431247711: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 29 | loss 1.4065837860107422, f_iou 0.4403504431247711: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 29 | loss 0.8121393918991089, f_iou 0.4845731258392334: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 29 | loss 0.8121393918991089, f_iou 0.4845731258392334: 14%|████▊ | 10/74 [00:12<00:54, 1.17it/s]
epoch 29 | loss 0.0, f_iou 0.5202208161354065: 14%|██████▉ | 10/74 [00:13<00:54, 1.17it/s]
epoch 29 | loss 0.0, f_iou 0.5202208161354065: 15%|███████▌ | 11/74 [00:13<00:52, 1.20it/s]
epoch 29 | loss 1.523806095123291, f_iou 0.5474128723144531: 15%|█████▌ | 11/74 [00:14<00:52, 1.20it/s]
epoch 29 | loss 1.523806095123291, f_iou 0.5474128723144531: 16%|██████ | 12/74 [00:14<00:50, 1.23it/s]
epoch 29 | loss 2.3092362880706787, f_iou 0.5406675338745117: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 29 | loss 2.3092362880706787, f_iou 0.5406675338745117: 18%|██████▎ | 13/74 [00:15<00:48, 1.25it/s]
epoch 29 | loss 3.3490076065063477, f_iou 0.5435425043106079: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 29 | loss 3.3490076065063477, f_iou 0.5435425043106079: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 29 | loss 1.9102964401245117, f_iou 0.5613057017326355: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 29 | loss 1.9102964401245117, f_iou 0.5613057017326355: 20%|███████▎ | 15/74 [00:16<00:45, 1.31it/s]
epoch 29 | loss 0.684526264667511, f_iou 0.5869266986846924: 20%|███████▌ | 15/74 [00:17<00:45, 1.31it/s]
epoch 29 | loss 0.684526264667511, f_iou 0.5869266986846924: 22%|████████ | 16/74 [00:17<00:43, 1.34it/s]
epoch 29 | loss 4.846179962158203, f_iou 0.5724846124649048: 22%|████████ | 16/74 [00:18<00:43, 1.34it/s]
epoch 29 | loss 4.846179962158203, f_iou 0.5724846124649048: 23%|████████▌ | 17/74 [00:18<00:42, 1.35it/s]
epoch 29 | loss 4.264652729034424, f_iou 0.5552321076393127: 23%|████████▌ | 17/74 [00:18<00:42, 1.35it/s]
epoch 29 | loss 4.264652729034424, f_iou 0.5552321076393127: 24%|█████████ | 18/74 [00:18<00:41, 1.36it/s]
epoch 29 | loss 1.7487423419952393, f_iou 0.5527541041374207: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 29 | loss 1.7487423419952393, f_iou 0.5527541041374207: 26%|█████████▏ | 19/74 [00:19<00:40, 1.37it/s]
epoch 29 | loss 0.6243656277656555, f_iou 0.5695798397064209: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 29 | loss 0.6243656277656555, f_iou 0.5695798397064209: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 29 | loss 11.940336227416992, f_iou 0.5495156645774841: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 29 | loss 11.940336227416992, f_iou 0.5495156645774841: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 29 | loss 4.856295108795166, f_iou 0.5297627449035645: 28%|██████████▌ | 21/74 [00:21<00:38, 1.38it/s]
epoch 29 | loss 4.856295108795166, f_iou 0.5297627449035645: 30%|███████████ | 22/74 [00:21<00:37, 1.39it/s]
epoch 29 | loss 1.306195855140686, f_iou 0.539604127407074: 30%|███████████▎ | 22/74 [00:22<00:37, 1.39it/s]
epoch 29 | loss 1.306195855140686, f_iou 0.539604127407074: 31%|███████████▊ | 23/74 [00:22<00:36, 1.39it/s]
epoch 29 | loss 1.7145555019378662, f_iou 0.5439556837081909: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 29 | loss 1.7145555019378662, f_iou 0.5439556837081909: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 29 | loss 1.0171687602996826, f_iou 0.5534703135490417: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 29 | loss 1.0171687602996826, f_iou 0.5534703135490417: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 29 | loss 1.4642748832702637, f_iou 0.5531414151191711: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 29 | loss 1.4642748832702637, f_iou 0.5531414151191711: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 29 | loss 4.828122138977051, f_iou 0.5326546430587769: 35%|█████████████ | 26/74 [00:25<00:34, 1.39it/s]
epoch 29 | loss 4.828122138977051, f_iou 0.5326546430587769: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 29 | loss 0.7290709018707275, f_iou 0.546419620513916: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.39it/s]
epoch 29 | loss 0.7290709018707275, f_iou 0.546419620513916: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 29 | loss 1.2697829008102417, f_iou 0.5548284649848938: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 29 | loss 1.2697829008102417, f_iou 0.5548284649848938: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 29 | loss 3.9002113342285156, f_iou 0.5550865530967712: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 29 | loss 3.9002113342285156, f_iou 0.5550865530967712: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 29 | loss 0.9527704119682312, f_iou 0.5545749664306641: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 29 | loss 0.9527704119682312, f_iou 0.5545749664306641: 42%|███████████████ | 31/74 [00:28<00:31, 1.38it/s]
epoch 29 | loss 1.798995018005371, f_iou 0.554053544998169: 42%|███████████████▉ | 31/74 [00:28<00:31, 1.38it/s]
epoch 29 | loss 1.798995018005371, f_iou 0.554053544998169: 43%|████████████████▍ | 32/74 [00:28<00:30, 1.39it/s]
epoch 29 | loss 1.451116681098938, f_iou 0.5461652874946594: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 29 | loss 1.451116681098938, f_iou 0.5461652874946594: 45%|████████████████▌ | 33/74 [00:29<00:31, 1.30it/s]
epoch 29 | loss 3.3154125213623047, f_iou 0.5514814257621765: 45%|████████████████ | 33/74 [00:30<00:31, 1.30it/s]
epoch 29 | loss 3.3154125213623047, f_iou 0.5514814257621765: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.34it/s]
epoch 29 | loss 0.6214168071746826, f_iou 0.5632426142692566: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.34it/s]
epoch 29 | loss 0.6214168071746826, f_iou 0.5632426142692566: 47%|█████████████████ | 35/74 [00:31<00:28, 1.35it/s]
epoch 29 | loss 1.9444084167480469, f_iou 0.5590713620185852: 47%|█████████████████ | 35/74 [00:32<00:28, 1.35it/s]
epoch 29 | loss 1.9444084167480469, f_iou 0.5590713620185852: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.36it/s]
epoch 29 | loss 1.0240322351455688, f_iou 0.570285439491272: 49%|██████████████████ | 36/74 [00:32<00:27, 1.36it/s]
epoch 29 | loss 1.0240322351455688, f_iou 0.570285439491272: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.37it/s]
epoch 29 | loss 0.7572821974754333, f_iou 0.5780360698699951: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 29 | loss 0.7572821974754333, f_iou 0.5780360698699951: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.37it/s]
epoch 29 | loss 2.409696102142334, f_iou 0.5759785175323486: 51%|███████████████████ | 38/74 [00:34<00:26, 1.37it/s]
epoch 29 | loss 2.409696102142334, f_iou 0.5759785175323486: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 29 | loss 1.566420078277588, f_iou 0.5777071714401245: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 29 | loss 1.566420078277588, f_iou 0.5777071714401245: 54%|████████████████████ | 40/74 [00:34<00:24, 1.38it/s]
epoch 29 | loss 1.0595145225524902, f_iou 0.5815140604972839: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 29 | loss 1.0595145225524902, f_iou 0.5815140604972839: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 29 | loss 0.34375, f_iou 0.5894071459770203: 55%|██████████████████████████ | 41/74 [00:36<00:23, 1.38it/s]
epoch 29 | loss 0.34375, f_iou 0.5894071459770203: 57%|██████████████████████████▋ | 42/74 [00:36<00:23, 1.36it/s]
epoch 29 | loss 1.3904459476470947, f_iou 0.5876438021659851: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.36it/s]
epoch 29 | loss 1.3904459476470947, f_iou 0.5876438021659851: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.33it/s]
epoch 29 | loss 5.005047798156738, f_iou 0.5824121832847595: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.33it/s]
epoch 29 | loss 5.005047798156738, f_iou 0.5824121832847595: 59%|██████████████████████ | 44/74 [00:37<00:22, 1.32it/s]
epoch 29 | loss 1.4253528118133545, f_iou 0.5890921950340271: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.32it/s]
epoch 29 | loss 1.4253528118133545, f_iou 0.5890921950340271: 61%|█████████████████████▉ | 45/74 [00:38<00:22, 1.30it/s]
epoch 29 | loss 3.460984230041504, f_iou 0.595173716545105: 61%|███████████████████████ | 45/74 [00:39<00:22, 1.30it/s]
epoch 29 | loss 3.460984230041504, f_iou 0.595173716545105: 62%|███████████████████████▌ | 46/74 [00:39<00:21, 1.30it/s]
epoch 29 | loss 1.578115463256836, f_iou 0.5980582237243652: 62%|███████████████████████ | 46/74 [00:40<00:21, 1.30it/s]
epoch 29 | loss 1.578115463256836, f_iou 0.5980582237243652: 64%|███████████████████████▌ | 47/74 [00:40<00:20, 1.31it/s]
epoch 29 | loss 0.7550843358039856, f_iou 0.6048928499221802: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.31it/s]
epoch 29 | loss 0.7550843358039856, f_iou 0.6048928499221802: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.31it/s]
epoch 29 | loss 1.2814784049987793, f_iou 0.6085937023162842: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.31it/s]
epoch 29 | loss 1.2814784049987793, f_iou 0.6085937023162842: 66%|███████████████████████▊ | 49/74 [00:41<00:19, 1.30it/s]
epoch 29 | loss 5.156943321228027, f_iou 0.6019184589385986: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.30it/s]
epoch 29 | loss 5.156943321228027, f_iou 0.6019184589385986: 68%|█████████████████████████ | 50/74 [00:42<00:18, 1.30it/s]
epoch 29 | loss 1.6858495473861694, f_iou 0.6074649095535278: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.30it/s]
epoch 29 | loss 1.6858495473861694, f_iou 0.6074649095535278: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.32it/s]
epoch 29 | loss 2.3757736682891846, f_iou 0.5986812710762024: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.32it/s]
epoch 29 | loss 2.3757736682891846, f_iou 0.5986812710762024: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.34it/s]
epoch 29 | loss 2.667787790298462, f_iou 0.5886321067810059: 70%|██████████████████████████ | 52/74 [00:44<00:16, 1.34it/s]
epoch 29 | loss 2.667787790298462, f_iou 0.5886321067810059: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.35it/s]
epoch 29 | loss 2.803828477859497, f_iou 0.5908913612365723: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.35it/s]
epoch 29 | loss 2.803828477859497, f_iou 0.5908913612365723: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.36it/s]
epoch 29 | loss 4.680409908294678, f_iou 0.5916069746017456: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.36it/s]
epoch 29 | loss 4.680409908294678, f_iou 0.5916069746017456: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.37it/s]
epoch 29 | loss 4.687710285186768, f_iou 0.5855474472045898: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.37it/s]
epoch 29 | loss 4.687710285186768, f_iou 0.5855474472045898: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 29 | loss 1.4169683456420898, f_iou 0.5885405540466309: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 29 | loss 1.4169683456420898, f_iou 0.5885405540466309: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.36it/s]
epoch 29 | loss 3.542971611022949, f_iou 0.5786632895469666: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.36it/s]
epoch 29 | loss 3.542971611022949, f_iou 0.5786632895469666: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.33it/s]
epoch 29 | loss 4.865815162658691, f_iou 0.575589656829834: 78%|█████████████████████████████▊ | 58/74 [00:49<00:11, 1.33it/s]
epoch 29 | loss 4.865815162658691, f_iou 0.575589656829834: 80%|██████████████████████████████▎ | 59/74 [00:49<00:11, 1.32it/s]
epoch 29 | loss 0.6381044387817383, f_iou 0.5815348029136658: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.32it/s]
epoch 29 | loss 0.6381044387817383, f_iou 0.5815348029136658: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.30it/s]
epoch 29 | loss 1.0403778553009033, f_iou 0.5770639181137085: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.30it/s]
epoch 29 | loss 1.0403778553009033, f_iou 0.5770639181137085: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.30it/s]
epoch 29 | loss 0.4259148836135864, f_iou 0.5834231376647949: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.30it/s]
epoch 29 | loss 0.4259148836135864, f_iou 0.5834231376647949: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.30it/s]
epoch 29 | loss 0.79676353931427, f_iou 0.5894037485122681: 84%|███████████████████████████████▊ | 62/74 [00:52<00:09, 1.30it/s]
epoch 29 | loss 0.79676353931427, f_iou 0.5894037485122681: 85%|████████████████████████████████▎ | 63/74 [00:52<00:08, 1.30it/s]
epoch 29 | loss 6.893338203430176, f_iou 0.5898404717445374: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.30it/s]
epoch 29 | loss 6.893338203430176, f_iou 0.5898404717445374: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.30it/s]
epoch 29 | loss 1.859551191329956, f_iou 0.5941123962402344: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.30it/s]
epoch 29 | loss 1.859551191329956, f_iou 0.5941123962402344: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.29it/s]
epoch 29 | loss 2.8730685710906982, f_iou 0.592636227607727: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.29it/s]
epoch 29 | loss 2.8730685710906982, f_iou 0.592636227607727: 89%|█████████████████████████████████ | 66/74 [00:54<00:06, 1.29it/s]
epoch 29 | loss 2.2935829162597656, f_iou 0.593414843082428: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.29it/s]
epoch 29 | loss 2.2935829162597656, f_iou 0.593414843082428: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.32it/s]
epoch 29 | loss 1.1878362894058228, f_iou 0.5982649922370911: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.32it/s]
epoch 29 | loss 1.1878362894058228, f_iou 0.5982649922370911: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.34it/s]
epoch 29 | loss 4.965307235717773, f_iou 0.5988564491271973: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.34it/s]
epoch 29 | loss 4.965307235717773, f_iou 0.5988564491271973: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.36it/s]
epoch 29 | loss 2.0930685997009277, f_iou 0.5939862728118896: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.36it/s]
epoch 29 | loss 2.0930685997009277, f_iou 0.5939862728118896: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.37it/s]
epoch 29 | loss 5.33616304397583, f_iou 0.5883718729019165: 95%|███████████████████████████████████▉ | 70/74 [00:58<00:02, 1.37it/s]
epoch 29 | loss 5.33616304397583, f_iou 0.5883718729019165: 96%|████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.38it/s]
epoch 29 | loss 5.2380757331848145, f_iou 0.5912893414497375: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.38it/s]
epoch 29 | loss 5.2380757331848145, f_iou 0.5912893414497375: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.38it/s]
epoch 29 | loss 1.8190808296203613, f_iou 0.5871477723121643: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 29 | loss 1.8190808296203613, f_iou 0.5871477723121643: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 29 | loss 0.30697840452194214, f_iou 0.5895033478736877: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 29 | loss 0.30697840452194214, f_iou 0.5895033478736877: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 29 | loss 0.30697840452194214, f_iou 0.5895033478736877: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 29 | valid.f_iou 0.6473900079727173, valid.f_f-score 0.8468: 0%| | 0/16 [00:05, ?it/s]
epoch 29 | valid.f_iou 0.6473900079727173, valid.f_f-score 0.8468: 6%|██ | 1/16 [00:05<01:25, 5.68s/it]
epoch 29 | valid.f_iou 0.5758200287818909, valid.f_f-score 0.83174: 6%|█▉ | 1/16 [00:06<01:25, 5.68s/it]
epoch 29 | valid.f_iou 0.5758200287818909, valid.f_f-score 0.83174: 12%|███▉ | 2/16 [00:06<00:36, 2.63s/it]
epoch 29 | valid.f_iou 0.42937999963760376, valid.f_f-score 0.75172: 12%|███▊ | 2/16 [00:06<00:36, 2.63s/it]
epoch 29 | valid.f_iou 0.42937999963760376, valid.f_f-score 0.75172: 19%|█████▋ | 3/16 [00:06<00:21, 1.63s/it]
epoch 29 | valid.f_iou 0.4986099898815155, valid.f_f-score 0.75966: 19%|█████▊ | 3/16 [00:07<00:21, 1.63s/it]
epoch 29 | valid.f_iou 0.4986099898815155, valid.f_f-score 0.75966: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 29 | valid.f_iou 0.4713599979877472, valid.f_f-score 0.76036: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 29 | valid.f_iou 0.4713599979877472, valid.f_f-score 0.76036: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 29 | valid.f_iou 0.44999998807907104, valid.f_f-score 0.7392: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 29 | valid.f_iou 0.44999998807907104, valid.f_f-score 0.7392: 38%|███████████▋ | 6/16 [00:07<00:07, 1.31it/s]
epoch 29 | valid.f_iou 0.45298001170158386, valid.f_f-score 0.73264: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 29 | valid.f_iou 0.45298001170158386, valid.f_f-score 0.73264: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.53it/s]
epoch 29 | valid.f_iou 0.4200100004673004, valid.f_f-score 0.71346: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 29 | valid.f_iou 0.4200100004673004, valid.f_f-score 0.71346: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.71it/s]
epoch 29 | valid.f_iou 0.4340899884700775, valid.f_f-score 0.70127: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.71it/s]
epoch 29 | valid.f_iou 0.4340899884700775, valid.f_f-score 0.70127: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 29 | valid.f_iou 0.41659000515937805, valid.f_f-score 0.7062: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 29 | valid.f_iou 0.41659000515937805, valid.f_f-score 0.7062: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 29 | valid.f_iou 0.43283000588417053, valid.f_f-score 0.71292: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.05it/s]
epoch 29 | valid.f_iou 0.43283000588417053, valid.f_f-score 0.71292: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.12it/s]
epoch 29 | valid.f_iou 0.4513300061225891, valid.f_f-score 0.72788: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.12it/s]
epoch 29 | valid.f_iou 0.4513300061225891, valid.f_f-score 0.72788: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 29 | valid.f_iou 0.4545400142669678, valid.f_f-score 0.73957: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 29 | valid.f_iou 0.4545400142669678, valid.f_f-score 0.73957: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 29 | valid.f_iou 0.43775999546051025, valid.f_f-score 0.7265: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.39it/s]
epoch 29 | valid.f_iou 0.43775999546051025, valid.f_f-score 0.7265: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 29 | valid.f_iou 0.4505299925804138, valid.f_f-score 0.72956: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 29 | valid.f_iou 0.4505299925804138, valid.f_f-score 0.72956: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 29 | valid.f_iou 0.46434998512268066, valid.f_f-score 0.7306: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 29 | valid.f_iou 0.46434998512268066, valid.f_f-score 0.7306: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 29 | valid.f_iou 0.46434998512268066, valid.f_f-score 0.7306: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 29 | valid.f_iou 0.7368199825286865, valid.f_f-score 0.7665: 0%| | 0/16 [00:05, ?it/s]
epoch 29 | valid.f_iou 0.7368199825286865, valid.f_f-score 0.7665: 6%|██ | 1/16 [00:05<01:23, 5.55s/it]
epoch 29 | valid.f_iou 0.7704499959945679, valid.f_f-score 0.83871: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 29 | valid.f_iou 0.7704499959945679, valid.f_f-score 0.83871: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 29 | valid.f_iou 0.6949700117111206, valid.f_f-score 0.80904: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 29 | valid.f_iou 0.6949700117111206, valid.f_f-score 0.80904: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 29 | valid.f_iou 0.7058200240135193, valid.f_f-score 0.80929: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 29 | valid.f_iou 0.7058200240135193, valid.f_f-score 0.80929: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 29 | valid.f_iou 0.6883699893951416, valid.f_f-score 0.80497: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 29 | valid.f_iou 0.6883699893951416, valid.f_f-score 0.80497: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 29 | valid.f_iou 0.6745499968528748, valid.f_f-score 0.79852: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 29 | valid.f_iou 0.6745499968528748, valid.f_f-score 0.79852: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 29 | valid.f_iou 0.6621800065040588, valid.f_f-score 0.78921: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 29 | valid.f_iou 0.6621800065040588, valid.f_f-score 0.78921: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 29 | valid.f_iou 0.6409000158309937, valid.f_f-score 0.76919: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 29 | valid.f_iou 0.6409000158309937, valid.f_f-score 0.76919: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 29 | valid.f_iou 0.6634200215339661, valid.f_f-score 0.78061: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 29 | valid.f_iou 0.6634200215339661, valid.f_f-score 0.78061: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 29 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.79377: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 29 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.79377: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.16it/s]
epoch 29 | valid.f_iou 0.6614500284194946, valid.f_f-score 0.77602: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.16it/s]
epoch 29 | valid.f_iou 0.6614500284194946, valid.f_f-score 0.77602: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 29 | valid.f_iou 0.6740900278091431, valid.f_f-score 0.78749: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.31it/s]
epoch 29 | valid.f_iou 0.6740900278091431, valid.f_f-score 0.78749: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 29 | valid.f_iou 0.6898699998855591, valid.f_f-score 0.80014: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 29 | valid.f_iou 0.6898699998855591, valid.f_f-score 0.80014: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 29 | valid.f_iou 0.6809999942779541, valid.f_f-score 0.79211: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 29 | valid.f_iou 0.6809999942779541, valid.f_f-score 0.79211: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 29 | valid.f_iou 0.6907200217247009, valid.f_f-score 0.80064: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.55it/s]
epoch 29 | valid.f_iou 0.6907200217247009, valid.f_f-score 0.80064: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 29 | valid.f_iou 0.6942999958992004, valid.f_f-score 0.80324: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 29 | valid.f_iou 0.6942999958992004, valid.f_f-score 0.80324: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 29 | valid.f_iou 0.6942999958992004, valid.f_f-score 0.80324: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 29 | valid.f_iou 0.7368199825286865, valid.f_f-score 0.7665: 0%| | 0/16 [00:05, ?it/s]
epoch 29 | valid.f_iou 0.7368199825286865, valid.f_f-score 0.7665: 6%|██ | 1/16 [00:05<01:20, 5.35s/it]
epoch 29 | valid.f_iou 0.7704499959945679, valid.f_f-score 0.83871: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 29 | valid.f_iou 0.7704499959945679, valid.f_f-score 0.83871: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 29 | valid.f_iou 0.6949700117111206, valid.f_f-score 0.80904: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 29 | valid.f_iou 0.6949700117111206, valid.f_f-score 0.80904: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 29 | valid.f_iou 0.7071300148963928, valid.f_f-score 0.80004: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 29 | valid.f_iou 0.7071300148963928, valid.f_f-score 0.80004: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 29 | valid.f_iou 0.6894099712371826, valid.f_f-score 0.79757: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 29 | valid.f_iou 0.6894099712371826, valid.f_f-score 0.79757: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 29 | valid.f_iou 0.6754199862480164, valid.f_f-score 0.79235: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 29 | valid.f_iou 0.6754199862480164, valid.f_f-score 0.79235: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 29 | valid.f_iou 0.6649799942970276, valid.f_f-score 0.78393: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 29 | valid.f_iou 0.6649799942970276, valid.f_f-score 0.78393: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 29 | valid.f_iou 0.6433500051498413, valid.f_f-score 0.76456: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 29 | valid.f_iou 0.6433500051498413, valid.f_f-score 0.76456: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 29 | valid.f_iou 0.6687999963760376, valid.f_f-score 0.7765: 50%|████████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 29 | valid.f_iou 0.6687999963760376, valid.f_f-score 0.7765: 56%|██████████████████ | 9/16 [00:08<00:03, 1.89it/s]
epoch 29 | valid.f_iou 0.6728600263595581, valid.f_f-score 0.78749: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 29 | valid.f_iou 0.6728600263595581, valid.f_f-score 0.78749: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 29 | valid.f_iou 0.6640200018882751, valid.f_f-score 0.7703: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.09it/s]
epoch 29 | valid.f_iou 0.6640200018882751, valid.f_f-score 0.7703: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.26it/s]
epoch 29 | valid.f_iou 0.6764500141143799, valid.f_f-score 0.78225: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.26it/s]
epoch 29 | valid.f_iou 0.6764500141143799, valid.f_f-score 0.78225: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 29 | valid.f_iou 0.6886900067329407, valid.f_f-score 0.79291: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 29 | valid.f_iou 0.6886900067329407, valid.f_f-score 0.79291: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 29 | valid.f_iou 0.6734799742698669, valid.f_f-score 0.77933: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 29 | valid.f_iou 0.6734799742698669, valid.f_f-score 0.77933: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 29 | valid.f_iou 0.6836900115013123, valid.f_f-score 0.78872: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 29 | valid.f_iou 0.6836900115013123, valid.f_f-score 0.78872: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 29 | valid.f_iou 0.6881700158119202, valid.f_f-score 0.79206: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 29 | valid.f_iou 0.6881700158119202, valid.f_f-score 0.79206: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 29 | valid.f_iou 0.6881700158119202, valid.f_f-score 0.79206: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 30 | loss 2.3174052238464355, f_iou 0.39145222306251526: 0%| | 0/74 [00:06, ?it/s]
epoch 30 | loss 2.3174052238464355, f_iou 0.39145222306251526: 1%|▍ | 1/74 [00:06<07:36, 6.25s/it]
epoch 30 | loss 2.5283923149108887, f_iou 0.46040862798690796: 1%|▍ | 1/74 [00:07<07:36, 6.25s/it]
epoch 30 | loss 2.5283923149108887, f_iou 0.46040862798690796: 3%|▉ | 2/74 [00:07<03:39, 3.06s/it]
epoch 30 | loss 2.0383517742156982, f_iou 0.4712769389152527: 3%|█ | 2/74 [00:07<03:39, 3.06s/it]
epoch 30 | loss 2.0383517742156982, f_iou 0.4712769389152527: 4%|█▌ | 3/74 [00:07<02:23, 2.02s/it]
epoch 30 | loss 1.104957103729248, f_iou 0.47864142060279846: 4%|█▌ | 3/74 [00:08<02:23, 2.02s/it]
epoch 30 | loss 1.104957103729248, f_iou 0.47864142060279846: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 30 | loss 1.8125548362731934, f_iou 0.41970106959342957: 5%|█▉ | 4/74 [00:09<01:47, 1.54s/it]
epoch 30 | loss 1.8125548362731934, f_iou 0.41970106959342957: 7%|██▍ | 5/74 [00:09<01:28, 1.28s/it]
epoch 30 | loss 4.053662300109863, f_iou 0.40856772661209106: 7%|██▌ | 5/74 [00:10<01:28, 1.28s/it]
epoch 30 | loss 4.053662300109863, f_iou 0.40856772661209106: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 30 | loss 1.7021453380584717, f_iou 0.47428610920906067: 8%|██▉ | 6/74 [00:11<01:15, 1.11s/it]
epoch 30 | loss 1.7021453380584717, f_iou 0.47428610920906067: 9%|███▍ | 7/74 [00:11<01:07, 1.00s/it]
epoch 30 | loss 2.6030704975128174, f_iou 0.4209321439266205: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 30 | loss 2.6030704975128174, f_iou 0.4209321439266205: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 30 | loss 1.7663722038269043, f_iou 0.46657127141952515: 11%|███▉ | 8/74 [00:12<01:01, 1.07it/s]
epoch 30 | loss 1.7663722038269043, f_iou 0.46657127141952515: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 30 | loss 1.1956099271774292, f_iou 0.5141155123710632: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 30 | loss 1.1956099271774292, f_iou 0.5141155123710632: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 30 | loss 0.9340870976448059, f_iou 0.48263680934906006: 14%|████▋ | 10/74 [00:14<00:54, 1.17it/s]
epoch 30 | loss 0.9340870976448059, f_iou 0.48263680934906006: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 30 | loss 2.6255722045898438, f_iou 0.4817781150341034: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 30 | loss 2.6255722045898438, f_iou 0.4817781150341034: 16%|█████▊ | 12/74 [00:14<00:49, 1.25it/s]
epoch 30 | loss 2.032010078430176, f_iou 0.47280195355415344: 16%|█████▊ | 12/74 [00:15<00:49, 1.25it/s]
epoch 30 | loss 2.032010078430176, f_iou 0.47280195355415344: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 30 | loss 1.4547172784805298, f_iou 0.47118228673934937: 18%|██████▏ | 13/74 [00:16<00:47, 1.29it/s]
epoch 30 | loss 1.4547172784805298, f_iou 0.47118228673934937: 19%|██████▌ | 14/74 [00:16<00:45, 1.32it/s]
epoch 30 | loss 1.8621318340301514, f_iou 0.4544796943664551: 19%|██████▊ | 14/74 [00:17<00:45, 1.32it/s]
epoch 30 | loss 1.8621318340301514, f_iou 0.4544796943664551: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 30 | loss 2.4373254776000977, f_iou 0.4492410719394684: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 30 | loss 2.4373254776000977, f_iou 0.4492410719394684: 22%|███████▊ | 16/74 [00:17<00:42, 1.35it/s]
epoch 30 | loss 0.6772922277450562, f_iou 0.44272422790527344: 22%|███████▌ | 16/74 [00:18<00:42, 1.35it/s]
epoch 30 | loss 0.6772922277450562, f_iou 0.44272422790527344: 23%|████████ | 17/74 [00:18<00:41, 1.36it/s]
epoch 30 | loss 1.7661455869674683, f_iou 0.44878140091896057: 23%|████████ | 17/74 [00:19<00:41, 1.36it/s]
epoch 30 | loss 1.7661455869674683, f_iou 0.44878140091896057: 24%|████████▌ | 18/74 [00:19<00:40, 1.37it/s]
epoch 30 | loss 2.4862539768218994, f_iou 0.4510171711444855: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 30 | loss 2.4862539768218994, f_iou 0.4510171711444855: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 30 | loss 3.058171272277832, f_iou 0.452280730009079: 26%|█████████▊ | 19/74 [00:20<00:39, 1.38it/s]
epoch 30 | loss 3.058171272277832, f_iou 0.452280730009079: 27%|██████████▎ | 20/74 [00:20<00:38, 1.39it/s]
epoch 30 | loss 3.974618434906006, f_iou 0.44287145137786865: 27%|█████████▋ | 20/74 [00:21<00:38, 1.39it/s]
epoch 30 | loss 3.974618434906006, f_iou 0.44287145137786865: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 30 | loss 3.6420702934265137, f_iou 0.4365406930446625: 28%|██████████▏ | 21/74 [00:22<00:38, 1.39it/s]
epoch 30 | loss 3.6420702934265137, f_iou 0.4365406930446625: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 30 | loss 2.1469900608062744, f_iou 0.4442603290081024: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 30 | loss 2.1469900608062744, f_iou 0.4442603290081024: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 30 | loss 1.3083148002624512, f_iou 0.4590620696544647: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 30 | loss 1.3083148002624512, f_iou 0.4590620696544647: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 30 | loss 0.9892290234565735, f_iou 0.4781463146209717: 32%|███████████▋ | 24/74 [00:24<00:36, 1.39it/s]
epoch 30 | loss 0.9892290234565735, f_iou 0.4781463146209717: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 30 | loss 2.6876988410949707, f_iou 0.4947976768016815: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 30 | loss 2.6876988410949707, f_iou 0.4947976768016815: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 30 | loss 0.41857191920280457, f_iou 0.512330949306488: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 30 | loss 0.41857191920280457, f_iou 0.512330949306488: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 30 | loss 2.09761905670166, f_iou 0.49999940395355225: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.39it/s]
epoch 30 | loss 2.09761905670166, f_iou 0.49999940395355225: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 30 | loss 0.7558468580245972, f_iou 0.5139411687850952: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 30 | loss 0.7558468580245972, f_iou 0.5139411687850952: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 30 | loss 1.4541442394256592, f_iou 0.5126703381538391: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 30 | loss 1.4541442394256592, f_iou 0.5126703381538391: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 30 | loss 1.4248348474502563, f_iou 0.4965403974056244: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 30 | loss 1.4248348474502563, f_iou 0.4965403974056244: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 30 | loss 1.8220282793045044, f_iou 0.5011207461357117: 42%|███████████████ | 31/74 [00:29<00:30, 1.40it/s]
epoch 30 | loss 1.8220282793045044, f_iou 0.5011207461357117: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.40it/s]
epoch 30 | loss 4.959737777709961, f_iou 0.4908796548843384: 43%|████████████████ | 32/74 [00:29<00:30, 1.40it/s]
epoch 30 | loss 4.959737777709961, f_iou 0.4908796548843384: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.40it/s]
epoch 30 | loss 1.8780121803283691, f_iou 0.49233925342559814: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.40it/s]
epoch 30 | loss 1.8780121803283691, f_iou 0.49233925342559814: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 30 | loss 3.839538097381592, f_iou 0.4852524399757385: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 30 | loss 3.839538097381592, f_iou 0.4852524399757385: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 30 | loss 1.5030229091644287, f_iou 0.4818662703037262: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 30 | loss 1.5030229091644287, f_iou 0.4818662703037262: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 30 | loss 1.8006632328033447, f_iou 0.4923495352268219: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 30 | loss 1.8006632328033447, f_iou 0.4923495352268219: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 30 | loss 0.7903592586517334, f_iou 0.48702481389045715: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 30 | loss 0.7903592586517334, f_iou 0.48702481389045715: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.39it/s]
epoch 30 | loss 4.551713943481445, f_iou 0.47741833329200745: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 30 | loss 4.551713943481445, f_iou 0.47741833329200745: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 30 | loss 1.7977325916290283, f_iou 0.48735854029655457: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 30 | loss 1.7977325916290283, f_iou 0.48735854029655457: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.39it/s]
epoch 30 | loss 3.7261338233947754, f_iou 0.48451244831085205: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.39it/s]
epoch 30 | loss 3.7261338233947754, f_iou 0.48451244831085205: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.39it/s]
epoch 30 | loss 2.3403396606445312, f_iou 0.49003252387046814: 55%|███████████████████▍ | 41/74 [00:36<00:23, 1.39it/s]
epoch 30 | loss 2.3403396606445312, f_iou 0.49003252387046814: 57%|███████████████████▊ | 42/74 [00:36<00:22, 1.39it/s]
epoch 30 | loss 0.9714699387550354, f_iou 0.47863641381263733: 57%|███████████████████▊ | 42/74 [00:37<00:22, 1.39it/s]
epoch 30 | loss 0.9714699387550354, f_iou 0.47863641381263733: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.39it/s]
epoch 30 | loss 6.5464277267456055, f_iou 0.4784889221191406: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 30 | loss 6.5464277267456055, f_iou 0.4784889221191406: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 30 | loss 3.78607177734375, f_iou 0.4718373715877533: 59%|██████████████████████▌ | 44/74 [00:38<00:21, 1.39it/s]
epoch 30 | loss 3.78607177734375, f_iou 0.4718373715877533: 61%|███████████████████████ | 45/74 [00:38<00:20, 1.40it/s]
epoch 30 | loss 2.294495105743408, f_iou 0.47334837913513184: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.40it/s]
epoch 30 | loss 2.294495105743408, f_iou 0.47334837913513184: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.40it/s]
epoch 30 | loss 1.768880844116211, f_iou 0.4809218645095825: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.40it/s]
epoch 30 | loss 1.768880844116211, f_iou 0.4809218645095825: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.40it/s]
epoch 30 | loss 3.7054123878479004, f_iou 0.4842519760131836: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.40it/s]
epoch 30 | loss 3.7054123878479004, f_iou 0.4842519760131836: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.40it/s]
epoch 30 | loss 2.166989326477051, f_iou 0.48543626070022583: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.40it/s]
epoch 30 | loss 2.166989326477051, f_iou 0.48543626070022583: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.40it/s]
epoch 30 | loss 1.8374981880187988, f_iou 0.47916874289512634: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.40it/s]
epoch 30 | loss 1.8374981880187988, f_iou 0.47916874289512634: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.40it/s]
epoch 30 | loss 4.170644760131836, f_iou 0.4744608402252197: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.40it/s]
epoch 30 | loss 4.170644760131836, f_iou 0.4744608402252197: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.40it/s]
epoch 30 | loss 1.067328691482544, f_iou 0.4773029088973999: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.40it/s]
epoch 30 | loss 1.067328691482544, f_iou 0.4773029088973999: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.40it/s]
epoch 30 | loss 1.7686736583709717, f_iou 0.48088735342025757: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.40it/s]
epoch 30 | loss 1.7686736583709717, f_iou 0.48088735342025757: 72%|█████████████████████████ | 53/74 [00:44<00:15, 1.39it/s]
epoch 30 | loss 2.5595288276672363, f_iou 0.4868766665458679: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 30 | loss 2.5595288276672363, f_iou 0.4868766665458679: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 30 | loss 3.4041013717651367, f_iou 0.4854713976383209: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 30 | loss 3.4041013717651367, f_iou 0.4854713976383209: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.40it/s]
epoch 30 | loss 3.460242748260498, f_iou 0.48317936062812805: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 30 | loss 3.460242748260498, f_iou 0.48317936062812805: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.36it/s]
epoch 30 | loss 2.730654001235962, f_iou 0.48756954073905945: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.36it/s]
epoch 30 | loss 2.730654001235962, f_iou 0.48756954073905945: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.35it/s]
epoch 30 | loss 3.633909225463867, f_iou 0.49248120188713074: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.35it/s]
epoch 30 | loss 3.633909225463867, f_iou 0.49248120188713074: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 30 | loss 5.114817142486572, f_iou 0.48429349064826965: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 30 | loss 5.114817142486572, f_iou 0.48429349064826965: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.37it/s]
epoch 30 | loss 2.054757595062256, f_iou 0.48922717571258545: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.37it/s]
epoch 30 | loss 2.054757595062256, f_iou 0.48922717571258545: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.37it/s]
epoch 30 | loss 1.3684475421905518, f_iou 0.4925527274608612: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 30 | loss 1.3684475421905518, f_iou 0.4925527274608612: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 30 | loss 1.3289642333984375, f_iou 0.4902013838291168: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 30 | loss 1.3289642333984375, f_iou 0.4902013838291168: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.38it/s]
epoch 30 | loss 1.3855934143066406, f_iou 0.49641770124435425: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.38it/s]
epoch 30 | loss 1.3855934143066406, f_iou 0.49641770124435425: 85%|█████████████████████████████▊ | 63/74 [00:51<00:07, 1.39it/s]
epoch 30 | loss 0.9051117897033691, f_iou 0.5016369223594666: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 30 | loss 0.9051117897033691, f_iou 0.5016369223594666: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 30 | loss 1.5909414291381836, f_iou 0.5069138407707214: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 30 | loss 1.5909414291381836, f_iou 0.5069138407707214: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 30 | loss 1.3957726955413818, f_iou 0.5084142088890076: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 30 | loss 1.3957726955413818, f_iou 0.5084142088890076: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 30 | loss 5.31099796295166, f_iou 0.5043643712997437: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.39it/s]
epoch 30 | loss 5.31099796295166, f_iou 0.5043643712997437: 91%|██████████████████████████████████▍ | 67/74 [00:54<00:05, 1.40it/s]
epoch 30 | loss 2.1831789016723633, f_iou 0.5097938776016235: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.40it/s]
epoch 30 | loss 2.1831789016723633, f_iou 0.5097938776016235: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 30 | loss 0.809873104095459, f_iou 0.5024136900901794: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 30 | loss 0.809873104095459, f_iou 0.5024136900901794: 93%|██████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 30 | loss 1.1936689615249634, f_iou 0.4969187080860138: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 30 | loss 1.1936689615249634, f_iou 0.4969187080860138: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 30 | loss 0.7138878703117371, f_iou 0.5027859210968018: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 30 | loss 0.7138878703117371, f_iou 0.5027859210968018: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 30 | loss 7.4170050621032715, f_iou 0.49781349301338196: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 30 | loss 7.4170050621032715, f_iou 0.49781349301338196: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 30 | loss 0.745131254196167, f_iou 0.504244863986969: 97%|████████████████████████████████████▉ | 72/74 [00:58<00:01, 1.41it/s]
epoch 30 | loss 0.745131254196167, f_iou 0.504244863986969: 99%|█████████████████████████████████████▍| 73/74 [00:58<00:00, 1.40it/s]
epoch 30 | loss 1.0909415483474731, f_iou 0.5028069615364075: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 30 | loss 1.0909415483474731, f_iou 0.5028069615364075: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 30 | loss 1.0909415483474731, f_iou 0.5028069615364075: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 30 | valid.f_iou 0.6478000283241272, valid.f_f-score 0.79232: 0%| | 0/16 [00:05, ?it/s]
epoch 30 | valid.f_iou 0.6478000283241272, valid.f_f-score 0.79232: 6%|█▉ | 1/16 [00:05<01:20, 5.39s/it]
epoch 30 | valid.f_iou 0.4566900134086609, valid.f_f-score 0.69381: 6%|█▉ | 1/16 [00:05<01:20, 5.39s/it]
epoch 30 | valid.f_iou 0.4566900134086609, valid.f_f-score 0.69381: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 30 | valid.f_iou 0.3523699939250946, valid.f_f-score 0.64693: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 30 | valid.f_iou 0.3523699939250946, valid.f_f-score 0.64693: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 30 | valid.f_iou 0.4409100115299225, valid.f_f-score 0.67954: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 30 | valid.f_iou 0.4409100115299225, valid.f_f-score 0.67954: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 30 | valid.f_iou 0.4235000014305115, valid.f_f-score 0.67391: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 30 | valid.f_iou 0.4235000014305115, valid.f_f-score 0.67391: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 30 | valid.f_iou 0.4099699854850769, valid.f_f-score 0.65956: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 30 | valid.f_iou 0.4099699854850769, valid.f_f-score 0.65956: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 30 | valid.f_iou 0.41269001364707947, valid.f_f-score 0.67003: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 30 | valid.f_iou 0.41269001364707947, valid.f_f-score 0.67003: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.72it/s]
epoch 30 | valid.f_iou 0.40639999508857727, valid.f_f-score 0.67228: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.72it/s]
epoch 30 | valid.f_iou 0.40639999508857727, valid.f_f-score 0.67228: 50%|███████████████ | 8/16 [00:08<00:04, 1.95it/s]
epoch 30 | valid.f_iou 0.41319000720977783, valid.f_f-score 0.65779: 50%|███████████████ | 8/16 [00:08<00:04, 1.95it/s]
epoch 30 | valid.f_iou 0.41319000720977783, valid.f_f-score 0.65779: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.16it/s]
epoch 30 | valid.f_iou 0.40182000398635864, valid.f_f-score 0.6626: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.16it/s]
epoch 30 | valid.f_iou 0.40182000398635864, valid.f_f-score 0.6626: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 30 | valid.f_iou 0.4083699882030487, valid.f_f-score 0.66233: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.30it/s]
epoch 30 | valid.f_iou 0.4083699882030487, valid.f_f-score 0.66233: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.41it/s]
epoch 30 | valid.f_iou 0.43167001008987427, valid.f_f-score 0.68108: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.41it/s]
epoch 30 | valid.f_iou 0.43167001008987427, valid.f_f-score 0.68108: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 30 | valid.f_iou 0.4301399886608124, valid.f_f-score 0.6851: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.50it/s]
epoch 30 | valid.f_iou 0.4301399886608124, valid.f_f-score 0.6851: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.57it/s]
epoch 30 | valid.f_iou 0.4104599952697754, valid.f_f-score 0.66243: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 30 | valid.f_iou 0.4104599952697754, valid.f_f-score 0.66243: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 30 | valid.f_iou 0.4247100055217743, valid.f_f-score 0.66886: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 30 | valid.f_iou 0.4247100055217743, valid.f_f-score 0.66886: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 30 | valid.f_iou 0.4362100064754486, valid.f_f-score 0.66989: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.68it/s]
epoch 30 | valid.f_iou 0.4362100064754486, valid.f_f-score 0.66989: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 30 | valid.f_iou 0.4362100064754486, valid.f_f-score 0.66989: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 30 | valid.f_iou 0.6845700144767761, valid.f_f-score 0.71538: 0%| | 0/16 [00:04, ?it/s]
epoch 30 | valid.f_iou 0.6845700144767761, valid.f_f-score 0.71538: 6%|█▉ | 1/16 [00:04<01:13, 4.92s/it]
epoch 30 | valid.f_iou 0.7472500205039978, valid.f_f-score 0.82566: 6%|█▉ | 1/16 [00:05<01:13, 4.92s/it]
epoch 30 | valid.f_iou 0.7472500205039978, valid.f_f-score 0.82566: 12%|███▉ | 2/16 [00:05<00:31, 2.27s/it]
epoch 30 | valid.f_iou 0.671280026435852, valid.f_f-score 0.79006: 12%|████ | 2/16 [00:05<00:31, 2.27s/it]
epoch 30 | valid.f_iou 0.671280026435852, valid.f_f-score 0.79006: 19%|██████ | 3/16 [00:05<00:18, 1.43s/it]
epoch 30 | valid.f_iou 0.6622200012207031, valid.f_f-score 0.7657: 19%|██████ | 3/16 [00:06<00:18, 1.43s/it]
epoch 30 | valid.f_iou 0.6622200012207031, valid.f_f-score 0.7657: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 30 | valid.f_iou 0.6599100232124329, valid.f_f-score 0.7649: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 30 | valid.f_iou 0.6599100232124329, valid.f_f-score 0.7649: 31%|██████████ | 5/16 [00:06<00:09, 1.22it/s]
epoch 30 | valid.f_iou 0.6226800084114075, valid.f_f-score 0.73037: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 30 | valid.f_iou 0.6226800084114075, valid.f_f-score 0.73037: 38%|███████████▋ | 6/16 [00:07<00:06, 1.50it/s]
epoch 30 | valid.f_iou 0.6265599727630615, valid.f_f-score 0.74536: 38%|███████████▋ | 6/16 [00:07<00:06, 1.50it/s]
epoch 30 | valid.f_iou 0.6265599727630615, valid.f_f-score 0.74536: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 30 | valid.f_iou 0.628790020942688, valid.f_f-score 0.75404: 44%|██████████████ | 7/16 [00:07<00:05, 1.70it/s]
epoch 30 | valid.f_iou 0.628790020942688, valid.f_f-score 0.75404: 50%|████████████████ | 8/16 [00:07<00:04, 1.82it/s]
epoch 30 | valid.f_iou 0.6535099744796753, valid.f_f-score 0.77133: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 30 | valid.f_iou 0.6535099744796753, valid.f_f-score 0.77133: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 30 | valid.f_iou 0.6622499823570251, valid.f_f-score 0.78524: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 30 | valid.f_iou 0.6622499823570251, valid.f_f-score 0.78524: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 30 | valid.f_iou 0.6553999781608582, valid.f_f-score 0.76851: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.17it/s]
epoch 30 | valid.f_iou 0.6553999781608582, valid.f_f-score 0.76851: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 30 | valid.f_iou 0.6689800024032593, valid.f_f-score 0.77985: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 30 | valid.f_iou 0.6689800024032593, valid.f_f-score 0.77985: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 30 | valid.f_iou 0.6786400079727173, valid.f_f-score 0.78638: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 30 | valid.f_iou 0.6786400079727173, valid.f_f-score 0.78638: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.53it/s]
epoch 30 | valid.f_iou 0.670490026473999, valid.f_f-score 0.77915: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.53it/s]
epoch 30 | valid.f_iou 0.670490026473999, valid.f_f-score 0.77915: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.48it/s]
epoch 30 | valid.f_iou 0.6767500042915344, valid.f_f-score 0.78827: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 30 | valid.f_iou 0.6767500042915344, valid.f_f-score 0.78827: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.42it/s]
epoch 30 | valid.f_iou 0.6764199733734131, valid.f_f-score 0.78733: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 30 | valid.f_iou 0.6764199733734131, valid.f_f-score 0.78733: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.42it/s]
epoch 30 | valid.f_iou 0.6764199733734131, valid.f_f-score 0.78733: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 30 | valid.f_iou 0.6845700144767761, valid.f_f-score 0.71538: 0%| | 0/16 [00:04, ?it/s]
epoch 30 | valid.f_iou 0.6845700144767761, valid.f_f-score 0.71538: 6%|█▉ | 1/16 [00:04<01:05, 4.40s/it]
epoch 30 | valid.f_iou 0.7254999876022339, valid.f_f-score 0.80752: 6%|█▉ | 1/16 [00:04<01:05, 4.40s/it]
epoch 30 | valid.f_iou 0.7254999876022339, valid.f_f-score 0.80752: 12%|███▉ | 2/16 [00:04<00:29, 2.08s/it]
epoch 30 | valid.f_iou 0.6567800045013428, valid.f_f-score 0.77796: 12%|███▉ | 2/16 [00:05<00:29, 2.08s/it]
epoch 30 | valid.f_iou 0.6567800045013428, valid.f_f-score 0.77796: 19%|█████▊ | 3/16 [00:05<00:17, 1.33s/it]
epoch 30 | valid.f_iou 0.652679979801178, valid.f_f-score 0.74751: 19%|██████ | 3/16 [00:05<00:17, 1.33s/it]
epoch 30 | valid.f_iou 0.652679979801178, valid.f_f-score 0.74751: 25%|████████ | 4/16 [00:05<00:11, 1.04it/s]
epoch 30 | valid.f_iou 0.6522799730300903, valid.f_f-score 0.75034: 25%|███████▊ | 4/16 [00:06<00:11, 1.04it/s]
epoch 30 | valid.f_iou 0.6522799730300903, valid.f_f-score 0.75034: 31%|█████████▋ | 5/16 [00:06<00:08, 1.29it/s]
epoch 30 | valid.f_iou 0.6175199747085571, valid.f_f-score 0.71824: 31%|█████████▋ | 5/16 [00:06<00:08, 1.29it/s]
epoch 30 | valid.f_iou 0.6175199747085571, valid.f_f-score 0.71824: 38%|███████████▋ | 6/16 [00:06<00:06, 1.50it/s]
epoch 30 | valid.f_iou 0.626039981842041, valid.f_f-score 0.73496: 38%|████████████ | 6/16 [00:06<00:06, 1.50it/s]
epoch 30 | valid.f_iou 0.626039981842041, valid.f_f-score 0.73496: 44%|██████████████ | 7/16 [00:06<00:05, 1.73it/s]
epoch 30 | valid.f_iou 0.6283400058746338, valid.f_f-score 0.74495: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.73it/s]
epoch 30 | valid.f_iou 0.6283400058746338, valid.f_f-score 0.74495: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.96it/s]
epoch 30 | valid.f_iou 0.6564199924468994, valid.f_f-score 0.76325: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.96it/s]
epoch 30 | valid.f_iou 0.6564199924468994, valid.f_f-score 0.76325: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.16it/s]
epoch 30 | valid.f_iou 0.6622899770736694, valid.f_f-score 0.77445: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.16it/s]
epoch 30 | valid.f_iou 0.6622899770736694, valid.f_f-score 0.77445: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 30 | valid.f_iou 0.6516900062561035, valid.f_f-score 0.75465: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 30 | valid.f_iou 0.6516900062561035, valid.f_f-score 0.75465: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.41it/s]
epoch 30 | valid.f_iou 0.6626999974250793, valid.f_f-score 0.76349: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.41it/s]
epoch 30 | valid.f_iou 0.6626999974250793, valid.f_f-score 0.76349: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.49it/s]
epoch 30 | valid.f_iou 0.6728299856185913, valid.f_f-score 0.77261: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 30 | valid.f_iou 0.6728299856185913, valid.f_f-score 0.77261: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 30 | valid.f_iou 0.6586800217628479, valid.f_f-score 0.76031: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 30 | valid.f_iou 0.6586800217628479, valid.f_f-score 0.76031: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.62it/s]
epoch 30 | valid.f_iou 0.6657199859619141, valid.f_f-score 0.77068: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.62it/s]
epoch 30 | valid.f_iou 0.6657199859619141, valid.f_f-score 0.77068: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.65it/s]
epoch 30 | valid.f_iou 0.6667400002479553, valid.f_f-score 0.77084: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 30 | valid.f_iou 0.6667400002479553, valid.f_f-score 0.77084: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 30 | valid.f_iou 0.6667400002479553, valid.f_f-score 0.77084: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.56it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 31 | loss 0.6758766770362854, f_iou 0.38731488585472107: 0%| | 0/74 [00:06, ?it/s]
epoch 31 | loss 0.6758766770362854, f_iou 0.38731488585472107: 1%|▍ | 1/74 [00:06<07:56, 6.52s/it]
epoch 31 | loss 1.7953436374664307, f_iou 0.33990973234176636: 1%|▍ | 1/74 [00:07<07:56, 6.52s/it]
epoch 31 | loss 1.7953436374664307, f_iou 0.33990973234176636: 3%|▉ | 2/74 [00:07<03:49, 3.18s/it]
epoch 31 | loss 2.5616888999938965, f_iou 0.3131577670574188: 3%|█ | 2/74 [00:08<03:49, 3.18s/it]
epoch 31 | loss 2.5616888999938965, f_iou 0.3131577670574188: 4%|█▌ | 3/74 [00:08<02:29, 2.10s/it]
epoch 31 | loss 3.8706603050231934, f_iou 0.30594295263290405: 4%|█▍ | 3/74 [00:09<02:29, 2.10s/it]
epoch 31 | loss 3.8706603050231934, f_iou 0.30594295263290405: 5%|█▉ | 4/74 [00:09<01:51, 1.60s/it]
epoch 31 | loss 1.616285800933838, f_iou 0.3263586461544037: 5%|██ | 4/74 [00:09<01:51, 1.60s/it]
epoch 31 | loss 1.616285800933838, f_iou 0.3263586461544037: 7%|██▌ | 5/74 [00:09<01:30, 1.32s/it]
epoch 31 | loss 0.0, f_iou 0.42904430627822876: 7%|███▍ | 5/74 [00:10<01:30, 1.32s/it]
epoch 31 | loss 0.0, f_iou 0.42904430627822876: 8%|████▏ | 6/74 [00:10<01:15, 1.12s/it]
epoch 31 | loss 0.5857430696487427, f_iou 0.3678475320339203: 8%|███ | 6/74 [00:11<01:15, 1.12s/it]
epoch 31 | loss 0.5857430696487427, f_iou 0.3678475320339203: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 31 | loss 0.625694990158081, f_iou 0.44416409730911255: 9%|███▌ | 7/74 [00:12<01:06, 1.01it/s]
epoch 31 | loss 0.625694990158081, f_iou 0.44416409730911255: 11%|████ | 8/74 [00:12<01:00, 1.10it/s]
epoch 31 | loss 4.298011302947998, f_iou 0.4179394245147705: 11%|████ | 8/74 [00:12<01:00, 1.10it/s]
epoch 31 | loss 4.298011302947998, f_iou 0.4179394245147705: 12%|████▌ | 9/74 [00:12<00:56, 1.15it/s]
epoch 31 | loss 4.314167022705078, f_iou 0.39878347516059875: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 31 | loss 4.314167022705078, f_iou 0.39878347516059875: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 31 | loss 0.21875, f_iou 0.44763505458831787: 14%|██████▏ | 10/74 [00:14<00:53, 1.19it/s]
epoch 31 | loss 0.21875, f_iou 0.44763505458831787: 15%|██████▊ | 11/74 [00:14<00:51, 1.22it/s]
epoch 31 | loss 1.4844179153442383, f_iou 0.41494977474212646: 15%|█████▏ | 11/74 [00:15<00:51, 1.22it/s]
epoch 31 | loss 1.4844179153442383, f_iou 0.41494977474212646: 16%|█████▋ | 12/74 [00:15<00:50, 1.24it/s]
epoch 31 | loss 1.0288959741592407, f_iou 0.4522242248058319: 16%|█████▊ | 12/74 [00:15<00:50, 1.24it/s]
epoch 31 | loss 1.0288959741592407, f_iou 0.4522242248058319: 18%|██████▎ | 13/74 [00:15<00:47, 1.28it/s]
epoch 31 | loss 2.008782386779785, f_iou 0.46608370542526245: 18%|██████▎ | 13/74 [00:16<00:47, 1.28it/s]
epoch 31 | loss 2.008782386779785, f_iou 0.46608370542526245: 19%|██████▊ | 14/74 [00:16<00:45, 1.31it/s]
epoch 31 | loss 1.6099324226379395, f_iou 0.48949459195137024: 19%|██████▌ | 14/74 [00:17<00:45, 1.31it/s]
epoch 31 | loss 1.6099324226379395, f_iou 0.48949459195137024: 20%|███████ | 15/74 [00:17<00:44, 1.33it/s]
epoch 31 | loss 2.078413963317871, f_iou 0.5143473148345947: 20%|███████▌ | 15/74 [00:18<00:44, 1.33it/s]
epoch 31 | loss 2.078413963317871, f_iou 0.5143473148345947: 22%|████████ | 16/74 [00:18<00:43, 1.33it/s]
epoch 31 | loss 4.491202354431152, f_iou 0.5056107044219971: 22%|████████ | 16/74 [00:18<00:43, 1.33it/s]
epoch 31 | loss 4.491202354431152, f_iou 0.5056107044219971: 23%|████████▌ | 17/74 [00:18<00:43, 1.32it/s]
epoch 31 | loss 1.0936689376831055, f_iou 0.5102004408836365: 23%|████████▎ | 17/74 [00:19<00:43, 1.32it/s]
epoch 31 | loss 1.0936689376831055, f_iou 0.5102004408836365: 24%|████████▊ | 18/74 [00:19<00:42, 1.32it/s]
epoch 31 | loss 6.432343482971191, f_iou 0.5062254667282104: 24%|█████████ | 18/74 [00:20<00:42, 1.32it/s]
epoch 31 | loss 6.432343482971191, f_iou 0.5062254667282104: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 31 | loss 1.1896649599075317, f_iou 0.5262195467948914: 26%|█████████▏ | 19/74 [00:20<00:40, 1.35it/s]
epoch 31 | loss 1.1896649599075317, f_iou 0.5262195467948914: 27%|█████████▋ | 20/74 [00:20<00:39, 1.36it/s]
epoch 31 | loss 1.3150972127914429, f_iou 0.5012421011924744: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 31 | loss 1.3150972127914429, f_iou 0.5012421011924744: 28%|██████████▏ | 21/74 [00:21<00:39, 1.35it/s]
epoch 31 | loss 1.3334025144577026, f_iou 0.4858260154724121: 28%|██████████▏ | 21/74 [00:22<00:39, 1.35it/s]
epoch 31 | loss 1.3334025144577026, f_iou 0.4858260154724121: 30%|██████████▋ | 22/74 [00:22<00:39, 1.33it/s]
epoch 31 | loss 3.143362522125244, f_iou 0.4908461570739746: 30%|███████████ | 22/74 [00:23<00:39, 1.33it/s]
epoch 31 | loss 3.143362522125244, f_iou 0.4908461570739746: 31%|███████████▌ | 23/74 [00:23<00:37, 1.34it/s]
epoch 31 | loss 1.653368353843689, f_iou 0.4715674817562103: 31%|███████████▌ | 23/74 [00:23<00:37, 1.34it/s]
epoch 31 | loss 1.653368353843689, f_iou 0.4715674817562103: 32%|████████████ | 24/74 [00:23<00:36, 1.36it/s]
epoch 31 | loss 1.0788003206253052, f_iou 0.4698600769042969: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 31 | loss 1.0788003206253052, f_iou 0.4698600769042969: 34%|████████████▏ | 25/74 [00:24<00:36, 1.35it/s]
epoch 31 | loss 0.140625, f_iou 0.4883018434047699: 34%|███████████████▌ | 25/74 [00:25<00:36, 1.35it/s]
epoch 31 | loss 0.140625, f_iou 0.4883018434047699: 35%|████████████████▏ | 26/74 [00:25<00:35, 1.36it/s]
epoch 31 | loss 1.0824590921401978, f_iou 0.499031662940979: 35%|█████████████ | 26/74 [00:26<00:35, 1.36it/s]
epoch 31 | loss 1.0824590921401978, f_iou 0.499031662940979: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.37it/s]
epoch 31 | loss 2.119966506958008, f_iou 0.5063554048538208: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.37it/s]
epoch 31 | loss 2.119966506958008, f_iou 0.5063554048538208: 38%|██████████████ | 28/74 [00:26<00:33, 1.38it/s]
epoch 31 | loss 5.639463901519775, f_iou 0.49370455741882324: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 31 | loss 5.639463901519775, f_iou 0.49370455741882324: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 31 | loss 10.081986427307129, f_iou 0.47724777460098267: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.37it/s]
epoch 31 | loss 10.081986427307129, f_iou 0.47724777460098267: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.38it/s]
epoch 31 | loss 3.5150599479675293, f_iou 0.4650748074054718: 41%|██████████████▌ | 30/74 [00:29<00:31, 1.38it/s]
epoch 31 | loss 3.5150599479675293, f_iou 0.4650748074054718: 42%|███████████████ | 31/74 [00:29<00:31, 1.38it/s]
epoch 31 | loss 1.1729705333709717, f_iou 0.4744287431240082: 42%|███████████████ | 31/74 [00:29<00:31, 1.38it/s]
epoch 31 | loss 1.1729705333709717, f_iou 0.4744287431240082: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.38it/s]
epoch 31 | loss 1.6933200359344482, f_iou 0.47736212611198425: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.38it/s]
epoch 31 | loss 1.6933200359344482, f_iou 0.47736212611198425: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.38it/s]
epoch 31 | loss 2.318427085876465, f_iou 0.47959983348846436: 45%|████████████████ | 33/74 [00:31<00:29, 1.38it/s]
epoch 31 | loss 2.318427085876465, f_iou 0.47959983348846436: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.38it/s]
epoch 31 | loss 0.12877322733402252, f_iou 0.491980642080307: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.38it/s]
epoch 31 | loss 0.12877322733402252, f_iou 0.491980642080307: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 31 | loss 3.7815282344818115, f_iou 0.4809740483760834: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 31 | loss 3.7815282344818115, f_iou 0.4809740483760834: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 31 | loss 6.156558990478516, f_iou 0.47678908705711365: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 31 | loss 6.156558990478516, f_iou 0.47678908705711365: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 31 | loss 1.958544135093689, f_iou 0.48045605421066284: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 31 | loss 1.958544135093689, f_iou 0.48045605421066284: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 31 | loss 0.9938260316848755, f_iou 0.48930907249450684: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 31 | loss 0.9938260316848755, f_iou 0.48930907249450684: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 31 | loss 0.7006884813308716, f_iou 0.5005536675453186: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.39it/s]
epoch 31 | loss 0.7006884813308716, f_iou 0.5005536675453186: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 31 | loss 1.9877111911773682, f_iou 0.5033859610557556: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.39it/s]
epoch 31 | loss 1.9877111911773682, f_iou 0.5033859610557556: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 31 | loss 2.5543718338012695, f_iou 0.5034599304199219: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.38it/s]
epoch 31 | loss 2.5543718338012695, f_iou 0.5034599304199219: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 31 | loss 2.294034242630005, f_iou 0.5087995529174805: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.38it/s]
epoch 31 | loss 2.294034242630005, f_iou 0.5087995529174805: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.38it/s]
epoch 31 | loss 3.673907995223999, f_iou 0.5085318684577942: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.38it/s]
epoch 31 | loss 3.673907995223999, f_iou 0.5085318684577942: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 31 | loss 0.8246746063232422, f_iou 0.5071806311607361: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 31 | loss 0.8246746063232422, f_iou 0.5071806311607361: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.38it/s]
epoch 31 | loss 4.338994979858398, f_iou 0.5074469447135925: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.38it/s]
epoch 31 | loss 4.338994979858398, f_iou 0.5074469447135925: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 31 | loss 1.3046551942825317, f_iou 0.4968149960041046: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 31 | loss 1.3046551942825317, f_iou 0.4968149960041046: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 31 | loss 0.5322389006614685, f_iou 0.5065168142318726: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 31 | loss 0.5322389006614685, f_iou 0.5065168142318726: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 31 | loss 1.0666307210922241, f_iou 0.5149667859077454: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.38it/s]
epoch 31 | loss 1.0666307210922241, f_iou 0.5149667859077454: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 31 | loss 3.02982759475708, f_iou 0.5136289000511169: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 31 | loss 3.02982759475708, f_iou 0.5136289000511169: 68%|█████████████████████████▋ | 50/74 [00:42<00:17, 1.38it/s]
epoch 31 | loss 1.5499001741409302, f_iou 0.5059707164764404: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 31 | loss 1.5499001741409302, f_iou 0.5059707164764404: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 31 | loss 2.6407065391540527, f_iou 0.5073148608207703: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 31 | loss 2.6407065391540527, f_iou 0.5073148608207703: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 31 | loss 1.8441784381866455, f_iou 0.5108375549316406: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 31 | loss 1.8441784381866455, f_iou 0.5108375549316406: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 31 | loss 2.45383358001709, f_iou 0.5102905631065369: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.39it/s]
epoch 31 | loss 2.45383358001709, f_iou 0.5102905631065369: 73%|███████████████████████████▋ | 54/74 [00:45<00:14, 1.39it/s]
epoch 31 | loss 5.065112590789795, f_iou 0.5014851689338684: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.39it/s]
epoch 31 | loss 5.065112590789795, f_iou 0.5014851689338684: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 31 | loss 0.8605359792709351, f_iou 0.5097684860229492: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 31 | loss 0.8605359792709351, f_iou 0.5097684860229492: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 31 | loss 1.6646969318389893, f_iou 0.502496600151062: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 31 | loss 1.6646969318389893, f_iou 0.502496600151062: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.38it/s]
epoch 31 | loss 1.85992431640625, f_iou 0.5092936158180237: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.38it/s]
epoch 31 | loss 1.85992431640625, f_iou 0.5092936158180237: 78%|█████████████████████████████▊ | 58/74 [00:48<00:11, 1.37it/s]
epoch 31 | loss 3.4425554275512695, f_iou 0.5115031599998474: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.37it/s]
epoch 31 | loss 3.4425554275512695, f_iou 0.5115031599998474: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.34it/s]
epoch 31 | loss 3.1416704654693604, f_iou 0.5045934319496155: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.34it/s]
epoch 31 | loss 3.1416704654693604, f_iou 0.5045934319496155: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.33it/s]
epoch 31 | loss 0.870010495185852, f_iou 0.5120548605918884: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.33it/s]
epoch 31 | loss 0.870010495185852, f_iou 0.5120548605918884: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.34it/s]
epoch 31 | loss 1.6561344861984253, f_iou 0.5178049802780151: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.34it/s]
epoch 31 | loss 1.6561344861984253, f_iou 0.5178049802780151: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.33it/s]
epoch 31 | loss 2.040391206741333, f_iou 0.5109866857528687: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.33it/s]
epoch 31 | loss 2.040391206741333, f_iou 0.5109866857528687: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.33it/s]
epoch 31 | loss 3.2141168117523193, f_iou 0.5082414746284485: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.33it/s]
epoch 31 | loss 3.2141168117523193, f_iou 0.5082414746284485: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.30it/s]
epoch 31 | loss 1.385574460029602, f_iou 0.5092281103134155: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.30it/s]
epoch 31 | loss 1.385574460029602, f_iou 0.5092281103134155: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.30it/s]
epoch 31 | loss 0.9917796850204468, f_iou 0.5159285068511963: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.30it/s]
epoch 31 | loss 0.9917796850204468, f_iou 0.5159285068511963: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.30it/s]
epoch 31 | loss 2.272217273712158, f_iou 0.5133408308029175: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.30it/s]
epoch 31 | loss 2.272217273712158, f_iou 0.5133408308029175: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.30it/s]
epoch 31 | loss 2.228628158569336, f_iou 0.5179837942123413: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.30it/s]
epoch 31 | loss 2.228628158569336, f_iou 0.5179837942123413: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.31it/s]
epoch 31 | loss 1.7498464584350586, f_iou 0.518190860748291: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.31it/s]
epoch 31 | loss 1.7498464584350586, f_iou 0.518190860748291: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.33it/s]
epoch 31 | loss 6.261617183685303, f_iou 0.5132686495780945: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.33it/s]
epoch 31 | loss 6.261617183685303, f_iou 0.5132686495780945: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 31 | loss 0.7463759183883667, f_iou 0.5187074542045593: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.35it/s]
epoch 31 | loss 0.7463759183883667, f_iou 0.5187074542045593: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.36it/s]
epoch 31 | loss 1.4471937417984009, f_iou 0.5202375054359436: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.36it/s]
epoch 31 | loss 1.4471937417984009, f_iou 0.5202375054359436: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 31 | loss 1.4884254932403564, f_iou 0.5233664512634277: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 31 | loss 1.4884254932403564, f_iou 0.5233664512634277: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 31 | loss 4.180079460144043, f_iou 0.5193231105804443: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 31 | loss 4.180079460144043, f_iou 0.5193231105804443: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 31 | loss 4.180079460144043, f_iou 0.5193231105804443: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 31 | valid.f_iou 0.7571099996566772, valid.f_f-score 0.86198: 0%| | 0/16 [00:05, ?it/s]
epoch 31 | valid.f_iou 0.7571099996566772, valid.f_f-score 0.86198: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 31 | valid.f_iou 0.5568299889564514, valid.f_f-score 0.74122: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 31 | valid.f_iou 0.5568299889564514, valid.f_f-score 0.74122: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 31 | valid.f_iou 0.4542500078678131, valid.f_f-score 0.69891: 12%|███▉ | 2/16 [00:06<00:35, 2.53s/it]
epoch 31 | valid.f_iou 0.4542500078678131, valid.f_f-score 0.69891: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 31 | valid.f_iou 0.5105999708175659, valid.f_f-score 0.7275: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 31 | valid.f_iou 0.5105999708175659, valid.f_f-score 0.7275: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 31 | valid.f_iou 0.48565998673439026, valid.f_f-score 0.71622: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 31 | valid.f_iou 0.48565998673439026, valid.f_f-score 0.71622: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 31 | valid.f_iou 0.4605199992656708, valid.f_f-score 0.68791: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 31 | valid.f_iou 0.4605199992656708, valid.f_f-score 0.68791: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 31 | valid.f_iou 0.483599990606308, valid.f_f-score 0.70402: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 31 | valid.f_iou 0.483599990606308, valid.f_f-score 0.70402: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 31 | valid.f_iou 0.4738599956035614, valid.f_f-score 0.69943: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 31 | valid.f_iou 0.4738599956035614, valid.f_f-score 0.69943: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 31 | valid.f_iou 0.4727100133895874, valid.f_f-score 0.67985: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 31 | valid.f_iou 0.4727100133895874, valid.f_f-score 0.67985: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 31 | valid.f_iou 0.45802000164985657, valid.f_f-score 0.68634: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.96it/s]
epoch 31 | valid.f_iou 0.45802000164985657, valid.f_f-score 0.68634: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 31 | valid.f_iou 0.45954999327659607, valid.f_f-score 0.68156: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 31 | valid.f_iou 0.45954999327659607, valid.f_f-score 0.68156: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.23it/s]
epoch 31 | valid.f_iou 0.47890999913215637, valid.f_f-score 0.6984: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.23it/s]
epoch 31 | valid.f_iou 0.47890999913215637, valid.f_f-score 0.6984: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 31 | valid.f_iou 0.4802300035953522, valid.f_f-score 0.70379: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 31 | valid.f_iou 0.4802300035953522, valid.f_f-score 0.70379: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 31 | valid.f_iou 0.45274999737739563, valid.f_f-score 0.67523: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.46it/s]
epoch 31 | valid.f_iou 0.45274999737739563, valid.f_f-score 0.67523: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 31 | valid.f_iou 0.4601399898529053, valid.f_f-score 0.67911: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 31 | valid.f_iou 0.4601399898529053, valid.f_f-score 0.67911: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 31 | valid.f_iou 0.4641200006008148, valid.f_f-score 0.67252: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 31 | valid.f_iou 0.4641200006008148, valid.f_f-score 0.67252: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 31 | valid.f_iou 0.4641200006008148, valid.f_f-score 0.67252: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 31 | valid.f_iou 0.7715200185775757, valid.f_f-score 0.75045: 0%| | 0/16 [00:05, ?it/s]
epoch 31 | valid.f_iou 0.7715200185775757, valid.f_f-score 0.75045: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 31 | valid.f_iou 0.7948399782180786, valid.f_f-score 0.83173: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 31 | valid.f_iou 0.7948399782180786, valid.f_f-score 0.83173: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 31 | valid.f_iou 0.6656399965286255, valid.f_f-score 0.77144: 12%|███▉ | 2/16 [00:06<00:34, 2.45s/it]
epoch 31 | valid.f_iou 0.6656399965286255, valid.f_f-score 0.77144: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 31 | valid.f_iou 0.6570900082588196, valid.f_f-score 0.76523: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 31 | valid.f_iou 0.6570900082588196, valid.f_f-score 0.76523: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 31 | valid.f_iou 0.6531199812889099, valid.f_f-score 0.76718: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 31 | valid.f_iou 0.6531199812889099, valid.f_f-score 0.76718: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 31 | valid.f_iou 0.6204299926757812, valid.f_f-score 0.73277: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 31 | valid.f_iou 0.6204299926757812, valid.f_f-score 0.73277: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 31 | valid.f_iou 0.6326900124549866, valid.f_f-score 0.75437: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 31 | valid.f_iou 0.6326900124549866, valid.f_f-score 0.75437: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 31 | valid.f_iou 0.6254799962043762, valid.f_f-score 0.74343: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 31 | valid.f_iou 0.6254799962043762, valid.f_f-score 0.74343: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 31 | valid.f_iou 0.6382700204849243, valid.f_f-score 0.75568: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 31 | valid.f_iou 0.6382700204849243, valid.f_f-score 0.75568: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 31 | valid.f_iou 0.649179995059967, valid.f_f-score 0.76969: 56%|██████████████████ | 9/16 [00:09<00:03, 1.90it/s]
epoch 31 | valid.f_iou 0.649179995059967, valid.f_f-score 0.76969: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.00it/s]
epoch 31 | valid.f_iou 0.6449999809265137, valid.f_f-score 0.75877: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 31 | valid.f_iou 0.6449999809265137, valid.f_f-score 0.75877: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.07it/s]
epoch 31 | valid.f_iou 0.6600900292396545, valid.f_f-score 0.77191: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.07it/s]
epoch 31 | valid.f_iou 0.6600900292396545, valid.f_f-score 0.77191: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 31 | valid.f_iou 0.6789000034332275, valid.f_f-score 0.78644: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 31 | valid.f_iou 0.6789000034332275, valid.f_f-score 0.78644: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 31 | valid.f_iou 0.6680300235748291, valid.f_f-score 0.77823: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 31 | valid.f_iou 0.6680300235748291, valid.f_f-score 0.77823: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.46it/s]
epoch 31 | valid.f_iou 0.6664699912071228, valid.f_f-score 0.77546: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.46it/s]
epoch 31 | valid.f_iou 0.6664699912071228, valid.f_f-score 0.77546: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 31 | valid.f_iou 0.6659299731254578, valid.f_f-score 0.77138: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 31 | valid.f_iou 0.6659299731254578, valid.f_f-score 0.77138: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 31 | valid.f_iou 0.6659299731254578, valid.f_f-score 0.77138: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 31 | valid.f_iou 0.7715200185775757, valid.f_f-score 0.75045: 0%| | 0/16 [00:05, ?it/s]
epoch 31 | valid.f_iou 0.7715200185775757, valid.f_f-score 0.75045: 6%|█▉ | 1/16 [00:05<01:17, 5.15s/it]
epoch 31 | valid.f_iou 0.7948399782180786, valid.f_f-score 0.83173: 6%|█▉ | 1/16 [00:05<01:17, 5.15s/it]
epoch 31 | valid.f_iou 0.7948399782180786, valid.f_f-score 0.83173: 12%|███▉ | 2/16 [00:05<00:33, 2.39s/it]
epoch 31 | valid.f_iou 0.6656399965286255, valid.f_f-score 0.77144: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 31 | valid.f_iou 0.6656399965286255, valid.f_f-score 0.77144: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 31 | valid.f_iou 0.6570900082588196, valid.f_f-score 0.76523: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 31 | valid.f_iou 0.6570900082588196, valid.f_f-score 0.76523: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 31 | valid.f_iou 0.6573200225830078, valid.f_f-score 0.76718: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 31 | valid.f_iou 0.6573200225830078, valid.f_f-score 0.76718: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 31 | valid.f_iou 0.6239200234413147, valid.f_f-score 0.73277: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 31 | valid.f_iou 0.6239200234413147, valid.f_f-score 0.73277: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 31 | valid.f_iou 0.6383500099182129, valid.f_f-score 0.75437: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 31 | valid.f_iou 0.6383500099182129, valid.f_f-score 0.75437: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 31 | valid.f_iou 0.6304299831390381, valid.f_f-score 0.74343: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.65it/s]
epoch 31 | valid.f_iou 0.6304299831390381, valid.f_f-score 0.74343: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 31 | valid.f_iou 0.643779993057251, valid.f_f-score 0.75568: 50%|████████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 31 | valid.f_iou 0.643779993057251, valid.f_f-score 0.75568: 56%|██████████████████ | 9/16 [00:08<00:03, 2.07it/s]
epoch 31 | valid.f_iou 0.650189995765686, valid.f_f-score 0.76612: 56%|██████████████████ | 9/16 [00:08<00:03, 2.07it/s]
epoch 31 | valid.f_iou 0.650189995765686, valid.f_f-score 0.76612: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.25it/s]
epoch 31 | valid.f_iou 0.6459299921989441, valid.f_f-score 0.75552: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.25it/s]
epoch 31 | valid.f_iou 0.6459299921989441, valid.f_f-score 0.75552: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 31 | valid.f_iou 0.6609399914741516, valid.f_f-score 0.76893: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 31 | valid.f_iou 0.6609399914741516, valid.f_f-score 0.76893: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 31 | valid.f_iou 0.6768100261688232, valid.f_f-score 0.78169: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 31 | valid.f_iou 0.6768100261688232, valid.f_f-score 0.78169: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 31 | valid.f_iou 0.666100025177002, valid.f_f-score 0.77384: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.57it/s]
epoch 31 | valid.f_iou 0.666100025177002, valid.f_f-score 0.77384: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.63it/s]
epoch 31 | valid.f_iou 0.6646599769592285, valid.f_f-score 0.77135: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 31 | valid.f_iou 0.6646599769592285, valid.f_f-score 0.77135: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 31 | valid.f_iou 0.6652899980545044, valid.f_f-score 0.76753: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.66it/s]
epoch 31 | valid.f_iou 0.6652899980545044, valid.f_f-score 0.76753: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 31 | valid.f_iou 0.6652899980545044, valid.f_f-score 0.76753: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 32 | loss 1.78947114944458, f_iou 0.6863563060760498: 0%| | 0/74 [00:05, ?it/s]
epoch 32 | loss 1.78947114944458, f_iou 0.6863563060760498: 1%|▌ | 1/74 [00:05<06:35, 5.42s/it]
epoch 32 | loss 3.21091890335083, f_iou 0.3854753375053406: 1%|▌ | 1/74 [00:06<06:35, 5.42s/it]
epoch 32 | loss 3.21091890335083, f_iou 0.3854753375053406: 3%|█ | 2/74 [00:06<03:20, 2.78s/it]
epoch 32 | loss 2.6777334213256836, f_iou 0.43727779388427734: 3%|▉ | 2/74 [00:07<03:20, 2.78s/it]
epoch 32 | loss 2.6777334213256836, f_iou 0.43727779388427734: 4%|█▍ | 3/74 [00:07<02:16, 1.92s/it]
epoch 32 | loss 2.4119114875793457, f_iou 0.49418067932128906: 4%|█▍ | 3/74 [00:08<02:16, 1.92s/it]
epoch 32 | loss 2.4119114875793457, f_iou 0.49418067932128906: 5%|█▉ | 4/74 [00:08<01:46, 1.52s/it]
epoch 32 | loss 3.891704559326172, f_iou 0.45518651604652405: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 32 | loss 3.891704559326172, f_iou 0.45518651604652405: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 32 | loss 2.7027997970581055, f_iou 0.3934759497642517: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 32 | loss 2.7027997970581055, f_iou 0.3934759497642517: 8%|███ | 6/74 [00:09<01:15, 1.12s/it]
epoch 32 | loss 3.824728488922119, f_iou 0.41560685634613037: 8%|███ | 6/74 [00:10<01:15, 1.12s/it]
epoch 32 | loss 3.824728488922119, f_iou 0.41560685634613037: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 32 | loss 0.9323428869247437, f_iou 0.45193713903427124: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 32 | loss 0.9323428869247437, f_iou 0.45193713903427124: 11%|███▉ | 8/74 [00:11<01:02, 1.06it/s]
epoch 32 | loss 1.332472562789917, f_iou 0.5053784847259521: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 32 | loss 1.332472562789917, f_iou 0.5053784847259521: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 32 | loss 1.331902027130127, f_iou 0.45566317439079285: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 32 | loss 1.331902027130127, f_iou 0.45566317439079285: 14%|████▊ | 10/74 [00:12<00:54, 1.17it/s]
epoch 32 | loss 2.2573089599609375, f_iou 0.45709168910980225: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 32 | loss 2.2573089599609375, f_iou 0.45709168910980225: 15%|█████▏ | 11/74 [00:13<00:52, 1.20it/s]
epoch 32 | loss 0.9244668483734131, f_iou 0.42409682273864746: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 32 | loss 0.9244668483734131, f_iou 0.42409682273864746: 16%|█████▋ | 12/74 [00:14<00:50, 1.23it/s]
epoch 32 | loss 2.3208236694335938, f_iou 0.43860137462615967: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 32 | loss 2.3208236694335938, f_iou 0.43860137462615967: 18%|██████▏ | 13/74 [00:15<00:48, 1.26it/s]
epoch 32 | loss 1.143580675125122, f_iou 0.4255920350551605: 18%|██████▌ | 13/74 [00:15<00:48, 1.26it/s]
epoch 32 | loss 1.143580675125122, f_iou 0.4255920350551605: 19%|███████ | 14/74 [00:15<00:46, 1.29it/s]
epoch 32 | loss 1.4881471395492554, f_iou 0.4158223569393158: 19%|██████▊ | 14/74 [00:16<00:46, 1.29it/s]
epoch 32 | loss 1.4881471395492554, f_iou 0.4158223569393158: 20%|███████▎ | 15/74 [00:16<00:44, 1.32it/s]
epoch 32 | loss 3.1165761947631836, f_iou 0.4319661259651184: 20%|███████▎ | 15/74 [00:17<00:44, 1.32it/s]
epoch 32 | loss 3.1165761947631836, f_iou 0.4319661259651184: 22%|███████▊ | 16/74 [00:17<00:43, 1.34it/s]
epoch 32 | loss 1.2446116209030151, f_iou 0.4593701958656311: 22%|███████▊ | 16/74 [00:18<00:43, 1.34it/s]
epoch 32 | loss 1.2446116209030151, f_iou 0.4593701958656311: 23%|████████▎ | 17/74 [00:18<00:42, 1.36it/s]
epoch 32 | loss 3.150289297103882, f_iou 0.451274037361145: 23%|████████▋ | 17/74 [00:18<00:42, 1.36it/s]
epoch 32 | loss 3.150289297103882, f_iou 0.451274037361145: 24%|█████████▏ | 18/74 [00:18<00:40, 1.37it/s]
epoch 32 | loss 1.132927417755127, f_iou 0.4291894733905792: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 32 | loss 1.132927417755127, f_iou 0.4291894733905792: 26%|█████████▌ | 19/74 [00:19<00:40, 1.37it/s]
epoch 32 | loss 3.289886951446533, f_iou 0.41713500022888184: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 32 | loss 3.289886951446533, f_iou 0.41713500022888184: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 32 | loss 1.8994613885879517, f_iou 0.3972882926464081: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 32 | loss 1.8994613885879517, f_iou 0.3972882926464081: 28%|██████████▏ | 21/74 [00:20<00:38, 1.39it/s]
epoch 32 | loss 1.7341699600219727, f_iou 0.40067973732948303: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 32 | loss 1.7341699600219727, f_iou 0.40067973732948303: 30%|██████████▍ | 22/74 [00:21<00:37, 1.39it/s]
epoch 32 | loss 1.8036401271820068, f_iou 0.41241878271102905: 30%|██████████▍ | 22/74 [00:22<00:37, 1.39it/s]
epoch 32 | loss 1.8036401271820068, f_iou 0.41241878271102905: 31%|██████████▉ | 23/74 [00:22<00:36, 1.39it/s]
epoch 32 | loss 3.2541425228118896, f_iou 0.41640448570251465: 31%|██████████▉ | 23/74 [00:23<00:36, 1.39it/s]
epoch 32 | loss 3.2541425228118896, f_iou 0.41640448570251465: 32%|███████████▎ | 24/74 [00:23<00:35, 1.40it/s]
epoch 32 | loss 3.0396716594696045, f_iou 0.4265720546245575: 32%|███████████▋ | 24/74 [00:23<00:35, 1.40it/s]
epoch 32 | loss 3.0396716594696045, f_iou 0.4265720546245575: 34%|████████████▏ | 25/74 [00:23<00:35, 1.40it/s]
epoch 32 | loss 1.8322789669036865, f_iou 0.4276237189769745: 34%|████████████▏ | 25/74 [00:24<00:35, 1.40it/s]
epoch 32 | loss 1.8322789669036865, f_iou 0.4276237189769745: 35%|████████████▋ | 26/74 [00:24<00:34, 1.40it/s]
epoch 32 | loss 4.706491470336914, f_iou 0.42919212579727173: 35%|████████████▋ | 26/74 [00:25<00:34, 1.40it/s]
epoch 32 | loss 4.706491470336914, f_iou 0.42919212579727173: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.40it/s]
epoch 32 | loss 3.419114828109741, f_iou 0.4315893054008484: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.40it/s]
epoch 32 | loss 3.419114828109741, f_iou 0.4315893054008484: 38%|██████████████ | 28/74 [00:26<00:32, 1.40it/s]
epoch 32 | loss 3.316354990005493, f_iou 0.4370066225528717: 38%|██████████████ | 28/74 [00:26<00:32, 1.40it/s]
epoch 32 | loss 3.316354990005493, f_iou 0.4370066225528717: 39%|██████████████▌ | 29/74 [00:26<00:32, 1.40it/s]
epoch 32 | loss 2.8542211055755615, f_iou 0.44863611459732056: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.40it/s]
epoch 32 | loss 2.8542211055755615, f_iou 0.44863611459732056: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.40it/s]
epoch 32 | loss 2.8933017253875732, f_iou 0.44684740900993347: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.40it/s]
epoch 32 | loss 2.8933017253875732, f_iou 0.44684740900993347: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.40it/s]
epoch 32 | loss 1.6126247644424438, f_iou 0.46092215180397034: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.40it/s]
epoch 32 | loss 1.6126247644424438, f_iou 0.46092215180397034: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.40it/s]
epoch 32 | loss 0.7216635942459106, f_iou 0.4469677209854126: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.40it/s]
epoch 32 | loss 0.7216635942459106, f_iou 0.4469677209854126: 45%|████████████████ | 33/74 [00:29<00:29, 1.40it/s]
epoch 32 | loss 1.6749465465545654, f_iou 0.45606014132499695: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.40it/s]
epoch 32 | loss 1.6749465465545654, f_iou 0.45606014132499695: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 32 | loss 4.128806114196777, f_iou 0.4531601369380951: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 32 | loss 4.128806114196777, f_iou 0.4531601369380951: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 32 | loss 0.8923631310462952, f_iou 0.46434110403060913: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 32 | loss 0.8923631310462952, f_iou 0.46434110403060913: 49%|█████████████████ | 36/74 [00:31<00:27, 1.37it/s]
epoch 32 | loss 1.519310712814331, f_iou 0.47344741225242615: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 32 | loss 1.519310712814331, f_iou 0.47344741225242615: 50%|██████████████████ | 37/74 [00:32<00:27, 1.35it/s]
epoch 32 | loss 1.947927713394165, f_iou 0.46109622716903687: 50%|██████████████████ | 37/74 [00:33<00:27, 1.35it/s]
epoch 32 | loss 1.947927713394165, f_iou 0.46109622716903687: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.34it/s]
epoch 32 | loss 0.5922726392745972, f_iou 0.4737970530986786: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 32 | loss 0.5922726392745972, f_iou 0.4737970530986786: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 32 | loss 2.2857906818389893, f_iou 0.4774654805660248: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 32 | loss 2.2857906818389893, f_iou 0.4774654805660248: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.33it/s]
epoch 32 | loss 0.5352956056594849, f_iou 0.4891262352466583: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.33it/s]
epoch 32 | loss 0.5352956056594849, f_iou 0.4891262352466583: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.34it/s]
epoch 32 | loss 2.7181949615478516, f_iou 0.4934249222278595: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.34it/s]
epoch 32 | loss 2.7181949615478516, f_iou 0.4934249222278595: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.36it/s]
epoch 32 | loss 1.084359884262085, f_iou 0.49090903997421265: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.36it/s]
epoch 32 | loss 1.084359884262085, f_iou 0.49090903997421265: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.36it/s]
epoch 32 | loss 2.7719309329986572, f_iou 0.49347496032714844: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.36it/s]
epoch 32 | loss 2.7719309329986572, f_iou 0.49347496032714844: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.36it/s]
epoch 32 | loss 0.4971603751182556, f_iou 0.5038394331932068: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.36it/s]
epoch 32 | loss 0.4971603751182556, f_iou 0.5038394331932068: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.37it/s]
epoch 32 | loss 2.8363242149353027, f_iou 0.5042763352394104: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.37it/s]
epoch 32 | loss 2.8363242149353027, f_iou 0.5042763352394104: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.34it/s]
epoch 32 | loss 0.6034194827079773, f_iou 0.5127943754196167: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.34it/s]
epoch 32 | loss 0.6034194827079773, f_iou 0.5127943754196167: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.32it/s]
epoch 32 | loss 1.3990929126739502, f_iou 0.5143831968307495: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.32it/s]
epoch 32 | loss 1.3990929126739502, f_iou 0.5143831968307495: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.31it/s]
epoch 32 | loss 2.1614279747009277, f_iou 0.5231756567955017: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.31it/s]
epoch 32 | loss 2.1614279747009277, f_iou 0.5231756567955017: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.32it/s]
epoch 32 | loss 2.3654279708862305, f_iou 0.5179883241653442: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.32it/s]
epoch 32 | loss 2.3654279708862305, f_iou 0.5179883241653442: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.34it/s]
epoch 32 | loss 1.766077995300293, f_iou 0.5190532207489014: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.34it/s]
epoch 32 | loss 1.766077995300293, f_iou 0.5190532207489014: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.36it/s]
epoch 32 | loss 3.7549681663513184, f_iou 0.5187543630599976: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.36it/s]
epoch 32 | loss 3.7549681663513184, f_iou 0.5187543630599976: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.37it/s]
epoch 32 | loss 1.441392421722412, f_iou 0.5252476930618286: 70%|██████████████████████████ | 52/74 [00:44<00:16, 1.37it/s]
epoch 32 | loss 1.441392421722412, f_iou 0.5252476930618286: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.37it/s]
epoch 32 | loss 1.558933973312378, f_iou 0.5155587196350098: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.37it/s]
epoch 32 | loss 1.558933973312378, f_iou 0.5155587196350098: 73%|███████████████████████████ | 54/74 [00:45<00:15, 1.29it/s]
epoch 32 | loss 1.0558863878250122, f_iou 0.5140841007232666: 73%|██████████████████████████▎ | 54/74 [00:46<00:15, 1.29it/s]
epoch 32 | loss 1.0558863878250122, f_iou 0.5140841007232666: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.32it/s]
epoch 32 | loss 0.5403183698654175, f_iou 0.522192656993866: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.32it/s]
epoch 32 | loss 0.5403183698654175, f_iou 0.522192656993866: 76%|████████████████████████████ | 56/74 [00:46<00:13, 1.34it/s]
epoch 32 | loss 0.9601742625236511, f_iou 0.5246990323066711: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.34it/s]
epoch 32 | loss 0.9601742625236511, f_iou 0.5246990323066711: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.35it/s]
epoch 32 | loss 1.1366722583770752, f_iou 0.5265050530433655: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.35it/s]
epoch 32 | loss 1.1366722583770752, f_iou 0.5265050530433655: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.37it/s]
epoch 32 | loss 0.9865554571151733, f_iou 0.531096339225769: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.37it/s]
epoch 32 | loss 0.9865554571151733, f_iou 0.531096339225769: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.38it/s]
epoch 32 | loss 5.75875997543335, f_iou 0.5224698781967163: 80%|██████████████████████████████▎ | 59/74 [00:49<00:10, 1.38it/s]
epoch 32 | loss 5.75875997543335, f_iou 0.5224698781967163: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.38it/s]
epoch 32 | loss 1.4448527097702026, f_iou 0.5228166580200195: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 32 | loss 1.4448527097702026, f_iou 0.5228166580200195: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 32 | loss 1.865159273147583, f_iou 0.522873044013977: 82%|███████████████████████████████▎ | 61/74 [00:51<00:09, 1.39it/s]
epoch 32 | loss 1.865159273147583, f_iou 0.522873044013977: 84%|███████████████████████████████▊ | 62/74 [00:51<00:08, 1.39it/s]
epoch 32 | loss 1.3822945356369019, f_iou 0.5256377458572388: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 32 | loss 1.3822945356369019, f_iou 0.5256377458572388: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 32 | loss 2.195401191711426, f_iou 0.5227504968643188: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.39it/s]
epoch 32 | loss 2.195401191711426, f_iou 0.5227504968643188: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 32 | loss 1.4547055959701538, f_iou 0.5257467031478882: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 32 | loss 1.4547055959701538, f_iou 0.5257467031478882: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 32 | loss 0.964347243309021, f_iou 0.5215903520584106: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 32 | loss 0.964347243309021, f_iou 0.5215903520584106: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 32 | loss 2.1089484691619873, f_iou 0.5226900577545166: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 32 | loss 2.1089484691619873, f_iou 0.5226900577545166: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 32 | loss 1.9810500144958496, f_iou 0.5248088836669922: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 32 | loss 1.9810500144958496, f_iou 0.5248088836669922: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 32 | loss 0.8129696846008301, f_iou 0.517414391040802: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 32 | loss 0.8129696846008301, f_iou 0.517414391040802: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 32 | loss 4.513228416442871, f_iou 0.5156850218772888: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 32 | loss 4.513228416442871, f_iou 0.5156850218772888: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 32 | loss 4.405309677124023, f_iou 0.5141701698303223: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 32 | loss 4.405309677124023, f_iou 0.5141701698303223: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 32 | loss 2.164600372314453, f_iou 0.5133228302001953: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 32 | loss 2.164600372314453, f_iou 0.5133228302001953: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 32 | loss 2.1526522636413574, f_iou 0.5165562033653259: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 32 | loss 2.1526522636413574, f_iou 0.5165562033653259: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 32 | loss 1.019381046295166, f_iou 0.5130062699317932: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 32 | loss 1.019381046295166, f_iou 0.5130062699317932: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 32 | loss 1.019381046295166, f_iou 0.5130062699317932: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 32 | valid.f_iou 0.7004600167274475, valid.f_f-score 0.81063: 0%| | 0/16 [00:05, ?it/s]
epoch 32 | valid.f_iou 0.7004600167274475, valid.f_f-score 0.81063: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 32 | valid.f_iou 0.5940700173377991, valid.f_f-score 0.78381: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 32 | valid.f_iou 0.5940700173377991, valid.f_f-score 0.78381: 12%|███▉ | 2/16 [00:05<00:34, 2.47s/it]
epoch 32 | valid.f_iou 0.4435099959373474, valid.f_f-score 0.71564: 12%|███▉ | 2/16 [00:06<00:34, 2.47s/it]
epoch 32 | valid.f_iou 0.4435099959373474, valid.f_f-score 0.71564: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 32 | valid.f_iou 0.5108399987220764, valid.f_f-score 0.74435: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 32 | valid.f_iou 0.5108399987220764, valid.f_f-score 0.74435: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 32 | valid.f_iou 0.4701499938964844, valid.f_f-score 0.73118: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 32 | valid.f_iou 0.4701499938964844, valid.f_f-score 0.73118: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 32 | valid.f_iou 0.44898998737335205, valid.f_f-score 0.70877: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 32 | valid.f_iou 0.44898998737335205, valid.f_f-score 0.70877: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 32 | valid.f_iou 0.46952998638153076, valid.f_f-score 0.71942: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 32 | valid.f_iou 0.46952998638153076, valid.f_f-score 0.71942: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.70it/s]
epoch 32 | valid.f_iou 0.4566499888896942, valid.f_f-score 0.71301: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.70it/s]
epoch 32 | valid.f_iou 0.4566499888896942, valid.f_f-score 0.71301: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.93it/s]
epoch 32 | valid.f_iou 0.46230000257492065, valid.f_f-score 0.70182: 50%|███████████████ | 8/16 [00:08<00:04, 1.93it/s]
epoch 32 | valid.f_iou 0.46230000257492065, valid.f_f-score 0.70182: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.16it/s]
epoch 32 | valid.f_iou 0.44519999623298645, valid.f_f-score 0.7036: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.16it/s]
epoch 32 | valid.f_iou 0.44519999623298645, valid.f_f-score 0.7036: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 32 | valid.f_iou 0.45906001329421997, valid.f_f-score 0.71031: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.31it/s]
epoch 32 | valid.f_iou 0.45906001329421997, valid.f_f-score 0.71031: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.42it/s]
epoch 32 | valid.f_iou 0.4802800118923187, valid.f_f-score 0.72698: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 32 | valid.f_iou 0.4802800118923187, valid.f_f-score 0.72698: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 32 | valid.f_iou 0.48723000288009644, valid.f_f-score 0.73365: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.51it/s]
epoch 32 | valid.f_iou 0.48723000288009644, valid.f_f-score 0.73365: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.57it/s]
epoch 32 | valid.f_iou 0.472680002450943, valid.f_f-score 0.71755: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.57it/s]
epoch 32 | valid.f_iou 0.472680002450943, valid.f_f-score 0.71755: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.61it/s]
epoch 32 | valid.f_iou 0.48363998532295227, valid.f_f-score 0.72143: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 32 | valid.f_iou 0.48363998532295227, valid.f_f-score 0.72143: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 32 | valid.f_iou 0.4936800003051758, valid.f_f-score 0.72084: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 32 | valid.f_iou 0.4936800003051758, valid.f_f-score 0.72084: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 32 | valid.f_iou 0.4936800003051758, valid.f_f-score 0.72084: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 32 | valid.f_iou 0.776419997215271, valid.f_f-score 0.79452: 0%| | 0/16 [00:05, ?it/s]
epoch 32 | valid.f_iou 0.776419997215271, valid.f_f-score 0.79452: 6%|██ | 1/16 [00:05<01:15, 5.02s/it]
epoch 32 | valid.f_iou 0.8121799826622009, valid.f_f-score 0.8663: 6%|██ | 1/16 [00:05<01:15, 5.02s/it]
epoch 32 | valid.f_iou 0.8121799826622009, valid.f_f-score 0.8663: 12%|████ | 2/16 [00:05<00:32, 2.32s/it]
epoch 32 | valid.f_iou 0.6858800053596497, valid.f_f-score 0.79739: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 32 | valid.f_iou 0.6858800053596497, valid.f_f-score 0.79739: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 32 | valid.f_iou 0.6741700172424316, valid.f_f-score 0.77904: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 32 | valid.f_iou 0.6741700172424316, valid.f_f-score 0.77904: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 32 | valid.f_iou 0.6680700182914734, valid.f_f-score 0.77812: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 32 | valid.f_iou 0.6680700182914734, valid.f_f-score 0.77812: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 32 | valid.f_iou 0.6291999816894531, valid.f_f-score 0.74535: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 32 | valid.f_iou 0.6291999816894531, valid.f_f-score 0.74535: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 32 | valid.f_iou 0.6470699906349182, valid.f_f-score 0.76396: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 32 | valid.f_iou 0.6470699906349182, valid.f_f-score 0.76396: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.62it/s]
epoch 32 | valid.f_iou 0.6404100060462952, valid.f_f-score 0.7649: 44%|██████████████ | 7/16 [00:08<00:05, 1.62it/s]
epoch 32 | valid.f_iou 0.6404100060462952, valid.f_f-score 0.7649: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 32 | valid.f_iou 0.6630600094795227, valid.f_f-score 0.78099: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 32 | valid.f_iou 0.6630600094795227, valid.f_f-score 0.78099: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 32 | valid.f_iou 0.6712300181388855, valid.f_f-score 0.79157: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 32 | valid.f_iou 0.6712300181388855, valid.f_f-score 0.79157: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 32 | valid.f_iou 0.6637700200080872, valid.f_f-score 0.77511: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 32 | valid.f_iou 0.6637700200080872, valid.f_f-score 0.77511: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 32 | valid.f_iou 0.6749500036239624, valid.f_f-score 0.78553: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 32 | valid.f_iou 0.6749500036239624, valid.f_f-score 0.78553: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 32 | valid.f_iou 0.6820399761199951, valid.f_f-score 0.78885: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.25it/s]
epoch 32 | valid.f_iou 0.6820399761199951, valid.f_f-score 0.78885: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 32 | valid.f_iou 0.6745200157165527, valid.f_f-score 0.78152: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 32 | valid.f_iou 0.6745200157165527, valid.f_f-score 0.78152: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 32 | valid.f_iou 0.6746199727058411, valid.f_f-score 0.78155: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 32 | valid.f_iou 0.6746199727058411, valid.f_f-score 0.78155: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.54it/s]
epoch 32 | valid.f_iou 0.6747999787330627, valid.f_f-score 0.78219: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 32 | valid.f_iou 0.6747999787330627, valid.f_f-score 0.78219: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 32 | valid.f_iou 0.6747999787330627, valid.f_f-score 0.78219: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 32 | valid.f_iou 0.776419997215271, valid.f_f-score 0.79452: 0%| | 0/16 [00:05, ?it/s]
epoch 32 | valid.f_iou 0.776419997215271, valid.f_f-score 0.79452: 6%|██ | 1/16 [00:05<01:15, 5.04s/it]
epoch 32 | valid.f_iou 0.8121799826622009, valid.f_f-score 0.8663: 6%|██ | 1/16 [00:05<01:15, 5.04s/it]
epoch 32 | valid.f_iou 0.8121799826622009, valid.f_f-score 0.8663: 12%|████ | 2/16 [00:05<00:32, 2.35s/it]
epoch 32 | valid.f_iou 0.6858800053596497, valid.f_f-score 0.79739: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 32 | valid.f_iou 0.6858800053596497, valid.f_f-score 0.79739: 19%|█████▊ | 3/16 [00:05<00:19, 1.49s/it]
epoch 32 | valid.f_iou 0.6741700172424316, valid.f_f-score 0.77904: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 32 | valid.f_iou 0.6741700172424316, valid.f_f-score 0.77904: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 32 | valid.f_iou 0.6699900031089783, valid.f_f-score 0.77812: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 32 | valid.f_iou 0.6699900031089783, valid.f_f-score 0.77812: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 32 | valid.f_iou 0.6308000087738037, valid.f_f-score 0.74535: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 32 | valid.f_iou 0.6308000087738037, valid.f_f-score 0.74535: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 32 | valid.f_iou 0.6517300009727478, valid.f_f-score 0.76396: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 32 | valid.f_iou 0.6517300009727478, valid.f_f-score 0.76396: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 32 | valid.f_iou 0.6444900035858154, valid.f_f-score 0.7649: 44%|██████████████ | 7/16 [00:08<00:05, 1.65it/s]
epoch 32 | valid.f_iou 0.6444900035858154, valid.f_f-score 0.7649: 50%|████████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 32 | valid.f_iou 0.6690199971199036, valid.f_f-score 0.78099: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 32 | valid.f_iou 0.6690199971199036, valid.f_f-score 0.78099: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 32 | valid.f_iou 0.6727499961853027, valid.f_f-score 0.78797: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 32 | valid.f_iou 0.6727499961853027, valid.f_f-score 0.78797: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.08it/s]
epoch 32 | valid.f_iou 0.665149986743927, valid.f_f-score 0.77184: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.08it/s]
epoch 32 | valid.f_iou 0.665149986743927, valid.f_f-score 0.77184: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.12it/s]
epoch 32 | valid.f_iou 0.6762099862098694, valid.f_f-score 0.78253: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 32 | valid.f_iou 0.6762099862098694, valid.f_f-score 0.78253: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.27it/s]
epoch 32 | valid.f_iou 0.6831899881362915, valid.f_f-score 0.78715: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 32 | valid.f_iou 0.6831899881362915, valid.f_f-score 0.78715: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 32 | valid.f_iou 0.6690800189971924, valid.f_f-score 0.77387: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 32 | valid.f_iou 0.6690800189971924, valid.f_f-score 0.77387: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 32 | valid.f_iou 0.6695399880409241, valid.f_f-score 0.77441: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 32 | valid.f_iou 0.6695399880409241, valid.f_f-score 0.77441: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 32 | valid.f_iou 0.671019971370697, valid.f_f-score 0.7755: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.56it/s]
epoch 32 | valid.f_iou 0.671019971370697, valid.f_f-score 0.7755: 100%|████████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 32 | valid.f_iou 0.671019971370697, valid.f_f-score 0.7755: 100%|████████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 33 | loss 0.7060665488243103, f_iou 0.9530930519104004: 0%| | 0/74 [00:06, ?it/s]
epoch 33 | loss 0.7060665488243103, f_iou 0.9530930519104004: 1%|▌ | 1/74 [00:06<07:48, 6.42s/it]
epoch 33 | loss 1.3837419748306274, f_iou 0.6472377777099609: 1%|▌ | 1/74 [00:07<07:48, 6.42s/it]
epoch 33 | loss 1.3837419748306274, f_iou 0.6472377777099609: 3%|█ | 2/74 [00:07<03:44, 3.12s/it]
epoch 33 | loss 2.1190638542175293, f_iou 0.601303219795227: 3%|█ | 2/74 [00:08<03:44, 3.12s/it]
epoch 33 | loss 2.1190638542175293, f_iou 0.601303219795227: 4%|█▌ | 3/74 [00:08<02:26, 2.07s/it]
epoch 33 | loss 0.7456761598587036, f_iou 0.6842304468154907: 4%|█▌ | 3/74 [00:08<02:26, 2.07s/it]
epoch 33 | loss 0.7456761598587036, f_iou 0.6842304468154907: 5%|██ | 4/74 [00:08<01:53, 1.62s/it]
epoch 33 | loss 0.3372291922569275, f_iou 0.7091456651687622: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 33 | loss 0.3372291922569275, f_iou 0.7091456651687622: 7%|██▌ | 5/74 [00:09<01:32, 1.34s/it]
epoch 33 | loss 2.482703447341919, f_iou 0.609419047832489: 7%|██▋ | 5/74 [00:10<01:32, 1.34s/it]
epoch 33 | loss 2.482703447341919, f_iou 0.609419047832489: 8%|███▏ | 6/74 [00:10<01:19, 1.17s/it]
epoch 33 | loss 1.1382224559783936, f_iou 0.6444154977798462: 8%|███ | 6/74 [00:11<01:19, 1.17s/it]
epoch 33 | loss 1.1382224559783936, f_iou 0.6444154977798462: 9%|███▌ | 7/74 [00:11<01:10, 1.05s/it]
epoch 33 | loss 0.125, f_iou 0.6664280891418457: 9%|████▋ | 7/74 [00:12<01:10, 1.05s/it]
epoch 33 | loss 0.125, f_iou 0.6664280891418457: 11%|█████▍ | 8/74 [00:12<01:03, 1.03it/s]
epoch 33 | loss 2.4950368404388428, f_iou 0.6459595561027527: 11%|████ | 8/74 [00:13<01:03, 1.03it/s]
epoch 33 | loss 2.4950368404388428, f_iou 0.6459595561027527: 12%|████▌ | 9/74 [00:13<00:59, 1.09it/s]
epoch 33 | loss 0.6124677062034607, f_iou 0.6786648035049438: 12%|████▌ | 9/74 [00:13<00:59, 1.09it/s]
epoch 33 | loss 0.6124677062034607, f_iou 0.6786648035049438: 14%|████▊ | 10/74 [00:13<00:56, 1.13it/s]
epoch 33 | loss 2.136507511138916, f_iou 0.6169683337211609: 14%|█████ | 10/74 [00:14<00:56, 1.13it/s]
epoch 33 | loss 2.136507511138916, f_iou 0.6169683337211609: 15%|█████▌ | 11/74 [00:14<00:54, 1.16it/s]
epoch 33 | loss 0.6649879217147827, f_iou 0.6072359085083008: 15%|█████▎ | 11/74 [00:15<00:54, 1.16it/s]
epoch 33 | loss 0.6649879217147827, f_iou 0.6072359085083008: 16%|█████▊ | 12/74 [00:15<00:51, 1.20it/s]
epoch 33 | loss 1.259287714958191, f_iou 0.6189100742340088: 16%|██████ | 12/74 [00:16<00:51, 1.20it/s]
epoch 33 | loss 1.259287714958191, f_iou 0.6189100742340088: 18%|██████▌ | 13/74 [00:16<00:49, 1.23it/s]
epoch 33 | loss 1.155212640762329, f_iou 0.6243394017219543: 18%|██████▌ | 13/74 [00:16<00:49, 1.23it/s]
epoch 33 | loss 1.155212640762329, f_iou 0.6243394017219543: 19%|███████ | 14/74 [00:16<00:47, 1.25it/s]
epoch 33 | loss 1.390831708908081, f_iou 0.5892015695571899: 19%|███████ | 14/74 [00:17<00:47, 1.25it/s]
epoch 33 | loss 1.390831708908081, f_iou 0.5892015695571899: 20%|███████▌ | 15/74 [00:17<00:46, 1.27it/s]
epoch 33 | loss 1.0348210334777832, f_iou 0.5971030592918396: 20%|███████▎ | 15/74 [00:18<00:46, 1.27it/s]
epoch 33 | loss 1.0348210334777832, f_iou 0.5971030592918396: 22%|███████▊ | 16/74 [00:18<00:45, 1.28it/s]
epoch 33 | loss 1.008071780204773, f_iou 0.6112093925476074: 22%|████████ | 16/74 [00:19<00:45, 1.28it/s]
epoch 33 | loss 1.008071780204773, f_iou 0.6112093925476074: 23%|████████▌ | 17/74 [00:19<00:43, 1.31it/s]
epoch 33 | loss 3.6874585151672363, f_iou 0.6112591028213501: 23%|████████▎ | 17/74 [00:19<00:43, 1.31it/s]
epoch 33 | loss 3.6874585151672363, f_iou 0.6112591028213501: 24%|████████▊ | 18/74 [00:19<00:41, 1.33it/s]
epoch 33 | loss 1.730623722076416, f_iou 0.6138001680374146: 24%|█████████ | 18/74 [00:20<00:41, 1.33it/s]
epoch 33 | loss 1.730623722076416, f_iou 0.6138001680374146: 26%|█████████▌ | 19/74 [00:20<00:41, 1.32it/s]
epoch 33 | loss 1.989441990852356, f_iou 0.6150335669517517: 26%|█████████▌ | 19/74 [00:21<00:41, 1.32it/s]
epoch 33 | loss 1.989441990852356, f_iou 0.6150335669517517: 27%|██████████ | 20/74 [00:21<00:41, 1.31it/s]
epoch 33 | loss 4.435578346252441, f_iou 0.5965400338172913: 27%|██████████ | 20/74 [00:22<00:41, 1.31it/s]
epoch 33 | loss 4.435578346252441, f_iou 0.5965400338172913: 28%|██████████▌ | 21/74 [00:22<00:40, 1.29it/s]
epoch 33 | loss 4.444015979766846, f_iou 0.583829402923584: 28%|██████████▊ | 21/74 [00:23<00:40, 1.29it/s]
epoch 33 | loss 4.444015979766846, f_iou 0.583829402923584: 30%|███████████▎ | 22/74 [00:23<00:40, 1.29it/s]
epoch 33 | loss 1.8267757892608643, f_iou 0.5721896886825562: 30%|██████████▋ | 22/74 [00:23<00:40, 1.29it/s]
epoch 33 | loss 1.8267757892608643, f_iou 0.5721896886825562: 31%|███████████▏ | 23/74 [00:23<00:39, 1.28it/s]
epoch 33 | loss 1.7230147123336792, f_iou 0.5784357786178589: 31%|███████████▏ | 23/74 [00:24<00:39, 1.28it/s]
epoch 33 | loss 1.7230147123336792, f_iou 0.5784357786178589: 32%|███████████▋ | 24/74 [00:24<00:39, 1.28it/s]
epoch 33 | loss 2.3537352085113525, f_iou 0.585425615310669: 32%|████████████ | 24/74 [00:25<00:39, 1.28it/s]
epoch 33 | loss 2.3537352085113525, f_iou 0.585425615310669: 34%|████████████▌ | 25/74 [00:25<00:38, 1.27it/s]
epoch 33 | loss 2.5500972270965576, f_iou 0.5954573750495911: 34%|████████████▏ | 25/74 [00:26<00:38, 1.27it/s]
epoch 33 | loss 2.5500972270965576, f_iou 0.5954573750495911: 35%|████████████▋ | 26/74 [00:26<00:37, 1.27it/s]
epoch 33 | loss 1.7163360118865967, f_iou 0.5954134464263916: 35%|████████████▋ | 26/74 [00:27<00:37, 1.27it/s]
epoch 33 | loss 1.7163360118865967, f_iou 0.5954134464263916: 36%|█████████████▏ | 27/74 [00:27<00:37, 1.27it/s]
epoch 33 | loss 1.5813491344451904, f_iou 0.6048980951309204: 36%|█████████████▏ | 27/74 [00:27<00:37, 1.27it/s]
epoch 33 | loss 1.5813491344451904, f_iou 0.6048980951309204: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.30it/s]
epoch 33 | loss 1.1158223152160645, f_iou 0.6040085554122925: 38%|█████████████▌ | 28/74 [00:28<00:35, 1.30it/s]
epoch 33 | loss 1.1158223152160645, f_iou 0.6040085554122925: 39%|██████████████ | 29/74 [00:28<00:33, 1.33it/s]
epoch 33 | loss 2.594517469406128, f_iou 0.5974862575531006: 39%|██████████████▌ | 29/74 [00:29<00:33, 1.33it/s]
epoch 33 | loss 2.594517469406128, f_iou 0.5974862575531006: 41%|███████████████ | 30/74 [00:29<00:32, 1.34it/s]
epoch 33 | loss 1.2698086500167847, f_iou 0.601313054561615: 41%|███████████████ | 30/74 [00:29<00:32, 1.34it/s]
epoch 33 | loss 1.2698086500167847, f_iou 0.601313054561615: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.36it/s]
epoch 33 | loss 2.121030330657959, f_iou 0.6022666692733765: 42%|███████████████▌ | 31/74 [00:30<00:31, 1.36it/s]
epoch 33 | loss 2.121030330657959, f_iou 0.6022666692733765: 43%|████████████████ | 32/74 [00:30<00:30, 1.37it/s]
epoch 33 | loss 1.8570963144302368, f_iou 0.5840162038803101: 43%|███████████████▌ | 32/74 [00:31<00:30, 1.37it/s]
epoch 33 | loss 1.8570963144302368, f_iou 0.5840162038803101: 45%|████████████████ | 33/74 [00:31<00:29, 1.37it/s]
epoch 33 | loss 1.4788215160369873, f_iou 0.5874227285385132: 45%|████████████████ | 33/74 [00:32<00:29, 1.37it/s]
epoch 33 | loss 1.4788215160369873, f_iou 0.5874227285385132: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.38it/s]
epoch 33 | loss 3.1610097885131836, f_iou 0.5827540755271912: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.38it/s]
epoch 33 | loss 3.1610097885131836, f_iou 0.5827540755271912: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 33 | loss 3.7358477115631104, f_iou 0.5704902410507202: 47%|█████████████████ | 35/74 [00:33<00:28, 1.38it/s]
epoch 33 | loss 3.7358477115631104, f_iou 0.5704902410507202: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 33 | loss 0.5221632122993469, f_iou 0.5813620686531067: 49%|█████████████████▌ | 36/74 [00:34<00:27, 1.38it/s]
epoch 33 | loss 0.5221632122993469, f_iou 0.5813620686531067: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 33 | loss 3.03779935836792, f_iou 0.5728446841239929: 50%|███████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 33 | loss 3.03779935836792, f_iou 0.5728446841239929: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.38it/s]
epoch 33 | loss 1.5721098184585571, f_iou 0.5779508948326111: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.38it/s]
epoch 33 | loss 1.5721098184585571, f_iou 0.5779508948326111: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 33 | loss 2.852728843688965, f_iou 0.5754418969154358: 53%|███████████████████▍ | 39/74 [00:36<00:25, 1.38it/s]
epoch 33 | loss 2.852728843688965, f_iou 0.5754418969154358: 54%|████████████████████ | 40/74 [00:36<00:24, 1.38it/s]
epoch 33 | loss 6.235321998596191, f_iou 0.5795512795448303: 54%|████████████████████ | 40/74 [00:37<00:24, 1.38it/s]
epoch 33 | loss 6.235321998596191, f_iou 0.5795512795448303: 55%|████████████████████▌ | 41/74 [00:37<00:23, 1.38it/s]
epoch 33 | loss 0.4870554804801941, f_iou 0.5774990320205688: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.38it/s]
epoch 33 | loss 0.4870554804801941, f_iou 0.5774990320205688: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 33 | loss 1.6930229663848877, f_iou 0.5805548429489136: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.39it/s]
epoch 33 | loss 1.6930229663848877, f_iou 0.5805548429489136: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 33 | loss 2.5032033920288086, f_iou 0.5873410105705261: 58%|████████████████████▉ | 43/74 [00:39<00:22, 1.38it/s]
epoch 33 | loss 2.5032033920288086, f_iou 0.5873410105705261: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.35it/s]
epoch 33 | loss 0.795218288898468, f_iou 0.5918298959732056: 59%|██████████████████████ | 44/74 [00:40<00:22, 1.35it/s]
epoch 33 | loss 0.795218288898468, f_iou 0.5918298959732056: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.32it/s]
epoch 33 | loss 1.6422336101531982, f_iou 0.5970717668533325: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.32it/s]
epoch 33 | loss 1.6422336101531982, f_iou 0.5970717668533325: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.30it/s]
epoch 33 | loss 3.067810297012329, f_iou 0.593887209892273: 62%|███████████████████████▌ | 46/74 [00:41<00:21, 1.30it/s]
epoch 33 | loss 3.067810297012329, f_iou 0.593887209892273: 64%|████████████████████████▏ | 47/74 [00:41<00:20, 1.32it/s]
epoch 33 | loss 4.53263521194458, f_iou 0.5920236110687256: 64%|████████████████████████▏ | 47/74 [00:42<00:20, 1.32it/s]
epoch 33 | loss 4.53263521194458, f_iou 0.5920236110687256: 65%|████████████████████████▋ | 48/74 [00:42<00:19, 1.34it/s]
epoch 33 | loss 2.1541507244110107, f_iou 0.5956844687461853: 65%|███████████████████████▎ | 48/74 [00:43<00:19, 1.34it/s]
epoch 33 | loss 2.1541507244110107, f_iou 0.5956844687461853: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.35it/s]
epoch 33 | loss 4.696350574493408, f_iou 0.5965160131454468: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.35it/s]
epoch 33 | loss 4.696350574493408, f_iou 0.5965160131454468: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.36it/s]
epoch 33 | loss 1.6924201250076294, f_iou 0.6012260317802429: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.36it/s]
epoch 33 | loss 1.6924201250076294, f_iou 0.6012260317802429: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.37it/s]
epoch 33 | loss 4.486923694610596, f_iou 0.6045575737953186: 69%|█████████████████████████▌ | 51/74 [00:45<00:16, 1.37it/s]
epoch 33 | loss 4.486923694610596, f_iou 0.6045575737953186: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.38it/s]
epoch 33 | loss 1.016729474067688, f_iou 0.6101701259613037: 70%|██████████████████████████ | 52/74 [00:46<00:15, 1.38it/s]
epoch 33 | loss 1.016729474067688, f_iou 0.6101701259613037: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.37it/s]
epoch 33 | loss 0.8829764127731323, f_iou 0.6078373193740845: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.37it/s]
epoch 33 | loss 0.8829764127731323, f_iou 0.6078373193740845: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.38it/s]
epoch 33 | loss 2.127201795578003, f_iou 0.6065798401832581: 73%|███████████████████████████ | 54/74 [00:47<00:14, 1.38it/s]
epoch 33 | loss 2.127201795578003, f_iou 0.6065798401832581: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.37it/s]
epoch 33 | loss 1.4413025379180908, f_iou 0.6086733937263489: 74%|██████████████████████████▊ | 55/74 [00:48<00:13, 1.37it/s]
epoch 33 | loss 1.4413025379180908, f_iou 0.6086733937263489: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.37it/s]
epoch 33 | loss 2.7423367500305176, f_iou 0.6039143204689026: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.37it/s]
epoch 33 | loss 2.7423367500305176, f_iou 0.6039143204689026: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 33 | loss 3.7033543586730957, f_iou 0.5989196300506592: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.38it/s]
epoch 33 | loss 3.7033543586730957, f_iou 0.5989196300506592: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 33 | loss 3.383498191833496, f_iou 0.5958111882209778: 78%|█████████████████████████████ | 58/74 [00:50<00:11, 1.38it/s]
epoch 33 | loss 3.383498191833496, f_iou 0.5958111882209778: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.38it/s]
epoch 33 | loss 2.3989298343658447, f_iou 0.590792179107666: 80%|█████████████████████████████▌ | 59/74 [00:51<00:10, 1.38it/s]
epoch 33 | loss 2.3989298343658447, f_iou 0.590792179107666: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.38it/s]
epoch 33 | loss 1.9347411394119263, f_iou 0.5917977094650269: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.38it/s]
epoch 33 | loss 1.9347411394119263, f_iou 0.5917977094650269: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 33 | loss 1.2199575901031494, f_iou 0.5867251753807068: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.39it/s]
epoch 33 | loss 1.2199575901031494, f_iou 0.5867251753807068: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 33 | loss 1.189882516860962, f_iou 0.5920769572257996: 84%|███████████████████████████████ | 62/74 [00:53<00:08, 1.39it/s]
epoch 33 | loss 1.189882516860962, f_iou 0.5920769572257996: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.39it/s]
epoch 33 | loss 1.2643141746520996, f_iou 0.5961250066757202: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 33 | loss 1.2643141746520996, f_iou 0.5961250066757202: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 33 | loss 4.796141147613525, f_iou 0.5921735763549805: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.39it/s]
epoch 33 | loss 4.796141147613525, f_iou 0.5921735763549805: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 33 | loss 2.3186566829681396, f_iou 0.5885457992553711: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.39it/s]
epoch 33 | loss 2.3186566829681396, f_iou 0.5885457992553711: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 33 | loss 1.4298936128616333, f_iou 0.5894678831100464: 89%|████████████████████████████████ | 66/74 [00:56<00:05, 1.39it/s]
epoch 33 | loss 1.4298936128616333, f_iou 0.5894678831100464: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 33 | loss 1.2611521482467651, f_iou 0.5888410210609436: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 33 | loss 1.2611521482467651, f_iou 0.5888410210609436: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 33 | loss 1.5384083986282349, f_iou 0.5914883613586426: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 33 | loss 1.5384083986282349, f_iou 0.5914883613586426: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 33 | loss 2.1803057193756104, f_iou 0.5893683433532715: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.40it/s]
epoch 33 | loss 2.1803057193756104, f_iou 0.5893683433532715: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 33 | loss 1.984976887702942, f_iou 0.5932201147079468: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 33 | loss 1.984976887702942, f_iou 0.5932201147079468: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 33 | loss 2.3405423164367676, f_iou 0.5895556211471558: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 33 | loss 2.3405423164367676, f_iou 0.5895556211471558: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 33 | loss 2.9987668991088867, f_iou 0.5854787826538086: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 33 | loss 2.9987668991088867, f_iou 0.5854787826538086: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 33 | loss 1.7183836698532104, f_iou 0.5894085168838501: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.40it/s]
epoch 33 | loss 1.7183836698532104, f_iou 0.5894085168838501: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.40it/s]
epoch 33 | loss 1.7183836698532104, f_iou 0.5894085168838501: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 33 | valid.f_iou 0.7560399770736694, valid.f_f-score 0.84624: 0%| | 0/16 [00:05, ?it/s]
epoch 33 | valid.f_iou 0.7560399770736694, valid.f_f-score 0.84624: 6%|█▉ | 1/16 [00:05<01:22, 5.47s/it]
epoch 33 | valid.f_iou 0.6283199787139893, valid.f_f-score 0.83955: 6%|█▉ | 1/16 [00:05<01:22, 5.47s/it]
epoch 33 | valid.f_iou 0.6283199787139893, valid.f_f-score 0.83955: 12%|███▉ | 2/16 [00:05<00:35, 2.52s/it]
epoch 33 | valid.f_iou 0.4808099865913391, valid.f_f-score 0.76195: 12%|███▉ | 2/16 [00:06<00:35, 2.52s/it]
epoch 33 | valid.f_iou 0.4808099865913391, valid.f_f-score 0.76195: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 33 | valid.f_iou 0.5259699821472168, valid.f_f-score 0.76657: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 33 | valid.f_iou 0.5259699821472168, valid.f_f-score 0.76657: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 33 | valid.f_iou 0.49048998951911926, valid.f_f-score 0.75011: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 33 | valid.f_iou 0.49048998951911926, valid.f_f-score 0.75011: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 33 | valid.f_iou 0.464709997177124, valid.f_f-score 0.7133: 31%|██████████▎ | 5/16 [00:07<00:09, 1.12it/s]
epoch 33 | valid.f_iou 0.464709997177124, valid.f_f-score 0.7133: 38%|████████████▍ | 6/16 [00:07<00:07, 1.34it/s]
epoch 33 | valid.f_iou 0.4866900146007538, valid.f_f-score 0.72607: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 33 | valid.f_iou 0.4866900146007538, valid.f_f-score 0.72607: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 33 | valid.f_iou 0.47249001264572144, valid.f_f-score 0.70937: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 33 | valid.f_iou 0.47249001264572144, valid.f_f-score 0.70937: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 33 | valid.f_iou 0.47457000613212585, valid.f_f-score 0.69106: 50%|███████████████ | 8/16 [00:09<00:04, 1.74it/s]
epoch 33 | valid.f_iou 0.47457000613212585, valid.f_f-score 0.69106: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.89it/s]
epoch 33 | valid.f_iou 0.4622499942779541, valid.f_f-score 0.69192: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 33 | valid.f_iou 0.4622499942779541, valid.f_f-score 0.69192: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 33 | valid.f_iou 0.4631499946117401, valid.f_f-score 0.69377: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 33 | valid.f_iou 0.4631499946117401, valid.f_f-score 0.69377: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 33 | valid.f_iou 0.48996999859809875, valid.f_f-score 0.71221: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.19it/s]
epoch 33 | valid.f_iou 0.48996999859809875, valid.f_f-score 0.71221: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.23it/s]
epoch 33 | valid.f_iou 0.4894999861717224, valid.f_f-score 0.72285: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 33 | valid.f_iou 0.4894999861717224, valid.f_f-score 0.72285: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.26it/s]
epoch 33 | valid.f_iou 0.4747200012207031, valid.f_f-score 0.70637: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.26it/s]
epoch 33 | valid.f_iou 0.4747200012207031, valid.f_f-score 0.70637: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.29it/s]
epoch 33 | valid.f_iou 0.4836899936199188, valid.f_f-score 0.70757: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.29it/s]
epoch 33 | valid.f_iou 0.4836899936199188, valid.f_f-score 0.70757: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.41it/s]
epoch 33 | valid.f_iou 0.4939199984073639, valid.f_f-score 0.708: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.41it/s]
epoch 33 | valid.f_iou 0.4939199984073639, valid.f_f-score 0.708: 100%|████████████████████████████████| 16/16 [00:11<00:00, 2.50it/s]
epoch 33 | valid.f_iou 0.4939199984073639, valid.f_f-score 0.708: 100%|████████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 33 | valid.f_iou 0.746399998664856, valid.f_f-score 0.78114: 0%| | 0/16 [00:04, ?it/s]
epoch 33 | valid.f_iou 0.746399998664856, valid.f_f-score 0.78114: 6%|██ | 1/16 [00:04<01:13, 4.93s/it]
epoch 33 | valid.f_iou 0.7929700016975403, valid.f_f-score 0.85676: 6%|█▉ | 1/16 [00:05<01:13, 4.93s/it]
epoch 33 | valid.f_iou 0.7929700016975403, valid.f_f-score 0.85676: 12%|███▉ | 2/16 [00:05<00:32, 2.29s/it]
epoch 33 | valid.f_iou 0.6755099892616272, valid.f_f-score 0.79778: 12%|███▉ | 2/16 [00:05<00:32, 2.29s/it]
epoch 33 | valid.f_iou 0.6755099892616272, valid.f_f-score 0.79778: 19%|█████▊ | 3/16 [00:05<00:18, 1.45s/it]
epoch 33 | valid.f_iou 0.6670200228691101, valid.f_f-score 0.76967: 19%|█████▊ | 3/16 [00:06<00:18, 1.45s/it]
epoch 33 | valid.f_iou 0.6670200228691101, valid.f_f-score 0.76967: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 33 | valid.f_iou 0.6634899973869324, valid.f_f-score 0.7741: 25%|████████ | 4/16 [00:06<00:12, 1.02s/it]
epoch 33 | valid.f_iou 0.6634899973869324, valid.f_f-score 0.7741: 31%|██████████ | 5/16 [00:06<00:08, 1.27it/s]
epoch 33 | valid.f_iou 0.6217600107192993, valid.f_f-score 0.73144: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 33 | valid.f_iou 0.6217600107192993, valid.f_f-score 0.73144: 38%|███████████▋ | 6/16 [00:06<00:06, 1.55it/s]
epoch 33 | valid.f_iou 0.6329399943351746, valid.f_f-score 0.74853: 38%|███████████▋ | 6/16 [00:07<00:06, 1.55it/s]
epoch 33 | valid.f_iou 0.6329399943351746, valid.f_f-score 0.74853: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.83it/s]
epoch 33 | valid.f_iou 0.6200100183486938, valid.f_f-score 0.73434: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.83it/s]
epoch 33 | valid.f_iou 0.6200100183486938, valid.f_f-score 0.73434: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 33 | valid.f_iou 0.6453400254249573, valid.f_f-score 0.75336: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 33 | valid.f_iou 0.6453400254249573, valid.f_f-score 0.75336: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.23it/s]
epoch 33 | valid.f_iou 0.6603900194168091, valid.f_f-score 0.76793: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.23it/s]
epoch 33 | valid.f_iou 0.6603900194168091, valid.f_f-score 0.76793: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.38it/s]
epoch 33 | valid.f_iou 0.6563500165939331, valid.f_f-score 0.75659: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.38it/s]
epoch 33 | valid.f_iou 0.6563500165939331, valid.f_f-score 0.75659: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.48it/s]
epoch 33 | valid.f_iou 0.6691300272941589, valid.f_f-score 0.76763: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.48it/s]
epoch 33 | valid.f_iou 0.6691300272941589, valid.f_f-score 0.76763: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.55it/s]
epoch 33 | valid.f_iou 0.6811699867248535, valid.f_f-score 0.77765: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.55it/s]
epoch 33 | valid.f_iou 0.6811699867248535, valid.f_f-score 0.77765: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 33 | valid.f_iou 0.6700999736785889, valid.f_f-score 0.7707: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.61it/s]
epoch 33 | valid.f_iou 0.6700999736785889, valid.f_f-score 0.7707: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.66it/s]
epoch 33 | valid.f_iou 0.6683700084686279, valid.f_f-score 0.76872: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.66it/s]
epoch 33 | valid.f_iou 0.6683700084686279, valid.f_f-score 0.76872: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 33 | valid.f_iou 0.6699100136756897, valid.f_f-score 0.76991: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 33 | valid.f_iou 0.6699100136756897, valid.f_f-score 0.76991: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.71it/s]
epoch 33 | valid.f_iou 0.6699100136756897, valid.f_f-score 0.76991: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 33 | valid.f_iou 0.5190399885177612, valid.f_f-score 0.63185: 0%| | 0/16 [00:04, ?it/s]
epoch 33 | valid.f_iou 0.5190399885177612, valid.f_f-score 0.63185: 6%|█▉ | 1/16 [00:04<01:06, 4.41s/it]
epoch 33 | valid.f_iou 0.5426999926567078, valid.f_f-score 0.66577: 6%|█▉ | 1/16 [00:05<01:06, 4.41s/it]
epoch 33 | valid.f_iou 0.5426999926567078, valid.f_f-score 0.66577: 12%|███▉ | 2/16 [00:05<00:31, 2.26s/it]
epoch 33 | valid.f_iou 0.5086600184440613, valid.f_f-score 0.67045: 12%|███▉ | 2/16 [00:05<00:31, 2.26s/it]
epoch 33 | valid.f_iou 0.5086600184440613, valid.f_f-score 0.67045: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 33 | valid.f_iou 0.5432199835777283, valid.f_f-score 0.66618: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 33 | valid.f_iou 0.5432199835777283, valid.f_f-score 0.66618: 25%|███████▊ | 4/16 [00:05<00:12, 1.02s/it]
epoch 33 | valid.f_iou 0.568880021572113, valid.f_f-score 0.6913: 25%|████████▎ | 4/16 [00:06<00:12, 1.02s/it]
epoch 33 | valid.f_iou 0.568880021572113, valid.f_f-score 0.6913: 31%|██████████▎ | 5/16 [00:06<00:08, 1.27it/s]
epoch 33 | valid.f_iou 0.5429199934005737, valid.f_f-score 0.66244: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 33 | valid.f_iou 0.5429199934005737, valid.f_f-score 0.66244: 38%|███████████▋ | 6/16 [00:06<00:06, 1.56it/s]
epoch 33 | valid.f_iou 0.5604900121688843, valid.f_f-score 0.67986: 38%|███████████▋ | 6/16 [00:07<00:06, 1.56it/s]
epoch 33 | valid.f_iou 0.5604900121688843, valid.f_f-score 0.67986: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.79it/s]
epoch 33 | valid.f_iou 0.5566200017929077, valid.f_f-score 0.67425: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.79it/s]
epoch 33 | valid.f_iou 0.5566200017929077, valid.f_f-score 0.67425: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.95it/s]
epoch 33 | valid.f_iou 0.5924699902534485, valid.f_f-score 0.69995: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.95it/s]
epoch 33 | valid.f_iou 0.5924699902534485, valid.f_f-score 0.69995: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.11it/s]
epoch 33 | valid.f_iou 0.6091600060462952, valid.f_f-score 0.71627: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.11it/s]
epoch 33 | valid.f_iou 0.6091600060462952, valid.f_f-score 0.71627: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 33 | valid.f_iou 0.5905399918556213, valid.f_f-score 0.69435: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 33 | valid.f_iou 0.5905399918556213, valid.f_f-score 0.69435: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.19it/s]
epoch 33 | valid.f_iou 0.6087999939918518, valid.f_f-score 0.71057: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 33 | valid.f_iou 0.6087999939918518, valid.f_f-score 0.71057: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.33it/s]
epoch 33 | valid.f_iou 0.6158599853515625, valid.f_f-score 0.71778: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.33it/s]
epoch 33 | valid.f_iou 0.6158599853515625, valid.f_f-score 0.71778: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.45it/s]
epoch 33 | valid.f_iou 0.6003299951553345, valid.f_f-score 0.70644: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.45it/s]
epoch 33 | valid.f_iou 0.6003299951553345, valid.f_f-score 0.70644: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.54it/s]
epoch 33 | valid.f_iou 0.6032599806785583, valid.f_f-score 0.70874: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 33 | valid.f_iou 0.6032599806785583, valid.f_f-score 0.70874: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 33 | valid.f_iou 0.6099100112915039, valid.f_f-score 0.71368: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 33 | valid.f_iou 0.6099100112915039, valid.f_f-score 0.71368: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 33 | valid.f_iou 0.6099100112915039, valid.f_f-score 0.71368: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 34 | loss 0.9429377913475037, f_iou 0.9547860026359558: 0%| | 0/74 [00:05, ?it/s]
epoch 34 | loss 0.9429377913475037, f_iou 0.9547860026359558: 1%|▌ | 1/74 [00:05<06:42, 5.51s/it]
epoch 34 | loss 4.778556823730469, f_iou 0.5931575298309326: 1%|▌ | 1/74 [00:06<06:42, 5.51s/it]
epoch 34 | loss 4.778556823730469, f_iou 0.5931575298309326: 3%|█ | 2/74 [00:06<03:18, 2.76s/it]
epoch 34 | loss 4.987691879272461, f_iou 0.48119062185287476: 3%|█ | 2/74 [00:07<03:18, 2.76s/it]
epoch 34 | loss 4.987691879272461, f_iou 0.48119062185287476: 4%|█▌ | 3/74 [00:07<02:14, 1.89s/it]
epoch 34 | loss 4.134921550750732, f_iou 0.5334516763687134: 4%|█▌ | 3/74 [00:08<02:14, 1.89s/it]
epoch 34 | loss 4.134921550750732, f_iou 0.5334516763687134: 5%|██ | 4/74 [00:08<01:42, 1.46s/it]
epoch 34 | loss 1.4245965480804443, f_iou 0.43194442987442017: 5%|█▉ | 4/74 [00:08<01:42, 1.46s/it]
epoch 34 | loss 1.4245965480804443, f_iou 0.43194442987442017: 7%|██▍ | 5/74 [00:08<01:23, 1.22s/it]
epoch 34 | loss 2.2046895027160645, f_iou 0.44437772035598755: 7%|██▍ | 5/74 [00:09<01:23, 1.22s/it]
epoch 34 | loss 2.2046895027160645, f_iou 0.44437772035598755: 8%|██▉ | 6/74 [00:09<01:11, 1.05s/it]
epoch 34 | loss 1.1275689601898193, f_iou 0.5050102472305298: 8%|███ | 6/74 [00:10<01:11, 1.05s/it]
epoch 34 | loss 1.1275689601898193, f_iou 0.5050102472305298: 9%|███▌ | 7/74 [00:10<01:03, 1.06it/s]
epoch 34 | loss 0.9207426309585571, f_iou 0.5320859551429749: 9%|███▌ | 7/74 [00:10<01:03, 1.06it/s]
epoch 34 | loss 0.9207426309585571, f_iou 0.5320859551429749: 11%|████ | 8/74 [00:10<00:57, 1.15it/s]
epoch 34 | loss 1.72239351272583, f_iou 0.5177897214889526: 11%|████▏ | 8/74 [00:11<00:57, 1.15it/s]
epoch 34 | loss 1.72239351272583, f_iou 0.5177897214889526: 12%|████▋ | 9/74 [00:11<00:54, 1.20it/s]
epoch 34 | loss 4.305262088775635, f_iou 0.5318673849105835: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 34 | loss 4.305262088775635, f_iou 0.5318673849105835: 14%|█████ | 10/74 [00:12<00:51, 1.23it/s]
epoch 34 | loss 1.2663170099258423, f_iou 0.5707237124443054: 14%|████▊ | 10/74 [00:13<00:51, 1.23it/s]
epoch 34 | loss 1.2663170099258423, f_iou 0.5707237124443054: 15%|█████▎ | 11/74 [00:13<00:49, 1.27it/s]
epoch 34 | loss 2.918731927871704, f_iou 0.597588837146759: 15%|█████▋ | 11/74 [00:13<00:49, 1.27it/s]
epoch 34 | loss 2.918731927871704, f_iou 0.597588837146759: 16%|██████▏ | 12/74 [00:13<00:47, 1.31it/s]
epoch 34 | loss 1.9125722646713257, f_iou 0.5693351030349731: 16%|█████▊ | 12/74 [00:14<00:47, 1.31it/s]
epoch 34 | loss 1.9125722646713257, f_iou 0.5693351030349731: 18%|██████▎ | 13/74 [00:14<00:45, 1.34it/s]
epoch 34 | loss 2.292161226272583, f_iou 0.5812509655952454: 18%|██████▌ | 13/74 [00:15<00:45, 1.34it/s]
epoch 34 | loss 2.292161226272583, f_iou 0.5812509655952454: 19%|███████ | 14/74 [00:15<00:44, 1.35it/s]
epoch 34 | loss 2.318589448928833, f_iou 0.5878893136978149: 19%|███████ | 14/74 [00:16<00:44, 1.35it/s]
epoch 34 | loss 2.318589448928833, f_iou 0.5878893136978149: 20%|███████▌ | 15/74 [00:16<00:46, 1.27it/s]
epoch 34 | loss 1.6125812530517578, f_iou 0.5916734337806702: 20%|███████▎ | 15/74 [00:16<00:46, 1.27it/s]
epoch 34 | loss 1.6125812530517578, f_iou 0.5916734337806702: 22%|███████▊ | 16/74 [00:16<00:44, 1.30it/s]
epoch 34 | loss 1.6106497049331665, f_iou 0.609642505645752: 22%|████████ | 16/74 [00:17<00:44, 1.30it/s]
epoch 34 | loss 1.6106497049331665, f_iou 0.609642505645752: 23%|████████▌ | 17/74 [00:17<00:42, 1.33it/s]
epoch 34 | loss 1.3134751319885254, f_iou 0.5982326865196228: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 34 | loss 1.3134751319885254, f_iou 0.5982326865196228: 24%|████████▊ | 18/74 [00:18<00:41, 1.35it/s]
epoch 34 | loss 3.2767205238342285, f_iou 0.5956076383590698: 24%|████████▊ | 18/74 [00:19<00:41, 1.35it/s]
epoch 34 | loss 3.2767205238342285, f_iou 0.5956076383590698: 26%|█████████▏ | 19/74 [00:19<00:40, 1.36it/s]
epoch 34 | loss 1.1272406578063965, f_iou 0.5951077342033386: 26%|█████████▏ | 19/74 [00:19<00:40, 1.36it/s]
epoch 34 | loss 1.1272406578063965, f_iou 0.5951077342033386: 27%|█████████▋ | 20/74 [00:19<00:39, 1.37it/s]
epoch 34 | loss 2.058438301086426, f_iou 0.5890108346939087: 27%|██████████ | 20/74 [00:20<00:39, 1.37it/s]
epoch 34 | loss 2.058438301086426, f_iou 0.5890108346939087: 28%|██████████▌ | 21/74 [00:20<00:38, 1.38it/s]
epoch 34 | loss 1.4793128967285156, f_iou 0.6022151112556458: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 34 | loss 1.4793128967285156, f_iou 0.6022151112556458: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 34 | loss 0.9154649972915649, f_iou 0.6167593002319336: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 34 | loss 0.9154649972915649, f_iou 0.6167593002319336: 31%|███████████▏ | 23/74 [00:21<00:36, 1.38it/s]
epoch 34 | loss 1.6548709869384766, f_iou 0.6166741847991943: 31%|███████████▏ | 23/74 [00:22<00:36, 1.38it/s]
epoch 34 | loss 1.6548709869384766, f_iou 0.6166741847991943: 32%|███████████▋ | 24/74 [00:22<00:36, 1.38it/s]
epoch 34 | loss 1.6525925397872925, f_iou 0.6156548857688904: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 34 | loss 1.6525925397872925, f_iou 0.6156548857688904: 34%|████████████▏ | 25/74 [00:23<00:35, 1.38it/s]
epoch 34 | loss 4.3768768310546875, f_iou 0.6106973886489868: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 34 | loss 4.3768768310546875, f_iou 0.6106973886489868: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 34 | loss 1.9122413396835327, f_iou 0.604814887046814: 35%|█████████████ | 26/74 [00:24<00:34, 1.39it/s]
epoch 34 | loss 1.9122413396835327, f_iou 0.604814887046814: 36%|█████████████▌ | 27/74 [00:24<00:34, 1.36it/s]
epoch 34 | loss 0.7823350429534912, f_iou 0.6169052124023438: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.36it/s]
epoch 34 | loss 0.7823350429534912, f_iou 0.6169052124023438: 38%|█████████████▌ | 28/74 [00:25<00:34, 1.34it/s]
epoch 34 | loss 3.072315216064453, f_iou 0.6114840507507324: 38%|██████████████ | 28/74 [00:26<00:34, 1.34it/s]
epoch 34 | loss 3.072315216064453, f_iou 0.6114840507507324: 39%|██████████████▌ | 29/74 [00:26<00:33, 1.35it/s]
epoch 34 | loss 0.4296875, f_iou 0.6238241791725159: 39%|█████████████████▋ | 29/74 [00:27<00:33, 1.35it/s]
epoch 34 | loss 0.4296875, f_iou 0.6238241791725159: 41%|██████████████████▏ | 30/74 [00:27<00:32, 1.36it/s]
epoch 34 | loss 3.102442502975464, f_iou 0.609044075012207: 41%|███████████████▍ | 30/74 [00:27<00:32, 1.36it/s]
epoch 34 | loss 3.102442502975464, f_iou 0.609044075012207: 42%|███████████████▉ | 31/74 [00:27<00:31, 1.37it/s]
epoch 34 | loss 2.397994041442871, f_iou 0.6120851039886475: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.37it/s]
epoch 34 | loss 2.397994041442871, f_iou 0.6120851039886475: 43%|████████████████ | 32/74 [00:28<00:30, 1.38it/s]
epoch 34 | loss 1.124033808708191, f_iou 0.6202584505081177: 43%|████████████████ | 32/74 [00:29<00:30, 1.38it/s]
epoch 34 | loss 1.124033808708191, f_iou 0.6202584505081177: 45%|████████████████▌ | 33/74 [00:29<00:30, 1.35it/s]
epoch 34 | loss 0.8964070081710815, f_iou 0.6045916676521301: 45%|████████████████ | 33/74 [00:30<00:30, 1.35it/s]
epoch 34 | loss 0.8964070081710815, f_iou 0.6045916676521301: 46%|████████████████▌ | 34/74 [00:30<00:30, 1.32it/s]
epoch 34 | loss 2.4493703842163086, f_iou 0.6054895520210266: 46%|████████████████▌ | 34/74 [00:30<00:30, 1.32it/s]
epoch 34 | loss 2.4493703842163086, f_iou 0.6054895520210266: 47%|█████████████████ | 35/74 [00:30<00:29, 1.31it/s]
epoch 34 | loss 0.8849359750747681, f_iou 0.6123756170272827: 47%|█████████████████ | 35/74 [00:31<00:29, 1.31it/s]
epoch 34 | loss 0.8849359750747681, f_iou 0.6123756170272827: 49%|█████████████████▌ | 36/74 [00:31<00:29, 1.30it/s]
epoch 34 | loss 1.8672387599945068, f_iou 0.614799976348877: 49%|██████████████████ | 36/74 [00:32<00:29, 1.30it/s]
epoch 34 | loss 1.8672387599945068, f_iou 0.614799976348877: 50%|██████████████████▌ | 37/74 [00:32<00:28, 1.30it/s]
epoch 34 | loss 2.14787220954895, f_iou 0.6011353731155396: 50%|███████████████████ | 37/74 [00:33<00:28, 1.30it/s]
epoch 34 | loss 2.14787220954895, f_iou 0.6011353731155396: 51%|███████████████████▌ | 38/74 [00:33<00:27, 1.32it/s]
epoch 34 | loss 0.6943214535713196, f_iou 0.6097651124000549: 51%|██████████████████▍ | 38/74 [00:33<00:27, 1.32it/s]
epoch 34 | loss 0.6943214535713196, f_iou 0.6097651124000549: 53%|██████████████████▉ | 39/74 [00:33<00:26, 1.34it/s]
epoch 34 | loss 1.6217758655548096, f_iou 0.6166731119155884: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 34 | loss 1.6217758655548096, f_iou 0.6166731119155884: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.36it/s]
epoch 34 | loss 1.9543037414550781, f_iou 0.6199948787689209: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.36it/s]
epoch 34 | loss 1.9543037414550781, f_iou 0.6199948787689209: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.36it/s]
epoch 34 | loss 2.7132887840270996, f_iou 0.6170961260795593: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.36it/s]
epoch 34 | loss 2.7132887840270996, f_iou 0.6170961260795593: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 34 | loss 2.6322760581970215, f_iou 0.6130245327949524: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 34 | loss 2.6322760581970215, f_iou 0.6130245327949524: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.38it/s]
epoch 34 | loss 1.038258671760559, f_iou 0.6188831329345703: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.38it/s]
epoch 34 | loss 1.038258671760559, f_iou 0.6188831329345703: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.38it/s]
epoch 34 | loss 2.1622376441955566, f_iou 0.622941255569458: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.38it/s]
epoch 34 | loss 2.1622376441955566, f_iou 0.622941255569458: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.38it/s]
epoch 34 | loss 2.5904128551483154, f_iou 0.6181426644325256: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 34 | loss 2.5904128551483154, f_iou 0.6181426644325256: 62%|██████████████████████▍ | 46/74 [00:38<00:20, 1.38it/s]
epoch 34 | loss 5.791414737701416, f_iou 0.6091130375862122: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.38it/s]
epoch 34 | loss 5.791414737701416, f_iou 0.6091130375862122: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.38it/s]
epoch 34 | loss 1.7591397762298584, f_iou 0.5973048210144043: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 34 | loss 1.7591397762298584, f_iou 0.5973048210144043: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 34 | loss 2.4607131481170654, f_iou 0.5976715683937073: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 34 | loss 2.4607131481170654, f_iou 0.5976715683937073: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 34 | loss 3.831752300262451, f_iou 0.5995486974716187: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.39it/s]
epoch 34 | loss 3.831752300262451, f_iou 0.5995486974716187: 68%|█████████████████████████ | 50/74 [00:41<00:17, 1.39it/s]
epoch 34 | loss 1.3443796634674072, f_iou 0.6057966947555542: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 34 | loss 1.3443796634674072, f_iou 0.6057966947555542: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 34 | loss 3.731597423553467, f_iou 0.5986509323120117: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 34 | loss 3.731597423553467, f_iou 0.5986509323120117: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.39it/s]
epoch 34 | loss 1.1589057445526123, f_iou 0.6005933880805969: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 34 | loss 1.1589057445526123, f_iou 0.6005933880805969: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 34 | loss 1.512393593788147, f_iou 0.6002323627471924: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 34 | loss 1.512393593788147, f_iou 0.6002323627471924: 73%|███████████████████████████ | 54/74 [00:44<00:14, 1.39it/s]
epoch 34 | loss 1.5787131786346436, f_iou 0.6014468669891357: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 34 | loss 1.5787131786346436, f_iou 0.6014468669891357: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 34 | loss 1.6185890436172485, f_iou 0.6026611328125: 74%|████████████████████████████▉ | 55/74 [00:46<00:13, 1.39it/s]
epoch 34 | loss 1.6185890436172485, f_iou 0.6026611328125: 76%|█████████████████████████████▌ | 56/74 [00:46<00:12, 1.39it/s]
epoch 34 | loss 2.034628391265869, f_iou 0.5931808352470398: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 34 | loss 2.034628391265869, f_iou 0.5931808352470398: 77%|████████████████████████████▌ | 57/74 [00:46<00:12, 1.39it/s]
epoch 34 | loss 1.8948512077331543, f_iou 0.5829751491546631: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 34 | loss 1.8948512077331543, f_iou 0.5829751491546631: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 34 | loss 1.8405166864395142, f_iou 0.5810792446136475: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 34 | loss 1.8405166864395142, f_iou 0.5810792446136475: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 34 | loss 2.849343776702881, f_iou 0.5818842053413391: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 34 | loss 2.849343776702881, f_iou 0.5818842053413391: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.39it/s]
epoch 34 | loss 1.3221646547317505, f_iou 0.5735408663749695: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 34 | loss 1.3221646547317505, f_iou 0.5735408663749695: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.39it/s]
epoch 34 | loss 4.161959648132324, f_iou 0.5761209726333618: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 34 | loss 4.161959648132324, f_iou 0.5761209726333618: 84%|███████████████████████████████ | 62/74 [00:50<00:08, 1.39it/s]
epoch 34 | loss 2.388899087905884, f_iou 0.5742350816726685: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 34 | loss 2.388899087905884, f_iou 0.5742350816726685: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.39it/s]
epoch 34 | loss 3.6276865005493164, f_iou 0.5737153887748718: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 34 | loss 3.6276865005493164, f_iou 0.5737153887748718: 86%|███████████████████████████████▏ | 64/74 [00:51<00:07, 1.38it/s]
epoch 34 | loss 1.6647088527679443, f_iou 0.5788471698760986: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 34 | loss 1.6647088527679443, f_iou 0.5788471698760986: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.38it/s]
epoch 34 | loss 5.885613441467285, f_iou 0.5727536082267761: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 34 | loss 5.885613441467285, f_iou 0.5727536082267761: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 34 | loss 1.0564056634902954, f_iou 0.5709354281425476: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 34 | loss 1.0564056634902954, f_iou 0.5709354281425476: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 34 | loss 3.0215721130371094, f_iou 0.5737102031707764: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 34 | loss 3.0215721130371094, f_iou 0.5737102031707764: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.39it/s]
epoch 34 | loss 1.6938254833221436, f_iou 0.5757824778556824: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 34 | loss 1.6938254833221436, f_iou 0.5757824778556824: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 34 | loss 1.4927467107772827, f_iou 0.5755568146705627: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 34 | loss 1.4927467107772827, f_iou 0.5755568146705627: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 34 | loss 5.874839782714844, f_iou 0.5682714581489563: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 34 | loss 5.874839782714844, f_iou 0.5682714581489563: 96%|███████████████████████████████████▌ | 71/74 [00:56<00:02, 1.39it/s]
epoch 34 | loss 1.764892339706421, f_iou 0.5691187977790833: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 34 | loss 1.764892339706421, f_iou 0.5691187977790833: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.39it/s]
epoch 34 | loss 1.8815443515777588, f_iou 0.570902407169342: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 34 | loss 1.8815443515777588, f_iou 0.570902407169342: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 34 | loss 3.5260472297668457, f_iou 0.5729227662086487: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 34 | loss 3.5260472297668457, f_iou 0.5729227662086487: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 34 | loss 3.5260472297668457, f_iou 0.5729227662086487: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 34 | valid.f_iou 0.7493000030517578, valid.f_f-score 0.77758: 0%| | 0/16 [00:05, ?it/s]
epoch 34 | valid.f_iou 0.7493000030517578, valid.f_f-score 0.77758: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 34 | valid.f_iou 0.6483700275421143, valid.f_f-score 0.78261: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 34 | valid.f_iou 0.6483700275421143, valid.f_f-score 0.78261: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 34 | valid.f_iou 0.49720999598503113, valid.f_f-score 0.72441: 12%|███▊ | 2/16 [00:06<00:35, 2.55s/it]
epoch 34 | valid.f_iou 0.49720999598503113, valid.f_f-score 0.72441: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 34 | valid.f_iou 0.5521399974822998, valid.f_f-score 0.74536: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 34 | valid.f_iou 0.5521399974822998, valid.f_f-score 0.74536: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 34 | valid.f_iou 0.5386499762535095, valid.f_f-score 0.74464: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 34 | valid.f_iou 0.5386499762535095, valid.f_f-score 0.74464: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 34 | valid.f_iou 0.5180500149726868, valid.f_f-score 0.72306: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 34 | valid.f_iou 0.5180500149726868, valid.f_f-score 0.72306: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 34 | valid.f_iou 0.5306100249290466, valid.f_f-score 0.73215: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 34 | valid.f_iou 0.5306100249290466, valid.f_f-score 0.73215: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 34 | valid.f_iou 0.5154299736022949, valid.f_f-score 0.72819: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 34 | valid.f_iou 0.5154299736022949, valid.f_f-score 0.72819: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 34 | valid.f_iou 0.5154899954795837, valid.f_f-score 0.71559: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 34 | valid.f_iou 0.5154899954795837, valid.f_f-score 0.71559: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 34 | valid.f_iou 0.5049499869346619, valid.f_f-score 0.72078: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 34 | valid.f_iou 0.5049499869346619, valid.f_f-score 0.72078: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 34 | valid.f_iou 0.5058799982070923, valid.f_f-score 0.71303: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 34 | valid.f_iou 0.5058799982070923, valid.f_f-score 0.71303: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.08it/s]
epoch 34 | valid.f_iou 0.529259979724884, valid.f_f-score 0.72978: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.08it/s]
epoch 34 | valid.f_iou 0.529259979724884, valid.f_f-score 0.72978: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.12it/s]
epoch 34 | valid.f_iou 0.5341699719429016, valid.f_f-score 0.74006: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.12it/s]
epoch 34 | valid.f_iou 0.5341699719429016, valid.f_f-score 0.74006: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.15it/s]
epoch 34 | valid.f_iou 0.5109000205993652, valid.f_f-score 0.71902: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.15it/s]
epoch 34 | valid.f_iou 0.5109000205993652, valid.f_f-score 0.71902: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.18it/s]
epoch 34 | valid.f_iou 0.5191400051116943, valid.f_f-score 0.7214: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.18it/s]
epoch 34 | valid.f_iou 0.5191400051116943, valid.f_f-score 0.7214: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.20it/s]
epoch 34 | valid.f_iou 0.5250800251960754, valid.f_f-score 0.71806: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.20it/s]
epoch 34 | valid.f_iou 0.5250800251960754, valid.f_f-score 0.71806: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.21it/s]
epoch 34 | valid.f_iou 0.5250800251960754, valid.f_f-score 0.71806: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.31it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 34 | valid.f_iou 0.7590100169181824, valid.f_f-score 0.72264: 0%| | 0/16 [00:04, ?it/s]
epoch 34 | valid.f_iou 0.7590100169181824, valid.f_f-score 0.72264: 6%|█▉ | 1/16 [00:04<01:14, 4.95s/it]
epoch 34 | valid.f_iou 0.7930200099945068, valid.f_f-score 0.82473: 6%|█▉ | 1/16 [00:05<01:14, 4.95s/it]
epoch 34 | valid.f_iou 0.7930200099945068, valid.f_f-score 0.82473: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 34 | valid.f_iou 0.6899999976158142, valid.f_f-score 0.76837: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 34 | valid.f_iou 0.6899999976158142, valid.f_f-score 0.76837: 19%|█████▊ | 3/16 [00:05<00:19, 1.47s/it]
epoch 34 | valid.f_iou 0.6732900142669678, valid.f_f-score 0.74242: 19%|█████▊ | 3/16 [00:06<00:19, 1.47s/it]
epoch 34 | valid.f_iou 0.6732900142669678, valid.f_f-score 0.74242: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 34 | valid.f_iou 0.6687300205230713, valid.f_f-score 0.74972: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 34 | valid.f_iou 0.6687300205230713, valid.f_f-score 0.74972: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 34 | valid.f_iou 0.6413800120353699, valid.f_f-score 0.72806: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 34 | valid.f_iou 0.6413800120353699, valid.f_f-score 0.72806: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 34 | valid.f_iou 0.6472200155258179, valid.f_f-score 0.74231: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 34 | valid.f_iou 0.6472200155258179, valid.f_f-score 0.74231: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.74it/s]
epoch 34 | valid.f_iou 0.6477500200271606, valid.f_f-score 0.75034: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.74it/s]
epoch 34 | valid.f_iou 0.6477500200271606, valid.f_f-score 0.75034: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.96it/s]
epoch 34 | valid.f_iou 0.6682299971580505, valid.f_f-score 0.76719: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.96it/s]
epoch 34 | valid.f_iou 0.6682299971580505, valid.f_f-score 0.76719: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 34 | valid.f_iou 0.6738700270652771, valid.f_f-score 0.78015: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 34 | valid.f_iou 0.6738700270652771, valid.f_f-score 0.78015: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 34 | valid.f_iou 0.6621800065040588, valid.f_f-score 0.76252: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 34 | valid.f_iou 0.6621800065040588, valid.f_f-score 0.76252: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.44it/s]
epoch 34 | valid.f_iou 0.6741499900817871, valid.f_f-score 0.77499: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 34 | valid.f_iou 0.6741499900817871, valid.f_f-score 0.77499: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 34 | valid.f_iou 0.6850399971008301, valid.f_f-score 0.78421: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 34 | valid.f_iou 0.6850399971008301, valid.f_f-score 0.78421: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 34 | valid.f_iou 0.6741899847984314, valid.f_f-score 0.77619: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.58it/s]
epoch 34 | valid.f_iou 0.6741899847984314, valid.f_f-score 0.77619: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 34 | valid.f_iou 0.6666300296783447, valid.f_f-score 0.77331: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 34 | valid.f_iou 0.6666300296783447, valid.f_f-score 0.77331: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 34 | valid.f_iou 0.6649399995803833, valid.f_f-score 0.76857: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 34 | valid.f_iou 0.6649399995803833, valid.f_f-score 0.76857: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 34 | valid.f_iou 0.6649399995803833, valid.f_f-score 0.76857: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 34 | valid.f_iou 0.7590100169181824, valid.f_f-score 0.72264: 0%| | 0/16 [00:04, ?it/s]
epoch 34 | valid.f_iou 0.7590100169181824, valid.f_f-score 0.72264: 6%|█▉ | 1/16 [00:04<01:03, 4.26s/it]
epoch 34 | valid.f_iou 0.7930200099945068, valid.f_f-score 0.82473: 6%|█▉ | 1/16 [00:04<01:03, 4.26s/it]
epoch 34 | valid.f_iou 0.7930200099945068, valid.f_f-score 0.82473: 12%|███▉ | 2/16 [00:04<00:28, 2.05s/it]
epoch 34 | valid.f_iou 0.6899999976158142, valid.f_f-score 0.76837: 12%|███▉ | 2/16 [00:05<00:28, 2.05s/it]
epoch 34 | valid.f_iou 0.6899999976158142, valid.f_f-score 0.76837: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 34 | valid.f_iou 0.6764500141143799, valid.f_f-score 0.74242: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 34 | valid.f_iou 0.6764500141143799, valid.f_f-score 0.74242: 25%|███████▊ | 4/16 [00:05<00:11, 1.06it/s]
epoch 34 | valid.f_iou 0.6712499856948853, valid.f_f-score 0.74972: 25%|███████▊ | 4/16 [00:06<00:11, 1.06it/s]
epoch 34 | valid.f_iou 0.6712499856948853, valid.f_f-score 0.74972: 31%|█████████▋ | 5/16 [00:06<00:08, 1.32it/s]
epoch 34 | valid.f_iou 0.6434900164604187, valid.f_f-score 0.72806: 31%|█████████▋ | 5/16 [00:06<00:08, 1.32it/s]
epoch 34 | valid.f_iou 0.6434900164604187, valid.f_f-score 0.72806: 38%|███████████▋ | 6/16 [00:06<00:06, 1.51it/s]
epoch 34 | valid.f_iou 0.6518700122833252, valid.f_f-score 0.74231: 38%|███████████▋ | 6/16 [00:06<00:06, 1.51it/s]
epoch 34 | valid.f_iou 0.6518700122833252, valid.f_f-score 0.74231: 44%|█████████████▌ | 7/16 [00:06<00:05, 1.68it/s]
epoch 34 | valid.f_iou 0.6518200039863586, valid.f_f-score 0.75034: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 34 | valid.f_iou 0.6518200039863586, valid.f_f-score 0.75034: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 34 | valid.f_iou 0.6740700006484985, valid.f_f-score 0.76719: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 34 | valid.f_iou 0.6740700006484985, valid.f_f-score 0.76719: 56%|█████████████████▍ | 9/16 [00:07<00:03, 1.96it/s]
epoch 34 | valid.f_iou 0.6757400035858154, valid.f_f-score 0.77655: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 34 | valid.f_iou 0.6757400035858154, valid.f_f-score 0.77655: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.03it/s]
epoch 34 | valid.f_iou 0.6638799905776978, valid.f_f-score 0.75925: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.03it/s]
epoch 34 | valid.f_iou 0.6638799905776978, valid.f_f-score 0.75925: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.13it/s]
epoch 34 | valid.f_iou 0.6757100224494934, valid.f_f-score 0.77199: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.13it/s]
epoch 34 | valid.f_iou 0.6757100224494934, valid.f_f-score 0.77199: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.21it/s]
epoch 34 | valid.f_iou 0.6827999949455261, valid.f_f-score 0.77901: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.21it/s]
epoch 34 | valid.f_iou 0.6827999949455261, valid.f_f-score 0.77901: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.30it/s]
epoch 34 | valid.f_iou 0.6721000075340271, valid.f_f-score 0.77137: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.30it/s]
epoch 34 | valid.f_iou 0.6721000075340271, valid.f_f-score 0.77137: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.42it/s]
epoch 34 | valid.f_iou 0.664680004119873, valid.f_f-score 0.76881: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.42it/s]
epoch 34 | valid.f_iou 0.664680004119873, valid.f_f-score 0.76881: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.50it/s]
epoch 34 | valid.f_iou 0.6639099717140198, valid.f_f-score 0.76435: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.50it/s]
epoch 34 | valid.f_iou 0.6639099717140198, valid.f_f-score 0.76435: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.57it/s]
epoch 34 | valid.f_iou 0.6639099717140198, valid.f_f-score 0.76435: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 35 | loss 3.835449695587158, f_iou 0.5069767832756042: 0%| | 0/74 [00:06, ?it/s]
epoch 35 | loss 3.835449695587158, f_iou 0.5069767832756042: 1%|▌ | 1/74 [00:06<07:30, 6.17s/it]
epoch 35 | loss 2.0038163661956787, f_iou 0.48847490549087524: 1%|▍ | 1/74 [00:07<07:30, 6.17s/it]
epoch 35 | loss 2.0038163661956787, f_iou 0.48847490549087524: 3%|▉ | 2/74 [00:07<03:38, 3.04s/it]
epoch 35 | loss 1.304814338684082, f_iou 0.5589137077331543: 3%|█ | 2/74 [00:07<03:38, 3.04s/it]
epoch 35 | loss 1.304814338684082, f_iou 0.5589137077331543: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 35 | loss 4.49565315246582, f_iou 0.4369080364704132: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 35 | loss 4.49565315246582, f_iou 0.4369080364704132: 5%|██ | 4/74 [00:08<01:49, 1.57s/it]
epoch 35 | loss 1.034324288368225, f_iou 0.49005624651908875: 5%|██ | 4/74 [00:09<01:49, 1.57s/it]
epoch 35 | loss 1.034324288368225, f_iou 0.49005624651908875: 7%|██▌ | 5/74 [00:09<01:29, 1.29s/it]
epoch 35 | loss 5.009772300720215, f_iou 0.45758336782455444: 7%|██▌ | 5/74 [00:10<01:29, 1.29s/it]
epoch 35 | loss 5.009772300720215, f_iou 0.45758336782455444: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 35 | loss 1.957291841506958, f_iou 0.4943317770957947: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 35 | loss 1.957291841506958, f_iou 0.4943317770957947: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 35 | loss 1.3033356666564941, f_iou 0.4693552255630493: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 35 | loss 1.3033356666564941, f_iou 0.4693552255630493: 11%|████ | 8/74 [00:11<01:02, 1.05it/s]
epoch 35 | loss 2.064072608947754, f_iou 0.4172046482563019: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 35 | loss 2.064072608947754, f_iou 0.4172046482563019: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 35 | loss 1.9041392803192139, f_iou 0.4133692681789398: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 35 | loss 1.9041392803192139, f_iou 0.4133692681789398: 14%|████▊ | 10/74 [00:13<00:55, 1.16it/s]
epoch 35 | loss 1.1587697267532349, f_iou 0.42691779136657715: 14%|████▋ | 10/74 [00:14<00:55, 1.16it/s]
epoch 35 | loss 1.1587697267532349, f_iou 0.42691779136657715: 15%|█████▏ | 11/74 [00:14<00:52, 1.21it/s]
epoch 35 | loss 1.810347080230713, f_iou 0.43302997946739197: 15%|█████▎ | 11/74 [00:15<00:52, 1.21it/s]
epoch 35 | loss 1.810347080230713, f_iou 0.43302997946739197: 16%|█████▊ | 12/74 [00:15<00:49, 1.24it/s]
epoch 35 | loss 4.189943313598633, f_iou 0.4098992645740509: 16%|██████ | 12/74 [00:15<00:49, 1.24it/s]
epoch 35 | loss 4.189943313598633, f_iou 0.4098992645740509: 18%|██████▌ | 13/74 [00:15<00:47, 1.28it/s]
epoch 35 | loss 0.62811279296875, f_iou 0.4492816925048828: 18%|██████▋ | 13/74 [00:16<00:47, 1.28it/s]
epoch 35 | loss 0.62811279296875, f_iou 0.4492816925048828: 19%|███████▏ | 14/74 [00:16<00:45, 1.31it/s]
epoch 35 | loss 0.8894093632698059, f_iou 0.4560401141643524: 19%|██████▊ | 14/74 [00:17<00:45, 1.31it/s]
epoch 35 | loss 0.8894093632698059, f_iou 0.4560401141643524: 20%|███████▎ | 15/74 [00:17<00:44, 1.33it/s]
epoch 35 | loss 2.6978883743286133, f_iou 0.48084521293640137: 20%|███████ | 15/74 [00:17<00:44, 1.33it/s]
epoch 35 | loss 2.6978883743286133, f_iou 0.48084521293640137: 22%|███████▌ | 16/74 [00:17<00:43, 1.34it/s]
epoch 35 | loss 1.43006432056427, f_iou 0.4964534640312195: 22%|████████▏ | 16/74 [00:18<00:43, 1.34it/s]
epoch 35 | loss 1.43006432056427, f_iou 0.4964534640312195: 23%|████████▋ | 17/74 [00:18<00:41, 1.36it/s]
epoch 35 | loss 4.399111747741699, f_iou 0.490811288356781: 23%|████████▋ | 17/74 [00:19<00:41, 1.36it/s]
epoch 35 | loss 4.399111747741699, f_iou 0.490811288356781: 24%|█████████▏ | 18/74 [00:19<00:40, 1.37it/s]
epoch 35 | loss 1.2468324899673462, f_iou 0.5093984603881836: 24%|████████▊ | 18/74 [00:20<00:40, 1.37it/s]
epoch 35 | loss 1.2468324899673462, f_iou 0.5093984603881836: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 35 | loss 0.7910839319229126, f_iou 0.5038992762565613: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 35 | loss 0.7910839319229126, f_iou 0.5038992762565613: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 35 | loss 1.6495676040649414, f_iou 0.5146726369857788: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 35 | loss 1.6495676040649414, f_iou 0.5146726369857788: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 35 | loss 2.963503360748291, f_iou 0.5184452533721924: 28%|██████████▌ | 21/74 [00:22<00:38, 1.38it/s]
epoch 35 | loss 2.963503360748291, f_iou 0.5184452533721924: 30%|███████████ | 22/74 [00:22<00:37, 1.37it/s]
epoch 35 | loss 1.9201481342315674, f_iou 0.5155472755432129: 30%|██████████▋ | 22/74 [00:23<00:37, 1.37it/s]
epoch 35 | loss 1.9201481342315674, f_iou 0.5155472755432129: 31%|███████████▏ | 23/74 [00:23<00:38, 1.33it/s]
epoch 35 | loss 1.2835030555725098, f_iou 0.5258227586746216: 31%|███████████▏ | 23/74 [00:23<00:38, 1.33it/s]
epoch 35 | loss 1.2835030555725098, f_iou 0.5258227586746216: 32%|███████████▋ | 24/74 [00:23<00:38, 1.31it/s]
epoch 35 | loss 1.2147831916809082, f_iou 0.540023148059845: 32%|████████████ | 24/74 [00:24<00:38, 1.31it/s]
epoch 35 | loss 1.2147831916809082, f_iou 0.540023148059845: 34%|████████████▌ | 25/74 [00:24<00:37, 1.29it/s]
epoch 35 | loss 1.8342465162277222, f_iou 0.5490882992744446: 34%|████████████▏ | 25/74 [00:25<00:37, 1.29it/s]
epoch 35 | loss 1.8342465162277222, f_iou 0.5490882992744446: 35%|████████████▋ | 26/74 [00:25<00:37, 1.29it/s]
epoch 35 | loss 2.258768081665039, f_iou 0.5552877187728882: 35%|█████████████ | 26/74 [00:26<00:37, 1.29it/s]
epoch 35 | loss 2.258768081665039, f_iou 0.5552877187728882: 36%|█████████████▌ | 27/74 [00:26<00:36, 1.28it/s]
epoch 35 | loss 0.8160105347633362, f_iou 0.5644294023513794: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.28it/s]
epoch 35 | loss 0.8160105347633362, f_iou 0.5644294023513794: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.30it/s]
epoch 35 | loss 1.2673988342285156, f_iou 0.5753685235977173: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.30it/s]
epoch 35 | loss 1.2673988342285156, f_iou 0.5753685235977173: 39%|██████████████ | 29/74 [00:27<00:34, 1.30it/s]
epoch 35 | loss 3.5739970207214355, f_iou 0.5724409818649292: 39%|██████████████ | 29/74 [00:28<00:34, 1.30it/s]
epoch 35 | loss 3.5739970207214355, f_iou 0.5724409818649292: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.31it/s]
epoch 35 | loss 3.2313404083251953, f_iou 0.5650148987770081: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.31it/s]
epoch 35 | loss 3.2313404083251953, f_iou 0.5650148987770081: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 35 | loss 2.8777830600738525, f_iou 0.572523295879364: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.33it/s]
epoch 35 | loss 2.8777830600738525, f_iou 0.572523295879364: 43%|████████████████ | 32/74 [00:29<00:31, 1.35it/s]
epoch 35 | loss 1.7804250717163086, f_iou 0.5785069465637207: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.35it/s]
epoch 35 | loss 1.7804250717163086, f_iou 0.5785069465637207: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 35 | loss 1.3438290357589722, f_iou 0.5885660648345947: 45%|████████████████ | 33/74 [00:31<00:30, 1.36it/s]
epoch 35 | loss 1.3438290357589722, f_iou 0.5885660648345947: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.30it/s]
epoch 35 | loss 3.35028076171875, f_iou 0.5839530229568481: 46%|█████████████████▍ | 34/74 [00:32<00:30, 1.30it/s]
epoch 35 | loss 3.35028076171875, f_iou 0.5839530229568481: 47%|█████████████████▉ | 35/74 [00:32<00:29, 1.33it/s]
epoch 35 | loss 1.5524623394012451, f_iou 0.5677486062049866: 47%|█████████████████ | 35/74 [00:32<00:29, 1.33it/s]
epoch 35 | loss 1.5524623394012451, f_iou 0.5677486062049866: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.32it/s]
epoch 35 | loss 1.348464012145996, f_iou 0.5562032461166382: 49%|██████████████████ | 36/74 [00:33<00:28, 1.32it/s]
epoch 35 | loss 1.348464012145996, f_iou 0.5562032461166382: 50%|██████████████████▌ | 37/74 [00:33<00:28, 1.31it/s]
epoch 35 | loss 1.5284640789031982, f_iou 0.5530393719673157: 50%|██████████████████ | 37/74 [00:34<00:28, 1.31it/s]
epoch 35 | loss 1.5284640789031982, f_iou 0.5530393719673157: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.31it/s]
epoch 35 | loss 0.6582512259483337, f_iou 0.5594460368156433: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.31it/s]
epoch 35 | loss 0.6582512259483337, f_iou 0.5594460368156433: 53%|██████████████████▉ | 39/74 [00:35<00:28, 1.21it/s]
epoch 35 | loss 4.345239162445068, f_iou 0.563247799873352: 53%|████████████████████ | 39/74 [00:36<00:28, 1.21it/s]
epoch 35 | loss 4.345239162445068, f_iou 0.563247799873352: 54%|████████████████████▌ | 40/74 [00:36<00:27, 1.24it/s]
epoch 35 | loss 5.5750603675842285, f_iou 0.5495104193687439: 54%|███████████████████▍ | 40/74 [00:37<00:27, 1.24it/s]
epoch 35 | loss 5.5750603675842285, f_iou 0.5495104193687439: 55%|███████████████████▉ | 41/74 [00:37<00:26, 1.25it/s]
epoch 35 | loss 0.8647558689117432, f_iou 0.5597432851791382: 55%|███████████████████▉ | 41/74 [00:37<00:26, 1.25it/s]
epoch 35 | loss 0.8647558689117432, f_iou 0.5597432851791382: 57%|████████████████████▍ | 42/74 [00:37<00:25, 1.25it/s]
epoch 35 | loss 1.9282076358795166, f_iou 0.5470302104949951: 57%|████████████████████▍ | 42/74 [00:38<00:25, 1.25it/s]
epoch 35 | loss 1.9282076358795166, f_iou 0.5470302104949951: 58%|████████████████████▉ | 43/74 [00:38<00:24, 1.26it/s]
epoch 35 | loss 2.318830728530884, f_iou 0.5441787838935852: 58%|█████████████████████▍ | 43/74 [00:39<00:24, 1.26it/s]
epoch 35 | loss 2.318830728530884, f_iou 0.5441787838935852: 59%|██████████████████████ | 44/74 [00:39<00:23, 1.26it/s]
epoch 35 | loss 0.6224794387817383, f_iou 0.5535644888877869: 59%|█████████████████████▍ | 44/74 [00:40<00:23, 1.26it/s]
epoch 35 | loss 0.6224794387817383, f_iou 0.5535644888877869: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.27it/s]
epoch 35 | loss 0.6221510767936707, f_iou 0.561224102973938: 61%|██████████████████████▌ | 45/74 [00:40<00:22, 1.27it/s]
epoch 35 | loss 0.6221510767936707, f_iou 0.561224102973938: 62%|███████████████████████ | 46/74 [00:40<00:21, 1.28it/s]
epoch 35 | loss 4.411451816558838, f_iou 0.5560895204544067: 62%|███████████████████████ | 46/74 [00:41<00:21, 1.28it/s]
epoch 35 | loss 4.411451816558838, f_iou 0.5560895204544067: 64%|███████████████████████▌ | 47/74 [00:41<00:20, 1.31it/s]
epoch 35 | loss 1.302816390991211, f_iou 0.5619815587997437: 64%|███████████████████████▌ | 47/74 [00:42<00:20, 1.31it/s]
epoch 35 | loss 1.302816390991211, f_iou 0.5619815587997437: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.34it/s]
epoch 35 | loss 2.2987184524536133, f_iou 0.5528954863548279: 65%|███████████████████████▎ | 48/74 [00:43<00:19, 1.34it/s]
epoch 35 | loss 2.2987184524536133, f_iou 0.5528954863548279: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.33it/s]
epoch 35 | loss 4.829650402069092, f_iou 0.5457401871681213: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.33it/s]
epoch 35 | loss 4.829650402069092, f_iou 0.5457401871681213: 68%|█████████████████████████ | 50/74 [00:43<00:18, 1.31it/s]
epoch 35 | loss 3.31087589263916, f_iou 0.5417687296867371: 68%|█████████████████████████▋ | 50/74 [00:44<00:18, 1.31it/s]
epoch 35 | loss 3.31087589263916, f_iou 0.5417687296867371: 69%|██████████████████████████▏ | 51/74 [00:44<00:17, 1.29it/s]
epoch 35 | loss 2.1811797618865967, f_iou 0.543614387512207: 69%|█████████████████████████▌ | 51/74 [00:45<00:17, 1.29it/s]
epoch 35 | loss 2.1811797618865967, f_iou 0.543614387512207: 70%|██████████████████████████ | 52/74 [00:45<00:16, 1.30it/s]
epoch 35 | loss 1.20355224609375, f_iou 0.5484344363212585: 70%|██████████████████████████▋ | 52/74 [00:46<00:16, 1.30it/s]
epoch 35 | loss 1.20355224609375, f_iou 0.5484344363212585: 72%|███████████████████████████▏ | 53/74 [00:46<00:16, 1.29it/s]
epoch 35 | loss 2.0846638679504395, f_iou 0.5443444848060608: 72%|█████████████████████████▊ | 53/74 [00:47<00:16, 1.29it/s]
epoch 35 | loss 2.0846638679504395, f_iou 0.5443444848060608: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.29it/s]
epoch 35 | loss 0.8344597816467285, f_iou 0.5430969595909119: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.29it/s]
epoch 35 | loss 0.8344597816467285, f_iou 0.5430969595909119: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.29it/s]
epoch 35 | loss 2.146385908126831, f_iou 0.5461112260818481: 74%|███████████████████████████▌ | 55/74 [00:48<00:14, 1.29it/s]
epoch 35 | loss 2.146385908126831, f_iou 0.5461112260818481: 76%|████████████████████████████ | 56/74 [00:48<00:13, 1.32it/s]
epoch 35 | loss 0.9490746259689331, f_iou 0.5528837442398071: 76%|███████████████████████████▏ | 56/74 [00:49<00:13, 1.32it/s]
epoch 35 | loss 0.9490746259689331, f_iou 0.5528837442398071: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.34it/s]
epoch 35 | loss 1.4675606489181519, f_iou 0.5526211261749268: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.34it/s]
epoch 35 | loss 1.4675606489181519, f_iou 0.5526211261749268: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.35it/s]
epoch 35 | loss 1.0745553970336914, f_iou 0.5585683584213257: 78%|████████████████████████████▏ | 58/74 [00:50<00:11, 1.35it/s]
epoch 35 | loss 1.0745553970336914, f_iou 0.5585683584213257: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.37it/s]
epoch 35 | loss 1.2278984785079956, f_iou 0.563651442527771: 80%|█████████████████████████████▌ | 59/74 [00:51<00:10, 1.37it/s]
epoch 35 | loss 1.2278984785079956, f_iou 0.563651442527771: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.37it/s]
epoch 35 | loss 1.8153777122497559, f_iou 0.559122622013092: 81%|██████████████████████████████ | 60/74 [00:52<00:10, 1.37it/s]
epoch 35 | loss 1.8153777122497559, f_iou 0.559122622013092: 82%|██████████████████████████████▌ | 61/74 [00:52<00:09, 1.38it/s]
epoch 35 | loss 1.1972529888153076, f_iou 0.5643932223320007: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.38it/s]
epoch 35 | loss 1.1972529888153076, f_iou 0.5643932223320007: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 35 | loss 1.6215133666992188, f_iou 0.5674810409545898: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.38it/s]
epoch 35 | loss 1.6215133666992188, f_iou 0.5674810409545898: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 35 | loss 1.1318135261535645, f_iou 0.56916743516922: 85%|████████████████████████████████▎ | 63/74 [00:54<00:07, 1.38it/s]
epoch 35 | loss 1.1318135261535645, f_iou 0.56916743516922: 86%|████████████████████████████████▊ | 64/74 [00:54<00:07, 1.39it/s]
epoch 35 | loss 0.684543251991272, f_iou 0.5750582218170166: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.39it/s]
epoch 35 | loss 0.684543251991272, f_iou 0.5750582218170166: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 35 | loss 3.453887462615967, f_iou 0.5701252818107605: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.39it/s]
epoch 35 | loss 3.453887462615967, f_iou 0.5701252818107605: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 35 | loss 2.2262589931488037, f_iou 0.5683736801147461: 89%|████████████████████████████████ | 66/74 [00:56<00:05, 1.39it/s]
epoch 35 | loss 2.2262589931488037, f_iou 0.5683736801147461: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 35 | loss 0.8404136896133423, f_iou 0.5650447010993958: 91%|████████████████████████████████▌ | 67/74 [00:57<00:05, 1.39it/s]
epoch 35 | loss 0.8404136896133423, f_iou 0.5650447010993958: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 35 | loss 1.7061535120010376, f_iou 0.5672913193702698: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 35 | loss 1.7061535120010376, f_iou 0.5672913193702698: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 35 | loss 1.0783348083496094, f_iou 0.5712383985519409: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.39it/s]
epoch 35 | loss 1.0783348083496094, f_iou 0.5712383985519409: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 35 | loss 1.1244621276855469, f_iou 0.5684378147125244: 95%|██████████████████████████████████ | 70/74 [00:59<00:02, 1.39it/s]
epoch 35 | loss 1.1244621276855469, f_iou 0.5684378147125244: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 35 | loss 1.0638712644577026, f_iou 0.5632567405700684: 96%|██████████████████████████████████▌ | 71/74 [01:00<00:02, 1.40it/s]
epoch 35 | loss 1.0638712644577026, f_iou 0.5632567405700684: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 35 | loss 1.2100563049316406, f_iou 0.5679529309272766: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 35 | loss 1.2100563049316406, f_iou 0.5679529309272766: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 35 | loss 2.300447702407837, f_iou 0.5690330862998962: 99%|████████████████████████████████████▌| 73/74 [01:01<00:00, 1.40it/s]
epoch 35 | loss 2.300447702407837, f_iou 0.5690330862998962: 100%|█████████████████████████████████████| 74/74 [01:01<00:00, 1.40it/s]
epoch 35 | loss 2.300447702407837, f_iou 0.5690330862998962: 100%|█████████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 35 | valid.f_iou 0.7400699853897095, valid.f_f-score 0.78543: 0%| | 0/16 [00:05, ?it/s]
epoch 35 | valid.f_iou 0.7400699853897095, valid.f_f-score 0.78543: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 35 | valid.f_iou 0.5811499953269958, valid.f_f-score 0.75931: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 35 | valid.f_iou 0.5811499953269958, valid.f_f-score 0.75931: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 35 | valid.f_iou 0.4476900100708008, valid.f_f-score 0.69584: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 35 | valid.f_iou 0.4476900100708008, valid.f_f-score 0.69584: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 35 | valid.f_iou 0.5040799975395203, valid.f_f-score 0.72165: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 35 | valid.f_iou 0.5040799975395203, valid.f_f-score 0.72165: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 35 | valid.f_iou 0.481550008058548, valid.f_f-score 0.72064: 25%|████████ | 4/16 [00:06<00:12, 1.07s/it]
epoch 35 | valid.f_iou 0.481550008058548, valid.f_f-score 0.72064: 31%|██████████ | 5/16 [00:06<00:09, 1.19it/s]
epoch 35 | valid.f_iou 0.46362999081611633, valid.f_f-score 0.69856: 31%|█████████▍ | 5/16 [00:07<00:09, 1.19it/s]
epoch 35 | valid.f_iou 0.46362999081611633, valid.f_f-score 0.69856: 38%|███████████▎ | 6/16 [00:07<00:06, 1.47it/s]
epoch 35 | valid.f_iou 0.4720099866390228, valid.f_f-score 0.69392: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 35 | valid.f_iou 0.4720099866390228, valid.f_f-score 0.69392: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 35 | valid.f_iou 0.45458999276161194, valid.f_f-score 0.68343: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.67it/s]
epoch 35 | valid.f_iou 0.45458999276161194, valid.f_f-score 0.68343: 50%|███████████████ | 8/16 [00:08<00:04, 1.91it/s]
epoch 35 | valid.f_iou 0.4572699964046478, valid.f_f-score 0.67099: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.91it/s]
epoch 35 | valid.f_iou 0.4572699964046478, valid.f_f-score 0.67099: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 35 | valid.f_iou 0.4459899961948395, valid.f_f-score 0.67619: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 35 | valid.f_iou 0.4459899961948395, valid.f_f-score 0.67619: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.29it/s]
epoch 35 | valid.f_iou 0.4527699947357178, valid.f_f-score 0.68415: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.29it/s]
epoch 35 | valid.f_iou 0.4527699947357178, valid.f_f-score 0.68415: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.41it/s]
epoch 35 | valid.f_iou 0.4768899977207184, valid.f_f-score 0.7034: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.41it/s]
epoch 35 | valid.f_iou 0.4768899977207184, valid.f_f-score 0.7034: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.50it/s]
epoch 35 | valid.f_iou 0.48116999864578247, valid.f_f-score 0.71351: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 35 | valid.f_iou 0.48116999864578247, valid.f_f-score 0.71351: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.57it/s]
epoch 35 | valid.f_iou 0.46307000517845154, valid.f_f-score 0.69908: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.57it/s]
epoch 35 | valid.f_iou 0.46307000517845154, valid.f_f-score 0.69908: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.63it/s]
epoch 35 | valid.f_iou 0.4735899865627289, valid.f_f-score 0.70205: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 35 | valid.f_iou 0.4735899865627289, valid.f_f-score 0.70205: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 35 | valid.f_iou 0.48274001479148865, valid.f_f-score 0.70159: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 35 | valid.f_iou 0.48274001479148865, valid.f_f-score 0.70159: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 35 | valid.f_iou 0.48274001479148865, valid.f_f-score 0.70159: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 35 | valid.f_iou 0.7648199796676636, valid.f_f-score 0.78183: 0%| | 0/16 [00:04, ?it/s]
epoch 35 | valid.f_iou 0.7648199796676636, valid.f_f-score 0.78183: 6%|█▉ | 1/16 [00:04<01:11, 4.74s/it]
epoch 35 | valid.f_iou 0.7955300211906433, valid.f_f-score 0.85784: 6%|█▉ | 1/16 [00:05<01:11, 4.74s/it]
epoch 35 | valid.f_iou 0.7955300211906433, valid.f_f-score 0.85784: 12%|███▉ | 2/16 [00:05<00:31, 2.23s/it]
epoch 35 | valid.f_iou 0.709559977054596, valid.f_f-score 0.81279: 12%|████ | 2/16 [00:05<00:31, 2.23s/it]
epoch 35 | valid.f_iou 0.709559977054596, valid.f_f-score 0.81279: 19%|██████ | 3/16 [00:05<00:18, 1.42s/it]
epoch 35 | valid.f_iou 0.6931800246238708, valid.f_f-score 0.80193: 19%|█████▊ | 3/16 [00:06<00:18, 1.42s/it]
epoch 35 | valid.f_iou 0.6931800246238708, valid.f_f-score 0.80193: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 35 | valid.f_iou 0.69132000207901, valid.f_f-score 0.80339: 25%|████████▎ | 4/16 [00:06<00:12, 1.04s/it]
epoch 35 | valid.f_iou 0.69132000207901, valid.f_f-score 0.80339: 31%|██████████▎ | 5/16 [00:06<00:09, 1.21it/s]
epoch 35 | valid.f_iou 0.6539199948310852, valid.f_f-score 0.76798: 31%|█████████▋ | 5/16 [00:06<00:09, 1.21it/s]
epoch 35 | valid.f_iou 0.6539199948310852, valid.f_f-score 0.76798: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 35 | valid.f_iou 0.6574599742889404, valid.f_f-score 0.78172: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 35 | valid.f_iou 0.6574599742889404, valid.f_f-score 0.78172: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 35 | valid.f_iou 0.6500099897384644, valid.f_f-score 0.77681: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 35 | valid.f_iou 0.6500099897384644, valid.f_f-score 0.77681: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.92it/s]
epoch 35 | valid.f_iou 0.672760009765625, valid.f_f-score 0.79199: 50%|████████████████ | 8/16 [00:08<00:04, 1.92it/s]
epoch 35 | valid.f_iou 0.672760009765625, valid.f_f-score 0.79199: 56%|██████████████████ | 9/16 [00:08<00:03, 2.14it/s]
epoch 35 | valid.f_iou 0.6808000206947327, valid.f_f-score 0.80352: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 35 | valid.f_iou 0.6808000206947327, valid.f_f-score 0.80352: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 35 | valid.f_iou 0.6779699921607971, valid.f_f-score 0.79231: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 35 | valid.f_iou 0.6779699921607971, valid.f_f-score 0.79231: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.42it/s]
epoch 35 | valid.f_iou 0.6915000081062317, valid.f_f-score 0.80322: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 35 | valid.f_iou 0.6915000081062317, valid.f_f-score 0.80322: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 35 | valid.f_iou 0.7049999833106995, valid.f_f-score 0.81222: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 35 | valid.f_iou 0.7049999833106995, valid.f_f-score 0.81222: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 35 | valid.f_iou 0.6970300078392029, valid.f_f-score 0.80548: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 35 | valid.f_iou 0.6970300078392029, valid.f_f-score 0.80548: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.64it/s]
epoch 35 | valid.f_iou 0.7088500261306763, valid.f_f-score 0.81514: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.64it/s]
epoch 35 | valid.f_iou 0.7088500261306763, valid.f_f-score 0.81514: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 35 | valid.f_iou 0.710070013999939, valid.f_f-score 0.81411: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.68it/s]
epoch 35 | valid.f_iou 0.710070013999939, valid.f_f-score 0.81411: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.71it/s]
epoch 35 | valid.f_iou 0.710070013999939, valid.f_f-score 0.81411: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 35 | valid.f_iou 0.7648199796676636, valid.f_f-score 0.78183: 0%| | 0/16 [00:04, ?it/s]
epoch 35 | valid.f_iou 0.7648199796676636, valid.f_f-score 0.78183: 6%|█▉ | 1/16 [00:04<01:13, 4.90s/it]
epoch 35 | valid.f_iou 0.7955300211906433, valid.f_f-score 0.85784: 6%|█▉ | 1/16 [00:05<01:13, 4.90s/it]
epoch 35 | valid.f_iou 0.7955300211906433, valid.f_f-score 0.85784: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 35 | valid.f_iou 0.709559977054596, valid.f_f-score 0.81279: 12%|████ | 2/16 [00:05<00:31, 2.24s/it]
epoch 35 | valid.f_iou 0.709559977054596, valid.f_f-score 0.81279: 19%|██████ | 3/16 [00:05<00:18, 1.40s/it]
epoch 35 | valid.f_iou 0.6933599710464478, valid.f_f-score 0.80193: 19%|█████▊ | 3/16 [00:06<00:18, 1.40s/it]
epoch 35 | valid.f_iou 0.6933599710464478, valid.f_f-score 0.80193: 25%|███████▊ | 4/16 [00:06<00:11, 1.01it/s]
epoch 35 | valid.f_iou 0.6919100284576416, valid.f_f-score 0.80339: 25%|███████▊ | 4/16 [00:06<00:11, 1.01it/s]
epoch 35 | valid.f_iou 0.6919100284576416, valid.f_f-score 0.80339: 31%|█████████▋ | 5/16 [00:06<00:08, 1.30it/s]
epoch 35 | valid.f_iou 0.6544100046157837, valid.f_f-score 0.76798: 31%|█████████▋ | 5/16 [00:06<00:08, 1.30it/s]
epoch 35 | valid.f_iou 0.6544100046157837, valid.f_f-score 0.76798: 38%|███████████▋ | 6/16 [00:06<00:06, 1.58it/s]
epoch 35 | valid.f_iou 0.6596099734306335, valid.f_f-score 0.78172: 38%|███████████▋ | 6/16 [00:07<00:06, 1.58it/s]
epoch 35 | valid.f_iou 0.6596099734306335, valid.f_f-score 0.78172: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.80it/s]
epoch 35 | valid.f_iou 0.651889979839325, valid.f_f-score 0.77681: 44%|██████████████ | 7/16 [00:07<00:05, 1.80it/s]
epoch 35 | valid.f_iou 0.651889979839325, valid.f_f-score 0.77681: 50%|████████████████ | 8/16 [00:07<00:03, 2.01it/s]
epoch 35 | valid.f_iou 0.6766899824142456, valid.f_f-score 0.79199: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.01it/s]
epoch 35 | valid.f_iou 0.6766899824142456, valid.f_f-score 0.79199: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.21it/s]
epoch 35 | valid.f_iou 0.6820399761199951, valid.f_f-score 0.80018: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.21it/s]
epoch 35 | valid.f_iou 0.6820399761199951, valid.f_f-score 0.80018: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.35it/s]
epoch 35 | valid.f_iou 0.679099977016449, valid.f_f-score 0.78928: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.35it/s]
epoch 35 | valid.f_iou 0.679099977016449, valid.f_f-score 0.78928: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.46it/s]
epoch 35 | valid.f_iou 0.6925299763679504, valid.f_f-score 0.80043: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.46it/s]
epoch 35 | valid.f_iou 0.6925299763679504, valid.f_f-score 0.80043: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 35 | valid.f_iou 0.7059400081634521, valid.f_f-score 0.81091: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 35 | valid.f_iou 0.7059400081634521, valid.f_f-score 0.81091: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 35 | valid.f_iou 0.6979100108146667, valid.f_f-score 0.80428: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 35 | valid.f_iou 0.6979100108146667, valid.f_f-score 0.80428: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.64it/s]
epoch 35 | valid.f_iou 0.709659993648529, valid.f_f-score 0.81402: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.64it/s]
epoch 35 | valid.f_iou 0.709659993648529, valid.f_f-score 0.81402: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.68it/s]
epoch 35 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.81305: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 35 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.81305: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 35 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.81305: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.53it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 36 | loss 0.6620486974716187, f_iou 0.8872398734092712: 0%| | 0/74 [00:05, ?it/s]
epoch 36 | loss 0.6620486974716187, f_iou 0.8872398734092712: 1%|▌ | 1/74 [00:05<06:50, 5.63s/it]
epoch 36 | loss 0.7248751521110535, f_iou 0.8281720876693726: 1%|▌ | 1/74 [00:06<06:50, 5.63s/it]
epoch 36 | loss 0.7248751521110535, f_iou 0.8281720876693726: 3%|█ | 2/74 [00:06<03:22, 2.81s/it]
epoch 36 | loss 2.9544880390167236, f_iou 0.8072866201400757: 3%|█ | 2/74 [00:07<03:22, 2.81s/it]
epoch 36 | loss 2.9544880390167236, f_iou 0.8072866201400757: 4%|█▌ | 3/74 [00:07<02:14, 1.90s/it]
epoch 36 | loss 1.7385213375091553, f_iou 0.7421060800552368: 4%|█▌ | 3/74 [00:08<02:14, 1.90s/it]
epoch 36 | loss 1.7385213375091553, f_iou 0.7421060800552368: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 36 | loss 1.2931898832321167, f_iou 0.760513424873352: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 36 | loss 1.2931898832321167, f_iou 0.760513424873352: 7%|██▌ | 5/74 [00:08<01:25, 1.24s/it]
epoch 36 | loss 2.210526466369629, f_iou 0.7578672766685486: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 36 | loss 2.210526466369629, f_iou 0.7578672766685486: 8%|███ | 6/74 [00:09<01:13, 1.09s/it]
epoch 36 | loss 2.1619651317596436, f_iou 0.6737548112869263: 8%|███ | 6/74 [00:10<01:13, 1.09s/it]
epoch 36 | loss 2.1619651317596436, f_iou 0.6737548112869263: 9%|███▌ | 7/74 [00:10<01:05, 1.03it/s]
epoch 36 | loss 3.205181121826172, f_iou 0.6351686716079712: 9%|███▌ | 7/74 [00:11<01:05, 1.03it/s]
epoch 36 | loss 3.205181121826172, f_iou 0.6351686716079712: 11%|████ | 8/74 [00:11<00:58, 1.12it/s]
epoch 36 | loss 1.5718744993209839, f_iou 0.6245740652084351: 11%|████ | 8/74 [00:11<00:58, 1.12it/s]
epoch 36 | loss 1.5718744993209839, f_iou 0.6245740652084351: 12%|████▌ | 9/74 [00:11<00:54, 1.18it/s]
epoch 36 | loss 0.3758990168571472, f_iou 0.5664343237876892: 12%|████▌ | 9/74 [00:12<00:54, 1.18it/s]
epoch 36 | loss 0.3758990168571472, f_iou 0.5664343237876892: 14%|████▊ | 10/74 [00:12<00:54, 1.18it/s]
epoch 36 | loss 1.2636526823043823, f_iou 0.5269220471382141: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 36 | loss 1.2636526823043823, f_iou 0.5269220471382141: 15%|█████▎ | 11/74 [00:13<00:52, 1.19it/s]
epoch 36 | loss 1.227656364440918, f_iou 0.555507481098175: 15%|█████▋ | 11/74 [00:14<00:52, 1.19it/s]
epoch 36 | loss 1.227656364440918, f_iou 0.555507481098175: 16%|██████▏ | 12/74 [00:14<00:50, 1.22it/s]
epoch 36 | loss 1.5159903764724731, f_iou 0.5642212629318237: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 36 | loss 1.5159903764724731, f_iou 0.5642212629318237: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 36 | loss 2.1834769248962402, f_iou 0.5239197611808777: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 36 | loss 2.1834769248962402, f_iou 0.5239197611808777: 19%|██████▊ | 14/74 [00:15<00:48, 1.25it/s]
epoch 36 | loss 3.4665334224700928, f_iou 0.5032374858856201: 19%|██████▊ | 14/74 [00:16<00:48, 1.25it/s]
epoch 36 | loss 3.4665334224700928, f_iou 0.5032374858856201: 20%|███████▎ | 15/74 [00:16<00:47, 1.24it/s]
epoch 36 | loss 1.6114752292633057, f_iou 0.472782701253891: 20%|███████▌ | 15/74 [00:17<00:47, 1.24it/s]
epoch 36 | loss 1.6114752292633057, f_iou 0.472782701253891: 22%|████████ | 16/74 [00:17<00:46, 1.25it/s]
epoch 36 | loss 1.121492862701416, f_iou 0.4906989336013794: 22%|████████ | 16/74 [00:18<00:46, 1.25it/s]
epoch 36 | loss 1.121492862701416, f_iou 0.4906989336013794: 23%|████████▌ | 17/74 [00:18<00:45, 1.26it/s]
epoch 36 | loss 0.9376678466796875, f_iou 0.4941128194332123: 23%|████████▎ | 17/74 [00:19<00:45, 1.26it/s]
epoch 36 | loss 0.9376678466796875, f_iou 0.4941128194332123: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 36 | loss 3.046375036239624, f_iou 0.47623851895332336: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 36 | loss 3.046375036239624, f_iou 0.47623851895332336: 26%|█████████▏ | 19/74 [00:19<00:41, 1.32it/s]
epoch 36 | loss 2.869551658630371, f_iou 0.45678192377090454: 26%|█████████▏ | 19/74 [00:20<00:41, 1.32it/s]
epoch 36 | loss 2.869551658630371, f_iou 0.45678192377090454: 27%|█████████▋ | 20/74 [00:20<00:40, 1.34it/s]
epoch 36 | loss 2.1399946212768555, f_iou 0.45689892768859863: 27%|█████████▍ | 20/74 [00:21<00:40, 1.34it/s]
epoch 36 | loss 2.1399946212768555, f_iou 0.45689892768859863: 28%|█████████▉ | 21/74 [00:21<00:39, 1.35it/s]
epoch 36 | loss 0.6764743328094482, f_iou 0.4416410028934479: 28%|██████████▏ | 21/74 [00:21<00:39, 1.35it/s]
epoch 36 | loss 0.6764743328094482, f_iou 0.4416410028934479: 30%|██████████▋ | 22/74 [00:21<00:38, 1.36it/s]
epoch 36 | loss 0.9747693538665771, f_iou 0.4606904983520508: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 36 | loss 0.9747693538665771, f_iou 0.4606904983520508: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 36 | loss 0.7384521961212158, f_iou 0.46394163370132446: 31%|██████████▉ | 23/74 [00:23<00:37, 1.37it/s]
epoch 36 | loss 0.7384521961212158, f_iou 0.46394163370132446: 32%|███████████▎ | 24/74 [00:23<00:36, 1.37it/s]
epoch 36 | loss 1.8618087768554688, f_iou 0.4733469784259796: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 36 | loss 1.8618087768554688, f_iou 0.4733469784259796: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 36 | loss 0.93326735496521, f_iou 0.4813302159309387: 34%|████████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 36 | loss 0.93326735496521, f_iou 0.4813302159309387: 35%|█████████████▎ | 26/74 [00:24<00:34, 1.38it/s]
epoch 36 | loss 4.951469421386719, f_iou 0.4755602180957794: 35%|█████████████ | 26/74 [00:25<00:34, 1.38it/s]
epoch 36 | loss 4.951469421386719, f_iou 0.4755602180957794: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 36 | loss 1.6951180696487427, f_iou 0.48594236373901367: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 36 | loss 1.6951180696487427, f_iou 0.48594236373901367: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.39it/s]
epoch 36 | loss 3.7818596363067627, f_iou 0.4886816740036011: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 36 | loss 3.7818596363067627, f_iou 0.4886816740036011: 39%|██████████████ | 29/74 [00:26<00:32, 1.38it/s]
epoch 36 | loss 1.7982275485992432, f_iou 0.49861565232276917: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.38it/s]
epoch 36 | loss 1.7982275485992432, f_iou 0.49861565232276917: 41%|██████████████▏ | 30/74 [00:27<00:32, 1.35it/s]
epoch 36 | loss 1.7742105722427368, f_iou 0.482536643743515: 41%|███████████████ | 30/74 [00:28<00:32, 1.35it/s]
epoch 36 | loss 1.7742105722427368, f_iou 0.482536643743515: 42%|███████████████▌ | 31/74 [00:28<00:32, 1.32it/s]
epoch 36 | loss 1.8745739459991455, f_iou 0.4929192066192627: 42%|███████████████ | 31/74 [00:29<00:32, 1.32it/s]
epoch 36 | loss 1.8745739459991455, f_iou 0.4929192066192627: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.30it/s]
epoch 36 | loss 0.9788351655006409, f_iou 0.503722071647644: 43%|████████████████ | 32/74 [00:30<00:32, 1.30it/s]
epoch 36 | loss 0.9788351655006409, f_iou 0.503722071647644: 45%|████████████████▌ | 33/74 [00:30<00:31, 1.29it/s]
epoch 36 | loss 0.0, f_iou 0.5152570605278015: 45%|██████████████████████▋ | 33/74 [00:30<00:31, 1.29it/s]
epoch 36 | loss 0.0, f_iou 0.5152570605278015: 46%|███████████████████████▍ | 34/74 [00:30<00:31, 1.28it/s]
epoch 36 | loss 3.970357894897461, f_iou 0.515479564666748: 46%|█████████████████▍ | 34/74 [00:31<00:31, 1.28it/s]
epoch 36 | loss 3.970357894897461, f_iou 0.515479564666748: 47%|█████████████████▉ | 35/74 [00:31<00:30, 1.30it/s]
epoch 36 | loss 1.7498139142990112, f_iou 0.5155339241027832: 47%|█████████████████ | 35/74 [00:32<00:30, 1.30it/s]
epoch 36 | loss 1.7498139142990112, f_iou 0.5155339241027832: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.33it/s]
epoch 36 | loss 1.1208657026290894, f_iou 0.523682713508606: 49%|██████████████████ | 36/74 [00:33<00:28, 1.33it/s]
epoch 36 | loss 1.1208657026290894, f_iou 0.523682713508606: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.35it/s]
epoch 36 | loss 0.5174115300178528, f_iou 0.5343681573867798: 50%|██████████████████ | 37/74 [00:33<00:27, 1.35it/s]
epoch 36 | loss 0.5174115300178528, f_iou 0.5343681573867798: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 36 | loss 1.7523608207702637, f_iou 0.5391361713409424: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.36it/s]
epoch 36 | loss 1.7523608207702637, f_iou 0.5391361713409424: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.37it/s]
epoch 36 | loss 1.6367374658584595, f_iou 0.5471190810203552: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.37it/s]
epoch 36 | loss 1.6367374658584595, f_iou 0.5471190810203552: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 36 | loss 1.893155574798584, f_iou 0.5345549583435059: 54%|████████████████████ | 40/74 [00:36<00:24, 1.37it/s]
epoch 36 | loss 1.893155574798584, f_iou 0.5345549583435059: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.37it/s]
epoch 36 | loss 0.8259164690971375, f_iou 0.5420646071434021: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 36 | loss 0.8259164690971375, f_iou 0.5420646071434021: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 36 | loss 2.0082318782806396, f_iou 0.537482500076294: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.37it/s]
epoch 36 | loss 2.0082318782806396, f_iou 0.537482500076294: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.36it/s]
epoch 36 | loss 1.887772798538208, f_iou 0.5380323529243469: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.36it/s]
epoch 36 | loss 1.887772798538208, f_iou 0.5380323529243469: 59%|██████████████████████ | 44/74 [00:38<00:22, 1.35it/s]
epoch 36 | loss 3.0981462001800537, f_iou 0.5282811522483826: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.35it/s]
epoch 36 | loss 3.0981462001800537, f_iou 0.5282811522483826: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 36 | loss 3.531336784362793, f_iou 0.5176160931587219: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.34it/s]
epoch 36 | loss 3.531336784362793, f_iou 0.5176160931587219: 62%|███████████████████████ | 46/74 [00:39<00:21, 1.33it/s]
epoch 36 | loss 1.760677695274353, f_iou 0.5250123143196106: 62%|███████████████████████ | 46/74 [00:40<00:21, 1.33it/s]
epoch 36 | loss 1.760677695274353, f_iou 0.5250123143196106: 64%|███████████████████████▌ | 47/74 [00:40<00:20, 1.32it/s]
epoch 36 | loss 0.627361536026001, f_iou 0.5342862606048584: 64%|███████████████████████▌ | 47/74 [00:41<00:20, 1.32it/s]
epoch 36 | loss 0.627361536026001, f_iou 0.5342862606048584: 65%|████████████████████████ | 48/74 [00:41<00:20, 1.30it/s]
epoch 36 | loss 6.597042083740234, f_iou 0.5357440710067749: 65%|████████████████████████ | 48/74 [00:42<00:20, 1.30it/s]
epoch 36 | loss 6.597042083740234, f_iou 0.5357440710067749: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.30it/s]
epoch 36 | loss 0.7407692074775696, f_iou 0.544124186038971: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.30it/s]
epoch 36 | loss 0.7407692074775696, f_iou 0.544124186038971: 68%|█████████████████████████ | 50/74 [00:42<00:18, 1.30it/s]
epoch 36 | loss 1.3995201587677002, f_iou 0.5450947284698486: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.30it/s]
epoch 36 | loss 1.3995201587677002, f_iou 0.5450947284698486: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.33it/s]
epoch 36 | loss 3.8965768814086914, f_iou 0.5388156771659851: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.33it/s]
epoch 36 | loss 3.8965768814086914, f_iou 0.5388156771659851: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.34it/s]
epoch 36 | loss 6.254260063171387, f_iou 0.531802773475647: 70%|██████████████████████████▋ | 52/74 [00:45<00:16, 1.34it/s]
epoch 36 | loss 6.254260063171387, f_iou 0.531802773475647: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.36it/s]
epoch 36 | loss 3.556199789047241, f_iou 0.5224005579948425: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.36it/s]
epoch 36 | loss 3.556199789047241, f_iou 0.5224005579948425: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 36 | loss 0.3176153898239136, f_iou 0.5300920605659485: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.37it/s]
epoch 36 | loss 0.3176153898239136, f_iou 0.5300920605659485: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.37it/s]
epoch 36 | loss 1.6319007873535156, f_iou 0.5305357575416565: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.37it/s]
epoch 36 | loss 1.6319007873535156, f_iou 0.5305357575416565: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 36 | loss 4.269998550415039, f_iou 0.5305501818656921: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.38it/s]
epoch 36 | loss 4.269998550415039, f_iou 0.5305501818656921: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.38it/s]
epoch 36 | loss 3.3788628578186035, f_iou 0.5285676121711731: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 36 | loss 3.3788628578186035, f_iou 0.5285676121711731: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 36 | loss 0.797895610332489, f_iou 0.5342158079147339: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.38it/s]
epoch 36 | loss 0.797895610332489, f_iou 0.5342158079147339: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.37it/s]
epoch 36 | loss 0.5679891705513, f_iou 0.5409162640571594: 80%|███████████████████████████████ | 59/74 [00:50<00:10, 1.37it/s]
epoch 36 | loss 0.5679891705513, f_iou 0.5409162640571594: 81%|███████████████████████████████▌ | 60/74 [00:50<00:10, 1.35it/s]
epoch 36 | loss 1.6615891456604004, f_iou 0.5442574620246887: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.35it/s]
epoch 36 | loss 1.6615891456604004, f_iou 0.5442574620246887: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.35it/s]
epoch 36 | loss 2.7904276847839355, f_iou 0.5456068515777588: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.35it/s]
epoch 36 | loss 2.7904276847839355, f_iou 0.5456068515777588: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.36it/s]
epoch 36 | loss 1.8550165891647339, f_iou 0.5404906272888184: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.36it/s]
epoch 36 | loss 1.8550165891647339, f_iou 0.5404906272888184: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.37it/s]
epoch 36 | loss 1.8354994058609009, f_iou 0.5380302667617798: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 36 | loss 1.8354994058609009, f_iou 0.5380302667617798: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.37it/s]
epoch 36 | loss 4.269155025482178, f_iou 0.5413148403167725: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.37it/s]
epoch 36 | loss 4.269155025482178, f_iou 0.5413148403167725: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 36 | loss 0.806358277797699, f_iou 0.5464205145835876: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 36 | loss 0.806358277797699, f_iou 0.5464205145835876: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 36 | loss 2.7814431190490723, f_iou 0.5446126461029053: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 36 | loss 2.7814431190490723, f_iou 0.5446126461029053: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 36 | loss 1.7099896669387817, f_iou 0.5491887927055359: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 36 | loss 1.7099896669387817, f_iou 0.5491887927055359: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.36it/s]
epoch 36 | loss 5.187997817993164, f_iou 0.5445325970649719: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 36 | loss 5.187997817993164, f_iou 0.5445325970649719: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.34it/s]
epoch 36 | loss 1.4081270694732666, f_iou 0.5448616743087769: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.34it/s]
epoch 36 | loss 1.4081270694732666, f_iou 0.5448616743087769: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 36 | loss 2.321070671081543, f_iou 0.5469434261322021: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.35it/s]
epoch 36 | loss 2.321070671081543, f_iou 0.5469434261322021: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.36it/s]
epoch 36 | loss 0.9668092131614685, f_iou 0.5497820973396301: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.36it/s]
epoch 36 | loss 0.9668092131614685, f_iou 0.5497820973396301: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.37it/s]
epoch 36 | loss 1.5561044216156006, f_iou 0.5519206523895264: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 36 | loss 1.5561044216156006, f_iou 0.5519206523895264: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 36 | loss 3.49181866645813, f_iou 0.554222583770752: 99%|██████████████████████████████████████▍| 73/74 [01:00<00:00, 1.38it/s]
epoch 36 | loss 3.49181866645813, f_iou 0.554222583770752: 100%|███████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 36 | loss 3.49181866645813, f_iou 0.554222583770752: 100%|███████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 36 | valid.f_iou 0.7622799873352051, valid.f_f-score 0.78621: 0%| | 0/16 [00:05, ?it/s]
epoch 36 | valid.f_iou 0.7622799873352051, valid.f_f-score 0.78621: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 36 | valid.f_iou 0.6302800178527832, valid.f_f-score 0.77713: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 36 | valid.f_iou 0.6302800178527832, valid.f_f-score 0.77713: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 36 | valid.f_iou 0.512660026550293, valid.f_f-score 0.73185: 12%|████ | 2/16 [00:06<00:35, 2.53s/it]
epoch 36 | valid.f_iou 0.512660026550293, valid.f_f-score 0.73185: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 36 | valid.f_iou 0.5618900060653687, valid.f_f-score 0.74973: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 36 | valid.f_iou 0.5618900060653687, valid.f_f-score 0.74973: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 36 | valid.f_iou 0.534500002861023, valid.f_f-score 0.7333: 25%|████████▎ | 4/16 [00:07<00:13, 1.13s/it]
epoch 36 | valid.f_iou 0.534500002861023, valid.f_f-score 0.7333: 31%|██████████▎ | 5/16 [00:07<00:09, 1.13it/s]
epoch 36 | valid.f_iou 0.5139300227165222, valid.f_f-score 0.70611: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 36 | valid.f_iou 0.5139300227165222, valid.f_f-score 0.70611: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 36 | valid.f_iou 0.529670000076294, valid.f_f-score 0.71969: 38%|████████████ | 6/16 [00:08<00:07, 1.34it/s]
epoch 36 | valid.f_iou 0.529670000076294, valid.f_f-score 0.71969: 44%|██████████████ | 7/16 [00:08<00:05, 1.54it/s]
epoch 36 | valid.f_iou 0.5113700032234192, valid.f_f-score 0.70894: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 36 | valid.f_iou 0.5113700032234192, valid.f_f-score 0.70894: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.71it/s]
epoch 36 | valid.f_iou 0.5076299905776978, valid.f_f-score 0.69322: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.71it/s]
epoch 36 | valid.f_iou 0.5076299905776978, valid.f_f-score 0.69322: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.86it/s]
epoch 36 | valid.f_iou 0.5044400095939636, valid.f_f-score 0.70026: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.86it/s]
epoch 36 | valid.f_iou 0.5044400095939636, valid.f_f-score 0.70026: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.97it/s]
epoch 36 | valid.f_iou 0.49823999404907227, valid.f_f-score 0.69582: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.97it/s]
epoch 36 | valid.f_iou 0.49823999404907227, valid.f_f-score 0.69582: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.05it/s]
epoch 36 | valid.f_iou 0.5232300162315369, valid.f_f-score 0.71371: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 36 | valid.f_iou 0.5232300162315369, valid.f_f-score 0.71371: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 36 | valid.f_iou 0.5228300094604492, valid.f_f-score 0.71903: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 36 | valid.f_iou 0.5228300094604492, valid.f_f-score 0.71903: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.30it/s]
epoch 36 | valid.f_iou 0.5022000074386597, valid.f_f-score 0.70216: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.30it/s]
epoch 36 | valid.f_iou 0.5022000074386597, valid.f_f-score 0.70216: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 36 | valid.f_iou 0.5094599723815918, valid.f_f-score 0.70434: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 36 | valid.f_iou 0.5094599723815918, valid.f_f-score 0.70434: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 36 | valid.f_iou 0.5142899751663208, valid.f_f-score 0.70137: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 36 | valid.f_iou 0.5142899751663208, valid.f_f-score 0.70137: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 36 | valid.f_iou 0.5142899751663208, valid.f_f-score 0.70137: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 36 | valid.f_iou 0.6997500061988831, valid.f_f-score 0.68729: 0%| | 0/16 [00:04, ?it/s]
epoch 36 | valid.f_iou 0.6997500061988831, valid.f_f-score 0.68729: 6%|█▉ | 1/16 [00:04<01:02, 4.14s/it]
epoch 36 | valid.f_iou 0.7706999778747559, valid.f_f-score 0.81449: 6%|█▉ | 1/16 [00:05<01:02, 4.14s/it]
epoch 36 | valid.f_iou 0.7706999778747559, valid.f_f-score 0.81449: 12%|███▉ | 2/16 [00:05<00:31, 2.22s/it]
epoch 36 | valid.f_iou 0.6782100200653076, valid.f_f-score 0.7719: 12%|████ | 2/16 [00:05<00:31, 2.22s/it]
epoch 36 | valid.f_iou 0.6782100200653076, valid.f_f-score 0.7719: 19%|██████ | 3/16 [00:05<00:18, 1.41s/it]
epoch 36 | valid.f_iou 0.6655200123786926, valid.f_f-score 0.76817: 19%|█████▊ | 3/16 [00:05<00:18, 1.41s/it]
epoch 36 | valid.f_iou 0.6655200123786926, valid.f_f-score 0.76817: 25%|███████▊ | 4/16 [00:05<00:12, 1.01s/it]
epoch 36 | valid.f_iou 0.6623899936676025, valid.f_f-score 0.77528: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 36 | valid.f_iou 0.6623899936676025, valid.f_f-score 0.77528: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 36 | valid.f_iou 0.6339899897575378, valid.f_f-score 0.74198: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 36 | valid.f_iou 0.6339899897575378, valid.f_f-score 0.74198: 38%|███████████▋ | 6/16 [00:06<00:06, 1.50it/s]
epoch 36 | valid.f_iou 0.6518300175666809, valid.f_f-score 0.76327: 38%|███████████▋ | 6/16 [00:07<00:06, 1.50it/s]
epoch 36 | valid.f_iou 0.6518300175666809, valid.f_f-score 0.76327: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.77it/s]
epoch 36 | valid.f_iou 0.6384099721908569, valid.f_f-score 0.75117: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.77it/s]
epoch 36 | valid.f_iou 0.6384099721908569, valid.f_f-score 0.75117: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.99it/s]
epoch 36 | valid.f_iou 0.660290002822876, valid.f_f-score 0.7689: 50%|████████████████▌ | 8/16 [00:07<00:04, 1.99it/s]
epoch 36 | valid.f_iou 0.660290002822876, valid.f_f-score 0.7689: 56%|██████████████████▌ | 9/16 [00:07<00:03, 2.19it/s]
epoch 36 | valid.f_iou 0.6811000108718872, valid.f_f-score 0.78434: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 36 | valid.f_iou 0.6811000108718872, valid.f_f-score 0.78434: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.34it/s]
epoch 36 | valid.f_iou 0.6711900234222412, valid.f_f-score 0.76865: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.34it/s]
epoch 36 | valid.f_iou 0.6711900234222412, valid.f_f-score 0.76865: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.45it/s]
epoch 36 | valid.f_iou 0.6819599866867065, valid.f_f-score 0.77964: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.45it/s]
epoch 36 | valid.f_iou 0.6819599866867065, valid.f_f-score 0.77964: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.54it/s]
epoch 36 | valid.f_iou 0.6929500102996826, valid.f_f-score 0.78892: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 36 | valid.f_iou 0.6929500102996826, valid.f_f-score 0.78892: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 36 | valid.f_iou 0.6850699782371521, valid.f_f-score 0.78241: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 36 | valid.f_iou 0.6850699782371521, valid.f_f-score 0.78241: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 36 | valid.f_iou 0.6940600275993347, valid.f_f-score 0.79294: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 36 | valid.f_iou 0.6940600275993347, valid.f_f-score 0.79294: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.67it/s]
epoch 36 | valid.f_iou 0.69514000415802, valid.f_f-score 0.79539: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.67it/s]
epoch 36 | valid.f_iou 0.69514000415802, valid.f_f-score 0.79539: 100%|████████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 36 | valid.f_iou 0.69514000415802, valid.f_f-score 0.79539: 100%|████████████████████████████████| 16/16 [00:10<00:00, 1.55it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 36 | valid.f_iou 0.6997500061988831, valid.f_f-score 0.68729: 0%| | 0/16 [00:05, ?it/s]
epoch 36 | valid.f_iou 0.6997500061988831, valid.f_f-score 0.68729: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 36 | valid.f_iou 0.7706999778747559, valid.f_f-score 0.81449: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 36 | valid.f_iou 0.7706999778747559, valid.f_f-score 0.81449: 12%|███▉ | 2/16 [00:05<00:35, 2.51s/it]
epoch 36 | valid.f_iou 0.6782100200653076, valid.f_f-score 0.7719: 12%|████ | 2/16 [00:06<00:35, 2.51s/it]
epoch 36 | valid.f_iou 0.6782100200653076, valid.f_f-score 0.7719: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 36 | valid.f_iou 0.6657099723815918, valid.f_f-score 0.76817: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 36 | valid.f_iou 0.6657099723815918, valid.f_f-score 0.76817: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 36 | valid.f_iou 0.6648899912834167, valid.f_f-score 0.77528: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 36 | valid.f_iou 0.6648899912834167, valid.f_f-score 0.77528: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 36 | valid.f_iou 0.6360700130462646, valid.f_f-score 0.74198: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 36 | valid.f_iou 0.6360700130462646, valid.f_f-score 0.74198: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 36 | valid.f_iou 0.6571000218391418, valid.f_f-score 0.76327: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 36 | valid.f_iou 0.6571000218391418, valid.f_f-score 0.76327: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 36 | valid.f_iou 0.64301997423172, valid.f_f-score 0.75117: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.56it/s]
epoch 36 | valid.f_iou 0.64301997423172, valid.f_f-score 0.75117: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 36 | valid.f_iou 0.6670299768447876, valid.f_f-score 0.7689: 50%|████████████████ | 8/16 [00:09<00:04, 1.73it/s]
epoch 36 | valid.f_iou 0.6670299768447876, valid.f_f-score 0.7689: 56%|██████████████████ | 9/16 [00:09<00:03, 1.88it/s]
epoch 36 | valid.f_iou 0.6823700070381165, valid.f_f-score 0.78066: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 36 | valid.f_iou 0.6823700070381165, valid.f_f-score 0.78066: 62%|██████████████████▊ | 10/16 [00:09<00:03, 2.00it/s]
epoch 36 | valid.f_iou 0.6723499894142151, valid.f_f-score 0.76531: 62%|██████████████████▊ | 10/16 [00:09<00:03, 2.00it/s]
epoch 36 | valid.f_iou 0.6723499894142151, valid.f_f-score 0.76531: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.17it/s]
epoch 36 | valid.f_iou 0.6830199956893921, valid.f_f-score 0.77658: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.17it/s]
epoch 36 | valid.f_iou 0.6830199956893921, valid.f_f-score 0.77658: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 36 | valid.f_iou 0.6938700079917908, valid.f_f-score 0.7861: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.31it/s]
epoch 36 | valid.f_iou 0.6938700079917908, valid.f_f-score 0.7861: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.42it/s]
epoch 36 | valid.f_iou 0.685920000076294, valid.f_f-score 0.77979: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.42it/s]
epoch 36 | valid.f_iou 0.685920000076294, valid.f_f-score 0.77979: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.52it/s]
epoch 36 | valid.f_iou 0.6948500275611877, valid.f_f-score 0.7905: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.52it/s]
epoch 36 | valid.f_iou 0.6948500275611877, valid.f_f-score 0.7905: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.59it/s]
epoch 36 | valid.f_iou 0.6969299912452698, valid.f_f-score 0.7931: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.59it/s]
epoch 36 | valid.f_iou 0.6969299912452698, valid.f_f-score 0.7931: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 36 | valid.f_iou 0.6969299912452698, valid.f_f-score 0.7931: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 37 | loss 5.600851058959961, f_iou 0.30684608221054077: 0%| | 0/74 [00:06, ?it/s]
epoch 37 | loss 5.600851058959961, f_iou 0.30684608221054077: 1%|▌ | 1/74 [00:06<07:27, 6.13s/it]
epoch 37 | loss 2.0497074127197266, f_iou 0.46852752566337585: 1%|▍ | 1/74 [00:06<07:27, 6.13s/it]
epoch 37 | loss 2.0497074127197266, f_iou 0.46852752566337585: 3%|▉ | 2/74 [00:06<03:35, 2.99s/it]
epoch 37 | loss 1.81501042842865, f_iou 0.5436586141586304: 3%|█ | 2/74 [00:07<03:35, 2.99s/it]
epoch 37 | loss 1.81501042842865, f_iou 0.5436586141586304: 4%|█▌ | 3/74 [00:07<02:20, 1.98s/it]
epoch 37 | loss 1.4646981954574585, f_iou 0.5760558247566223: 4%|█▌ | 3/74 [00:08<02:20, 1.98s/it]
epoch 37 | loss 1.4646981954574585, f_iou 0.5760558247566223: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 37 | loss 2.578460693359375, f_iou 0.5884096026420593: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 37 | loss 2.578460693359375, f_iou 0.5884096026420593: 7%|██▌ | 5/74 [00:09<01:26, 1.26s/it]
epoch 37 | loss 5.3148064613342285, f_iou 0.5425047874450684: 7%|██▌ | 5/74 [00:10<01:26, 1.26s/it]
epoch 37 | loss 5.3148064613342285, f_iou 0.5425047874450684: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 37 | loss 2.3455872535705566, f_iou 0.5657588243484497: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 37 | loss 2.3455872535705566, f_iou 0.5657588243484497: 9%|███▌ | 7/74 [00:10<01:08, 1.02s/it]
epoch 37 | loss 1.9931726455688477, f_iou 0.5786905884742737: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 37 | loss 1.9931726455688477, f_iou 0.5786905884742737: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 37 | loss 7.955165386199951, f_iou 0.5478785634040833: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 37 | loss 7.955165386199951, f_iou 0.5478785634040833: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 37 | loss 0.0, f_iou 0.5848528742790222: 12%|██████▎ | 9/74 [00:13<00:57, 1.13it/s]
epoch 37 | loss 0.0, f_iou 0.5848528742790222: 14%|██████▉ | 10/74 [00:13<00:54, 1.18it/s]
epoch 37 | loss 1.8335373401641846, f_iou 0.5578073263168335: 14%|████▊ | 10/74 [00:14<00:54, 1.18it/s]
epoch 37 | loss 1.8335373401641846, f_iou 0.5578073263168335: 15%|█████▎ | 11/74 [00:14<00:51, 1.22it/s]
epoch 37 | loss 2.602187156677246, f_iou 0.5228341817855835: 15%|█████▌ | 11/74 [00:14<00:51, 1.22it/s]
epoch 37 | loss 2.602187156677246, f_iou 0.5228341817855835: 16%|██████ | 12/74 [00:14<00:49, 1.24it/s]
epoch 37 | loss 2.8997836112976074, f_iou 0.5056459903717041: 16%|█████▊ | 12/74 [00:15<00:49, 1.24it/s]
epoch 37 | loss 2.8997836112976074, f_iou 0.5056459903717041: 18%|██████▎ | 13/74 [00:15<00:48, 1.26it/s]
epoch 37 | loss 1.4763963222503662, f_iou 0.5149508714675903: 18%|██████▎ | 13/74 [00:16<00:48, 1.26it/s]
epoch 37 | loss 1.4763963222503662, f_iou 0.5149508714675903: 19%|██████▊ | 14/74 [00:16<00:47, 1.28it/s]
epoch 37 | loss 1.7836120128631592, f_iou 0.5332679152488708: 19%|██████▊ | 14/74 [00:17<00:47, 1.28it/s]
epoch 37 | loss 1.7836120128631592, f_iou 0.5332679152488708: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 37 | loss 1.0884106159210205, f_iou 0.5528815388679504: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 37 | loss 1.0884106159210205, f_iou 0.5528815388679504: 22%|███████▊ | 16/74 [00:17<00:44, 1.31it/s]
epoch 37 | loss 1.977790117263794, f_iou 0.5316234230995178: 22%|████████ | 16/74 [00:18<00:44, 1.31it/s]
epoch 37 | loss 1.977790117263794, f_iou 0.5316234230995178: 23%|████████▌ | 17/74 [00:18<00:43, 1.30it/s]
epoch 37 | loss 0.8689713478088379, f_iou 0.5203536748886108: 23%|████████▎ | 17/74 [00:19<00:43, 1.30it/s]
epoch 37 | loss 0.8689713478088379, f_iou 0.5203536748886108: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 37 | loss 3.6235642433166504, f_iou 0.5101375579833984: 24%|████████▊ | 18/74 [00:20<00:43, 1.30it/s]
epoch 37 | loss 3.6235642433166504, f_iou 0.5101375579833984: 26%|█████████▏ | 19/74 [00:20<00:42, 1.30it/s]
epoch 37 | loss 4.293351650238037, f_iou 0.49281126260757446: 26%|█████████▏ | 19/74 [00:20<00:42, 1.30it/s]
epoch 37 | loss 4.293351650238037, f_iou 0.49281126260757446: 27%|█████████▋ | 20/74 [00:20<00:41, 1.30it/s]
epoch 37 | loss 1.3293758630752563, f_iou 0.5057197213172913: 27%|█████████▋ | 20/74 [00:21<00:41, 1.30it/s]
epoch 37 | loss 1.3293758630752563, f_iou 0.5057197213172913: 28%|██████████▏ | 21/74 [00:21<00:40, 1.30it/s]
epoch 37 | loss 2.7668473720550537, f_iou 0.503817617893219: 28%|██████████▌ | 21/74 [00:22<00:40, 1.30it/s]
epoch 37 | loss 2.7668473720550537, f_iou 0.503817617893219: 30%|███████████ | 22/74 [00:22<00:39, 1.30it/s]
epoch 37 | loss 2.4419119358062744, f_iou 0.5179580450057983: 30%|██████████▋ | 22/74 [00:23<00:39, 1.30it/s]
epoch 37 | loss 2.4419119358062744, f_iou 0.5179580450057983: 31%|███████████▏ | 23/74 [00:23<00:39, 1.31it/s]
epoch 37 | loss 4.477302074432373, f_iou 0.5217627286911011: 31%|███████████▌ | 23/74 [00:23<00:39, 1.31it/s]
epoch 37 | loss 4.477302074432373, f_iou 0.5217627286911011: 32%|████████████ | 24/74 [00:23<00:38, 1.31it/s]
epoch 37 | loss 1.2531167268753052, f_iou 0.5049058198928833: 32%|███████████▋ | 24/74 [00:24<00:38, 1.31it/s]
epoch 37 | loss 1.2531167268753052, f_iou 0.5049058198928833: 34%|████████████▏ | 25/74 [00:24<00:37, 1.30it/s]
epoch 37 | loss 3.0993611812591553, f_iou 0.4975219964981079: 34%|████████████▏ | 25/74 [00:25<00:37, 1.30it/s]
epoch 37 | loss 3.0993611812591553, f_iou 0.4975219964981079: 35%|████████████▋ | 26/74 [00:25<00:37, 1.29it/s]
epoch 37 | loss 1.1038116216659546, f_iou 0.5110511779785156: 35%|████████████▋ | 26/74 [00:26<00:37, 1.29it/s]
epoch 37 | loss 1.1038116216659546, f_iou 0.5110511779785156: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.28it/s]
epoch 37 | loss 2.3403027057647705, f_iou 0.5130957365036011: 36%|█████████████▏ | 27/74 [00:27<00:36, 1.28it/s]
epoch 37 | loss 2.3403027057647705, f_iou 0.5130957365036011: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.29it/s]
epoch 37 | loss 0.46609944105148315, f_iou 0.4954046308994293: 38%|█████████████▏ | 28/74 [00:27<00:35, 1.29it/s]
epoch 37 | loss 0.46609944105148315, f_iou 0.4954046308994293: 39%|█████████████▋ | 29/74 [00:27<00:34, 1.32it/s]
epoch 37 | loss 1.400524616241455, f_iou 0.4940410852432251: 39%|██████████████▌ | 29/74 [00:28<00:34, 1.32it/s]
epoch 37 | loss 1.400524616241455, f_iou 0.4940410852432251: 41%|███████████████ | 30/74 [00:28<00:32, 1.35it/s]
epoch 37 | loss 1.422895908355713, f_iou 0.5070871710777283: 41%|███████████████ | 30/74 [00:29<00:32, 1.35it/s]
epoch 37 | loss 1.422895908355713, f_iou 0.5070871710777283: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.33it/s]
epoch 37 | loss 0.5840927362442017, f_iou 0.521239697933197: 42%|███████████████▌ | 31/74 [00:30<00:32, 1.33it/s]
epoch 37 | loss 0.5840927362442017, f_iou 0.521239697933197: 43%|████████████████ | 32/74 [00:30<00:31, 1.31it/s]
epoch 37 | loss 1.6653389930725098, f_iou 0.5312808156013489: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.31it/s]
epoch 37 | loss 1.6653389930725098, f_iou 0.5312808156013489: 45%|████████████████ | 33/74 [00:30<00:31, 1.31it/s]
epoch 37 | loss 2.0110769271850586, f_iou 0.5353281497955322: 45%|████████████████ | 33/74 [00:31<00:31, 1.31it/s]
epoch 37 | loss 2.0110769271850586, f_iou 0.5353281497955322: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.31it/s]
epoch 37 | loss 2.9015815258026123, f_iou 0.5326811671257019: 46%|████████████████▌ | 34/74 [00:32<00:30, 1.31it/s]
epoch 37 | loss 2.9015815258026123, f_iou 0.5326811671257019: 47%|█████████████████ | 35/74 [00:32<00:29, 1.34it/s]
epoch 37 | loss 0.7835872173309326, f_iou 0.5435017347335815: 47%|█████████████████ | 35/74 [00:32<00:29, 1.34it/s]
epoch 37 | loss 0.7835872173309326, f_iou 0.5435017347335815: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.36it/s]
epoch 37 | loss 4.012220859527588, f_iou 0.5416476726531982: 49%|██████████████████ | 36/74 [00:33<00:28, 1.36it/s]
epoch 37 | loss 4.012220859527588, f_iou 0.5416476726531982: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.37it/s]
epoch 37 | loss 3.419964551925659, f_iou 0.5484665632247925: 50%|██████████████████▌ | 37/74 [00:34<00:27, 1.37it/s]
epoch 37 | loss 3.419964551925659, f_iou 0.5484665632247925: 51%|███████████████████ | 38/74 [00:34<00:26, 1.37it/s]
epoch 37 | loss 1.1324466466903687, f_iou 0.5571916103363037: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.37it/s]
epoch 37 | loss 1.1324466466903687, f_iou 0.5571916103363037: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.37it/s]
epoch 37 | loss 0.8498408794403076, f_iou 0.5621448159217834: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.37it/s]
epoch 37 | loss 0.8498408794403076, f_iou 0.5621448159217834: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.36it/s]
epoch 37 | loss 3.6275479793548584, f_iou 0.5670775175094604: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.36it/s]
epoch 37 | loss 3.6275479793548584, f_iou 0.5670775175094604: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 37 | loss 2.138817548751831, f_iou 0.558034360408783: 55%|█████████████████████ | 41/74 [00:37<00:24, 1.37it/s]
epoch 37 | loss 2.138817548751831, f_iou 0.558034360408783: 57%|█████████████████████▌ | 42/74 [00:37<00:23, 1.35it/s]
epoch 37 | loss 0.9000043869018555, f_iou 0.563715398311615: 57%|█████████████████████ | 42/74 [00:38<00:23, 1.35it/s]
epoch 37 | loss 0.9000043869018555, f_iou 0.563715398311615: 58%|█████████████████████▍ | 43/74 [00:38<00:23, 1.34it/s]
epoch 37 | loss 1.5113614797592163, f_iou 0.5610902309417725: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.34it/s]
epoch 37 | loss 1.5113614797592163, f_iou 0.5610902309417725: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.36it/s]
epoch 37 | loss 1.0072290897369385, f_iou 0.5587823987007141: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.36it/s]
epoch 37 | loss 1.0072290897369385, f_iou 0.5587823987007141: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.37it/s]
epoch 37 | loss 3.8593826293945312, f_iou 0.5485777258872986: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.37it/s]
epoch 37 | loss 3.8593826293945312, f_iou 0.5485777258872986: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 37 | loss 1.4177985191345215, f_iou 0.5516467094421387: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.38it/s]
epoch 37 | loss 1.4177985191345215, f_iou 0.5516467094421387: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 37 | loss 2.543365478515625, f_iou 0.5404797792434692: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.38it/s]
epoch 37 | loss 2.543365478515625, f_iou 0.5404797792434692: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.38it/s]
epoch 37 | loss 0.5795220136642456, f_iou 0.547764778137207: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.38it/s]
epoch 37 | loss 0.5795220136642456, f_iou 0.547764778137207: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.39it/s]
epoch 37 | loss 2.978414535522461, f_iou 0.5502719283103943: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.39it/s]
epoch 37 | loss 2.978414535522461, f_iou 0.5502719283103943: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 37 | loss 2.2032644748687744, f_iou 0.5463260412216187: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 37 | loss 2.2032644748687744, f_iou 0.5463260412216187: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 37 | loss 6.873269081115723, f_iou 0.5389032363891602: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.39it/s]
epoch 37 | loss 6.873269081115723, f_iou 0.5389032363891602: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.40it/s]
epoch 37 | loss 0.9518649578094482, f_iou 0.5470728278160095: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.40it/s]
epoch 37 | loss 0.9518649578094482, f_iou 0.5470728278160095: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.40it/s]
epoch 37 | loss 1.3719127178192139, f_iou 0.5474458932876587: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.40it/s]
epoch 37 | loss 1.3719127178192139, f_iou 0.5474458932876587: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.40it/s]
epoch 37 | loss 2.055192470550537, f_iou 0.5476366281509399: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.40it/s]
epoch 37 | loss 2.055192470550537, f_iou 0.5476366281509399: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 37 | loss 2.1341469287872314, f_iou 0.5458846092224121: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 37 | loss 2.1341469287872314, f_iou 0.5458846092224121: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.40it/s]
epoch 37 | loss 1.3794888257980347, f_iou 0.5511826276779175: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.40it/s]
epoch 37 | loss 1.3794888257980347, f_iou 0.5511826276779175: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.40it/s]
epoch 37 | loss 1.0064808130264282, f_iou 0.5481853485107422: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.40it/s]
epoch 37 | loss 1.0064808130264282, f_iou 0.5481853485107422: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.40it/s]
epoch 37 | loss 7.943327903747559, f_iou 0.5447174906730652: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.40it/s]
epoch 37 | loss 7.943327903747559, f_iou 0.5447174906730652: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.40it/s]
epoch 37 | loss 1.0215306282043457, f_iou 0.5504457354545593: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.40it/s]
epoch 37 | loss 1.0215306282043457, f_iou 0.5504457354545593: 81%|█████████████████████████████▏ | 60/74 [00:50<00:09, 1.41it/s]
epoch 37 | loss 1.2386702299118042, f_iou 0.5540566444396973: 81%|█████████████████████████████▏ | 60/74 [00:51<00:09, 1.41it/s]
epoch 37 | loss 1.2386702299118042, f_iou 0.5540566444396973: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.41it/s]
epoch 37 | loss 4.407183647155762, f_iou 0.5579385161399841: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.41it/s]
epoch 37 | loss 4.407183647155762, f_iou 0.5579385161399841: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.40it/s]
epoch 37 | loss 0.6508787274360657, f_iou 0.5491024851799011: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.40it/s]
epoch 37 | loss 0.6508787274360657, f_iou 0.5491024851799011: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.40it/s]
epoch 37 | loss 2.9498119354248047, f_iou 0.5501621961593628: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.40it/s]
epoch 37 | loss 2.9498119354248047, f_iou 0.5501621961593628: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.40it/s]
epoch 37 | loss 0.8073738813400269, f_iou 0.5552534461021423: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.40it/s]
epoch 37 | loss 0.8073738813400269, f_iou 0.5552534461021423: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 37 | loss 5.101158142089844, f_iou 0.5477537512779236: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.40it/s]
epoch 37 | loss 5.101158142089844, f_iou 0.5477537512779236: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 37 | loss 4.75705623626709, f_iou 0.5423466563224792: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:05, 1.39it/s]
epoch 37 | loss 4.75705623626709, f_iou 0.5423466563224792: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.40it/s]
epoch 37 | loss 1.7822805643081665, f_iou 0.5419554710388184: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.40it/s]
epoch 37 | loss 1.7822805643081665, f_iou 0.5419554710388184: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 37 | loss 5.3177490234375, f_iou 0.5362438559532166: 92%|███████████████████████████████████▊ | 68/74 [00:56<00:04, 1.40it/s]
epoch 37 | loss 5.3177490234375, f_iou 0.5362438559532166: 93%|████████████████████████████████████▎ | 69/74 [00:56<00:03, 1.40it/s]
epoch 37 | loss 0.7956258058547974, f_iou 0.533617377281189: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 37 | loss 0.7956258058547974, f_iou 0.533617377281189: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 37 | loss 0.6141512393951416, f_iou 0.5261085629463196: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 37 | loss 0.6141512393951416, f_iou 0.5261085629463196: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 37 | loss 1.4226405620574951, f_iou 0.530049741268158: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 37 | loss 1.4226405620574951, f_iou 0.530049741268158: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 37 | loss 1.0395886898040771, f_iou 0.5259687304496765: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 37 | loss 1.0395886898040771, f_iou 0.5259687304496765: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 37 | loss 1.2432960271835327, f_iou 0.5284136533737183: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 37 | loss 1.2432960271835327, f_iou 0.5284136533737183: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 37 | loss 1.2432960271835327, f_iou 0.5284136533737183: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 37 | valid.f_iou 0.6035799980163574, valid.f_f-score 0.81349: 0%| | 0/16 [00:05, ?it/s]
epoch 37 | valid.f_iou 0.6035799980163574, valid.f_f-score 0.81349: 6%|█▉ | 1/16 [00:05<01:17, 5.14s/it]
epoch 37 | valid.f_iou 0.5697399973869324, valid.f_f-score 0.81015: 6%|█▉ | 1/16 [00:05<01:17, 5.14s/it]
epoch 37 | valid.f_iou 0.5697399973869324, valid.f_f-score 0.81015: 12%|███▉ | 2/16 [00:05<00:33, 2.39s/it]
epoch 37 | valid.f_iou 0.4198000133037567, valid.f_f-score 0.74404: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 37 | valid.f_iou 0.4198000133037567, valid.f_f-score 0.74404: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 37 | valid.f_iou 0.48392999172210693, valid.f_f-score 0.74317: 19%|█████▋ | 3/16 [00:06<00:19, 1.51s/it]
epoch 37 | valid.f_iou 0.48392999172210693, valid.f_f-score 0.74317: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 37 | valid.f_iou 0.46101000905036926, valid.f_f-score 0.73572: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 37 | valid.f_iou 0.46101000905036926, valid.f_f-score 0.73572: 31%|█████████▍ | 5/16 [00:06<00:09, 1.17it/s]
epoch 37 | valid.f_iou 0.4363499879837036, valid.f_f-score 0.71136: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 37 | valid.f_iou 0.4363499879837036, valid.f_f-score 0.71136: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 37 | valid.f_iou 0.4454300105571747, valid.f_f-score 0.72394: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 37 | valid.f_iou 0.4454300105571747, valid.f_f-score 0.72394: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 37 | valid.f_iou 0.42688998579978943, valid.f_f-score 0.71438: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.69it/s]
epoch 37 | valid.f_iou 0.42688998579978943, valid.f_f-score 0.71438: 50%|███████████████ | 8/16 [00:08<00:04, 1.91it/s]
epoch 37 | valid.f_iou 0.43814998865127563, valid.f_f-score 0.70103: 50%|███████████████ | 8/16 [00:08<00:04, 1.91it/s]
epoch 37 | valid.f_iou 0.43814998865127563, valid.f_f-score 0.70103: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.14it/s]
epoch 37 | valid.f_iou 0.42910999059677124, valid.f_f-score 0.70253: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.14it/s]
epoch 37 | valid.f_iou 0.42910999059677124, valid.f_f-score 0.70253: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.30it/s]
epoch 37 | valid.f_iou 0.43794000148773193, valid.f_f-score 0.69697: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.30it/s]
epoch 37 | valid.f_iou 0.43794000148773193, valid.f_f-score 0.69697: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.42it/s]
epoch 37 | valid.f_iou 0.45427000522613525, valid.f_f-score 0.71426: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.42it/s]
epoch 37 | valid.f_iou 0.45427000522613525, valid.f_f-score 0.71426: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.52it/s]
epoch 37 | valid.f_iou 0.46990999579429626, valid.f_f-score 0.72766: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.52it/s]
epoch 37 | valid.f_iou 0.46990999579429626, valid.f_f-score 0.72766: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.59it/s]
epoch 37 | valid.f_iou 0.4639900028705597, valid.f_f-score 0.71861: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.59it/s]
epoch 37 | valid.f_iou 0.4639900028705597, valid.f_f-score 0.71861: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.64it/s]
epoch 37 | valid.f_iou 0.46505001187324524, valid.f_f-score 0.71049: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.64it/s]
epoch 37 | valid.f_iou 0.46505001187324524, valid.f_f-score 0.71049: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 37 | valid.f_iou 0.47652000188827515, valid.f_f-score 0.71068: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 37 | valid.f_iou 0.47652000188827515, valid.f_f-score 0.71068: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 37 | valid.f_iou 0.47652000188827515, valid.f_f-score 0.71068: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 37 | valid.f_iou 0.5106199979782104, valid.f_f-score 0.64596: 0%| | 0/16 [00:04, ?it/s]
epoch 37 | valid.f_iou 0.5106199979782104, valid.f_f-score 0.64596: 6%|█▉ | 1/16 [00:04<01:02, 4.15s/it]
epoch 37 | valid.f_iou 0.671239972114563, valid.f_f-score 0.79036: 6%|██ | 1/16 [00:05<01:02, 4.15s/it]
epoch 37 | valid.f_iou 0.671239972114563, valid.f_f-score 0.79036: 12%|████ | 2/16 [00:05<00:32, 2.29s/it]
epoch 37 | valid.f_iou 0.5567899942398071, valid.f_f-score 0.74701: 12%|███▉ | 2/16 [00:05<00:32, 2.29s/it]
epoch 37 | valid.f_iou 0.5567899942398071, valid.f_f-score 0.74701: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 37 | valid.f_iou 0.5769100189208984, valid.f_f-score 0.74242: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 37 | valid.f_iou 0.5769100189208984, valid.f_f-score 0.74242: 25%|███████▊ | 4/16 [00:05<00:12, 1.02s/it]
epoch 37 | valid.f_iou 0.5613800287246704, valid.f_f-score 0.70875: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 37 | valid.f_iou 0.5613800287246704, valid.f_f-score 0.70875: 31%|█████████▋ | 5/16 [00:06<00:08, 1.22it/s]
epoch 37 | valid.f_iou 0.5545099973678589, valid.f_f-score 0.68519: 31%|█████████▋ | 5/16 [00:06<00:08, 1.22it/s]
epoch 37 | valid.f_iou 0.5545099973678589, valid.f_f-score 0.68519: 38%|███████████▋ | 6/16 [00:06<00:06, 1.46it/s]
epoch 37 | valid.f_iou 0.5788499712944031, valid.f_f-score 0.71348: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 37 | valid.f_iou 0.5788499712944031, valid.f_f-score 0.71348: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 37 | valid.f_iou 0.5740600228309631, valid.f_f-score 0.71739: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 37 | valid.f_iou 0.5740600228309631, valid.f_f-score 0.71739: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 37 | valid.f_iou 0.6057100296020508, valid.f_f-score 0.7423: 50%|████████████████ | 8/16 [00:08<00:04, 1.82it/s]
epoch 37 | valid.f_iou 0.6057100296020508, valid.f_f-score 0.7423: 56%|██████████████████ | 9/16 [00:08<00:03, 2.05it/s]
epoch 37 | valid.f_iou 0.6266899704933167, valid.f_f-score 0.75987: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 37 | valid.f_iou 0.6266899704933167, valid.f_f-score 0.75987: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.23it/s]
epoch 37 | valid.f_iou 0.6201900243759155, valid.f_f-score 0.74562: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.23it/s]
epoch 37 | valid.f_iou 0.6201900243759155, valid.f_f-score 0.74562: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.37it/s]
epoch 37 | valid.f_iou 0.6357399821281433, valid.f_f-score 0.76009: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.37it/s]
epoch 37 | valid.f_iou 0.6357399821281433, valid.f_f-score 0.76009: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 37 | valid.f_iou 0.6539000272750854, valid.f_f-score 0.77352: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 37 | valid.f_iou 0.6539000272750854, valid.f_f-score 0.77352: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 37 | valid.f_iou 0.6447399854660034, valid.f_f-score 0.7673: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.55it/s]
epoch 37 | valid.f_iou 0.6447399854660034, valid.f_f-score 0.7673: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.61it/s]
epoch 37 | valid.f_iou 0.6400799751281738, valid.f_f-score 0.76168: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 37 | valid.f_iou 0.6400799751281738, valid.f_f-score 0.76168: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 37 | valid.f_iou 0.6463099718093872, valid.f_f-score 0.76623: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 37 | valid.f_iou 0.6463099718093872, valid.f_f-score 0.76623: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 37 | valid.f_iou 0.6463099718093872, valid.f_f-score 0.76623: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 37 | valid.f_iou 0.5106199979782104, valid.f_f-score 0.64596: 0%| | 0/16 [00:04, ?it/s]
epoch 37 | valid.f_iou 0.5106199979782104, valid.f_f-score 0.64596: 6%|█▉ | 1/16 [00:04<01:14, 4.98s/it]
epoch 37 | valid.f_iou 0.671239972114563, valid.f_f-score 0.79036: 6%|██ | 1/16 [00:05<01:14, 4.98s/it]
epoch 37 | valid.f_iou 0.671239972114563, valid.f_f-score 0.79036: 12%|████ | 2/16 [00:05<00:32, 2.34s/it]
epoch 37 | valid.f_iou 0.5567899942398071, valid.f_f-score 0.74701: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 37 | valid.f_iou 0.5567899942398071, valid.f_f-score 0.74701: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 37 | valid.f_iou 0.5770699977874756, valid.f_f-score 0.74242: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 37 | valid.f_iou 0.5770699977874756, valid.f_f-score 0.74242: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 37 | valid.f_iou 0.5637500286102295, valid.f_f-score 0.70875: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 37 | valid.f_iou 0.5637500286102295, valid.f_f-score 0.70875: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 37 | valid.f_iou 0.5564900040626526, valid.f_f-score 0.68519: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 37 | valid.f_iou 0.5564900040626526, valid.f_f-score 0.68519: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 37 | valid.f_iou 0.5805400013923645, valid.f_f-score 0.71348: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 37 | valid.f_iou 0.5805400013923645, valid.f_f-score 0.71348: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 37 | valid.f_iou 0.5755400061607361, valid.f_f-score 0.71739: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 37 | valid.f_iou 0.5755400061607361, valid.f_f-score 0.71739: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 37 | valid.f_iou 0.6070200204849243, valid.f_f-score 0.7423: 50%|████████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 37 | valid.f_iou 0.6070200204849243, valid.f_f-score 0.7423: 56%|██████████████████ | 9/16 [00:08<00:03, 1.96it/s]
epoch 37 | valid.f_iou 0.6243500113487244, valid.f_f-score 0.75624: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 37 | valid.f_iou 0.6243500113487244, valid.f_f-score 0.75624: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 37 | valid.f_iou 0.6180700063705444, valid.f_f-score 0.74232: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.16it/s]
epoch 37 | valid.f_iou 0.6180700063705444, valid.f_f-score 0.74232: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 37 | valid.f_iou 0.6338000297546387, valid.f_f-score 0.75707: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 37 | valid.f_iou 0.6338000297546387, valid.f_f-score 0.75707: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 37 | valid.f_iou 0.6521099805831909, valid.f_f-score 0.77073: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 37 | valid.f_iou 0.6521099805831909, valid.f_f-score 0.77073: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 37 | valid.f_iou 0.6430699825286865, valid.f_f-score 0.76472: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 37 | valid.f_iou 0.6430699825286865, valid.f_f-score 0.76472: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 37 | valid.f_iou 0.6385200023651123, valid.f_f-score 0.75927: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 37 | valid.f_iou 0.6385200023651123, valid.f_f-score 0.75927: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 37 | valid.f_iou 0.6448500156402588, valid.f_f-score 0.76397: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 37 | valid.f_iou 0.6448500156402588, valid.f_f-score 0.76397: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 37 | valid.f_iou 0.6448500156402588, valid.f_f-score 0.76397: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 38 | loss 0.8119616508483887, f_iou 0.45141515135765076: 0%| | 0/74 [00:05, ?it/s]
epoch 38 | loss 0.8119616508483887, f_iou 0.45141515135765076: 1%|▍ | 1/74 [00:05<07:10, 5.89s/it]
epoch 38 | loss 2.5003366470336914, f_iou 0.3109859526157379: 1%|▌ | 1/74 [00:06<07:10, 5.89s/it]
epoch 38 | loss 2.5003366470336914, f_iou 0.3109859526157379: 3%|█ | 2/74 [00:06<03:29, 2.91s/it]
epoch 38 | loss 1.2844762802124023, f_iou 0.38229793310165405: 3%|▉ | 2/74 [00:07<03:29, 2.91s/it]
epoch 38 | loss 1.2844762802124023, f_iou 0.38229793310165405: 4%|█▍ | 3/74 [00:07<02:19, 1.96s/it]
epoch 38 | loss 3.4461984634399414, f_iou 0.33919331431388855: 4%|█▍ | 3/74 [00:08<02:19, 1.96s/it]
epoch 38 | loss 3.4461984634399414, f_iou 0.33919331431388855: 5%|█▉ | 4/74 [00:08<01:45, 1.51s/it]
epoch 38 | loss 0.9619135856628418, f_iou 0.4507404863834381: 5%|██ | 4/74 [00:09<01:45, 1.51s/it]
epoch 38 | loss 0.9619135856628418, f_iou 0.4507404863834381: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 38 | loss 1.2753841876983643, f_iou 0.5171101093292236: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 38 | loss 1.2753841876983643, f_iou 0.5171101093292236: 8%|███ | 6/74 [00:09<01:14, 1.10s/it]
epoch 38 | loss 2.410905599594116, f_iou 0.5261717438697815: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 38 | loss 2.410905599594116, f_iou 0.5261717438697815: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 38 | loss 1.2147893905639648, f_iou 0.460400253534317: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 38 | loss 1.2147893905639648, f_iou 0.460400253534317: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 38 | loss 0.7261912226676941, f_iou 0.5120329260826111: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 38 | loss 0.7261912226676941, f_iou 0.5120329260826111: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 38 | loss 0.41772374510765076, f_iou 0.5576059818267822: 12%|████▍ | 9/74 [00:13<00:57, 1.13it/s]
epoch 38 | loss 0.41772374510765076, f_iou 0.5576059818267822: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 38 | loss 3.2748632431030273, f_iou 0.5497326254844666: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 38 | loss 3.2748632431030273, f_iou 0.5497326254844666: 15%|█████▎ | 11/74 [00:13<00:51, 1.21it/s]
epoch 38 | loss 2.506866455078125, f_iou 0.5516065359115601: 15%|█████▌ | 11/74 [00:14<00:51, 1.21it/s]
epoch 38 | loss 2.506866455078125, f_iou 0.5516065359115601: 16%|██████ | 12/74 [00:14<00:49, 1.26it/s]
epoch 38 | loss 1.1981604099273682, f_iou 0.5446365475654602: 16%|█████▊ | 12/74 [00:15<00:49, 1.26it/s]
epoch 38 | loss 1.1981604099273682, f_iou 0.5446365475654602: 18%|██████▎ | 13/74 [00:15<00:46, 1.30it/s]
epoch 38 | loss 0.624708354473114, f_iou 0.5743629336357117: 18%|██████▌ | 13/74 [00:16<00:46, 1.30it/s]
epoch 38 | loss 0.624708354473114, f_iou 0.5743629336357117: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 38 | loss 1.978940486907959, f_iou 0.5732467174530029: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 38 | loss 1.978940486907959, f_iou 0.5732467174530029: 20%|███████▌ | 15/74 [00:16<00:43, 1.34it/s]
epoch 38 | loss 3.8576250076293945, f_iou 0.584088921546936: 20%|███████▌ | 15/74 [00:17<00:43, 1.34it/s]
epoch 38 | loss 3.8576250076293945, f_iou 0.584088921546936: 22%|████████ | 16/74 [00:17<00:43, 1.32it/s]
epoch 38 | loss 4.072920322418213, f_iou 0.5602874755859375: 22%|████████ | 16/74 [00:18<00:43, 1.32it/s]
epoch 38 | loss 4.072920322418213, f_iou 0.5602874755859375: 23%|████████▌ | 17/74 [00:18<00:43, 1.31it/s]
epoch 38 | loss 1.8048936128616333, f_iou 0.5701248645782471: 23%|████████▎ | 17/74 [00:19<00:43, 1.31it/s]
epoch 38 | loss 1.8048936128616333, f_iou 0.5701248645782471: 24%|████████▊ | 18/74 [00:19<00:42, 1.30it/s]
epoch 38 | loss 1.6998677253723145, f_iou 0.5883677005767822: 24%|████████▊ | 18/74 [00:19<00:42, 1.30it/s]
epoch 38 | loss 1.6998677253723145, f_iou 0.5883677005767822: 26%|█████████▏ | 19/74 [00:19<00:41, 1.33it/s]
epoch 38 | loss 0.0, f_iou 0.6057144403457642: 26%|█████████████ | 19/74 [00:20<00:41, 1.33it/s]
epoch 38 | loss 0.0, f_iou 0.6057144403457642: 27%|█████████████▊ | 20/74 [00:20<00:40, 1.35it/s]
epoch 38 | loss 1.0115174055099487, f_iou 0.612334132194519: 27%|██████████ | 20/74 [00:21<00:40, 1.35it/s]
epoch 38 | loss 1.0115174055099487, f_iou 0.612334132194519: 28%|██████████▌ | 21/74 [00:21<00:39, 1.36it/s]
epoch 38 | loss 0.9508247375488281, f_iou 0.6275043487548828: 28%|██████████▏ | 21/74 [00:21<00:39, 1.36it/s]
epoch 38 | loss 0.9508247375488281, f_iou 0.6275043487548828: 30%|██████████▋ | 22/74 [00:21<00:37, 1.37it/s]
epoch 38 | loss 0.7222154140472412, f_iou 0.6230171322822571: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 38 | loss 0.7222154140472412, f_iou 0.6230171322822571: 31%|███████████▏ | 23/74 [00:22<00:37, 1.38it/s]
epoch 38 | loss 6.78398323059082, f_iou 0.5994141697883606: 31%|███████████▊ | 23/74 [00:23<00:37, 1.38it/s]
epoch 38 | loss 6.78398323059082, f_iou 0.5994141697883606: 32%|████████████▎ | 24/74 [00:23<00:36, 1.39it/s]
epoch 38 | loss 1.3785014152526855, f_iou 0.6096299886703491: 32%|███████████▋ | 24/74 [00:24<00:36, 1.39it/s]
epoch 38 | loss 1.3785014152526855, f_iou 0.6096299886703491: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 38 | loss 0.5853997468948364, f_iou 0.6002233624458313: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 38 | loss 0.5853997468948364, f_iou 0.6002233624458313: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 38 | loss 1.166703701019287, f_iou 0.6048729419708252: 35%|█████████████ | 26/74 [00:25<00:34, 1.39it/s]
epoch 38 | loss 1.166703701019287, f_iou 0.6048729419708252: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 38 | loss 1.6178804636001587, f_iou 0.5841538906097412: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 38 | loss 1.6178804636001587, f_iou 0.5841538906097412: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 38 | loss 8.19487190246582, f_iou 0.5704283714294434: 38%|██████████████▍ | 28/74 [00:26<00:33, 1.39it/s]
epoch 38 | loss 8.19487190246582, f_iou 0.5704283714294434: 39%|██████████████▉ | 29/74 [00:26<00:32, 1.39it/s]
epoch 38 | loss 0.0, f_iou 0.581871509552002: 39%|████████████████████▍ | 29/74 [00:27<00:32, 1.39it/s]
epoch 38 | loss 0.0, f_iou 0.581871509552002: 41%|█████████████████████ | 30/74 [00:27<00:31, 1.39it/s]
epoch 38 | loss 0.41747409105300903, f_iou 0.5946722030639648: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.39it/s]
epoch 38 | loss 0.41747409105300903, f_iou 0.5946722030639648: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.39it/s]
epoch 38 | loss 2.7286906242370605, f_iou 0.582459568977356: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.39it/s]
epoch 38 | loss 2.7286906242370605, f_iou 0.582459568977356: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 38 | loss 0.8744542002677917, f_iou 0.5747562050819397: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 38 | loss 0.8744542002677917, f_iou 0.5747562050819397: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 38 | loss 1.5839554071426392, f_iou 0.5844542384147644: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 38 | loss 1.5839554071426392, f_iou 0.5844542384147644: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 38 | loss 0.9196438789367676, f_iou 0.5936392545700073: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 38 | loss 0.9196438789367676, f_iou 0.5936392545700073: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 38 | loss 2.9525949954986572, f_iou 0.5932247638702393: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 38 | loss 2.9525949954986572, f_iou 0.5932247638702393: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 38 | loss 5.133901119232178, f_iou 0.5815628170967102: 49%|██████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 38 | loss 5.133901119232178, f_iou 0.5815628170967102: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 38 | loss 4.0360307693481445, f_iou 0.5762881636619568: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 38 | loss 4.0360307693481445, f_iou 0.5762881636619568: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 38 | loss 1.6467387676239014, f_iou 0.5658787488937378: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 38 | loss 1.6467387676239014, f_iou 0.5658787488937378: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 38 | loss 5.643914699554443, f_iou 0.553521454334259: 53%|████████████████████ | 39/74 [00:34<00:25, 1.39it/s]
epoch 38 | loss 5.643914699554443, f_iou 0.553521454334259: 54%|████████████████████▌ | 40/74 [00:34<00:24, 1.39it/s]
epoch 38 | loss 1.9168633222579956, f_iou 0.5478458404541016: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 38 | loss 1.9168633222579956, f_iou 0.5478458404541016: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 38 | loss 2.4774324893951416, f_iou 0.5476233959197998: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 38 | loss 2.4774324893951416, f_iou 0.5476233959197998: 57%|████████████████████▍ | 42/74 [00:36<00:22, 1.40it/s]
epoch 38 | loss 3.945810556411743, f_iou 0.5440201163291931: 57%|█████████████████████ | 42/74 [00:37<00:22, 1.40it/s]
epoch 38 | loss 3.945810556411743, f_iou 0.5440201163291931: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.40it/s]
epoch 38 | loss 8.777742385864258, f_iou 0.5435059666633606: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.40it/s]
epoch 38 | loss 8.777742385864258, f_iou 0.5435059666633606: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.40it/s]
epoch 38 | loss 2.996044397354126, f_iou 0.5386041402816772: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.40it/s]
epoch 38 | loss 2.996044397354126, f_iou 0.5386041402816772: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.40it/s]
epoch 38 | loss 0.6789413094520569, f_iou 0.5475087761878967: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.40it/s]
epoch 38 | loss 0.6789413094520569, f_iou 0.5475087761878967: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 38 | loss 1.619490623474121, f_iou 0.5517553687095642: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 38 | loss 1.619490623474121, f_iou 0.5517553687095642: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.37it/s]
epoch 38 | loss 3.7899930477142334, f_iou 0.54991614818573: 64%|████████████████████████▏ | 47/74 [00:40<00:19, 1.37it/s]
epoch 38 | loss 3.7899930477142334, f_iou 0.54991614818573: 65%|████████████████████████▋ | 48/74 [00:40<00:18, 1.37it/s]
epoch 38 | loss 2.3909215927124023, f_iou 0.552007794380188: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.37it/s]
epoch 38 | loss 2.3909215927124023, f_iou 0.552007794380188: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.37it/s]
epoch 38 | loss 1.71470308303833, f_iou 0.5563649535179138: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.37it/s]
epoch 38 | loss 1.71470308303833, f_iou 0.5563649535179138: 68%|█████████████████████████▋ | 50/74 [00:42<00:17, 1.37it/s]
epoch 38 | loss 4.354360103607178, f_iou 0.5521527528762817: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.37it/s]
epoch 38 | loss 4.354360103607178, f_iou 0.5521527528762817: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.37it/s]
epoch 38 | loss 2.074547290802002, f_iou 0.5465034246444702: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.37it/s]
epoch 38 | loss 2.074547290802002, f_iou 0.5465034246444702: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 38 | loss 0.8795731067657471, f_iou 0.5531039237976074: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 38 | loss 0.8795731067657471, f_iou 0.5531039237976074: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.34it/s]
epoch 38 | loss 2.0711026191711426, f_iou 0.5470573902130127: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.34it/s]
epoch 38 | loss 2.0711026191711426, f_iou 0.5470573902130127: 73%|██████████████████████████▎ | 54/74 [00:45<00:15, 1.33it/s]
epoch 38 | loss 1.8633366823196411, f_iou 0.5486761927604675: 73%|██████████████████████████▎ | 54/74 [00:45<00:15, 1.33it/s]
epoch 38 | loss 1.8633366823196411, f_iou 0.5486761927604675: 74%|██████████████████████████▊ | 55/74 [00:45<00:14, 1.32it/s]
epoch 38 | loss 0.9084980487823486, f_iou 0.5550650954246521: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.32it/s]
epoch 38 | loss 0.9084980487823486, f_iou 0.5550650954246521: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.32it/s]
epoch 38 | loss 0.7439872622489929, f_iou 0.5610199570655823: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.32it/s]
epoch 38 | loss 0.7439872622489929, f_iou 0.5610199570655823: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.34it/s]
epoch 38 | loss 5.897912979125977, f_iou 0.557406485080719: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.34it/s]
epoch 38 | loss 5.897912979125977, f_iou 0.557406485080719: 78%|█████████████████████████████▊ | 58/74 [00:48<00:11, 1.35it/s]
epoch 38 | loss 3.971334218978882, f_iou 0.5563329458236694: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.35it/s]
epoch 38 | loss 3.971334218978882, f_iou 0.5563329458236694: 80%|█████████████████████████████▌ | 59/74 [00:48<00:11, 1.36it/s]
epoch 38 | loss 1.511976718902588, f_iou 0.556675136089325: 80%|██████████████████████████████▎ | 59/74 [00:49<00:11, 1.36it/s]
epoch 38 | loss 1.511976718902588, f_iou 0.556675136089325: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.37it/s]
epoch 38 | loss 0.7294429540634155, f_iou 0.5634468793869019: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 38 | loss 0.7294429540634155, f_iou 0.5634468793869019: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.37it/s]
epoch 38 | loss 1.4773117303848267, f_iou 0.5674787759780884: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.37it/s]
epoch 38 | loss 1.4773117303848267, f_iou 0.5674787759780884: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 38 | loss 2.3375728130340576, f_iou 0.5644997358322144: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 38 | loss 2.3375728130340576, f_iou 0.5644997358322144: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 38 | loss 0.8570213317871094, f_iou 0.5700819492340088: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 38 | loss 0.8570213317871094, f_iou 0.5700819492340088: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 38 | loss 2.282135009765625, f_iou 0.5667353272438049: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 38 | loss 2.282135009765625, f_iou 0.5667353272438049: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 38 | loss 0.6559253931045532, f_iou 0.5724754929542542: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 38 | loss 0.6559253931045532, f_iou 0.5724754929542542: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.37it/s]
epoch 38 | loss 3.4195268154144287, f_iou 0.5699456930160522: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 38 | loss 3.4195268154144287, f_iou 0.5699456930160522: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.34it/s]
epoch 38 | loss 1.8033649921417236, f_iou 0.5658820867538452: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.34it/s]
epoch 38 | loss 1.8033649921417236, f_iou 0.5658820867538452: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.33it/s]
epoch 38 | loss 0.2857033312320709, f_iou 0.5689222812652588: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.33it/s]
epoch 38 | loss 0.2857033312320709, f_iou 0.5689222812652588: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.35it/s]
epoch 38 | loss 1.6858057975769043, f_iou 0.5642626285552979: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.35it/s]
epoch 38 | loss 1.6858057975769043, f_iou 0.5642626285552979: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.37it/s]
epoch 38 | loss 2.226487636566162, f_iou 0.5641542673110962: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.37it/s]
epoch 38 | loss 2.226487636566162, f_iou 0.5641542673110962: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.38it/s]
epoch 38 | loss 1.6036279201507568, f_iou 0.5655208826065063: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.38it/s]
epoch 38 | loss 1.6036279201507568, f_iou 0.5655208826065063: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.34it/s]
epoch 38 | loss 4.812953948974609, f_iou 0.5620497465133667: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.34it/s]
epoch 38 | loss 4.812953948974609, f_iou 0.5620497465133667: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.36it/s]
epoch 38 | loss 0.5842475891113281, f_iou 0.5674232244491577: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.36it/s]
epoch 38 | loss 0.5842475891113281, f_iou 0.5674232244491577: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.37it/s]
epoch 38 | loss 0.5842475891113281, f_iou 0.5674232244491577: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 38 | valid.f_iou 0.6656000018119812, valid.f_f-score 0.81909: 0%| | 0/16 [00:05, ?it/s]
epoch 38 | valid.f_iou 0.6656000018119812, valid.f_f-score 0.81909: 6%|█▉ | 1/16 [00:05<01:27, 5.85s/it]
epoch 38 | valid.f_iou 0.6094599962234497, valid.f_f-score 0.82986: 6%|█▉ | 1/16 [00:06<01:27, 5.85s/it]
epoch 38 | valid.f_iou 0.6094599962234497, valid.f_f-score 0.82986: 12%|███▉ | 2/16 [00:06<00:37, 2.68s/it]
epoch 38 | valid.f_iou 0.48247000575065613, valid.f_f-score 0.77043: 12%|███▊ | 2/16 [00:06<00:37, 2.68s/it]
epoch 38 | valid.f_iou 0.48247000575065613, valid.f_f-score 0.77043: 19%|█████▋ | 3/16 [00:06<00:21, 1.66s/it]
epoch 38 | valid.f_iou 0.5199599862098694, valid.f_f-score 0.77436: 19%|█████▊ | 3/16 [00:07<00:21, 1.66s/it]
epoch 38 | valid.f_iou 0.5199599862098694, valid.f_f-score 0.77436: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 38 | valid.f_iou 0.5167400240898132, valid.f_f-score 0.76794: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 38 | valid.f_iou 0.5167400240898132, valid.f_f-score 0.76794: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 38 | valid.f_iou 0.4883899986743927, valid.f_f-score 0.73626: 31%|█████████▋ | 5/16 [00:08<00:09, 1.11it/s]
epoch 38 | valid.f_iou 0.4883899986743927, valid.f_f-score 0.73626: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 38 | valid.f_iou 0.5030199885368347, valid.f_f-score 0.74555: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 38 | valid.f_iou 0.5030199885368347, valid.f_f-score 0.74555: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 38 | valid.f_iou 0.48747000098228455, valid.f_f-score 0.7319: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 38 | valid.f_iou 0.48747000098228455, valid.f_f-score 0.7319: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 38 | valid.f_iou 0.49546998739242554, valid.f_f-score 0.72214: 50%|███████████████ | 8/16 [00:09<00:04, 1.76it/s]
epoch 38 | valid.f_iou 0.49546998739242554, valid.f_f-score 0.72214: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.01it/s]
epoch 38 | valid.f_iou 0.47986000776290894, valid.f_f-score 0.72476: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.01it/s]
epoch 38 | valid.f_iou 0.47986000776290894, valid.f_f-score 0.72476: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.19it/s]
epoch 38 | valid.f_iou 0.47560998797416687, valid.f_f-score 0.71251: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.19it/s]
epoch 38 | valid.f_iou 0.47560998797416687, valid.f_f-score 0.71251: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.33it/s]
epoch 38 | valid.f_iou 0.4945699870586395, valid.f_f-score 0.72924: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.33it/s]
epoch 38 | valid.f_iou 0.4945699870586395, valid.f_f-score 0.72924: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 38 | valid.f_iou 0.5164399743080139, valid.f_f-score 0.74245: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 38 | valid.f_iou 0.5164399743080139, valid.f_f-score 0.74245: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 38 | valid.f_iou 0.5062800049781799, valid.f_f-score 0.73199: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.51it/s]
epoch 38 | valid.f_iou 0.5062800049781799, valid.f_f-score 0.73199: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.57it/s]
epoch 38 | valid.f_iou 0.5148699879646301, valid.f_f-score 0.73256: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.57it/s]
epoch 38 | valid.f_iou 0.5148699879646301, valid.f_f-score 0.73256: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 38 | valid.f_iou 0.5216100215911865, valid.f_f-score 0.73035: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 38 | valid.f_iou 0.5216100215911865, valid.f_f-score 0.73035: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 38 | valid.f_iou 0.5216100215911865, valid.f_f-score 0.73035: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 38 | valid.f_iou 0.6668999791145325, valid.f_f-score 0.71093: 0%| | 0/16 [00:05, ?it/s]
epoch 38 | valid.f_iou 0.6668999791145325, valid.f_f-score 0.71093: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 38 | valid.f_iou 0.7442499995231628, valid.f_f-score 0.82313: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 38 | valid.f_iou 0.7442499995231628, valid.f_f-score 0.82313: 12%|███▉ | 2/16 [00:05<00:35, 2.52s/it]
epoch 38 | valid.f_iou 0.6503599882125854, valid.f_f-score 0.77726: 12%|███▉ | 2/16 [00:06<00:35, 2.52s/it]
epoch 38 | valid.f_iou 0.6503599882125854, valid.f_f-score 0.77726: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 38 | valid.f_iou 0.644070029258728, valid.f_f-score 0.74643: 19%|██████ | 3/16 [00:06<00:20, 1.57s/it]
epoch 38 | valid.f_iou 0.644070029258728, valid.f_f-score 0.74643: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 38 | valid.f_iou 0.6211199760437012, valid.f_f-score 0.71555: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 38 | valid.f_iou 0.6211199760437012, valid.f_f-score 0.71555: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 38 | valid.f_iou 0.608460009098053, valid.f_f-score 0.69503: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 38 | valid.f_iou 0.608460009098053, valid.f_f-score 0.69503: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 38 | valid.f_iou 0.6212499737739563, valid.f_f-score 0.71524: 38%|███████████▋ | 6/16 [00:08<00:07, 1.39it/s]
epoch 38 | valid.f_iou 0.6212499737739563, valid.f_f-score 0.71524: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 38 | valid.f_iou 0.6092000007629395, valid.f_f-score 0.70266: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 38 | valid.f_iou 0.6092000007629395, valid.f_f-score 0.70266: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 38 | valid.f_iou 0.6354100108146667, valid.f_f-score 0.72611: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 38 | valid.f_iou 0.6354100108146667, valid.f_f-score 0.72611: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 38 | valid.f_iou 0.6467300057411194, valid.f_f-score 0.74503: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 38 | valid.f_iou 0.6467300057411194, valid.f_f-score 0.74503: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 38 | valid.f_iou 0.6451600193977356, valid.f_f-score 0.73645: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 38 | valid.f_iou 0.6451600193977356, valid.f_f-score 0.73645: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.16it/s]
epoch 38 | valid.f_iou 0.6601200103759766, valid.f_f-score 0.75166: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.16it/s]
epoch 38 | valid.f_iou 0.6601200103759766, valid.f_f-score 0.75166: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.29it/s]
epoch 38 | valid.f_iou 0.672540009021759, valid.f_f-score 0.7617: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.29it/s]
epoch 38 | valid.f_iou 0.672540009021759, valid.f_f-score 0.7617: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.39it/s]
epoch 38 | valid.f_iou 0.6603400111198425, valid.f_f-score 0.75329: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 38 | valid.f_iou 0.6603400111198425, valid.f_f-score 0.75329: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 38 | valid.f_iou 0.6646699905395508, valid.f_f-score 0.76019: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.50it/s]
epoch 38 | valid.f_iou 0.6646699905395508, valid.f_f-score 0.76019: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 38 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.76681: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 38 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.76681: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 38 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.76681: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 38 | valid.f_iou 0.6190000176429749, valid.f_f-score 0.67102: 0%| | 0/16 [00:05, ?it/s]
epoch 38 | valid.f_iou 0.6190000176429749, valid.f_f-score 0.67102: 6%|█▉ | 1/16 [00:05<01:16, 5.08s/it]
epoch 38 | valid.f_iou 0.658519983291626, valid.f_f-score 0.74325: 6%|██ | 1/16 [00:05<01:16, 5.08s/it]
epoch 38 | valid.f_iou 0.658519983291626, valid.f_f-score 0.74325: 12%|████ | 2/16 [00:05<00:32, 2.33s/it]
epoch 38 | valid.f_iou 0.5932000279426575, valid.f_f-score 0.72401: 12%|███▉ | 2/16 [00:05<00:32, 2.33s/it]
epoch 38 | valid.f_iou 0.5932000279426575, valid.f_f-score 0.72401: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 38 | valid.f_iou 0.5783200263977051, valid.f_f-score 0.67205: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 38 | valid.f_iou 0.5783200263977051, valid.f_f-score 0.67205: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 38 | valid.f_iou 0.5733299851417542, valid.f_f-score 0.65606: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 38 | valid.f_iou 0.5733299851417542, valid.f_f-score 0.65606: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 38 | valid.f_iou 0.5698400139808655, valid.f_f-score 0.64545: 31%|█████████▋ | 5/16 [00:07<00:08, 1.27it/s]
epoch 38 | valid.f_iou 0.5698400139808655, valid.f_f-score 0.64545: 38%|███████████▋ | 6/16 [00:07<00:06, 1.53it/s]
epoch 38 | valid.f_iou 0.5925800204277039, valid.f_f-score 0.67274: 38%|███████████▋ | 6/16 [00:07<00:06, 1.53it/s]
epoch 38 | valid.f_iou 0.5925800204277039, valid.f_f-score 0.67274: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.76it/s]
epoch 38 | valid.f_iou 0.584119975566864, valid.f_f-score 0.66547: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 38 | valid.f_iou 0.584119975566864, valid.f_f-score 0.66547: 50%|████████████████ | 8/16 [00:07<00:04, 1.93it/s]
epoch 38 | valid.f_iou 0.6164000034332275, valid.f_f-score 0.69305: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.93it/s]
epoch 38 | valid.f_iou 0.6164000034332275, valid.f_f-score 0.69305: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 38 | valid.f_iou 0.6270599961280823, valid.f_f-score 0.71169: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 38 | valid.f_iou 0.6270599961280823, valid.f_f-score 0.71169: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.29it/s]
epoch 38 | valid.f_iou 0.6075299978256226, valid.f_f-score 0.69103: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.29it/s]
epoch 38 | valid.f_iou 0.6075299978256226, valid.f_f-score 0.69103: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.42it/s]
epoch 38 | valid.f_iou 0.6256300210952759, valid.f_f-score 0.71003: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 38 | valid.f_iou 0.6256300210952759, valid.f_f-score 0.71003: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 38 | valid.f_iou 0.6376699805259705, valid.f_f-score 0.72087: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 38 | valid.f_iou 0.6376699805259705, valid.f_f-score 0.72087: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 38 | valid.f_iou 0.6245899796485901, valid.f_f-score 0.70971: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 38 | valid.f_iou 0.6245899796485901, valid.f_f-score 0.70971: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.63it/s]
epoch 38 | valid.f_iou 0.6312999725341797, valid.f_f-score 0.71951: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 38 | valid.f_iou 0.6312999725341797, valid.f_f-score 0.71951: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 38 | valid.f_iou 0.6366999745368958, valid.f_f-score 0.7237: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.66it/s]
epoch 38 | valid.f_iou 0.6366999745368958, valid.f_f-score 0.7237: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 38 | valid.f_iou 0.6366999745368958, valid.f_f-score 0.7237: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 39 | loss 3.717911720275879, f_iou 0.3520561456680298: 0%| | 0/74 [00:06, ?it/s]
epoch 39 | loss 3.717911720275879, f_iou 0.3520561456680298: 1%|▌ | 1/74 [00:06<07:44, 6.37s/it]
epoch 39 | loss 2.438600540161133, f_iou 0.21661454439163208: 1%|▌ | 1/74 [00:07<07:44, 6.37s/it]
epoch 39 | loss 2.438600540161133, f_iou 0.21661454439163208: 3%|█ | 2/74 [00:07<03:43, 3.10s/it]
epoch 39 | loss 1.1495469808578491, f_iou 0.4294450283050537: 3%|█ | 2/74 [00:07<03:43, 3.10s/it]
epoch 39 | loss 1.1495469808578491, f_iou 0.4294450283050537: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 39 | loss 2.774794101715088, f_iou 0.4376363456249237: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 39 | loss 2.774794101715088, f_iou 0.4376363456249237: 5%|██ | 4/74 [00:08<01:48, 1.55s/it]
epoch 39 | loss 3.329291343688965, f_iou 0.44919395446777344: 5%|██ | 4/74 [00:09<01:48, 1.55s/it]
epoch 39 | loss 3.329291343688965, f_iou 0.44919395446777344: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 39 | loss 1.5529022216796875, f_iou 0.5090493559837341: 7%|██▌ | 5/74 [00:10<01:28, 1.28s/it]
epoch 39 | loss 1.5529022216796875, f_iou 0.5090493559837341: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 39 | loss 0.9936040639877319, f_iou 0.5563453435897827: 8%|███ | 6/74 [00:11<01:15, 1.11s/it]
epoch 39 | loss 0.9936040639877319, f_iou 0.5563453435897827: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 39 | loss 1.1008031368255615, f_iou 0.5056340098381042: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 39 | loss 1.1008031368255615, f_iou 0.5056340098381042: 11%|████ | 8/74 [00:11<00:59, 1.10it/s]
epoch 39 | loss 3.3443145751953125, f_iou 0.4560754597187042: 11%|████ | 8/74 [00:12<00:59, 1.10it/s]
epoch 39 | loss 3.3443145751953125, f_iou 0.4560754597187042: 12%|████▌ | 9/74 [00:12<00:55, 1.16it/s]
epoch 39 | loss 2.4583144187927246, f_iou 0.45322781801223755: 12%|████▍ | 9/74 [00:13<00:55, 1.16it/s]
epoch 39 | loss 2.4583144187927246, f_iou 0.45322781801223755: 14%|████▋ | 10/74 [00:13<00:53, 1.19it/s]
epoch 39 | loss 1.0162932872772217, f_iou 0.4796483516693115: 14%|████▊ | 10/74 [00:14<00:53, 1.19it/s]
epoch 39 | loss 1.0162932872772217, f_iou 0.4796483516693115: 15%|█████▎ | 11/74 [00:14<00:50, 1.24it/s]
epoch 39 | loss 1.1159594058990479, f_iou 0.5198867321014404: 15%|█████▎ | 11/74 [00:14<00:50, 1.24it/s]
epoch 39 | loss 1.1159594058990479, f_iou 0.5198867321014404: 16%|█████▊ | 12/74 [00:14<00:48, 1.28it/s]
epoch 39 | loss 1.757824182510376, f_iou 0.5237013101577759: 16%|██████ | 12/74 [00:15<00:48, 1.28it/s]
epoch 39 | loss 1.757824182510376, f_iou 0.5237013101577759: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 39 | loss 1.9255292415618896, f_iou 0.5095406770706177: 18%|██████▎ | 13/74 [00:16<00:46, 1.32it/s]
epoch 39 | loss 1.9255292415618896, f_iou 0.5095406770706177: 19%|██████▊ | 14/74 [00:16<00:44, 1.35it/s]
epoch 39 | loss 2.7591099739074707, f_iou 0.48185861110687256: 19%|██████▌ | 14/74 [00:16<00:44, 1.35it/s]
epoch 39 | loss 2.7591099739074707, f_iou 0.48185861110687256: 20%|███████ | 15/74 [00:16<00:43, 1.36it/s]
epoch 39 | loss 1.2910640239715576, f_iou 0.5082393288612366: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 39 | loss 1.2910640239715576, f_iou 0.5082393288612366: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 39 | loss 0.5620344281196594, f_iou 0.5343838334083557: 22%|███████▊ | 16/74 [00:18<00:42, 1.37it/s]
epoch 39 | loss 0.5620344281196594, f_iou 0.5343838334083557: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 39 | loss 4.001403331756592, f_iou 0.551388144493103: 23%|████████▋ | 17/74 [00:19<00:41, 1.37it/s]
epoch 39 | loss 4.001403331756592, f_iou 0.551388144493103: 24%|█████████▏ | 18/74 [00:19<00:40, 1.38it/s]
epoch 39 | loss 3.373426675796509, f_iou 0.5547864437103271: 24%|█████████ | 18/74 [00:19<00:40, 1.38it/s]
epoch 39 | loss 3.373426675796509, f_iou 0.5547864437103271: 26%|█████████▌ | 19/74 [00:19<00:39, 1.38it/s]
epoch 39 | loss 1.6032307147979736, f_iou 0.5619484186172485: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 39 | loss 1.6032307147979736, f_iou 0.5619484186172485: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 39 | loss 1.1319527626037598, f_iou 0.5738548040390015: 27%|█████████▋ | 20/74 [00:21<00:38, 1.39it/s]
epoch 39 | loss 1.1319527626037598, f_iou 0.5738548040390015: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 39 | loss 2.5324299335479736, f_iou 0.5689598321914673: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 39 | loss 2.5324299335479736, f_iou 0.5689598321914673: 30%|██████████▋ | 22/74 [00:21<00:37, 1.39it/s]
epoch 39 | loss 0.8696922063827515, f_iou 0.5803021788597107: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 39 | loss 0.8696922063827515, f_iou 0.5803021788597107: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 39 | loss 1.927558183670044, f_iou 0.5905815362930298: 31%|███████████▌ | 23/74 [00:23<00:36, 1.39it/s]
epoch 39 | loss 1.927558183670044, f_iou 0.5905815362930298: 32%|████████████ | 24/74 [00:23<00:35, 1.39it/s]
epoch 39 | loss 2.7229509353637695, f_iou 0.5921098589897156: 32%|███████████▋ | 24/74 [00:24<00:35, 1.39it/s]
epoch 39 | loss 2.7229509353637695, f_iou 0.5921098589897156: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 39 | loss 1.4505637884140015, f_iou 0.602401852607727: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 39 | loss 1.4505637884140015, f_iou 0.602401852607727: 35%|█████████████ | 26/74 [00:24<00:34, 1.40it/s]
epoch 39 | loss 0.8834861516952515, f_iou 0.5949651002883911: 35%|████████████▋ | 26/74 [00:25<00:34, 1.40it/s]
epoch 39 | loss 0.8834861516952515, f_iou 0.5949651002883911: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 39 | loss 7.404529571533203, f_iou 0.5755131840705872: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.39it/s]
epoch 39 | loss 7.404529571533203, f_iou 0.5755131840705872: 38%|██████████████ | 28/74 [00:26<00:32, 1.39it/s]
epoch 39 | loss 0.21875, f_iou 0.5895639061927795: 38%|█████████████████▊ | 28/74 [00:26<00:32, 1.39it/s]
epoch 39 | loss 0.21875, f_iou 0.5895639061927795: 39%|██████████████████▍ | 29/74 [00:26<00:32, 1.40it/s]
epoch 39 | loss 8.350462913513184, f_iou 0.5949740409851074: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.40it/s]
epoch 39 | loss 8.350462913513184, f_iou 0.5949740409851074: 41%|███████████████ | 30/74 [00:27<00:31, 1.39it/s]
epoch 39 | loss 4.014358997344971, f_iou 0.5876851081848145: 41%|███████████████ | 30/74 [00:28<00:31, 1.39it/s]
epoch 39 | loss 4.014358997344971, f_iou 0.5876851081848145: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.39it/s]
epoch 39 | loss 0.9300249814987183, f_iou 0.5971831679344177: 42%|███████████████ | 31/74 [00:29<00:31, 1.39it/s]
epoch 39 | loss 0.9300249814987183, f_iou 0.5971831679344177: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 39 | loss 0.6173895597457886, f_iou 0.6056198477745056: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 39 | loss 0.6173895597457886, f_iou 0.6056198477745056: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 39 | loss 1.2437361478805542, f_iou 0.6038632988929749: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 39 | loss 1.2437361478805542, f_iou 0.6038632988929749: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 39 | loss 3.1577303409576416, f_iou 0.6088091135025024: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 39 | loss 3.1577303409576416, f_iou 0.6088091135025024: 47%|█████████████████ | 35/74 [00:31<00:27, 1.40it/s]
epoch 39 | loss 1.367194414138794, f_iou 0.6140183210372925: 47%|█████████████████▌ | 35/74 [00:32<00:27, 1.40it/s]
epoch 39 | loss 1.367194414138794, f_iou 0.6140183210372925: 49%|██████████████████ | 36/74 [00:32<00:27, 1.40it/s]
epoch 39 | loss 2.446549892425537, f_iou 0.6177009344100952: 49%|██████████████████ | 36/74 [00:32<00:27, 1.40it/s]
epoch 39 | loss 2.446549892425537, f_iou 0.6177009344100952: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.40it/s]
epoch 39 | loss 1.7484806776046753, f_iou 0.6161388754844666: 50%|██████████████████ | 37/74 [00:33<00:26, 1.40it/s]
epoch 39 | loss 1.7484806776046753, f_iou 0.6161388754844666: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 39 | loss 1.379747748374939, f_iou 0.6090057492256165: 51%|███████████████████ | 38/74 [00:34<00:25, 1.39it/s]
epoch 39 | loss 1.379747748374939, f_iou 0.6090057492256165: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 39 | loss 1.4708458185195923, f_iou 0.6153237223625183: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 39 | loss 1.4708458185195923, f_iou 0.6153237223625183: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 39 | loss 2.0111083984375, f_iou 0.6144675612449646: 54%|█████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 39 | loss 2.0111083984375, f_iou 0.6144675612449646: 55%|█████████████████████▌ | 41/74 [00:35<00:23, 1.39it/s]
epoch 39 | loss 2.6873252391815186, f_iou 0.6139153242111206: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 39 | loss 2.6873252391815186, f_iou 0.6139153242111206: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.38it/s]
epoch 39 | loss 1.3068351745605469, f_iou 0.6170955896377563: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 39 | loss 1.3068351745605469, f_iou 0.6170955896377563: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 39 | loss 1.3489505052566528, f_iou 0.6034315228462219: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 39 | loss 1.3489505052566528, f_iou 0.6034315228462219: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.38it/s]
epoch 39 | loss 6.181588649749756, f_iou 0.6014134883880615: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.38it/s]
epoch 39 | loss 6.181588649749756, f_iou 0.6014134883880615: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 39 | loss 1.3220340013504028, f_iou 0.5883398056030273: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 39 | loss 1.3220340013504028, f_iou 0.5883398056030273: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 39 | loss 3.072638988494873, f_iou 0.5877115726470947: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 39 | loss 3.072638988494873, f_iou 0.5877115726470947: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.39it/s]
epoch 39 | loss 0.6791993379592896, f_iou 0.5951250791549683: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 39 | loss 0.6791993379592896, f_iou 0.5951250791549683: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 39 | loss 2.365924835205078, f_iou 0.5950681567192078: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 39 | loss 2.365924835205078, f_iou 0.5950681567192078: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.39it/s]
epoch 39 | loss 1.8903814554214478, f_iou 0.597718358039856: 66%|████████████████████████▌ | 49/74 [00:42<00:17, 1.39it/s]
epoch 39 | loss 1.8903814554214478, f_iou 0.597718358039856: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.40it/s]
epoch 39 | loss 1.2780604362487793, f_iou 0.5948430299758911: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 39 | loss 1.2780604362487793, f_iou 0.5948430299758911: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 39 | loss 3.3698489665985107, f_iou 0.5859628915786743: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 39 | loss 3.3698489665985107, f_iou 0.5859628915786743: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.40it/s]
epoch 39 | loss 4.005095481872559, f_iou 0.5858756303787231: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.40it/s]
epoch 39 | loss 4.005095481872559, f_iou 0.5858756303787231: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 39 | loss 3.8991189002990723, f_iou 0.5769516229629517: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 39 | loss 3.8991189002990723, f_iou 0.5769516229629517: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.40it/s]
epoch 39 | loss 0.3772040605545044, f_iou 0.5829797983169556: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 39 | loss 0.3772040605545044, f_iou 0.5829797983169556: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 39 | loss 1.8538076877593994, f_iou 0.5842512845993042: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 39 | loss 1.8538076877593994, f_iou 0.5842512845993042: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.40it/s]
epoch 39 | loss 1.380225658416748, f_iou 0.5742436647415161: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.40it/s]
epoch 39 | loss 1.380225658416748, f_iou 0.5742436647415161: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.40it/s]
epoch 39 | loss 2.042983293533325, f_iou 0.5720747113227844: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.40it/s]
epoch 39 | loss 2.042983293533325, f_iou 0.5720747113227844: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.39it/s]
epoch 39 | loss 2.3826098442077637, f_iou 0.5739591717720032: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 39 | loss 2.3826098442077637, f_iou 0.5739591717720032: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 39 | loss 5.219746112823486, f_iou 0.5670575499534607: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 39 | loss 5.219746112823486, f_iou 0.5670575499534607: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.39it/s]
epoch 39 | loss 3.689356565475464, f_iou 0.5584474802017212: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 39 | loss 3.689356565475464, f_iou 0.5584474802017212: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 39 | loss 2.5445101261138916, f_iou 0.5593714714050293: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 39 | loss 2.5445101261138916, f_iou 0.5593714714050293: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.40it/s]
epoch 39 | loss 1.0809139013290405, f_iou 0.5644406676292419: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.40it/s]
epoch 39 | loss 1.0809139013290405, f_iou 0.5644406676292419: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 39 | loss 1.1877763271331787, f_iou 0.5693877935409546: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 39 | loss 1.1877763271331787, f_iou 0.5693877935409546: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 39 | loss 1.690838098526001, f_iou 0.5740764737129211: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 39 | loss 1.690838098526001, f_iou 0.5740764737129211: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 39 | loss 0.519150972366333, f_iou 0.5801823139190674: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 39 | loss 0.519150972366333, f_iou 0.5801823139190674: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 39 | loss 2.0635743141174316, f_iou 0.578657329082489: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 39 | loss 2.0635743141174316, f_iou 0.578657329082489: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.40it/s]
epoch 39 | loss 1.5759859085083008, f_iou 0.5821870565414429: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.40it/s]
epoch 39 | loss 1.5759859085083008, f_iou 0.5821870565414429: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 39 | loss 2.0390350818634033, f_iou 0.5757148861885071: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 39 | loss 2.0390350818634033, f_iou 0.5757148861885071: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 39 | loss 2.996041774749756, f_iou 0.5695067644119263: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 39 | loss 2.996041774749756, f_iou 0.5695067644119263: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 39 | loss 0.109375, f_iou 0.57529616355896: 95%|█████████████████████████████████████████████▍ | 70/74 [00:57<00:02, 1.41it/s]
epoch 39 | loss 0.109375, f_iou 0.57529616355896: 96%|██████████████████████████████████████████████ | 71/74 [00:57<00:02, 1.41it/s]
epoch 39 | loss 1.285048007965088, f_iou 0.5794311165809631: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 39 | loss 1.285048007965088, f_iou 0.5794311165809631: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 39 | loss 2.0314693450927734, f_iou 0.5725476145744324: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 39 | loss 2.0314693450927734, f_iou 0.5725476145744324: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 39 | loss 2.034888505935669, f_iou 0.5648104548454285: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 39 | loss 2.034888505935669, f_iou 0.5648104548454285: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 39 | loss 2.034888505935669, f_iou 0.5648104548454285: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 39 | valid.f_iou 0.5841599702835083, valid.f_f-score 0.75778: 0%| | 0/16 [00:05, ?it/s]
epoch 39 | valid.f_iou 0.5841599702835083, valid.f_f-score 0.75778: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 39 | valid.f_iou 0.5322099924087524, valid.f_f-score 0.81237: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 39 | valid.f_iou 0.5322099924087524, valid.f_f-score 0.81237: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 39 | valid.f_iou 0.4229399859905243, valid.f_f-score 0.73078: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 39 | valid.f_iou 0.4229399859905243, valid.f_f-score 0.73078: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 39 | valid.f_iou 0.4617899954319, valid.f_f-score 0.74206: 19%|██████▍ | 3/16 [00:06<00:20, 1.56s/it]
epoch 39 | valid.f_iou 0.4617899954319, valid.f_f-score 0.74206: 25%|████████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 39 | valid.f_iou 0.4424099922180176, valid.f_f-score 0.74363: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 39 | valid.f_iou 0.4424099922180176, valid.f_f-score 0.74363: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 39 | valid.f_iou 0.41492998600006104, valid.f_f-score 0.71241: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 39 | valid.f_iou 0.41492998600006104, valid.f_f-score 0.71241: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 39 | valid.f_iou 0.4221999943256378, valid.f_f-score 0.71173: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 39 | valid.f_iou 0.4221999943256378, valid.f_f-score 0.71173: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 39 | valid.f_iou 0.40794000029563904, valid.f_f-score 0.7048: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 39 | valid.f_iou 0.40794000029563904, valid.f_f-score 0.7048: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 39 | valid.f_iou 0.42377999424934387, valid.f_f-score 0.69804: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 39 | valid.f_iou 0.42377999424934387, valid.f_f-score 0.69804: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.00it/s]
epoch 39 | valid.f_iou 0.4113900065422058, valid.f_f-score 0.69989: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.00it/s]
epoch 39 | valid.f_iou 0.4113900065422058, valid.f_f-score 0.69989: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 39 | valid.f_iou 0.42173999547958374, valid.f_f-score 0.69704: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 39 | valid.f_iou 0.42173999547958374, valid.f_f-score 0.69704: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.23it/s]
epoch 39 | valid.f_iou 0.4487600028514862, valid.f_f-score 0.71553: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.23it/s]
epoch 39 | valid.f_iou 0.4487600028514862, valid.f_f-score 0.71553: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 39 | valid.f_iou 0.4616200029850006, valid.f_f-score 0.72899: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 39 | valid.f_iou 0.4616200029850006, valid.f_f-score 0.72899: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 39 | valid.f_iou 0.46459999680519104, valid.f_f-score 0.72559: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 39 | valid.f_iou 0.46459999680519104, valid.f_f-score 0.72559: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 39 | valid.f_iou 0.47297999262809753, valid.f_f-score 0.72632: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 39 | valid.f_iou 0.47297999262809753, valid.f_f-score 0.72632: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 39 | valid.f_iou 0.4869399964809418, valid.f_f-score 0.72731: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 39 | valid.f_iou 0.4869399964809418, valid.f_f-score 0.72731: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 39 | valid.f_iou 0.4869399964809418, valid.f_f-score 0.72731: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 39 | valid.f_iou 0.7685700058937073, valid.f_f-score 0.79647: 0%| | 0/16 [00:04, ?it/s]
epoch 39 | valid.f_iou 0.7685700058937073, valid.f_f-score 0.79647: 6%|█▉ | 1/16 [00:04<01:04, 4.32s/it]
epoch 39 | valid.f_iou 0.8068299889564514, valid.f_f-score 0.8715: 6%|██ | 1/16 [00:04<01:04, 4.32s/it]
epoch 39 | valid.f_iou 0.8068299889564514, valid.f_f-score 0.8715: 12%|████ | 2/16 [00:04<00:28, 2.05s/it]
epoch 39 | valid.f_iou 0.7146599888801575, valid.f_f-score 0.82204: 12%|███▉ | 2/16 [00:05<00:28, 2.05s/it]
epoch 39 | valid.f_iou 0.7146599888801575, valid.f_f-score 0.82204: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 39 | valid.f_iou 0.690750002861023, valid.f_f-score 0.7887: 19%|██████▏ | 3/16 [00:05<00:17, 1.32s/it]
epoch 39 | valid.f_iou 0.690750002861023, valid.f_f-score 0.7887: 25%|████████▎ | 4/16 [00:05<00:11, 1.02it/s]
epoch 39 | valid.f_iou 0.6903799772262573, valid.f_f-score 0.79246: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 39 | valid.f_iou 0.6903799772262573, valid.f_f-score 0.79246: 31%|█████████▋ | 5/16 [00:06<00:08, 1.28it/s]
epoch 39 | valid.f_iou 0.6473100185394287, valid.f_f-score 0.75414: 31%|█████████▋ | 5/16 [00:06<00:08, 1.28it/s]
epoch 39 | valid.f_iou 0.6473100185394287, valid.f_f-score 0.75414: 38%|███████████▋ | 6/16 [00:06<00:06, 1.50it/s]
epoch 39 | valid.f_iou 0.6569799780845642, valid.f_f-score 0.77141: 38%|███████████▋ | 6/16 [00:06<00:06, 1.50it/s]
epoch 39 | valid.f_iou 0.6569799780845642, valid.f_f-score 0.77141: 44%|█████████████▌ | 7/16 [00:06<00:05, 1.70it/s]
epoch 39 | valid.f_iou 0.6506699919700623, valid.f_f-score 0.76957: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 39 | valid.f_iou 0.6506699919700623, valid.f_f-score 0.76957: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.84it/s]
epoch 39 | valid.f_iou 0.6691499948501587, valid.f_f-score 0.78007: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.84it/s]
epoch 39 | valid.f_iou 0.6691499948501587, valid.f_f-score 0.78007: 56%|█████████████████▍ | 9/16 [00:07<00:03, 1.97it/s]
epoch 39 | valid.f_iou 0.6716700196266174, valid.f_f-score 0.79175: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 39 | valid.f_iou 0.6716700196266174, valid.f_f-score 0.79175: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 39 | valid.f_iou 0.6618099808692932, valid.f_f-score 0.77433: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 39 | valid.f_iou 0.6618099808692932, valid.f_f-score 0.77433: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.30it/s]
epoch 39 | valid.f_iou 0.6745799779891968, valid.f_f-score 0.7851: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.30it/s]
epoch 39 | valid.f_iou 0.6745799779891968, valid.f_f-score 0.7851: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.41it/s]
epoch 39 | valid.f_iou 0.6865800023078918, valid.f_f-score 0.79255: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 39 | valid.f_iou 0.6865800023078918, valid.f_f-score 0.79255: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 39 | valid.f_iou 0.6783999800682068, valid.f_f-score 0.78435: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 39 | valid.f_iou 0.6783999800682068, valid.f_f-score 0.78435: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.53it/s]
epoch 39 | valid.f_iou 0.6797299981117249, valid.f_f-score 0.78383: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 39 | valid.f_iou 0.6797299981117249, valid.f_f-score 0.78383: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.58it/s]
epoch 39 | valid.f_iou 0.6777499914169312, valid.f_f-score 0.77877: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.58it/s]
epoch 39 | valid.f_iou 0.6777499914169312, valid.f_f-score 0.77877: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.61it/s]
epoch 39 | valid.f_iou 0.6777499914169312, valid.f_f-score 0.77877: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.53it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 39 | valid.f_iou 0.7685700058937073, valid.f_f-score 0.79647: 0%| | 0/16 [00:05, ?it/s]
epoch 39 | valid.f_iou 0.7685700058937073, valid.f_f-score 0.79647: 6%|█▉ | 1/16 [00:05<01:16, 5.08s/it]
epoch 39 | valid.f_iou 0.8068299889564514, valid.f_f-score 0.8715: 6%|██ | 1/16 [00:05<01:16, 5.08s/it]
epoch 39 | valid.f_iou 0.8068299889564514, valid.f_f-score 0.8715: 12%|████ | 2/16 [00:05<00:32, 2.35s/it]
epoch 39 | valid.f_iou 0.7146599888801575, valid.f_f-score 0.82204: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 39 | valid.f_iou 0.7146599888801575, valid.f_f-score 0.82204: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 39 | valid.f_iou 0.690750002861023, valid.f_f-score 0.7887: 19%|██████▏ | 3/16 [00:06<00:19, 1.48s/it]
epoch 39 | valid.f_iou 0.690750002861023, valid.f_f-score 0.7887: 25%|████████▎ | 4/16 [00:06<00:12, 1.08s/it]
epoch 39 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.79246: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 39 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.79246: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 39 | valid.f_iou 0.6487399935722351, valid.f_f-score 0.75414: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 39 | valid.f_iou 0.6487399935722351, valid.f_f-score 0.75414: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 39 | valid.f_iou 0.6582000255584717, valid.f_f-score 0.77141: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 39 | valid.f_iou 0.6582000255584717, valid.f_f-score 0.77141: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.62it/s]
epoch 39 | valid.f_iou 0.6517400145530701, valid.f_f-score 0.76957: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 39 | valid.f_iou 0.6517400145530701, valid.f_f-score 0.76957: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 39 | valid.f_iou 0.6700999736785889, valid.f_f-score 0.78007: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 39 | valid.f_iou 0.6700999736785889, valid.f_f-score 0.78007: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 39 | valid.f_iou 0.6694700121879578, valid.f_f-score 0.78816: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 39 | valid.f_iou 0.6694700121879578, valid.f_f-score 0.78816: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 39 | valid.f_iou 0.6598100066184998, valid.f_f-score 0.77106: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.16it/s]
epoch 39 | valid.f_iou 0.6598100066184998, valid.f_f-score 0.77106: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 39 | valid.f_iou 0.6727399826049805, valid.f_f-score 0.78211: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 39 | valid.f_iou 0.6727399826049805, valid.f_f-score 0.78211: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 39 | valid.f_iou 0.6848899722099304, valid.f_f-score 0.78979: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 39 | valid.f_iou 0.6848899722099304, valid.f_f-score 0.78979: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 39 | valid.f_iou 0.6768199801445007, valid.f_f-score 0.7818: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 39 | valid.f_iou 0.6768199801445007, valid.f_f-score 0.7818: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.56it/s]
epoch 39 | valid.f_iou 0.6782600283622742, valid.f_f-score 0.78145: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 39 | valid.f_iou 0.6782600283622742, valid.f_f-score 0.78145: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 39 | valid.f_iou 0.6763700246810913, valid.f_f-score 0.77654: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 39 | valid.f_iou 0.6763700246810913, valid.f_f-score 0.77654: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 39 | valid.f_iou 0.6763700246810913, valid.f_f-score 0.77654: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 40 | loss 2.2274680137634277, f_iou 0.5518634915351868: 0%| | 0/74 [00:05, ?it/s]
epoch 40 | loss 2.2274680137634277, f_iou 0.5518634915351868: 1%|▌ | 1/74 [00:05<06:45, 5.55s/it]
epoch 40 | loss 3.4060962200164795, f_iou 0.5154151916503906: 1%|▌ | 1/74 [00:06<06:45, 5.55s/it]
epoch 40 | loss 3.4060962200164795, f_iou 0.5154151916503906: 3%|█ | 2/74 [00:06<03:20, 2.78s/it]
epoch 40 | loss 1.0304863452911377, f_iou 0.4889516532421112: 3%|█ | 2/74 [00:07<03:20, 2.78s/it]
epoch 40 | loss 1.0304863452911377, f_iou 0.4889516532421112: 4%|█▌ | 3/74 [00:07<02:23, 2.02s/it]
epoch 40 | loss 5.95300817489624, f_iou 0.39726749062538147: 4%|█▌ | 3/74 [00:08<02:23, 2.02s/it]
epoch 40 | loss 5.95300817489624, f_iou 0.39726749062538147: 5%|██ | 4/74 [00:08<01:49, 1.57s/it]
epoch 40 | loss 2.9186925888061523, f_iou 0.4138720631599426: 5%|██ | 4/74 [00:09<01:49, 1.57s/it]
epoch 40 | loss 2.9186925888061523, f_iou 0.4138720631599426: 7%|██▌ | 5/74 [00:09<01:29, 1.30s/it]
epoch 40 | loss 2.8004708290100098, f_iou 0.46917039155960083: 7%|██▍ | 5/74 [00:10<01:29, 1.30s/it]
epoch 40 | loss 2.8004708290100098, f_iou 0.46917039155960083: 8%|██▉ | 6/74 [00:10<01:16, 1.13s/it]
epoch 40 | loss 0.9758812189102173, f_iou 0.5341202616691589: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 40 | loss 0.9758812189102173, f_iou 0.5341202616691589: 9%|███▌ | 7/74 [00:10<01:08, 1.02s/it]
epoch 40 | loss 0.6122331023216248, f_iou 0.5676106810569763: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 40 | loss 0.6122331023216248, f_iou 0.5676106810569763: 11%|████ | 8/74 [00:11<01:03, 1.05it/s]
epoch 40 | loss 3.266805410385132, f_iou 0.6045439839363098: 11%|████ | 8/74 [00:12<01:03, 1.05it/s]
epoch 40 | loss 3.266805410385132, f_iou 0.6045439839363098: 12%|████▌ | 9/74 [00:12<00:59, 1.10it/s]
epoch 40 | loss 1.583956003189087, f_iou 0.5488902926445007: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 40 | loss 1.583956003189087, f_iou 0.5488902926445007: 14%|█████ | 10/74 [00:13<00:55, 1.15it/s]
epoch 40 | loss 0.7455620765686035, f_iou 0.5203801393508911: 14%|████▊ | 10/74 [00:13<00:55, 1.15it/s]
epoch 40 | loss 0.7455620765686035, f_iou 0.5203801393508911: 15%|█████▎ | 11/74 [00:13<00:52, 1.20it/s]
epoch 40 | loss 0.6901757121086121, f_iou 0.48540961742401123: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 40 | loss 0.6901757121086121, f_iou 0.48540961742401123: 16%|█████▋ | 12/74 [00:14<00:50, 1.22it/s]
epoch 40 | loss 2.2966318130493164, f_iou 0.5114119648933411: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 40 | loss 2.2966318130493164, f_iou 0.5114119648933411: 18%|██████▎ | 13/74 [00:15<00:48, 1.27it/s]
epoch 40 | loss 2.974618434906006, f_iou 0.4958374500274658: 18%|██████▌ | 13/74 [00:16<00:48, 1.27it/s]
epoch 40 | loss 2.974618434906006, f_iou 0.4958374500274658: 19%|███████ | 14/74 [00:16<00:46, 1.30it/s]
epoch 40 | loss 1.9579565525054932, f_iou 0.5112131237983704: 19%|██████▊ | 14/74 [00:16<00:46, 1.30it/s]
epoch 40 | loss 1.9579565525054932, f_iou 0.5112131237983704: 20%|███████▎ | 15/74 [00:16<00:45, 1.29it/s]
epoch 40 | loss 1.7804052829742432, f_iou 0.5206995010375977: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 40 | loss 1.7804052829742432, f_iou 0.5206995010375977: 22%|███████▊ | 16/74 [00:17<00:44, 1.29it/s]
epoch 40 | loss 1.8078221082687378, f_iou 0.5224287509918213: 22%|███████▊ | 16/74 [00:18<00:44, 1.29it/s]
epoch 40 | loss 1.8078221082687378, f_iou 0.5224287509918213: 23%|████████▎ | 17/74 [00:18<00:43, 1.32it/s]
epoch 40 | loss 1.3376595973968506, f_iou 0.493527889251709: 23%|████████▌ | 17/74 [00:19<00:43, 1.32it/s]
epoch 40 | loss 1.3376595973968506, f_iou 0.493527889251709: 24%|█████████ | 18/74 [00:19<00:41, 1.34it/s]
epoch 40 | loss 1.2316645383834839, f_iou 0.4962487518787384: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 40 | loss 1.2316645383834839, f_iou 0.4962487518787384: 26%|█████████▏ | 19/74 [00:19<00:40, 1.35it/s]
epoch 40 | loss 4.462510585784912, f_iou 0.5072144865989685: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 40 | loss 4.462510585784912, f_iou 0.5072144865989685: 27%|██████████ | 20/74 [00:20<00:39, 1.36it/s]
epoch 40 | loss 1.0436562299728394, f_iou 0.5267196297645569: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 40 | loss 1.0436562299728394, f_iou 0.5267196297645569: 28%|██████████▏ | 21/74 [00:21<00:38, 1.36it/s]
epoch 40 | loss 2.6867809295654297, f_iou 0.5100313425064087: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 40 | loss 2.6867809295654297, f_iou 0.5100313425064087: 30%|██████████▋ | 22/74 [00:22<00:38, 1.37it/s]
epoch 40 | loss 2.7389752864837646, f_iou 0.5185474753379822: 30%|██████████▋ | 22/74 [00:22<00:38, 1.37it/s]
epoch 40 | loss 2.7389752864837646, f_iou 0.5185474753379822: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 40 | loss 3.7630133628845215, f_iou 0.5128716230392456: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 40 | loss 3.7630133628845215, f_iou 0.5128716230392456: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 40 | loss 1.9726829528808594, f_iou 0.5222705602645874: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 40 | loss 1.9726829528808594, f_iou 0.5222705602645874: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 40 | loss 1.9619817733764648, f_iou 0.5290417671203613: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 40 | loss 1.9619817733764648, f_iou 0.5290417671203613: 35%|████████████▋ | 26/74 [00:25<00:36, 1.33it/s]
epoch 40 | loss 5.039810657501221, f_iou 0.5220288038253784: 35%|█████████████ | 26/74 [00:25<00:36, 1.33it/s]
epoch 40 | loss 5.039810657501221, f_iou 0.5220288038253784: 36%|█████████████▌ | 27/74 [00:25<00:35, 1.33it/s]
epoch 40 | loss 0.9035012125968933, f_iou 0.5154434442520142: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.33it/s]
epoch 40 | loss 0.9035012125968933, f_iou 0.5154434442520142: 38%|█████████████▌ | 28/74 [00:26<00:34, 1.32it/s]
epoch 40 | loss 0.5138731002807617, f_iou 0.5311794281005859: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.32it/s]
epoch 40 | loss 0.5138731002807617, f_iou 0.5311794281005859: 39%|██████████████ | 29/74 [00:27<00:34, 1.32it/s]
epoch 40 | loss 0.9603466987609863, f_iou 0.5431194305419922: 39%|██████████████ | 29/74 [00:28<00:34, 1.32it/s]
epoch 40 | loss 0.9603466987609863, f_iou 0.5431194305419922: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.31it/s]
epoch 40 | loss 3.6117942333221436, f_iou 0.5365983843803406: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.31it/s]
epoch 40 | loss 3.6117942333221436, f_iou 0.5365983843803406: 42%|███████████████ | 31/74 [00:28<00:32, 1.31it/s]
epoch 40 | loss 1.7879115343093872, f_iou 0.547237753868103: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.31it/s]
epoch 40 | loss 1.7879115343093872, f_iou 0.547237753868103: 43%|████████████████ | 32/74 [00:29<00:32, 1.31it/s]
epoch 40 | loss 1.6308274269104004, f_iou 0.542668879032135: 43%|████████████████ | 32/74 [00:30<00:32, 1.31it/s]
epoch 40 | loss 1.6308274269104004, f_iou 0.542668879032135: 45%|████████████████▌ | 33/74 [00:30<00:31, 1.31it/s]
epoch 40 | loss 2.8031835556030273, f_iou 0.5471294522285461: 45%|████████████████ | 33/74 [00:31<00:31, 1.31it/s]
epoch 40 | loss 2.8031835556030273, f_iou 0.5471294522285461: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.32it/s]
epoch 40 | loss 1.4768505096435547, f_iou 0.5548340678215027: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.32it/s]
epoch 40 | loss 1.4768505096435547, f_iou 0.5548340678215027: 47%|█████████████████ | 35/74 [00:31<00:30, 1.30it/s]
epoch 40 | loss 1.954665184020996, f_iou 0.5564767122268677: 47%|█████████████████▌ | 35/74 [00:32<00:30, 1.30it/s]
epoch 40 | loss 1.954665184020996, f_iou 0.5564767122268677: 49%|██████████████████ | 36/74 [00:32<00:29, 1.30it/s]
epoch 40 | loss 2.9466235637664795, f_iou 0.5628637671470642: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.30it/s]
epoch 40 | loss 2.9466235637664795, f_iou 0.5628637671470642: 50%|██████████████████ | 37/74 [00:33<00:28, 1.30it/s]
epoch 40 | loss 3.6538758277893066, f_iou 0.5607413053512573: 50%|██████████████████ | 37/74 [00:34<00:28, 1.30it/s]
epoch 40 | loss 3.6538758277893066, f_iou 0.5607413053512573: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.30it/s]
epoch 40 | loss 2.6720829010009766, f_iou 0.5683031678199768: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.30it/s]
epoch 40 | loss 2.6720829010009766, f_iou 0.5683031678199768: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.31it/s]
epoch 40 | loss 2.4021377563476562, f_iou 0.5687083601951599: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.31it/s]
epoch 40 | loss 2.4021377563476562, f_iou 0.5687083601951599: 54%|███████████████████▍ | 40/74 [00:35<00:26, 1.31it/s]
epoch 40 | loss 1.0251679420471191, f_iou 0.5761806964874268: 54%|███████████████████▍ | 40/74 [00:36<00:26, 1.31it/s]
epoch 40 | loss 1.0251679420471191, f_iou 0.5761806964874268: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.31it/s]
epoch 40 | loss 0.7277761101722717, f_iou 0.5814306139945984: 55%|███████████████████▉ | 41/74 [00:37<00:25, 1.31it/s]
epoch 40 | loss 0.7277761101722717, f_iou 0.5814306139945984: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.32it/s]
epoch 40 | loss 1.613401174545288, f_iou 0.573585569858551: 57%|█████████████████████▌ | 42/74 [00:38<00:24, 1.32it/s]
epoch 40 | loss 1.613401174545288, f_iou 0.573585569858551: 58%|██████████████████████ | 43/74 [00:38<00:23, 1.34it/s]
epoch 40 | loss 1.55823814868927, f_iou 0.5808331966400146: 58%|██████████████████████ | 43/74 [00:38<00:23, 1.34it/s]
epoch 40 | loss 1.55823814868927, f_iou 0.5808331966400146: 59%|██████████████████████▌ | 44/74 [00:38<00:22, 1.36it/s]
epoch 40 | loss 1.3662643432617188, f_iou 0.5698187351226807: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.36it/s]
epoch 40 | loss 1.3662643432617188, f_iou 0.5698187351226807: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.36it/s]
epoch 40 | loss 2.6346216201782227, f_iou 0.5740423798561096: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.36it/s]
epoch 40 | loss 2.6346216201782227, f_iou 0.5740423798561096: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.37it/s]
epoch 40 | loss 3.8114542961120605, f_iou 0.574356198310852: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.37it/s]
epoch 40 | loss 3.8114542961120605, f_iou 0.574356198310852: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.37it/s]
epoch 40 | loss 1.1952418088912964, f_iou 0.5754392147064209: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 40 | loss 1.1952418088912964, f_iou 0.5754392147064209: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.37it/s]
epoch 40 | loss 0.8735941052436829, f_iou 0.5799331665039062: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.37it/s]
epoch 40 | loss 0.8735941052436829, f_iou 0.5799331665039062: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 40 | loss 2.490297317504883, f_iou 0.5719926357269287: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.38it/s]
epoch 40 | loss 2.490297317504883, f_iou 0.5719926357269287: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 40 | loss 1.407278060913086, f_iou 0.5741084218025208: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 40 | loss 1.407278060913086, f_iou 0.5741084218025208: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 40 | loss 1.206499457359314, f_iou 0.5667546391487122: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.39it/s]
epoch 40 | loss 1.206499457359314, f_iou 0.5667546391487122: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 40 | loss 0.8222754597663879, f_iou 0.5588013529777527: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 40 | loss 0.8222754597663879, f_iou 0.5588013529777527: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 40 | loss 1.1524966955184937, f_iou 0.5592310428619385: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 40 | loss 1.1524966955184937, f_iou 0.5592310428619385: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 40 | loss 2.38999080657959, f_iou 0.5554122924804688: 73%|███████████████████████████▋ | 54/74 [00:46<00:14, 1.39it/s]
epoch 40 | loss 2.38999080657959, f_iou 0.5554122924804688: 74%|████████████████████████████▏ | 55/74 [00:46<00:13, 1.39it/s]
epoch 40 | loss 2.920342206954956, f_iou 0.5498381853103638: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 40 | loss 2.920342206954956, f_iou 0.5498381853103638: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 40 | loss 1.6571357250213623, f_iou 0.5527478456497192: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 40 | loss 1.6571357250213623, f_iou 0.5527478456497192: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 40 | loss 0.0, f_iou 0.5600026845932007: 77%|███████████████████████████████████████▎ | 57/74 [00:48<00:12, 1.39it/s]
epoch 40 | loss 0.0, f_iou 0.5600026845932007: 78%|███████████████████████████████████████▉ | 58/74 [00:48<00:11, 1.39it/s]
epoch 40 | loss 1.665633201599121, f_iou 0.563936710357666: 78%|█████████████████████████████▊ | 58/74 [00:49<00:11, 1.39it/s]
epoch 40 | loss 1.665633201599121, f_iou 0.563936710357666: 80%|██████████████████████████████▎ | 59/74 [00:49<00:10, 1.39it/s]
epoch 40 | loss 5.3614325523376465, f_iou 0.5585892796516418: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 40 | loss 5.3614325523376465, f_iou 0.5585892796516418: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 40 | loss 2.634791135787964, f_iou 0.5568087697029114: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 40 | loss 2.634791135787964, f_iou 0.5568087697029114: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 40 | loss 1.7728782892227173, f_iou 0.5588127374649048: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 40 | loss 1.7728782892227173, f_iou 0.5588127374649048: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.35it/s]
epoch 40 | loss 2.322180986404419, f_iou 0.5613195300102234: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.35it/s]
epoch 40 | loss 2.322180986404419, f_iou 0.5613195300102234: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.35it/s]
epoch 40 | loss 2.3622870445251465, f_iou 0.5553688406944275: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.35it/s]
epoch 40 | loss 2.3622870445251465, f_iou 0.5553688406944275: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.36it/s]
epoch 40 | loss 0.8012527227401733, f_iou 0.5523220896720886: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.36it/s]
epoch 40 | loss 0.8012527227401733, f_iou 0.5523220896720886: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 40 | loss 2.1465978622436523, f_iou 0.5478432774543762: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.37it/s]
epoch 40 | loss 2.1465978622436523, f_iou 0.5478432774543762: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 40 | loss 1.959122896194458, f_iou 0.5460103750228882: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.37it/s]
epoch 40 | loss 1.959122896194458, f_iou 0.5460103750228882: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.36it/s]
epoch 40 | loss 0.7632291316986084, f_iou 0.5512533783912659: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.36it/s]
epoch 40 | loss 0.7632291316986084, f_iou 0.5512533783912659: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.34it/s]
epoch 40 | loss 4.008607387542725, f_iou 0.5533326268196106: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.34it/s]
epoch 40 | loss 4.008607387542725, f_iou 0.5533326268196106: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.33it/s]
epoch 40 | loss 1.1901452541351318, f_iou 0.5583503842353821: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.33it/s]
epoch 40 | loss 1.1901452541351318, f_iou 0.5583503842353821: 95%|██████████████████████████████████ | 70/74 [00:57<00:03, 1.33it/s]
epoch 40 | loss 5.924951553344727, f_iou 0.5526978969573975: 95%|███████████████████████████████████ | 70/74 [00:58<00:03, 1.33it/s]
epoch 40 | loss 5.924951553344727, f_iou 0.5526978969573975: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.34it/s]
epoch 40 | loss 0.7454329133033752, f_iou 0.5508548021316528: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.34it/s]
epoch 40 | loss 0.7454329133033752, f_iou 0.5508548021316528: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.36it/s]
epoch 40 | loss 0.9139918088912964, f_iou 0.5562189221382141: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.36it/s]
epoch 40 | loss 0.9139918088912964, f_iou 0.5562189221382141: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.37it/s]
epoch 40 | loss 0.7486752271652222, f_iou 0.5611824989318848: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.37it/s]
epoch 40 | loss 0.7486752271652222, f_iou 0.5611824989318848: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.38it/s]
epoch 40 | loss 0.7486752271652222, f_iou 0.5611824989318848: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 40 | valid.f_iou 0.750190019607544, valid.f_f-score 0.81445: 0%| | 0/16 [00:05, ?it/s]
epoch 40 | valid.f_iou 0.750190019607544, valid.f_f-score 0.81445: 6%|██ | 1/16 [00:05<01:24, 5.64s/it]
epoch 40 | valid.f_iou 0.6464999914169312, valid.f_f-score 0.79212: 6%|█▉ | 1/16 [00:06<01:24, 5.64s/it]
epoch 40 | valid.f_iou 0.6464999914169312, valid.f_f-score 0.79212: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 40 | valid.f_iou 0.5483499765396118, valid.f_f-score 0.74619: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 40 | valid.f_iou 0.5483499765396118, valid.f_f-score 0.74619: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 40 | valid.f_iou 0.5814800262451172, valid.f_f-score 0.76793: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 40 | valid.f_iou 0.5814800262451172, valid.f_f-score 0.76793: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 40 | valid.f_iou 0.5421800017356873, valid.f_f-score 0.7433: 25%|████████ | 4/16 [00:07<00:13, 1.16s/it]
epoch 40 | valid.f_iou 0.5421800017356873, valid.f_f-score 0.7433: 31%|██████████ | 5/16 [00:07<00:09, 1.11it/s]
epoch 40 | valid.f_iou 0.5197799801826477, valid.f_f-score 0.71435: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 40 | valid.f_iou 0.5197799801826477, valid.f_f-score 0.71435: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 40 | valid.f_iou 0.5339400172233582, valid.f_f-score 0.72339: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 40 | valid.f_iou 0.5339400172233582, valid.f_f-score 0.72339: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 40 | valid.f_iou 0.5333099961280823, valid.f_f-score 0.72544: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 40 | valid.f_iou 0.5333099961280823, valid.f_f-score 0.72544: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 40 | valid.f_iou 0.5273399949073792, valid.f_f-score 0.70539: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 40 | valid.f_iou 0.5273399949073792, valid.f_f-score 0.70539: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 40 | valid.f_iou 0.5198799967765808, valid.f_f-score 0.71158: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 40 | valid.f_iou 0.5198799967765808, valid.f_f-score 0.71158: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 40 | valid.f_iou 0.5143600106239319, valid.f_f-score 0.704: 62%|████████████████████ | 10/16 [00:09<00:02, 2.10it/s]
epoch 40 | valid.f_iou 0.5143600106239319, valid.f_f-score 0.704: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.26it/s]
epoch 40 | valid.f_iou 0.5339099764823914, valid.f_f-score 0.71973: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.26it/s]
epoch 40 | valid.f_iou 0.5339099764823914, valid.f_f-score 0.71973: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.39it/s]
epoch 40 | valid.f_iou 0.537060022354126, valid.f_f-score 0.72773: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.39it/s]
epoch 40 | valid.f_iou 0.537060022354126, valid.f_f-score 0.72773: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 40 | valid.f_iou 0.5161600112915039, valid.f_f-score 0.70883: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 40 | valid.f_iou 0.5161600112915039, valid.f_f-score 0.70883: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 40 | valid.f_iou 0.5219799876213074, valid.f_f-score 0.71025: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 40 | valid.f_iou 0.5219799876213074, valid.f_f-score 0.71025: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 40 | valid.f_iou 0.528249979019165, valid.f_f-score 0.70791: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.61it/s]
epoch 40 | valid.f_iou 0.528249979019165, valid.f_f-score 0.70791: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 40 | valid.f_iou 0.528249979019165, valid.f_f-score 0.70791: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 40 | valid.f_iou 0.6960200071334839, valid.f_f-score 0.72473: 0%| | 0/16 [00:04, ?it/s]
epoch 40 | valid.f_iou 0.6960200071334839, valid.f_f-score 0.72473: 6%|█▉ | 1/16 [00:04<01:13, 4.91s/it]
epoch 40 | valid.f_iou 0.7561100125312805, valid.f_f-score 0.81982: 6%|█▉ | 1/16 [00:05<01:13, 4.91s/it]
epoch 40 | valid.f_iou 0.7561100125312805, valid.f_f-score 0.81982: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 40 | valid.f_iou 0.6865400075912476, valid.f_f-score 0.77567: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 40 | valid.f_iou 0.6865400075912476, valid.f_f-score 0.77567: 19%|█████▊ | 3/16 [00:05<00:18, 1.39s/it]
epoch 40 | valid.f_iou 0.6771600246429443, valid.f_f-score 0.76284: 19%|█████▊ | 3/16 [00:06<00:18, 1.39s/it]
epoch 40 | valid.f_iou 0.6771600246429443, valid.f_f-score 0.76284: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 40 | valid.f_iou 0.6515100002288818, valid.f_f-score 0.74887: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 40 | valid.f_iou 0.6515100002288818, valid.f_f-score 0.74887: 31%|█████████▋ | 5/16 [00:06<00:08, 1.31it/s]
epoch 40 | valid.f_iou 0.6194700002670288, valid.f_f-score 0.71734: 31%|█████████▋ | 5/16 [00:06<00:08, 1.31it/s]
epoch 40 | valid.f_iou 0.6194700002670288, valid.f_f-score 0.71734: 38%|███████████▋ | 6/16 [00:06<00:06, 1.54it/s]
epoch 40 | valid.f_iou 0.6319900155067444, valid.f_f-score 0.73749: 38%|███████████▋ | 6/16 [00:07<00:06, 1.54it/s]
epoch 40 | valid.f_iou 0.6319900155067444, valid.f_f-score 0.73749: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.81it/s]
epoch 40 | valid.f_iou 0.6165500283241272, valid.f_f-score 0.72174: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.81it/s]
epoch 40 | valid.f_iou 0.6165500283241272, valid.f_f-score 0.72174: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.94it/s]
epoch 40 | valid.f_iou 0.6416900157928467, valid.f_f-score 0.73863: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.94it/s]
epoch 40 | valid.f_iou 0.6416900157928467, valid.f_f-score 0.73863: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.16it/s]
epoch 40 | valid.f_iou 0.6592199802398682, valid.f_f-score 0.75452: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.16it/s]
epoch 40 | valid.f_iou 0.6592199802398682, valid.f_f-score 0.75452: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 40 | valid.f_iou 0.6524800062179565, valid.f_f-score 0.74312: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 40 | valid.f_iou 0.6524800062179565, valid.f_f-score 0.74312: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.41it/s]
epoch 40 | valid.f_iou 0.6633300185203552, valid.f_f-score 0.75289: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.41it/s]
epoch 40 | valid.f_iou 0.6633300185203552, valid.f_f-score 0.75289: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 40 | valid.f_iou 0.673829972743988, valid.f_f-score 0.76222: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.50it/s]
epoch 40 | valid.f_iou 0.673829972743988, valid.f_f-score 0.76222: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.56it/s]
epoch 40 | valid.f_iou 0.6610100269317627, valid.f_f-score 0.75544: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 40 | valid.f_iou 0.6610100269317627, valid.f_f-score 0.75544: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.61it/s]
epoch 40 | valid.f_iou 0.6630499958992004, valid.f_f-score 0.76329: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 40 | valid.f_iou 0.6630499958992004, valid.f_f-score 0.76329: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 40 | valid.f_iou 0.6564499735832214, valid.f_f-score 0.7577: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.64it/s]
epoch 40 | valid.f_iou 0.6564499735832214, valid.f_f-score 0.7577: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 40 | valid.f_iou 0.6564499735832214, valid.f_f-score 0.7577: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 40 | valid.f_iou 0.6960200071334839, valid.f_f-score 0.72473: 0%| | 0/16 [00:05, ?it/s]
epoch 40 | valid.f_iou 0.6960200071334839, valid.f_f-score 0.72473: 6%|█▉ | 1/16 [00:05<01:18, 5.24s/it]
epoch 40 | valid.f_iou 0.7561100125312805, valid.f_f-score 0.81982: 6%|█▉ | 1/16 [00:05<01:18, 5.24s/it]
epoch 40 | valid.f_iou 0.7561100125312805, valid.f_f-score 0.81982: 12%|███▉ | 2/16 [00:05<00:34, 2.43s/it]
epoch 40 | valid.f_iou 0.6865400075912476, valid.f_f-score 0.77567: 12%|███▉ | 2/16 [00:06<00:34, 2.43s/it]
epoch 40 | valid.f_iou 0.6865400075912476, valid.f_f-score 0.77567: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 40 | valid.f_iou 0.6771600246429443, valid.f_f-score 0.76284: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 40 | valid.f_iou 0.6771600246429443, valid.f_f-score 0.76284: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 40 | valid.f_iou 0.6600099802017212, valid.f_f-score 0.74887: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 40 | valid.f_iou 0.6600099802017212, valid.f_f-score 0.74887: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 40 | valid.f_iou 0.6265599727630615, valid.f_f-score 0.71734: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 40 | valid.f_iou 0.6265599727630615, valid.f_f-score 0.71734: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 40 | valid.f_iou 0.6398299932479858, valid.f_f-score 0.73749: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 40 | valid.f_iou 0.6398299932479858, valid.f_f-score 0.73749: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.58it/s]
epoch 40 | valid.f_iou 0.6234099864959717, valid.f_f-score 0.72174: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 40 | valid.f_iou 0.6234099864959717, valid.f_f-score 0.72174: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 40 | valid.f_iou 0.6497200131416321, valid.f_f-score 0.73863: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 40 | valid.f_iou 0.6497200131416321, valid.f_f-score 0.73863: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 40 | valid.f_iou 0.6624000072479248, valid.f_f-score 0.75102: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 40 | valid.f_iou 0.6624000072479248, valid.f_f-score 0.75102: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 40 | valid.f_iou 0.651170015335083, valid.f_f-score 0.73793: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.04it/s]
epoch 40 | valid.f_iou 0.651170015335083, valid.f_f-score 0.73793: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.21it/s]
epoch 40 | valid.f_iou 0.6621299982070923, valid.f_f-score 0.74814: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 40 | valid.f_iou 0.6621299982070923, valid.f_f-score 0.74814: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 40 | valid.f_iou 0.6727100014686584, valid.f_f-score 0.75783: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.35it/s]
epoch 40 | valid.f_iou 0.6727100014686584, valid.f_f-score 0.75783: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 40 | valid.f_iou 0.6561200022697449, valid.f_f-score 0.74571: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 40 | valid.f_iou 0.6561200022697449, valid.f_f-score 0.74571: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 40 | valid.f_iou 0.658490002155304, valid.f_f-score 0.75421: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.54it/s]
epoch 40 | valid.f_iou 0.658490002155304, valid.f_f-score 0.75421: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.59it/s]
epoch 40 | valid.f_iou 0.6529499888420105, valid.f_f-score 0.74919: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 40 | valid.f_iou 0.6529499888420105, valid.f_f-score 0.74919: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 40 | valid.f_iou 0.6529499888420105, valid.f_f-score 0.74919: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 41 | loss 1.2399595975875854, f_iou 0.7354585528373718: 0%| | 0/74 [00:05, ?it/s]
epoch 41 | loss 1.2399595975875854, f_iou 0.7354585528373718: 1%|▌ | 1/74 [00:05<06:09, 5.06s/it]
epoch 41 | loss 2.6589536666870117, f_iou 0.6065112352371216: 1%|▌ | 1/74 [00:05<06:09, 5.06s/it]
epoch 41 | loss 2.6589536666870117, f_iou 0.6065112352371216: 3%|█ | 2/74 [00:05<03:03, 2.55s/it]
epoch 41 | loss 0.890707790851593, f_iou 0.7089681625366211: 3%|█ | 2/74 [00:06<03:03, 2.55s/it]
epoch 41 | loss 0.890707790851593, f_iou 0.7089681625366211: 4%|█▌ | 3/74 [00:06<02:10, 1.83s/it]
epoch 41 | loss 1.6546812057495117, f_iou 0.7541130781173706: 4%|█▌ | 3/74 [00:07<02:10, 1.83s/it]
epoch 41 | loss 1.6546812057495117, f_iou 0.7541130781173706: 5%|██ | 4/74 [00:07<01:38, 1.40s/it]
epoch 41 | loss 1.5555012226104736, f_iou 0.7121122479438782: 5%|██ | 4/74 [00:08<01:38, 1.40s/it]
epoch 41 | loss 1.5555012226104736, f_iou 0.7121122479438782: 7%|██▌ | 5/74 [00:08<01:23, 1.22s/it]
epoch 41 | loss 1.050136923789978, f_iou 0.6897953748703003: 7%|██▌ | 5/74 [00:09<01:23, 1.22s/it]
epoch 41 | loss 1.050136923789978, f_iou 0.6897953748703003: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 41 | loss 1.5984960794448853, f_iou 0.6871762871742249: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 41 | loss 1.5984960794448853, f_iou 0.6871762871742249: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 41 | loss 2.4916536808013916, f_iou 0.6499226093292236: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 41 | loss 2.4916536808013916, f_iou 0.6499226093292236: 11%|████ | 8/74 [00:10<01:00, 1.09it/s]
epoch 41 | loss 1.285419225692749, f_iou 0.6477285623550415: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 41 | loss 1.285419225692749, f_iou 0.6477285623550415: 12%|████▌ | 9/74 [00:11<00:56, 1.15it/s]
epoch 41 | loss 1.611206293106079, f_iou 0.6462746262550354: 12%|████▌ | 9/74 [00:12<00:56, 1.15it/s]
epoch 41 | loss 1.611206293106079, f_iou 0.6462746262550354: 14%|█████ | 10/74 [00:12<00:53, 1.19it/s]
epoch 41 | loss 1.583402395248413, f_iou 0.6392660140991211: 14%|█████ | 10/74 [00:13<00:53, 1.19it/s]
epoch 41 | loss 1.583402395248413, f_iou 0.6392660140991211: 15%|█████▌ | 11/74 [00:13<00:51, 1.22it/s]
epoch 41 | loss 0.7200969457626343, f_iou 0.6296439170837402: 15%|█████▎ | 11/74 [00:13<00:51, 1.22it/s]
epoch 41 | loss 0.7200969457626343, f_iou 0.6296439170837402: 16%|█████▊ | 12/74 [00:13<00:50, 1.24it/s]
epoch 41 | loss 2.2451207637786865, f_iou 0.6093069314956665: 16%|█████▊ | 12/74 [00:14<00:50, 1.24it/s]
epoch 41 | loss 2.2451207637786865, f_iou 0.6093069314956665: 18%|██████▎ | 13/74 [00:14<00:48, 1.25it/s]
epoch 41 | loss 0.936352014541626, f_iou 0.631676197052002: 18%|██████▋ | 13/74 [00:15<00:48, 1.25it/s]
epoch 41 | loss 0.936352014541626, f_iou 0.631676197052002: 19%|███████▏ | 14/74 [00:15<00:46, 1.28it/s]
epoch 41 | loss 0.9227352142333984, f_iou 0.6405168175697327: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 41 | loss 0.9227352142333984, f_iou 0.6405168175697327: 20%|███████▎ | 15/74 [00:16<00:45, 1.30it/s]
epoch 41 | loss 1.4986847639083862, f_iou 0.6197912693023682: 20%|███████▎ | 15/74 [00:16<00:45, 1.30it/s]
epoch 41 | loss 1.4986847639083862, f_iou 0.6197912693023682: 22%|███████▊ | 16/74 [00:16<00:44, 1.30it/s]
epoch 41 | loss 2.3255233764648438, f_iou 0.5962076783180237: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 41 | loss 2.3255233764648438, f_iou 0.5962076783180237: 23%|████████▎ | 17/74 [00:17<00:43, 1.30it/s]
epoch 41 | loss 1.1969963312149048, f_iou 0.5937608480453491: 23%|████████▎ | 17/74 [00:18<00:43, 1.30it/s]
epoch 41 | loss 1.1969963312149048, f_iou 0.5937608480453491: 24%|████████▊ | 18/74 [00:18<00:43, 1.30it/s]
epoch 41 | loss 3.0117015838623047, f_iou 0.5628283023834229: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 41 | loss 3.0117015838623047, f_iou 0.5628283023834229: 26%|█████████▏ | 19/74 [00:19<00:42, 1.31it/s]
epoch 41 | loss 0.623502254486084, f_iou 0.5805802345275879: 26%|█████████▌ | 19/74 [00:19<00:42, 1.31it/s]
epoch 41 | loss 0.623502254486084, f_iou 0.5805802345275879: 27%|██████████ | 20/74 [00:19<00:41, 1.32it/s]
epoch 41 | loss 0.6050095558166504, f_iou 0.5991780757904053: 27%|█████████▋ | 20/74 [00:20<00:41, 1.32it/s]
epoch 41 | loss 0.6050095558166504, f_iou 0.5991780757904053: 28%|██████████▏ | 21/74 [00:20<00:40, 1.32it/s]
epoch 41 | loss 3.5529255867004395, f_iou 0.6154869198799133: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 41 | loss 3.5529255867004395, f_iou 0.6154869198799133: 30%|██████████▋ | 22/74 [00:21<00:39, 1.33it/s]
epoch 41 | loss 3.334872245788574, f_iou 0.5976091027259827: 30%|███████████ | 22/74 [00:22<00:39, 1.33it/s]
epoch 41 | loss 3.334872245788574, f_iou 0.5976091027259827: 31%|███████████▌ | 23/74 [00:22<00:37, 1.35it/s]
epoch 41 | loss 5.496261119842529, f_iou 0.5809678435325623: 31%|███████████▌ | 23/74 [00:22<00:37, 1.35it/s]
epoch 41 | loss 5.496261119842529, f_iou 0.5809678435325623: 32%|████████████ | 24/74 [00:22<00:36, 1.37it/s]
epoch 41 | loss 1.9465513229370117, f_iou 0.5762990713119507: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 41 | loss 1.9465513229370117, f_iou 0.5762990713119507: 34%|████████████▏ | 25/74 [00:23<00:35, 1.38it/s]
epoch 41 | loss 0.7697991728782654, f_iou 0.5907344818115234: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 41 | loss 0.7697991728782654, f_iou 0.5907344818115234: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 41 | loss 1.8983465433120728, f_iou 0.5939682722091675: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 41 | loss 1.8983465433120728, f_iou 0.5939682722091675: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.38it/s]
epoch 41 | loss 4.315953254699707, f_iou 0.5784692168235779: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.38it/s]
epoch 41 | loss 4.315953254699707, f_iou 0.5784692168235779: 38%|██████████████ | 28/74 [00:25<00:33, 1.36it/s]
epoch 41 | loss 1.4720799922943115, f_iou 0.5902138948440552: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 41 | loss 1.4720799922943115, f_iou 0.5902138948440552: 39%|██████████████ | 29/74 [00:26<00:33, 1.35it/s]
epoch 41 | loss 1.0599730014801025, f_iou 0.5705401301383972: 39%|██████████████ | 29/74 [00:27<00:33, 1.35it/s]
epoch 41 | loss 1.0599730014801025, f_iou 0.5705401301383972: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.35it/s]
epoch 41 | loss 4.214481353759766, f_iou 0.5612850189208984: 41%|███████████████ | 30/74 [00:28<00:32, 1.35it/s]
epoch 41 | loss 4.214481353759766, f_iou 0.5612850189208984: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.37it/s]
epoch 41 | loss 1.038707971572876, f_iou 0.5732768177986145: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.37it/s]
epoch 41 | loss 1.038707971572876, f_iou 0.5732768177986145: 43%|████████████████ | 32/74 [00:28<00:30, 1.38it/s]
epoch 41 | loss 1.3588652610778809, f_iou 0.5722841024398804: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.38it/s]
epoch 41 | loss 1.3588652610778809, f_iou 0.5722841024398804: 45%|████████████████ | 33/74 [00:29<00:29, 1.38it/s]
epoch 41 | loss 1.1320210695266724, f_iou 0.5703458786010742: 45%|████████████████ | 33/74 [00:30<00:29, 1.38it/s]
epoch 41 | loss 1.1320210695266724, f_iou 0.5703458786010742: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 41 | loss 1.790466070175171, f_iou 0.5792443156242371: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 41 | loss 1.790466070175171, f_iou 0.5792443156242371: 47%|█████████████████▌ | 35/74 [00:30<00:28, 1.39it/s]
epoch 41 | loss 1.3434834480285645, f_iou 0.5866062045097351: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 41 | loss 1.3434834480285645, f_iou 0.5866062045097351: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 41 | loss 3.9268198013305664, f_iou 0.5800084471702576: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 41 | loss 3.9268198013305664, f_iou 0.5800084471702576: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 41 | loss 1.9156675338745117, f_iou 0.5730962753295898: 50%|██████████████████ | 37/74 [00:33<00:26, 1.40it/s]
epoch 41 | loss 1.9156675338745117, f_iou 0.5730962753295898: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.40it/s]
epoch 41 | loss 4.329766750335693, f_iou 0.5662578344345093: 51%|███████████████████ | 38/74 [00:33<00:25, 1.40it/s]
epoch 41 | loss 4.329766750335693, f_iou 0.5662578344345093: 53%|███████████████████▍ | 39/74 [00:33<00:25, 1.39it/s]
epoch 41 | loss 2.9495620727539062, f_iou 0.569891631603241: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 41 | loss 2.9495620727539062, f_iou 0.569891631603241: 54%|████████████████████ | 40/74 [00:34<00:25, 1.31it/s]
epoch 41 | loss 1.351738452911377, f_iou 0.5770195722579956: 54%|████████████████████ | 40/74 [00:35<00:25, 1.31it/s]
epoch 41 | loss 1.351738452911377, f_iou 0.5770195722579956: 55%|████████████████████▌ | 41/74 [00:35<00:24, 1.34it/s]
epoch 41 | loss 3.347242832183838, f_iou 0.5740451812744141: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.34it/s]
epoch 41 | loss 3.347242832183838, f_iou 0.5740451812744141: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.35it/s]
epoch 41 | loss 1.3781713247299194, f_iou 0.5782924294471741: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.35it/s]
epoch 41 | loss 1.3781713247299194, f_iou 0.5782924294471741: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.36it/s]
epoch 41 | loss 1.016719102859497, f_iou 0.5862839221954346: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.36it/s]
epoch 41 | loss 1.016719102859497, f_iou 0.5862839221954346: 59%|██████████████████████ | 44/74 [00:37<00:22, 1.34it/s]
epoch 41 | loss 1.6606082916259766, f_iou 0.5924148559570312: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 41 | loss 1.6606082916259766, f_iou 0.5924148559570312: 61%|█████████████████████▉ | 45/74 [00:38<00:22, 1.31it/s]
epoch 41 | loss 1.243512511253357, f_iou 0.5956504344940186: 61%|██████████████████████▌ | 45/74 [00:39<00:22, 1.31it/s]
epoch 41 | loss 1.243512511253357, f_iou 0.5956504344940186: 62%|███████████████████████ | 46/74 [00:39<00:21, 1.30it/s]
epoch 41 | loss 0.9701672196388245, f_iou 0.6012009382247925: 62%|██████████████████████▍ | 46/74 [00:39<00:21, 1.30it/s]
epoch 41 | loss 0.9701672196388245, f_iou 0.6012009382247925: 64%|██████████████████████▊ | 47/74 [00:39<00:20, 1.29it/s]
epoch 41 | loss 0.38885432481765747, f_iou 0.5969520211219788: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.29it/s]
epoch 41 | loss 0.38885432481765747, f_iou 0.5969520211219788: 65%|██████████████████████▋ | 48/74 [00:40<00:19, 1.32it/s]
epoch 41 | loss 1.7598185539245605, f_iou 0.5990543365478516: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.32it/s]
epoch 41 | loss 1.7598185539245605, f_iou 0.5990543365478516: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.34it/s]
epoch 41 | loss 1.5837472677230835, f_iou 0.591251790523529: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.34it/s]
epoch 41 | loss 1.5837472677230835, f_iou 0.591251790523529: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.36it/s]
epoch 41 | loss 2.248430013656616, f_iou 0.5888717770576477: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.36it/s]
epoch 41 | loss 2.248430013656616, f_iou 0.5888717770576477: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.37it/s]
epoch 41 | loss 0.8119195699691772, f_iou 0.5942608714103699: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.37it/s]
epoch 41 | loss 0.8119195699691772, f_iou 0.5942608714103699: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.38it/s]
epoch 41 | loss 0.7174780368804932, f_iou 0.6006255745887756: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 41 | loss 0.7174780368804932, f_iou 0.6006255745887756: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 41 | loss 3.0850374698638916, f_iou 0.597490131855011: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.38it/s]
epoch 41 | loss 3.0850374698638916, f_iou 0.597490131855011: 73%|███████████████████████████ | 54/74 [00:44<00:14, 1.38it/s]
epoch 41 | loss 1.145547866821289, f_iou 0.6010918021202087: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.38it/s]
epoch 41 | loss 1.145547866821289, f_iou 0.6010918021202087: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 41 | loss 2.1234025955200195, f_iou 0.5989320278167725: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 41 | loss 2.1234025955200195, f_iou 0.5989320278167725: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 41 | loss 2.45632004737854, f_iou 0.5968283414840698: 76%|████████████████████████████▊ | 56/74 [00:47<00:12, 1.39it/s]
epoch 41 | loss 2.45632004737854, f_iou 0.5968283414840698: 77%|█████████████████████████████▎ | 57/74 [00:47<00:12, 1.39it/s]
epoch 41 | loss 1.1538935899734497, f_iou 0.6003008484840393: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 41 | loss 1.1538935899734497, f_iou 0.6003008484840393: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 41 | loss 2.5159428119659424, f_iou 0.5985432267189026: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 41 | loss 2.5159428119659424, f_iou 0.5985432267189026: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 41 | loss 4.405605316162109, f_iou 0.6031167507171631: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 41 | loss 4.405605316162109, f_iou 0.6031167507171631: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.35it/s]
epoch 41 | loss 1.225288987159729, f_iou 0.6074067950248718: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.35it/s]
epoch 41 | loss 1.225288987159729, f_iou 0.6074067950248718: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.33it/s]
epoch 41 | loss 0.9958926439285278, f_iou 0.6100007891654968: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.33it/s]
epoch 41 | loss 0.9958926439285278, f_iou 0.6100007891654968: 84%|██████████████████████████████▏ | 62/74 [00:50<00:09, 1.33it/s]
epoch 41 | loss 1.4569263458251953, f_iou 0.6036242842674255: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.33it/s]
epoch 41 | loss 1.4569263458251953, f_iou 0.6036242842674255: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.35it/s]
epoch 41 | loss 1.2116247415542603, f_iou 0.6077725887298584: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.35it/s]
epoch 41 | loss 1.2116247415542603, f_iou 0.6077725887298584: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.36it/s]
epoch 41 | loss 1.8890506029129028, f_iou 0.6034756898880005: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.36it/s]
epoch 41 | loss 1.8890506029129028, f_iou 0.6034756898880005: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 41 | loss 1.533854365348816, f_iou 0.6019688844680786: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 41 | loss 1.533854365348816, f_iou 0.6019688844680786: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.37it/s]
epoch 41 | loss 1.0411789417266846, f_iou 0.5984169244766235: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 41 | loss 1.0411789417266846, f_iou 0.5984169244766235: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 41 | loss 2.212571859359741, f_iou 0.597564160823822: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.38it/s]
epoch 41 | loss 2.212571859359741, f_iou 0.597564160823822: 92%|██████████████████████████████████▉ | 68/74 [00:55<00:04, 1.38it/s]
epoch 41 | loss 0.7794526815414429, f_iou 0.5952990651130676: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 41 | loss 0.7794526815414429, f_iou 0.5952990651130676: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.38it/s]
epoch 41 | loss 4.193076133728027, f_iou 0.5950028896331787: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.38it/s]
epoch 41 | loss 4.193076133728027, f_iou 0.5950028896331787: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.38it/s]
epoch 41 | loss 0.9635478258132935, f_iou 0.5935419797897339: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 41 | loss 0.9635478258132935, f_iou 0.5935419797897339: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 41 | loss 3.9702835083007812, f_iou 0.5921123027801514: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 41 | loss 3.9702835083007812, f_iou 0.5921123027801514: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 41 | loss 1.3444266319274902, f_iou 0.5942098498344421: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 41 | loss 1.3444266319274902, f_iou 0.5942098498344421: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 41 | loss 1.4124536514282227, f_iou 0.5970433950424194: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 41 | loss 1.4124536514282227, f_iou 0.5970433950424194: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 41 | loss 1.4124536514282227, f_iou 0.5970433950424194: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 41 | valid.f_iou 0.672540009021759, valid.f_f-score 0.83496: 0%| | 0/16 [00:05, ?it/s]
epoch 41 | valid.f_iou 0.672540009021759, valid.f_f-score 0.83496: 6%|██ | 1/16 [00:05<01:24, 5.62s/it]
epoch 41 | valid.f_iou 0.536329984664917, valid.f_f-score 0.79369: 6%|██ | 1/16 [00:06<01:24, 5.62s/it]
epoch 41 | valid.f_iou 0.536329984664917, valid.f_f-score 0.79369: 12%|████ | 2/16 [00:06<00:36, 2.59s/it]
epoch 41 | valid.f_iou 0.42695000767707825, valid.f_f-score 0.73616: 12%|███▊ | 2/16 [00:06<00:36, 2.59s/it]
epoch 41 | valid.f_iou 0.42695000767707825, valid.f_f-score 0.73616: 19%|█████▋ | 3/16 [00:06<00:21, 1.62s/it]
epoch 41 | valid.f_iou 0.5065199732780457, valid.f_f-score 0.75258: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 41 | valid.f_iou 0.5065199732780457, valid.f_f-score 0.75258: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 41 | valid.f_iou 0.4685800075531006, valid.f_f-score 0.7217: 25%|████████ | 4/16 [00:07<00:13, 1.16s/it]
epoch 41 | valid.f_iou 0.4685800075531006, valid.f_f-score 0.7217: 31%|██████████ | 5/16 [00:07<00:09, 1.11it/s]
epoch 41 | valid.f_iou 0.4507499933242798, valid.f_f-score 0.69236: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 41 | valid.f_iou 0.4507499933242798, valid.f_f-score 0.69236: 38%|███████████▋ | 6/16 [00:07<00:07, 1.31it/s]
epoch 41 | valid.f_iou 0.4759899973869324, valid.f_f-score 0.7119: 38%|████████████ | 6/16 [00:08<00:07, 1.31it/s]
epoch 41 | valid.f_iou 0.4759899973869324, valid.f_f-score 0.7119: 44%|██████████████ | 7/16 [00:08<00:05, 1.53it/s]
epoch 41 | valid.f_iou 0.45605000853538513, valid.f_f-score 0.69337: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.53it/s]
epoch 41 | valid.f_iou 0.45605000853538513, valid.f_f-score 0.69337: 50%|███████████████ | 8/16 [00:08<00:04, 1.71it/s]
epoch 41 | valid.f_iou 0.4598900079727173, valid.f_f-score 0.67708: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.71it/s]
epoch 41 | valid.f_iou 0.4598900079727173, valid.f_f-score 0.67708: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 41 | valid.f_iou 0.45006999373435974, valid.f_f-score 0.68014: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 41 | valid.f_iou 0.45006999373435974, valid.f_f-score 0.68014: 62%|██████████████████▏ | 10/16 [00:09<00:03, 2.00it/s]
epoch 41 | valid.f_iou 0.44878000020980835, valid.f_f-score 0.68151: 62%|██████████████████▏ | 10/16 [00:10<00:03, 2.00it/s]
epoch 41 | valid.f_iou 0.44878000020980835, valid.f_f-score 0.68151: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.17it/s]
epoch 41 | valid.f_iou 0.47231999039649963, valid.f_f-score 0.70178: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.17it/s]
epoch 41 | valid.f_iou 0.47231999039649963, valid.f_f-score 0.70178: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.30it/s]
epoch 41 | valid.f_iou 0.47141000628471375, valid.f_f-score 0.70361: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.30it/s]
epoch 41 | valid.f_iou 0.47141000628471375, valid.f_f-score 0.70361: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.41it/s]
epoch 41 | valid.f_iou 0.4546299874782562, valid.f_f-score 0.68561: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.41it/s]
epoch 41 | valid.f_iou 0.4546299874782562, valid.f_f-score 0.68561: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.50it/s]
epoch 41 | valid.f_iou 0.4659300148487091, valid.f_f-score 0.68894: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.50it/s]
epoch 41 | valid.f_iou 0.4659300148487091, valid.f_f-score 0.68894: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 41 | valid.f_iou 0.47516998648643494, valid.f_f-score 0.68889: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 41 | valid.f_iou 0.47516998648643494, valid.f_f-score 0.68889: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 41 | valid.f_iou 0.47516998648643494, valid.f_f-score 0.68889: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 41 | valid.f_iou 0.7470700144767761, valid.f_f-score 0.76275: 0%| | 0/16 [00:04, ?it/s]
epoch 41 | valid.f_iou 0.7470700144767761, valid.f_f-score 0.76275: 6%|█▉ | 1/16 [00:04<01:12, 4.87s/it]
epoch 41 | valid.f_iou 0.8011500239372253, valid.f_f-score 0.8544: 6%|██ | 1/16 [00:05<01:12, 4.87s/it]
epoch 41 | valid.f_iou 0.8011500239372253, valid.f_f-score 0.8544: 12%|████ | 2/16 [00:05<00:31, 2.26s/it]
epoch 41 | valid.f_iou 0.6952900290489197, valid.f_f-score 0.81005: 12%|███▉ | 2/16 [00:05<00:31, 2.26s/it]
epoch 41 | valid.f_iou 0.6952900290489197, valid.f_f-score 0.81005: 19%|█████▊ | 3/16 [00:05<00:18, 1.43s/it]
epoch 41 | valid.f_iou 0.6811299920082092, valid.f_f-score 0.78335: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 41 | valid.f_iou 0.6811299920082092, valid.f_f-score 0.78335: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 41 | valid.f_iou 0.6693099737167358, valid.f_f-score 0.7747: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 41 | valid.f_iou 0.6693099737167358, valid.f_f-score 0.7747: 31%|██████████ | 5/16 [00:06<00:09, 1.21it/s]
epoch 41 | valid.f_iou 0.6449999809265137, valid.f_f-score 0.75789: 31%|█████████▋ | 5/16 [00:07<00:09, 1.21it/s]
epoch 41 | valid.f_iou 0.6449999809265137, valid.f_f-score 0.75789: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 41 | valid.f_iou 0.652209997177124, valid.f_f-score 0.7707: 38%|████████████▍ | 6/16 [00:07<00:06, 1.45it/s]
epoch 41 | valid.f_iou 0.652209997177124, valid.f_f-score 0.7707: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.65it/s]
epoch 41 | valid.f_iou 0.6428300142288208, valid.f_f-score 0.76728: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 41 | valid.f_iou 0.6428300142288208, valid.f_f-score 0.76728: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 41 | valid.f_iou 0.6620500087738037, valid.f_f-score 0.77708: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.89it/s]
epoch 41 | valid.f_iou 0.6620500087738037, valid.f_f-score 0.77708: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 41 | valid.f_iou 0.6715700030326843, valid.f_f-score 0.79085: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 41 | valid.f_iou 0.6715700030326843, valid.f_f-score 0.79085: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.15it/s]
epoch 41 | valid.f_iou 0.6455600261688232, valid.f_f-score 0.76624: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.15it/s]
epoch 41 | valid.f_iou 0.6455600261688232, valid.f_f-score 0.76624: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 41 | valid.f_iou 0.6607699990272522, valid.f_f-score 0.77984: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 41 | valid.f_iou 0.6607699990272522, valid.f_f-score 0.77984: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.22it/s]
epoch 41 | valid.f_iou 0.6707900166511536, valid.f_f-score 0.78586: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.22it/s]
epoch 41 | valid.f_iou 0.6707900166511536, valid.f_f-score 0.78586: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.23it/s]
epoch 41 | valid.f_iou 0.6642299890518188, valid.f_f-score 0.7807: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.23it/s]
epoch 41 | valid.f_iou 0.6642299890518188, valid.f_f-score 0.7807: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.29it/s]
epoch 41 | valid.f_iou 0.6720200181007385, valid.f_f-score 0.7884: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.29it/s]
epoch 41 | valid.f_iou 0.6720200181007385, valid.f_f-score 0.7884: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.38it/s]
epoch 41 | valid.f_iou 0.6732000112533569, valid.f_f-score 0.7893: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.38it/s]
epoch 41 | valid.f_iou 0.6732000112533569, valid.f_f-score 0.7893: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.46it/s]
epoch 41 | valid.f_iou 0.6732000112533569, valid.f_f-score 0.7893: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 41 | valid.f_iou 0.7000200152397156, valid.f_f-score 0.73303: 0%| | 0/16 [00:05, ?it/s]
epoch 41 | valid.f_iou 0.7000200152397156, valid.f_f-score 0.73303: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 41 | valid.f_iou 0.7327700257301331, valid.f_f-score 0.80058: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 41 | valid.f_iou 0.7327700257301331, valid.f_f-score 0.80058: 12%|███▉ | 2/16 [00:05<00:33, 2.42s/it]
epoch 41 | valid.f_iou 0.6496999859809875, valid.f_f-score 0.77418: 12%|███▉ | 2/16 [00:06<00:33, 2.42s/it]
epoch 41 | valid.f_iou 0.6496999859809875, valid.f_f-score 0.77418: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 41 | valid.f_iou 0.625469982624054, valid.f_f-score 0.72347: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 41 | valid.f_iou 0.625469982624054, valid.f_f-score 0.72347: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 41 | valid.f_iou 0.6262699961662292, valid.f_f-score 0.72679: 25%|███████▊ | 4/16 [00:07<00:13, 1.09s/it]
epoch 41 | valid.f_iou 0.6262699961662292, valid.f_f-score 0.72679: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 41 | valid.f_iou 0.6091300249099731, valid.f_f-score 0.71797: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 41 | valid.f_iou 0.6091300249099731, valid.f_f-score 0.71797: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 41 | valid.f_iou 0.6256499886512756, valid.f_f-score 0.73649: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 41 | valid.f_iou 0.6256499886512756, valid.f_f-score 0.73649: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.56it/s]
epoch 41 | valid.f_iou 0.6195899844169617, valid.f_f-score 0.73734: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 41 | valid.f_iou 0.6195899844169617, valid.f_f-score 0.73734: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 41 | valid.f_iou 0.6435099840164185, valid.f_f-score 0.75046: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 41 | valid.f_iou 0.6435099840164185, valid.f_f-score 0.75046: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 41 | valid.f_iou 0.6531299948692322, valid.f_f-score 0.76357: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 41 | valid.f_iou 0.6531299948692322, valid.f_f-score 0.76357: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 41 | valid.f_iou 0.6270400285720825, valid.f_f-score 0.73574: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 41 | valid.f_iou 0.6270400285720825, valid.f_f-score 0.73574: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.06it/s]
epoch 41 | valid.f_iou 0.6438000202178955, valid.f_f-score 0.75188: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.06it/s]
epoch 41 | valid.f_iou 0.6438000202178955, valid.f_f-score 0.75188: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.01it/s]
epoch 41 | valid.f_iou 0.6551200151443481, valid.f_f-score 0.76234: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.01it/s]
epoch 41 | valid.f_iou 0.6551200151443481, valid.f_f-score 0.76234: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.15it/s]
epoch 41 | valid.f_iou 0.6447499990463257, valid.f_f-score 0.75296: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.15it/s]
epoch 41 | valid.f_iou 0.6447499990463257, valid.f_f-score 0.75296: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.29it/s]
epoch 41 | valid.f_iou 0.6538400053977966, valid.f_f-score 0.76251: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.29it/s]
epoch 41 | valid.f_iou 0.6538400053977966, valid.f_f-score 0.76251: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.41it/s]
epoch 41 | valid.f_iou 0.656440019607544, valid.f_f-score 0.76503: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.41it/s]
epoch 41 | valid.f_iou 0.656440019607544, valid.f_f-score 0.76503: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.50it/s]
epoch 41 | valid.f_iou 0.656440019607544, valid.f_f-score 0.76503: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 42 | loss 2.4234869480133057, f_iou 0.5277835726737976: 0%| | 0/74 [00:05, ?it/s]
epoch 42 | loss 2.4234869480133057, f_iou 0.5277835726737976: 1%|▌ | 1/74 [00:05<06:37, 5.44s/it]
epoch 42 | loss 0.8486998081207275, f_iou 0.5060774683952332: 1%|▌ | 1/74 [00:06<06:37, 5.44s/it]
epoch 42 | loss 0.8486998081207275, f_iou 0.5060774683952332: 3%|█ | 2/74 [00:06<03:18, 2.75s/it]
epoch 42 | loss 0.5456076860427856, f_iou 0.6597689986228943: 3%|█ | 2/74 [00:07<03:18, 2.75s/it]
epoch 42 | loss 0.5456076860427856, f_iou 0.6597689986228943: 4%|█▌ | 3/74 [00:07<02:13, 1.88s/it]
epoch 42 | loss 1.2531721591949463, f_iou 0.6397145986557007: 4%|█▌ | 3/74 [00:08<02:13, 1.88s/it]
epoch 42 | loss 1.2531721591949463, f_iou 0.6397145986557007: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 42 | loss 2.018096923828125, f_iou 0.6526613831520081: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 42 | loss 2.018096923828125, f_iou 0.6526613831520081: 7%|██▌ | 5/74 [00:08<01:25, 1.24s/it]
epoch 42 | loss 2.2121171951293945, f_iou 0.6843599081039429: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 42 | loss 2.2121171951293945, f_iou 0.6843599081039429: 8%|███ | 6/74 [00:09<01:14, 1.09s/it]
epoch 42 | loss 1.1396067142486572, f_iou 0.6508356928825378: 8%|███ | 6/74 [00:10<01:14, 1.09s/it]
epoch 42 | loss 1.1396067142486572, f_iou 0.6508356928825378: 9%|███▌ | 7/74 [00:10<01:06, 1.00it/s]
epoch 42 | loss 2.855565071105957, f_iou 0.6246871948242188: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 42 | loss 2.855565071105957, f_iou 0.6246871948242188: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 42 | loss 1.4686410427093506, f_iou 0.5741631388664246: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 42 | loss 1.4686410427093506, f_iou 0.5741631388664246: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 42 | loss 0.7672343850135803, f_iou 0.6086759567260742: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 42 | loss 0.7672343850135803, f_iou 0.6086759567260742: 14%|████▊ | 10/74 [00:12<00:55, 1.16it/s]
epoch 42 | loss 0.6543328166007996, f_iou 0.6386741995811462: 14%|████▊ | 10/74 [00:13<00:55, 1.16it/s]
epoch 42 | loss 0.6543328166007996, f_iou 0.6386741995811462: 15%|█████▎ | 11/74 [00:13<00:52, 1.20it/s]
epoch 42 | loss 3.2334067821502686, f_iou 0.6035699248313904: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 42 | loss 3.2334067821502686, f_iou 0.6035699248313904: 16%|█████▊ | 12/74 [00:14<00:49, 1.25it/s]
epoch 42 | loss 0.9767386317253113, f_iou 0.6147394776344299: 16%|█████▊ | 12/74 [00:15<00:49, 1.25it/s]
epoch 42 | loss 0.9767386317253113, f_iou 0.6147394776344299: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 42 | loss 1.6572084426879883, f_iou 0.6299661993980408: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 42 | loss 1.6572084426879883, f_iou 0.6299661993980408: 19%|██████▊ | 14/74 [00:15<00:45, 1.32it/s]
epoch 42 | loss 1.6867271661758423, f_iou 0.6359580159187317: 19%|██████▊ | 14/74 [00:16<00:45, 1.32it/s]
epoch 42 | loss 1.6867271661758423, f_iou 0.6359580159187317: 20%|███████▎ | 15/74 [00:16<00:44, 1.34it/s]
epoch 42 | loss 1.9133555889129639, f_iou 0.627139151096344: 20%|███████▌ | 15/74 [00:17<00:44, 1.34it/s]
epoch 42 | loss 1.9133555889129639, f_iou 0.627139151096344: 22%|████████ | 16/74 [00:17<00:44, 1.32it/s]
epoch 42 | loss 1.1402943134307861, f_iou 0.6143068075180054: 22%|███████▊ | 16/74 [00:18<00:44, 1.32it/s]
epoch 42 | loss 1.1402943134307861, f_iou 0.6143068075180054: 23%|████████▎ | 17/74 [00:18<00:43, 1.31it/s]
epoch 42 | loss 2.6652159690856934, f_iou 0.6170361042022705: 23%|████████▎ | 17/74 [00:18<00:43, 1.31it/s]
epoch 42 | loss 2.6652159690856934, f_iou 0.6170361042022705: 24%|████████▊ | 18/74 [00:18<00:43, 1.30it/s]
epoch 42 | loss 1.5736794471740723, f_iou 0.5931315422058105: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 42 | loss 1.5736794471740723, f_iou 0.5931315422058105: 26%|█████████▏ | 19/74 [00:19<00:42, 1.30it/s]
epoch 42 | loss 2.179002285003662, f_iou 0.6019822955131531: 26%|█████████▌ | 19/74 [00:20<00:42, 1.30it/s]
epoch 42 | loss 2.179002285003662, f_iou 0.6019822955131531: 27%|██████████ | 20/74 [00:20<00:41, 1.29it/s]
epoch 42 | loss 1.3762507438659668, f_iou 0.6151891350746155: 27%|█████████▋ | 20/74 [00:21<00:41, 1.29it/s]
epoch 42 | loss 1.3762507438659668, f_iou 0.6151891350746155: 28%|██████████▏ | 21/74 [00:21<00:40, 1.31it/s]
epoch 42 | loss 2.6583125591278076, f_iou 0.6070539355278015: 28%|██████████▏ | 21/74 [00:21<00:40, 1.31it/s]
epoch 42 | loss 2.6583125591278076, f_iou 0.6070539355278015: 30%|██████████▋ | 22/74 [00:21<00:39, 1.33it/s]
epoch 42 | loss 0.9551682472229004, f_iou 0.6048456430435181: 30%|██████████▋ | 22/74 [00:22<00:39, 1.33it/s]
epoch 42 | loss 0.9551682472229004, f_iou 0.6048456430435181: 31%|███████████▏ | 23/74 [00:22<00:37, 1.35it/s]
epoch 42 | loss 1.171569585800171, f_iou 0.5796984434127808: 31%|███████████▌ | 23/74 [00:23<00:37, 1.35it/s]
epoch 42 | loss 1.171569585800171, f_iou 0.5796984434127808: 32%|████████████ | 24/74 [00:23<00:36, 1.36it/s]
epoch 42 | loss 1.47762131690979, f_iou 0.5815971493721008: 32%|████████████▎ | 24/74 [00:23<00:36, 1.36it/s]
epoch 42 | loss 1.47762131690979, f_iou 0.5815971493721008: 34%|████████████▊ | 25/74 [00:23<00:35, 1.37it/s]
epoch 42 | loss 0.5148975253105164, f_iou 0.5952991247177124: 34%|████████████▏ | 25/74 [00:24<00:35, 1.37it/s]
epoch 42 | loss 0.5148975253105164, f_iou 0.5952991247177124: 35%|████████████▋ | 26/74 [00:24<00:34, 1.38it/s]
epoch 42 | loss 1.1166932582855225, f_iou 0.5998777747154236: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 42 | loss 1.1166932582855225, f_iou 0.5998777747154236: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 42 | loss 0.706995964050293, f_iou 0.612729549407959: 36%|█████████████▊ | 27/74 [00:26<00:34, 1.38it/s]
epoch 42 | loss 0.706995964050293, f_iou 0.612729549407959: 38%|██████████████▍ | 28/74 [00:26<00:33, 1.38it/s]
epoch 42 | loss 2.5704257488250732, f_iou 0.6053128838539124: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.38it/s]
epoch 42 | loss 2.5704257488250732, f_iou 0.6053128838539124: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 42 | loss 1.875445008277893, f_iou 0.6105481386184692: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.39it/s]
epoch 42 | loss 1.875445008277893, f_iou 0.6105481386184692: 41%|███████████████ | 30/74 [00:27<00:32, 1.35it/s]
epoch 42 | loss 2.171353816986084, f_iou 0.6163907647132874: 41%|███████████████ | 30/74 [00:28<00:32, 1.35it/s]
epoch 42 | loss 2.171353816986084, f_iou 0.6163907647132874: 42%|███████████████▌ | 31/74 [00:28<00:32, 1.33it/s]
epoch 42 | loss 1.0161850452423096, f_iou 0.6246573328971863: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 42 | loss 1.0161850452423096, f_iou 0.6246573328971863: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.31it/s]
epoch 42 | loss 2.4137959480285645, f_iou 0.6256592273712158: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.31it/s]
epoch 42 | loss 2.4137959480285645, f_iou 0.6256592273712158: 45%|████████████████ | 33/74 [00:29<00:30, 1.33it/s]
epoch 42 | loss 2.667952060699463, f_iou 0.6090914607048035: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.33it/s]
epoch 42 | loss 2.667952060699463, f_iou 0.6090914607048035: 46%|█████████████████ | 34/74 [00:30<00:29, 1.35it/s]
epoch 42 | loss 3.0737335681915283, f_iou 0.6032734513282776: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.35it/s]
epoch 42 | loss 3.0737335681915283, f_iou 0.6032734513282776: 47%|█████████████████ | 35/74 [00:31<00:28, 1.36it/s]
epoch 42 | loss 2.4949474334716797, f_iou 0.6089078187942505: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 42 | loss 2.4949474334716797, f_iou 0.6089078187942505: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 42 | loss 1.2103427648544312, f_iou 0.605985164642334: 49%|██████████████████ | 36/74 [00:32<00:27, 1.37it/s]
epoch 42 | loss 1.2103427648544312, f_iou 0.605985164642334: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.38it/s]
epoch 42 | loss 1.0472863912582397, f_iou 0.6145705580711365: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 42 | loss 1.0472863912582397, f_iou 0.6145705580711365: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 42 | loss 1.330227017402649, f_iou 0.6150488257408142: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 42 | loss 1.330227017402649, f_iou 0.6150488257408142: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 42 | loss 1.0077654123306274, f_iou 0.6236864328384399: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 42 | loss 1.0077654123306274, f_iou 0.6236864328384399: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 42 | loss 2.0318877696990967, f_iou 0.6177223920822144: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 42 | loss 2.0318877696990967, f_iou 0.6177223920822144: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.35it/s]
epoch 42 | loss 0.67302006483078, f_iou 0.6255573034286499: 55%|█████████████████████ | 41/74 [00:36<00:24, 1.35it/s]
epoch 42 | loss 0.67302006483078, f_iou 0.6255573034286499: 57%|█████████████████████▌ | 42/74 [00:36<00:24, 1.33it/s]
epoch 42 | loss 0.8738178610801697, f_iou 0.6302191019058228: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.33it/s]
epoch 42 | loss 0.8738178610801697, f_iou 0.6302191019058228: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.31it/s]
epoch 42 | loss 1.9113023281097412, f_iou 0.6283318996429443: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.31it/s]
epoch 42 | loss 1.9113023281097412, f_iou 0.6283318996429443: 59%|█████████████████████▍ | 44/74 [00:38<00:23, 1.30it/s]
epoch 42 | loss 2.900977849960327, f_iou 0.6348015666007996: 59%|██████████████████████ | 44/74 [00:38<00:23, 1.30it/s]
epoch 42 | loss 2.900977849960327, f_iou 0.6348015666007996: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.33it/s]
epoch 42 | loss 0.7048050165176392, f_iou 0.6420591473579407: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.33it/s]
epoch 42 | loss 0.7048050165176392, f_iou 0.6420591473579407: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.34it/s]
epoch 42 | loss 2.864351749420166, f_iou 0.6440771222114563: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.34it/s]
epoch 42 | loss 2.864351749420166, f_iou 0.6440771222114563: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.36it/s]
epoch 42 | loss 0.6000788807868958, f_iou 0.6497735977172852: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.36it/s]
epoch 42 | loss 0.6000788807868958, f_iou 0.6497735977172852: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.37it/s]
epoch 42 | loss 0.0, f_iou 0.6566314697265625: 65%|█████████████████████████████████ | 48/74 [00:41<00:19, 1.37it/s]
epoch 42 | loss 0.0, f_iou 0.6566314697265625: 66%|█████████████████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 42 | loss 1.7060303688049316, f_iou 0.6577186584472656: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.37it/s]
epoch 42 | loss 1.7060303688049316, f_iou 0.6577186584472656: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.37it/s]
epoch 42 | loss 0.9953618049621582, f_iou 0.6602617502212524: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.37it/s]
epoch 42 | loss 0.9953618049621582, f_iou 0.6602617502212524: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 42 | loss 4.123773097991943, f_iou 0.6588667631149292: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.38it/s]
epoch 42 | loss 4.123773097991943, f_iou 0.6588667631149292: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 42 | loss 1.377240777015686, f_iou 0.6618461608886719: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.38it/s]
epoch 42 | loss 1.377240777015686, f_iou 0.6618461608886719: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.38it/s]
epoch 42 | loss 2.6869213581085205, f_iou 0.6633898019790649: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 42 | loss 2.6869213581085205, f_iou 0.6633898019790649: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.38it/s]
epoch 42 | loss 2.916064977645874, f_iou 0.6599002480506897: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 42 | loss 2.916064977645874, f_iou 0.6599002480506897: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 42 | loss 1.8103139400482178, f_iou 0.6527368426322937: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 42 | loss 1.8103139400482178, f_iou 0.6527368426322937: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 42 | loss 1.4667490720748901, f_iou 0.6461468935012817: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 42 | loss 1.4667490720748901, f_iou 0.6461468935012817: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 42 | loss 1.0133696794509888, f_iou 0.6511086225509644: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 42 | loss 1.0133696794509888, f_iou 0.6511086225509644: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 42 | loss 1.7432421445846558, f_iou 0.6493691802024841: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 42 | loss 1.7432421445846558, f_iou 0.6493691802024841: 80%|████████████████████████████▋ | 59/74 [00:48<00:11, 1.35it/s]
epoch 42 | loss 1.2048225402832031, f_iou 0.6498287916183472: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.35it/s]
epoch 42 | loss 1.2048225402832031, f_iou 0.6498287916183472: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.32it/s]
epoch 42 | loss 0.7360995411872864, f_iou 0.6443904042243958: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.32it/s]
epoch 42 | loss 0.7360995411872864, f_iou 0.6443904042243958: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.33it/s]
epoch 42 | loss 2.709392786026001, f_iou 0.6421300768852234: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.33it/s]
epoch 42 | loss 2.709392786026001, f_iou 0.6421300768852234: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.35it/s]
epoch 42 | loss 2.4238533973693848, f_iou 0.6461304426193237: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.35it/s]
epoch 42 | loss 2.4238533973693848, f_iou 0.6461304426193237: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.35it/s]
epoch 42 | loss 2.0204875469207764, f_iou 0.644722580909729: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.35it/s]
epoch 42 | loss 2.0204875469207764, f_iou 0.644722580909729: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.35it/s]
epoch 42 | loss 0.8433903455734253, f_iou 0.6374261379241943: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.35it/s]
epoch 42 | loss 0.8433903455734253, f_iou 0.6374261379241943: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.33it/s]
epoch 42 | loss 5.740212440490723, f_iou 0.6300031542778015: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.33it/s]
epoch 42 | loss 5.740212440490723, f_iou 0.6300031542778015: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.35it/s]
epoch 42 | loss 1.3538987636566162, f_iou 0.6221709847450256: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.35it/s]
epoch 42 | loss 1.3538987636566162, f_iou 0.6221709847450256: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.37it/s]
epoch 42 | loss 0.8111940622329712, f_iou 0.6237717866897583: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 42 | loss 0.8111940622329712, f_iou 0.6237717866897583: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 42 | loss 1.543271780014038, f_iou 0.6250171661376953: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 42 | loss 1.543271780014038, f_iou 0.6250171661376953: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 42 | loss 0.750149130821228, f_iou 0.6293062567710876: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 42 | loss 0.750149130821228, f_iou 0.6293062567710876: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 42 | loss 2.598313093185425, f_iou 0.6204427480697632: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 42 | loss 2.598313093185425, f_iou 0.6204427480697632: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 42 | loss 1.343039631843567, f_iou 0.6231621503829956: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 42 | loss 1.343039631843567, f_iou 0.6231621503829956: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 42 | loss 6.138124465942383, f_iou 0.6234119534492493: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 42 | loss 6.138124465942383, f_iou 0.6234119534492493: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 42 | loss 1.0333528518676758, f_iou 0.6159219145774841: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 42 | loss 1.0333528518676758, f_iou 0.6159219145774841: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 42 | loss 1.0333528518676758, f_iou 0.6159219145774841: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 42 | valid.f_iou 0.6650199890136719, valid.f_f-score 0.85251: 0%| | 0/16 [00:05, ?it/s]
epoch 42 | valid.f_iou 0.6650199890136719, valid.f_f-score 0.85251: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 42 | valid.f_iou 0.6341599822044373, valid.f_f-score 0.88044: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 42 | valid.f_iou 0.6341599822044373, valid.f_f-score 0.88044: 12%|███▉ | 2/16 [00:05<00:35, 2.51s/it]
epoch 42 | valid.f_iou 0.5003200173377991, valid.f_f-score 0.79109: 12%|███▉ | 2/16 [00:06<00:35, 2.51s/it]
epoch 42 | valid.f_iou 0.5003200173377991, valid.f_f-score 0.79109: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 42 | valid.f_iou 0.5524500012397766, valid.f_f-score 0.78753: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 42 | valid.f_iou 0.5524500012397766, valid.f_f-score 0.78753: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 42 | valid.f_iou 0.5021399855613708, valid.f_f-score 0.7607: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 42 | valid.f_iou 0.5021399855613708, valid.f_f-score 0.7607: 31%|██████████ | 5/16 [00:07<00:09, 1.16it/s]
epoch 42 | valid.f_iou 0.4757100045681, valid.f_f-score 0.72994: 31%|██████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 42 | valid.f_iou 0.4757100045681, valid.f_f-score 0.72994: 38%|████████████▊ | 6/16 [00:07<00:07, 1.38it/s]
epoch 42 | valid.f_iou 0.5029199719429016, valid.f_f-score 0.7473: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 42 | valid.f_iou 0.5029199719429016, valid.f_f-score 0.7473: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 42 | valid.f_iou 0.484279990196228, valid.f_f-score 0.73097: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 42 | valid.f_iou 0.484279990196228, valid.f_f-score 0.73097: 50%|████████████████ | 8/16 [00:08<00:04, 1.82it/s]
epoch 42 | valid.f_iou 0.4964500069618225, valid.f_f-score 0.72501: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 42 | valid.f_iou 0.4964500069618225, valid.f_f-score 0.72501: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 42 | valid.f_iou 0.47947001457214355, valid.f_f-score 0.72453: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.05it/s]
epoch 42 | valid.f_iou 0.47947001457214355, valid.f_f-score 0.72453: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.23it/s]
epoch 42 | valid.f_iou 0.4761100113391876, valid.f_f-score 0.71051: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.23it/s]
epoch 42 | valid.f_iou 0.4761100113391876, valid.f_f-score 0.71051: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.37it/s]
epoch 42 | valid.f_iou 0.49511000514030457, valid.f_f-score 0.72714: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.37it/s]
epoch 42 | valid.f_iou 0.49511000514030457, valid.f_f-score 0.72714: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.48it/s]
epoch 42 | valid.f_iou 0.5102699995040894, valid.f_f-score 0.74306: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.48it/s]
epoch 42 | valid.f_iou 0.5102699995040894, valid.f_f-score 0.74306: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 42 | valid.f_iou 0.5077700018882751, valid.f_f-score 0.73765: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 42 | valid.f_iou 0.5077700018882751, valid.f_f-score 0.73765: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 42 | valid.f_iou 0.5148299932479858, valid.f_f-score 0.73842: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 42 | valid.f_iou 0.5148299932479858, valid.f_f-score 0.73842: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 42 | valid.f_iou 0.5249999761581421, valid.f_f-score 0.73817: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 42 | valid.f_iou 0.5249999761581421, valid.f_f-score 0.73817: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 42 | valid.f_iou 0.5249999761581421, valid.f_f-score 0.73817: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 42 | valid.f_iou 0.7839499711990356, valid.f_f-score 0.77428: 0%| | 0/16 [00:05, ?it/s]
epoch 42 | valid.f_iou 0.7839499711990356, valid.f_f-score 0.77428: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 42 | valid.f_iou 0.8131200075149536, valid.f_f-score 0.85607: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 42 | valid.f_iou 0.8131200075149536, valid.f_f-score 0.85607: 12%|███▉ | 2/16 [00:05<00:33, 2.36s/it]
epoch 42 | valid.f_iou 0.7069000005722046, valid.f_f-score 0.80464: 12%|███▉ | 2/16 [00:05<00:33, 2.36s/it]
epoch 42 | valid.f_iou 0.7069000005722046, valid.f_f-score 0.80464: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 42 | valid.f_iou 0.698989987373352, valid.f_f-score 0.78647: 19%|██████ | 3/16 [00:06<00:19, 1.48s/it]
epoch 42 | valid.f_iou 0.698989987373352, valid.f_f-score 0.78647: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 42 | valid.f_iou 0.681850016117096, valid.f_f-score 0.78118: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 42 | valid.f_iou 0.681850016117096, valid.f_f-score 0.78118: 31%|██████████ | 5/16 [00:06<00:09, 1.22it/s]
epoch 42 | valid.f_iou 0.6737499833106995, valid.f_f-score 0.78003: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 42 | valid.f_iou 0.6737499833106995, valid.f_f-score 0.78003: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 42 | valid.f_iou 0.684220016002655, valid.f_f-score 0.7953: 38%|████████████▍ | 6/16 [00:07<00:06, 1.45it/s]
epoch 42 | valid.f_iou 0.684220016002655, valid.f_f-score 0.7953: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.65it/s]
epoch 42 | valid.f_iou 0.6697400212287903, valid.f_f-score 0.7888: 44%|██████████████ | 7/16 [00:08<00:05, 1.65it/s]
epoch 42 | valid.f_iou 0.6697400212287903, valid.f_f-score 0.7888: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 42 | valid.f_iou 0.6801699995994568, valid.f_f-score 0.79457: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 42 | valid.f_iou 0.6801699995994568, valid.f_f-score 0.79457: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 42 | valid.f_iou 0.6888999938964844, valid.f_f-score 0.80528: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 42 | valid.f_iou 0.6888999938964844, valid.f_f-score 0.80528: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 42 | valid.f_iou 0.6660599708557129, valid.f_f-score 0.77359: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 42 | valid.f_iou 0.6660599708557129, valid.f_f-score 0.77359: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 42 | valid.f_iou 0.6802899837493896, valid.f_f-score 0.78581: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 42 | valid.f_iou 0.6802899837493896, valid.f_f-score 0.78581: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 42 | valid.f_iou 0.6909099817276001, valid.f_f-score 0.7944: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.39it/s]
epoch 42 | valid.f_iou 0.6909099817276001, valid.f_f-score 0.7944: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 42 | valid.f_iou 0.6823999881744385, valid.f_f-score 0.78772: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 42 | valid.f_iou 0.6823999881744385, valid.f_f-score 0.78772: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 42 | valid.f_iou 0.6867899894714355, valid.f_f-score 0.79132: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 42 | valid.f_iou 0.6867899894714355, valid.f_f-score 0.79132: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 42 | valid.f_iou 0.690090000629425, valid.f_f-score 0.79193: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.62it/s]
epoch 42 | valid.f_iou 0.690090000629425, valid.f_f-score 0.79193: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 42 | valid.f_iou 0.690090000629425, valid.f_f-score 0.79193: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 42 | valid.f_iou 0.7839499711990356, valid.f_f-score 0.77428: 0%| | 0/16 [00:04, ?it/s]
epoch 42 | valid.f_iou 0.7839499711990356, valid.f_f-score 0.77428: 6%|█▉ | 1/16 [00:04<01:13, 4.88s/it]
epoch 42 | valid.f_iou 0.8131200075149536, valid.f_f-score 0.85607: 6%|█▉ | 1/16 [00:05<01:13, 4.88s/it]
epoch 42 | valid.f_iou 0.8131200075149536, valid.f_f-score 0.85607: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 42 | valid.f_iou 0.7069000005722046, valid.f_f-score 0.80464: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 42 | valid.f_iou 0.7069000005722046, valid.f_f-score 0.80464: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 42 | valid.f_iou 0.6990000009536743, valid.f_f-score 0.78647: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 42 | valid.f_iou 0.6990000009536743, valid.f_f-score 0.78647: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 42 | valid.f_iou 0.6846500039100647, valid.f_f-score 0.78118: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 42 | valid.f_iou 0.6846500039100647, valid.f_f-score 0.78118: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 42 | valid.f_iou 0.6760799884796143, valid.f_f-score 0.78003: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 42 | valid.f_iou 0.6760799884796143, valid.f_f-score 0.78003: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 42 | valid.f_iou 0.6879500150680542, valid.f_f-score 0.7953: 38%|████████████ | 6/16 [00:07<00:06, 1.43it/s]
epoch 42 | valid.f_iou 0.6879500150680542, valid.f_f-score 0.7953: 44%|██████████████ | 7/16 [00:07<00:05, 1.63it/s]
epoch 42 | valid.f_iou 0.6729999780654907, valid.f_f-score 0.7888: 44%|██████████████ | 7/16 [00:07<00:05, 1.63it/s]
epoch 42 | valid.f_iou 0.6729999780654907, valid.f_f-score 0.7888: 50%|████████████████ | 8/16 [00:07<00:04, 1.80it/s]
epoch 42 | valid.f_iou 0.6853700280189514, valid.f_f-score 0.79457: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 42 | valid.f_iou 0.6853700280189514, valid.f_f-score 0.79457: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 42 | valid.f_iou 0.6916900277137756, valid.f_f-score 0.80244: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 42 | valid.f_iou 0.6916900277137756, valid.f_f-score 0.80244: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.21it/s]
epoch 42 | valid.f_iou 0.668470025062561, valid.f_f-score 0.7706: 62%|████████████████████ | 10/16 [00:09<00:02, 2.21it/s]
epoch 42 | valid.f_iou 0.668470025062561, valid.f_f-score 0.7706: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.36it/s]
epoch 42 | valid.f_iou 0.6825000047683716, valid.f_f-score 0.78307: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 42 | valid.f_iou 0.6825000047683716, valid.f_f-score 0.78307: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 42 | valid.f_iou 0.6892600059509277, valid.f_f-score 0.78848: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 42 | valid.f_iou 0.6892600059509277, valid.f_f-score 0.78848: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 42 | valid.f_iou 0.6808599829673767, valid.f_f-score 0.78223: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 42 | valid.f_iou 0.6808599829673767, valid.f_f-score 0.78223: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 42 | valid.f_iou 0.6853500008583069, valid.f_f-score 0.7862: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 42 | valid.f_iou 0.6853500008583069, valid.f_f-score 0.7862: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 42 | valid.f_iou 0.6892300248146057, valid.f_f-score 0.78713: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 42 | valid.f_iou 0.6892300248146057, valid.f_f-score 0.78713: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 42 | valid.f_iou 0.6892300248146057, valid.f_f-score 0.78713: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 43 | loss 0.7500457167625427, f_iou 0.6992908716201782: 0%| | 0/74 [00:06, ?it/s]
epoch 43 | loss 0.7500457167625427, f_iou 0.6992908716201782: 1%|▌ | 1/74 [00:06<07:23, 6.08s/it]
epoch 43 | loss 2.414224624633789, f_iou 0.6158287525177002: 1%|▌ | 1/74 [00:06<07:23, 6.08s/it]
epoch 43 | loss 2.414224624633789, f_iou 0.6158287525177002: 3%|█ | 2/74 [00:06<03:36, 3.01s/it]
epoch 43 | loss 1.4128761291503906, f_iou 0.6600181460380554: 3%|█ | 2/74 [00:07<03:36, 3.01s/it]
epoch 43 | loss 1.4128761291503906, f_iou 0.6600181460380554: 4%|█▌ | 3/74 [00:07<02:24, 2.04s/it]
epoch 43 | loss 2.1746981143951416, f_iou 0.6211907863616943: 4%|█▌ | 3/74 [00:08<02:24, 2.04s/it]
epoch 43 | loss 2.1746981143951416, f_iou 0.6211907863616943: 5%|██ | 4/74 [00:08<01:48, 1.55s/it]
epoch 43 | loss 1.8463635444641113, f_iou 0.5467914938926697: 5%|██ | 4/74 [00:09<01:48, 1.55s/it]
epoch 43 | loss 1.8463635444641113, f_iou 0.5467914938926697: 7%|██▌ | 5/74 [00:09<01:26, 1.26s/it]
epoch 43 | loss 7.1097917556762695, f_iou 0.4739210605621338: 7%|██▌ | 5/74 [00:10<01:26, 1.26s/it]
epoch 43 | loss 7.1097917556762695, f_iou 0.4739210605621338: 8%|███ | 6/74 [00:10<01:14, 1.09s/it]
epoch 43 | loss 1.5056991577148438, f_iou 0.48985546827316284: 8%|██▉ | 6/74 [00:10<01:14, 1.09s/it]
epoch 43 | loss 1.5056991577148438, f_iou 0.48985546827316284: 9%|███▍ | 7/74 [00:10<01:05, 1.02it/s]
epoch 43 | loss 1.189770221710205, f_iou 0.5047447681427002: 9%|███▌ | 7/74 [00:11<01:05, 1.02it/s]
epoch 43 | loss 1.189770221710205, f_iou 0.5047447681427002: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 43 | loss 0.7601209878921509, f_iou 0.5566127896308899: 11%|████ | 8/74 [00:12<01:00, 1.09it/s]
epoch 43 | loss 0.7601209878921509, f_iou 0.5566127896308899: 12%|████▌ | 9/74 [00:12<00:56, 1.15it/s]
epoch 43 | loss 1.3180327415466309, f_iou 0.5616647601127625: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 43 | loss 1.3180327415466309, f_iou 0.5616647601127625: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 43 | loss 3.094641923904419, f_iou 0.563752293586731: 14%|█████▏ | 10/74 [00:13<00:53, 1.19it/s]
epoch 43 | loss 3.094641923904419, f_iou 0.563752293586731: 15%|█████▋ | 11/74 [00:13<00:51, 1.23it/s]
epoch 43 | loss 3.3401997089385986, f_iou 0.5584217309951782: 15%|█████▎ | 11/74 [00:14<00:51, 1.23it/s]
epoch 43 | loss 3.3401997089385986, f_iou 0.5584217309951782: 16%|█████▊ | 12/74 [00:14<00:49, 1.25it/s]
epoch 43 | loss 0.7021713256835938, f_iou 0.5877112746238708: 16%|█████▊ | 12/74 [00:15<00:49, 1.25it/s]
epoch 43 | loss 0.7021713256835938, f_iou 0.5877112746238708: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 43 | loss 5.263943672180176, f_iou 0.5720917582511902: 18%|██████▌ | 13/74 [00:16<00:47, 1.29it/s]
epoch 43 | loss 5.263943672180176, f_iou 0.5720917582511902: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 43 | loss 0.9320768117904663, f_iou 0.5887627601623535: 19%|██████▊ | 14/74 [00:16<00:45, 1.32it/s]
epoch 43 | loss 0.9320768117904663, f_iou 0.5887627601623535: 20%|███████▎ | 15/74 [00:16<00:44, 1.34it/s]
epoch 43 | loss 1.2528386116027832, f_iou 0.6047923564910889: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 43 | loss 1.2528386116027832, f_iou 0.6047923564910889: 22%|███████▊ | 16/74 [00:17<00:42, 1.35it/s]
epoch 43 | loss 2.414959192276001, f_iou 0.623988687992096: 22%|████████▏ | 16/74 [00:18<00:42, 1.35it/s]
epoch 43 | loss 2.414959192276001, f_iou 0.623988687992096: 23%|████████▋ | 17/74 [00:18<00:41, 1.36it/s]
epoch 43 | loss 1.434551477432251, f_iou 0.6259817481040955: 23%|████████▌ | 17/74 [00:19<00:41, 1.36it/s]
epoch 43 | loss 1.434551477432251, f_iou 0.6259817481040955: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 43 | loss 0.7885000109672546, f_iou 0.6426670551300049: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 43 | loss 0.7885000109672546, f_iou 0.6426670551300049: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 43 | loss 1.9023025035858154, f_iou 0.6371362805366516: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 43 | loss 1.9023025035858154, f_iou 0.6371362805366516: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 43 | loss 0.5338162183761597, f_iou 0.6527667045593262: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 43 | loss 0.5338162183761597, f_iou 0.6527667045593262: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 43 | loss 2.043989658355713, f_iou 0.6459377408027649: 28%|██████████▌ | 21/74 [00:21<00:38, 1.39it/s]
epoch 43 | loss 2.043989658355713, f_iou 0.6459377408027649: 30%|███████████ | 22/74 [00:21<00:37, 1.39it/s]
epoch 43 | loss 2.5857248306274414, f_iou 0.6326606273651123: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 43 | loss 2.5857248306274414, f_iou 0.6326606273651123: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 43 | loss 2.495496988296509, f_iou 0.6380293965339661: 31%|███████████▌ | 23/74 [00:23<00:36, 1.39it/s]
epoch 43 | loss 2.495496988296509, f_iou 0.6380293965339661: 32%|████████████ | 24/74 [00:23<00:35, 1.40it/s]
epoch 43 | loss 2.8736510276794434, f_iou 0.6323608756065369: 32%|███████████▋ | 24/74 [00:24<00:35, 1.40it/s]
epoch 43 | loss 2.8736510276794434, f_iou 0.6323608756065369: 34%|████████████▏ | 25/74 [00:24<00:35, 1.40it/s]
epoch 43 | loss 2.0425682067871094, f_iou 0.6298151016235352: 34%|████████████▏ | 25/74 [00:24<00:35, 1.40it/s]
epoch 43 | loss 2.0425682067871094, f_iou 0.6298151016235352: 35%|████████████▋ | 26/74 [00:24<00:34, 1.40it/s]
epoch 43 | loss 1.5722010135650635, f_iou 0.6280331611633301: 35%|████████████▋ | 26/74 [00:25<00:34, 1.40it/s]
epoch 43 | loss 1.5722010135650635, f_iou 0.6280331611633301: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.40it/s]
epoch 43 | loss 1.2383893728256226, f_iou 0.609307050704956: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.40it/s]
epoch 43 | loss 1.2383893728256226, f_iou 0.609307050704956: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 43 | loss 2.0028834342956543, f_iou 0.6136119961738586: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 43 | loss 2.0028834342956543, f_iou 0.6136119961738586: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 43 | loss 2.862234115600586, f_iou 0.5987054705619812: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.39it/s]
epoch 43 | loss 2.862234115600586, f_iou 0.5987054705619812: 41%|███████████████ | 30/74 [00:27<00:31, 1.39it/s]
epoch 43 | loss 1.1926945447921753, f_iou 0.595908522605896: 41%|███████████████ | 30/74 [00:28<00:31, 1.39it/s]
epoch 43 | loss 1.1926945447921753, f_iou 0.595908522605896: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.40it/s]
epoch 43 | loss 0.7383702993392944, f_iou 0.5993128418922424: 42%|███████████████ | 31/74 [00:29<00:30, 1.40it/s]
epoch 43 | loss 0.7383702993392944, f_iou 0.5993128418922424: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.32it/s]
epoch 43 | loss 1.736879825592041, f_iou 0.5886021852493286: 43%|████████████████ | 32/74 [00:29<00:31, 1.32it/s]
epoch 43 | loss 1.736879825592041, f_iou 0.5886021852493286: 45%|████████████████▌ | 33/74 [00:29<00:30, 1.34it/s]
epoch 43 | loss 3.9234812259674072, f_iou 0.5783644318580627: 45%|████████████████ | 33/74 [00:30<00:30, 1.34it/s]
epoch 43 | loss 3.9234812259674072, f_iou 0.5783644318580627: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.36it/s]
epoch 43 | loss 1.8519699573516846, f_iou 0.5775249004364014: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 43 | loss 1.8519699573516846, f_iou 0.5775249004364014: 47%|█████████████████ | 35/74 [00:31<00:28, 1.36it/s]
epoch 43 | loss 1.6845227479934692, f_iou 0.5726146101951599: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 43 | loss 1.6845227479934692, f_iou 0.5726146101951599: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 43 | loss 1.5619696378707886, f_iou 0.5817758440971375: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 43 | loss 1.5619696378707886, f_iou 0.5817758440971375: 50%|██████████████████ | 37/74 [00:32<00:26, 1.38it/s]
epoch 43 | loss 1.4936268329620361, f_iou 0.5869858264923096: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 43 | loss 1.4936268329620361, f_iou 0.5869858264923096: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 43 | loss 2.090395212173462, f_iou 0.5845403075218201: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 43 | loss 2.090395212173462, f_iou 0.5845403075218201: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 43 | loss 0.0, f_iou 0.5928263068199158: 53%|██████████████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 43 | loss 0.0, f_iou 0.5928263068199158: 54%|███████████████████████████▌ | 40/74 [00:34<00:24, 1.38it/s]
epoch 43 | loss 2.6101136207580566, f_iou 0.5939861536026001: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 43 | loss 2.6101136207580566, f_iou 0.5939861536026001: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 43 | loss 2.9323766231536865, f_iou 0.5901003479957581: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 43 | loss 2.9323766231536865, f_iou 0.5901003479957581: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 43 | loss 1.0808088779449463, f_iou 0.5908628106117249: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 43 | loss 1.0808088779449463, f_iou 0.5908628106117249: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 43 | loss 1.6490867137908936, f_iou 0.5891405344009399: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 43 | loss 1.6490867137908936, f_iou 0.5891405344009399: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 43 | loss 1.381856918334961, f_iou 0.5760486125946045: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 43 | loss 1.381856918334961, f_iou 0.5760486125946045: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.37it/s]
epoch 43 | loss 1.813653588294983, f_iou 0.5779616236686707: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.37it/s]
epoch 43 | loss 1.813653588294983, f_iou 0.5779616236686707: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.37it/s]
epoch 43 | loss 0.6623391509056091, f_iou 0.5679618120193481: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.37it/s]
epoch 43 | loss 0.6623391509056091, f_iou 0.5679618120193481: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 43 | loss 1.1158795356750488, f_iou 0.5709053874015808: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 43 | loss 1.1158795356750488, f_iou 0.5709053874015808: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 43 | loss 1.1872870922088623, f_iou 0.5593599081039429: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 43 | loss 1.1872870922088623, f_iou 0.5593599081039429: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.39it/s]
epoch 43 | loss 3.0096349716186523, f_iou 0.5610762238502502: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.39it/s]
epoch 43 | loss 3.0096349716186523, f_iou 0.5610762238502502: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 43 | loss 2.3112452030181885, f_iou 0.5664231181144714: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 43 | loss 2.3112452030181885, f_iou 0.5664231181144714: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.38it/s]
epoch 43 | loss 2.8182196617126465, f_iou 0.5695450901985168: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 43 | loss 2.8182196617126465, f_iou 0.5695450901985168: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 43 | loss 1.8682548999786377, f_iou 0.57082200050354: 70%|██████████████████████████▋ | 52/74 [00:44<00:15, 1.39it/s]
epoch 43 | loss 1.8682548999786377, f_iou 0.57082200050354: 72%|███████████████████████████▏ | 53/74 [00:44<00:15, 1.39it/s]
epoch 43 | loss 2.1692328453063965, f_iou 0.5766815543174744: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 43 | loss 2.1692328453063965, f_iou 0.5766815543174744: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 43 | loss 1.2139992713928223, f_iou 0.5820019841194153: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 43 | loss 1.2139992713928223, f_iou 0.5820019841194153: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 43 | loss 3.871304512023926, f_iou 0.5738710165023804: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 43 | loss 3.871304512023926, f_iou 0.5738710165023804: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 43 | loss 1.1393866539001465, f_iou 0.5756378173828125: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 43 | loss 1.1393866539001465, f_iou 0.5756378173828125: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 43 | loss 1.2111055850982666, f_iou 0.5661605000495911: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 43 | loss 1.2111055850982666, f_iou 0.5661605000495911: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 43 | loss 2.4057464599609375, f_iou 0.567726194858551: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.35it/s]
epoch 43 | loss 2.4057464599609375, f_iou 0.567726194858551: 80%|█████████████████████████████▌ | 59/74 [00:48<00:11, 1.33it/s]
epoch 43 | loss 2.969266891479492, f_iou 0.5630835890769958: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.33it/s]
epoch 43 | loss 2.969266891479492, f_iou 0.5630835890769958: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.32it/s]
epoch 43 | loss 1.538054347038269, f_iou 0.5660505890846252: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.32it/s]
epoch 43 | loss 1.538054347038269, f_iou 0.5660505890846252: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.30it/s]
epoch 43 | loss 0.0, f_iou 0.5726158022880554: 82%|██████████████████████████████████████████ | 61/74 [00:51<00:09, 1.30it/s]
epoch 43 | loss 0.0, f_iou 0.5726158022880554: 84%|██████████████████████████████████████████▋ | 62/74 [00:51<00:09, 1.30it/s]
epoch 43 | loss 0.7482740879058838, f_iou 0.5728006958961487: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.30it/s]
epoch 43 | loss 0.7482740879058838, f_iou 0.5728006958961487: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.32it/s]
epoch 43 | loss 4.295083522796631, f_iou 0.5666605234146118: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.32it/s]
epoch 43 | loss 4.295083522796631, f_iou 0.5666605234146118: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.34it/s]
epoch 43 | loss 0.6618468165397644, f_iou 0.5727540254592896: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.34it/s]
epoch 43 | loss 0.6618468165397644, f_iou 0.5727540254592896: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.35it/s]
epoch 43 | loss 2.6763038635253906, f_iou 0.5712698698043823: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.35it/s]
epoch 43 | loss 2.6763038635253906, f_iou 0.5712698698043823: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.36it/s]
epoch 43 | loss 0.7524117827415466, f_iou 0.5627476572990417: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.36it/s]
epoch 43 | loss 0.7524117827415466, f_iou 0.5627476572990417: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 43 | loss 0.7144848108291626, f_iou 0.566561222076416: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 43 | loss 0.7144848108291626, f_iou 0.566561222076416: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 43 | loss 1.731339454650879, f_iou 0.5684958100318909: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 43 | loss 1.731339454650879, f_iou 0.5684958100318909: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.38it/s]
epoch 43 | loss 1.2519407272338867, f_iou 0.5711148381233215: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.38it/s]
epoch 43 | loss 1.2519407272338867, f_iou 0.5711148381233215: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 43 | loss 1.0795702934265137, f_iou 0.5669116973876953: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 43 | loss 1.0795702934265137, f_iou 0.5669116973876953: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 43 | loss 1.3650223016738892, f_iou 0.5679979920387268: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 43 | loss 1.3650223016738892, f_iou 0.5679979920387268: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 43 | loss 1.601926326751709, f_iou 0.5724577307701111: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 43 | loss 1.601926326751709, f_iou 0.5724577307701111: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 43 | loss 0.7011647820472717, f_iou 0.5747672915458679: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 43 | loss 0.7011647820472717, f_iou 0.5747672915458679: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 43 | loss 0.7011647820472717, f_iou 0.5747672915458679: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 43 | valid.f_iou 0.7428600192070007, valid.f_f-score 0.81155: 0%| | 0/16 [00:05, ?it/s]
epoch 43 | valid.f_iou 0.7428600192070007, valid.f_f-score 0.81155: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 43 | valid.f_iou 0.6920400261878967, valid.f_f-score 0.84912: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 43 | valid.f_iou 0.6920400261878967, valid.f_f-score 0.84912: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 43 | valid.f_iou 0.5705599784851074, valid.f_f-score 0.77974: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 43 | valid.f_iou 0.5705599784851074, valid.f_f-score 0.77974: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 43 | valid.f_iou 0.609000027179718, valid.f_f-score 0.79174: 19%|██████ | 3/16 [00:06<00:20, 1.60s/it]
epoch 43 | valid.f_iou 0.609000027179718, valid.f_f-score 0.79174: 25%|████████ | 4/16 [00:06<00:13, 1.15s/it]
epoch 43 | valid.f_iou 0.570609986782074, valid.f_f-score 0.78094: 25%|████████ | 4/16 [00:07<00:13, 1.15s/it]
epoch 43 | valid.f_iou 0.570609986782074, valid.f_f-score 0.78094: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 43 | valid.f_iou 0.5436499714851379, valid.f_f-score 0.75287: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 43 | valid.f_iou 0.5436499714851379, valid.f_f-score 0.75287: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 43 | valid.f_iou 0.5601000189781189, valid.f_f-score 0.76386: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 43 | valid.f_iou 0.5601000189781189, valid.f_f-score 0.76386: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 43 | valid.f_iou 0.5518900156021118, valid.f_f-score 0.75363: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 43 | valid.f_iou 0.5518900156021118, valid.f_f-score 0.75363: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 43 | valid.f_iou 0.5522599816322327, valid.f_f-score 0.73577: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.78it/s]
epoch 43 | valid.f_iou 0.5522599816322327, valid.f_f-score 0.73577: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 43 | valid.f_iou 0.5365300178527832, valid.f_f-score 0.73457: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 43 | valid.f_iou 0.5365300178527832, valid.f_f-score 0.73457: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.06it/s]
epoch 43 | valid.f_iou 0.53125, valid.f_f-score 0.72854: 62%|█████████████████████████▋ | 10/16 [00:09<00:02, 2.06it/s]
epoch 43 | valid.f_iou 0.53125, valid.f_f-score 0.72854: 69%|████████████████████████████▏ | 11/16 [00:09<00:02, 2.11it/s]
epoch 43 | valid.f_iou 0.5537499785423279, valid.f_f-score 0.74489: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.11it/s]
epoch 43 | valid.f_iou 0.5537499785423279, valid.f_f-score 0.74489: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 43 | valid.f_iou 0.5580400228500366, valid.f_f-score 0.75387: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 43 | valid.f_iou 0.5580400228500366, valid.f_f-score 0.75387: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.17it/s]
epoch 43 | valid.f_iou 0.5522800087928772, valid.f_f-score 0.74654: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.17it/s]
epoch 43 | valid.f_iou 0.5522800087928772, valid.f_f-score 0.74654: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.31it/s]
epoch 43 | valid.f_iou 0.5592300295829773, valid.f_f-score 0.74656: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.31it/s]
epoch 43 | valid.f_iou 0.5592300295829773, valid.f_f-score 0.74656: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 43 | valid.f_iou 0.5658900141716003, valid.f_f-score 0.74448: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 43 | valid.f_iou 0.5658900141716003, valid.f_f-score 0.74448: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.49it/s]
epoch 43 | valid.f_iou 0.5658900141716003, valid.f_f-score 0.74448: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 43 | valid.f_iou 0.6319299936294556, valid.f_f-score 0.65512: 0%| | 0/16 [00:05, ?it/s]
epoch 43 | valid.f_iou 0.6319299936294556, valid.f_f-score 0.65512: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 43 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.80147: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 43 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.80147: 12%|███▉ | 2/16 [00:05<00:35, 2.54s/it]
epoch 43 | valid.f_iou 0.689740002155304, valid.f_f-score 0.7745: 12%|████▏ | 2/16 [00:06<00:35, 2.54s/it]
epoch 43 | valid.f_iou 0.689740002155304, valid.f_f-score 0.7745: 19%|██████▏ | 3/16 [00:06<00:20, 1.60s/it]
epoch 43 | valid.f_iou 0.676829993724823, valid.f_f-score 0.74255: 19%|██████ | 3/16 [00:06<00:20, 1.60s/it]
epoch 43 | valid.f_iou 0.676829993724823, valid.f_f-score 0.74255: 25%|████████ | 4/16 [00:06<00:13, 1.15s/it]
epoch 43 | valid.f_iou 0.6774899959564209, valid.f_f-score 0.75979: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 43 | valid.f_iou 0.6774899959564209, valid.f_f-score 0.75979: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 43 | valid.f_iou 0.675029993057251, valid.f_f-score 0.76331: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 43 | valid.f_iou 0.675029993057251, valid.f_f-score 0.76331: 38%|████████████ | 6/16 [00:07<00:07, 1.36it/s]
epoch 43 | valid.f_iou 0.6793699860572815, valid.f_f-score 0.77814: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 43 | valid.f_iou 0.6793699860572815, valid.f_f-score 0.77814: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 43 | valid.f_iou 0.6747099757194519, valid.f_f-score 0.77781: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 43 | valid.f_iou 0.6747099757194519, valid.f_f-score 0.77781: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 43 | valid.f_iou 0.6850799918174744, valid.f_f-score 0.78539: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 43 | valid.f_iou 0.6850799918174744, valid.f_f-score 0.78539: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 43 | valid.f_iou 0.6920099854469299, valid.f_f-score 0.79739: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 43 | valid.f_iou 0.6920099854469299, valid.f_f-score 0.79739: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 43 | valid.f_iou 0.668969988822937, valid.f_f-score 0.76767: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.03it/s]
epoch 43 | valid.f_iou 0.668969988822937, valid.f_f-score 0.76767: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.12it/s]
epoch 43 | valid.f_iou 0.6841999888420105, valid.f_f-score 0.78099: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.12it/s]
epoch 43 | valid.f_iou 0.6841999888420105, valid.f_f-score 0.78099: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 43 | valid.f_iou 0.6955500245094299, valid.f_f-score 0.78893: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 43 | valid.f_iou 0.6955500245094299, valid.f_f-score 0.78893: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 43 | valid.f_iou 0.6900500059127808, valid.f_f-score 0.78425: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 43 | valid.f_iou 0.6900500059127808, valid.f_f-score 0.78425: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 43 | valid.f_iou 0.6985800266265869, valid.f_f-score 0.79185: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 43 | valid.f_iou 0.6985800266265869, valid.f_f-score 0.79185: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 43 | valid.f_iou 0.7012199759483337, valid.f_f-score 0.79298: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 43 | valid.f_iou 0.7012199759483337, valid.f_f-score 0.79298: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 43 | valid.f_iou 0.7012199759483337, valid.f_f-score 0.79298: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 43 | valid.f_iou 0.6319299936294556, valid.f_f-score 0.65512: 0%| | 0/16 [00:05, ?it/s]
epoch 43 | valid.f_iou 0.6319299936294556, valid.f_f-score 0.65512: 6%|█▉ | 1/16 [00:05<01:16, 5.12s/it]
epoch 43 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.80147: 6%|█▉ | 1/16 [00:05<01:16, 5.12s/it]
epoch 43 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.80147: 12%|███▉ | 2/16 [00:05<00:33, 2.38s/it]
epoch 43 | valid.f_iou 0.689740002155304, valid.f_f-score 0.7745: 12%|████▏ | 2/16 [00:06<00:33, 2.38s/it]
epoch 43 | valid.f_iou 0.689740002155304, valid.f_f-score 0.7745: 19%|██████▏ | 3/16 [00:06<00:19, 1.51s/it]
epoch 43 | valid.f_iou 0.676829993724823, valid.f_f-score 0.74255: 19%|██████ | 3/16 [00:06<00:19, 1.51s/it]
epoch 43 | valid.f_iou 0.676829993724823, valid.f_f-score 0.74255: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 43 | valid.f_iou 0.682699978351593, valid.f_f-score 0.75979: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 43 | valid.f_iou 0.682699978351593, valid.f_f-score 0.75979: 31%|██████████ | 5/16 [00:06<00:09, 1.18it/s]
epoch 43 | valid.f_iou 0.6793799996376038, valid.f_f-score 0.76331: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 43 | valid.f_iou 0.6793799996376038, valid.f_f-score 0.76331: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 43 | valid.f_iou 0.6851800084114075, valid.f_f-score 0.77814: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 43 | valid.f_iou 0.6851800084114075, valid.f_f-score 0.77814: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 43 | valid.f_iou 0.6797999739646912, valid.f_f-score 0.77781: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.65it/s]
epoch 43 | valid.f_iou 0.6797999739646912, valid.f_f-score 0.77781: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 43 | valid.f_iou 0.6919999718666077, valid.f_f-score 0.78539: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 43 | valid.f_iou 0.6919999718666077, valid.f_f-score 0.78539: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 43 | valid.f_iou 0.6962100267410278, valid.f_f-score 0.79437: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 43 | valid.f_iou 0.6962100267410278, valid.f_f-score 0.79437: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 43 | valid.f_iou 0.6727700233459473, valid.f_f-score 0.76456: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 43 | valid.f_iou 0.6727700233459473, valid.f_f-score 0.76456: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 43 | valid.f_iou 0.687690019607544, valid.f_f-score 0.77813: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.24it/s]
epoch 43 | valid.f_iou 0.687690019607544, valid.f_f-score 0.77813: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.37it/s]
epoch 43 | valid.f_iou 0.6950700283050537, valid.f_f-score 0.78344: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 43 | valid.f_iou 0.6950700283050537, valid.f_f-score 0.78344: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 43 | valid.f_iou 0.6896100044250488, valid.f_f-score 0.77917: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 43 | valid.f_iou 0.6896100044250488, valid.f_f-score 0.77917: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 43 | valid.f_iou 0.698170006275177, valid.f_f-score 0.78711: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 43 | valid.f_iou 0.698170006275177, valid.f_f-score 0.78711: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 43 | valid.f_iou 0.7015299797058105, valid.f_f-score 0.78853: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 43 | valid.f_iou 0.7015299797058105, valid.f_f-score 0.78853: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 43 | valid.f_iou 0.7015299797058105, valid.f_f-score 0.78853: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 44 | loss 2.9076807498931885, f_iou 0.07748743146657944: 0%| | 0/74 [00:06, ?it/s]
epoch 44 | loss 2.9076807498931885, f_iou 0.07748743146657944: 1%|▍ | 1/74 [00:06<07:19, 6.02s/it]
epoch 44 | loss 1.299737572669983, f_iou 0.267367422580719: 1%|▌ | 1/74 [00:06<07:19, 6.02s/it]
epoch 44 | loss 1.299737572669983, f_iou 0.267367422580719: 3%|█ | 2/74 [00:06<03:36, 3.01s/it]
epoch 44 | loss 2.837581157684326, f_iou 0.3262837827205658: 3%|█ | 2/74 [00:07<03:36, 3.01s/it]
epoch 44 | loss 2.837581157684326, f_iou 0.3262837827205658: 4%|█▌ | 3/74 [00:07<02:24, 2.04s/it]
epoch 44 | loss 1.1475998163223267, f_iou 0.4617066979408264: 4%|█▌ | 3/74 [00:08<02:24, 2.04s/it]
epoch 44 | loss 1.1475998163223267, f_iou 0.4617066979408264: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 44 | loss 1.8361363410949707, f_iou 0.4600374698638916: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 44 | loss 1.8361363410949707, f_iou 0.4600374698638916: 7%|██▌ | 5/74 [00:09<01:29, 1.30s/it]
epoch 44 | loss 1.4927040338516235, f_iou 0.5245263576507568: 7%|██▌ | 5/74 [00:10<01:29, 1.30s/it]
epoch 44 | loss 1.4927040338516235, f_iou 0.5245263576507568: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 44 | loss 2.076077699661255, f_iou 0.545092761516571: 8%|███▏ | 6/74 [00:11<01:16, 1.13s/it]
epoch 44 | loss 2.076077699661255, f_iou 0.545092761516571: 9%|███▋ | 7/74 [00:11<01:08, 1.02s/it]
epoch 44 | loss 1.1553903818130493, f_iou 0.5908873081207275: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 44 | loss 1.1553903818130493, f_iou 0.5908873081207275: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 44 | loss 0.8944454789161682, f_iou 0.622033417224884: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 44 | loss 0.8944454789161682, f_iou 0.622033417224884: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 44 | loss 1.2940891981124878, f_iou 0.5599181652069092: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 44 | loss 1.2940891981124878, f_iou 0.5599181652069092: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 44 | loss 1.3323345184326172, f_iou 0.5618438720703125: 14%|████▊ | 10/74 [00:14<00:54, 1.17it/s]
epoch 44 | loss 1.3323345184326172, f_iou 0.5618438720703125: 15%|█████▎ | 11/74 [00:14<00:51, 1.23it/s]
epoch 44 | loss 4.051218032836914, f_iou 0.5431577563285828: 15%|█████▌ | 11/74 [00:14<00:51, 1.23it/s]
epoch 44 | loss 4.051218032836914, f_iou 0.5431577563285828: 16%|██████ | 12/74 [00:14<00:48, 1.28it/s]
epoch 44 | loss 3.378488063812256, f_iou 0.5465353727340698: 16%|██████ | 12/74 [00:15<00:48, 1.28it/s]
epoch 44 | loss 3.378488063812256, f_iou 0.5465353727340698: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 44 | loss 1.2422562837600708, f_iou 0.5074971318244934: 18%|██████▎ | 13/74 [00:16<00:46, 1.31it/s]
epoch 44 | loss 1.2422562837600708, f_iou 0.5074971318244934: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 44 | loss 0.7754432559013367, f_iou 0.4737165570259094: 19%|██████▊ | 14/74 [00:17<00:45, 1.33it/s]
epoch 44 | loss 0.7754432559013367, f_iou 0.4737165570259094: 20%|███████▎ | 15/74 [00:17<00:43, 1.34it/s]
epoch 44 | loss 4.727753639221191, f_iou 0.4476757049560547: 20%|███████▌ | 15/74 [00:17<00:43, 1.34it/s]
epoch 44 | loss 4.727753639221191, f_iou 0.4476757049560547: 22%|████████ | 16/74 [00:17<00:42, 1.36it/s]
epoch 44 | loss 1.2546135187149048, f_iou 0.4676586389541626: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 44 | loss 1.2546135187149048, f_iou 0.4676586389541626: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 44 | loss 0.8980121612548828, f_iou 0.4723230004310608: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 44 | loss 0.8980121612548828, f_iou 0.4723230004310608: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 44 | loss 6.231976509094238, f_iou 0.4567488729953766: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 44 | loss 6.231976509094238, f_iou 0.4567488729953766: 26%|█████████▌ | 19/74 [00:19<00:39, 1.39it/s]
epoch 44 | loss 0.9482017755508423, f_iou 0.4804355800151825: 26%|█████████▏ | 19/74 [00:20<00:39, 1.39it/s]
epoch 44 | loss 0.9482017755508423, f_iou 0.4804355800151825: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 44 | loss 2.6537528038024902, f_iou 0.48196637630462646: 27%|█████████▍ | 20/74 [00:21<00:38, 1.39it/s]
epoch 44 | loss 2.6537528038024902, f_iou 0.48196637630462646: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 44 | loss 2.0105063915252686, f_iou 0.48305782675743103: 28%|█████████▉ | 21/74 [00:22<00:38, 1.39it/s]
epoch 44 | loss 2.0105063915252686, f_iou 0.48305782675743103: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 44 | loss 2.7572944164276123, f_iou 0.4899776875972748: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 44 | loss 2.7572944164276123, f_iou 0.4899776875972748: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 44 | loss 0.8702380657196045, f_iou 0.4702986478805542: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 44 | loss 0.8702380657196045, f_iou 0.4702986478805542: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 44 | loss 3.725008010864258, f_iou 0.463468998670578: 32%|████████████▎ | 24/74 [00:24<00:36, 1.38it/s]
epoch 44 | loss 3.725008010864258, f_iou 0.463468998670578: 34%|████████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 44 | loss 1.8267009258270264, f_iou 0.46998289227485657: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 44 | loss 1.8267009258270264, f_iou 0.46998289227485657: 35%|████████████▎ | 26/74 [00:24<00:34, 1.39it/s]
epoch 44 | loss 4.475349426269531, f_iou 0.4548296332359314: 35%|█████████████ | 26/74 [00:25<00:34, 1.39it/s]
epoch 44 | loss 4.475349426269531, f_iou 0.4548296332359314: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 44 | loss 1.446549892425537, f_iou 0.4693130552768707: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.39it/s]
epoch 44 | loss 1.446549892425537, f_iou 0.4693130552768707: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 44 | loss 1.3613768815994263, f_iou 0.47994035482406616: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.39it/s]
epoch 44 | loss 1.3613768815994263, f_iou 0.47994035482406616: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.39it/s]
epoch 44 | loss 1.489992618560791, f_iou 0.49090972542762756: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 44 | loss 1.489992618560791, f_iou 0.49090972542762756: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.40it/s]
epoch 44 | loss 2.8002583980560303, f_iou 0.4903835356235504: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.40it/s]
epoch 44 | loss 2.8002583980560303, f_iou 0.4903835356235504: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 44 | loss 1.2401323318481445, f_iou 0.5021108984947205: 42%|███████████████ | 31/74 [00:29<00:30, 1.40it/s]
epoch 44 | loss 1.2401323318481445, f_iou 0.5021108984947205: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.40it/s]
epoch 44 | loss 3.724130392074585, f_iou 0.5032150149345398: 43%|████████████████ | 32/74 [00:29<00:30, 1.40it/s]
epoch 44 | loss 3.724130392074585, f_iou 0.5032150149345398: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.40it/s]
epoch 44 | loss 2.7206461429595947, f_iou 0.5088668465614319: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 44 | loss 2.7206461429595947, f_iou 0.5088668465614319: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.40it/s]
epoch 44 | loss 2.108464241027832, f_iou 0.5199168920516968: 46%|█████████████████ | 34/74 [00:31<00:28, 1.40it/s]
epoch 44 | loss 2.108464241027832, f_iou 0.5199168920516968: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.36it/s]
epoch 44 | loss 0.5825013518333435, f_iou 0.5328076481819153: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 44 | loss 0.5825013518333435, f_iou 0.5328076481819153: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.33it/s]
epoch 44 | loss 3.185973644256592, f_iou 0.5328226685523987: 49%|██████████████████ | 36/74 [00:32<00:28, 1.33it/s]
epoch 44 | loss 3.185973644256592, f_iou 0.5328226685523987: 50%|██████████████████▌ | 37/74 [00:32<00:27, 1.33it/s]
epoch 44 | loss 0.4349132180213928, f_iou 0.5442466735839844: 50%|██████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 44 | loss 0.4349132180213928, f_iou 0.5442466735839844: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.34it/s]
epoch 44 | loss 1.657792329788208, f_iou 0.5510711073875427: 51%|███████████████████ | 38/74 [00:34<00:26, 1.34it/s]
epoch 44 | loss 1.657792329788208, f_iou 0.5510711073875427: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.36it/s]
epoch 44 | loss 1.822938084602356, f_iou 0.550744891166687: 53%|████████████████████ | 39/74 [00:35<00:25, 1.36it/s]
epoch 44 | loss 1.822938084602356, f_iou 0.550744891166687: 54%|████████████████████▌ | 40/74 [00:35<00:24, 1.37it/s]
epoch 44 | loss 0.0, f_iou 0.5604000091552734: 54%|███████████████████████████▌ | 40/74 [00:35<00:24, 1.37it/s]
epoch 44 | loss 0.0, f_iou 0.5604000091552734: 55%|████████████████████████████▎ | 41/74 [00:35<00:24, 1.34it/s]
epoch 44 | loss 1.7774125337600708, f_iou 0.5653967261314392: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.34it/s]
epoch 44 | loss 1.7774125337600708, f_iou 0.5653967261314392: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.32it/s]
epoch 44 | loss 1.137739658355713, f_iou 0.5542530417442322: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.32it/s]
epoch 44 | loss 1.137739658355713, f_iou 0.5542530417442322: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.34it/s]
epoch 44 | loss 1.3761327266693115, f_iou 0.5509809851646423: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.34it/s]
epoch 44 | loss 1.3761327266693115, f_iou 0.5509809851646423: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.35it/s]
epoch 44 | loss 4.3321075439453125, f_iou 0.5415406823158264: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.35it/s]
epoch 44 | loss 4.3321075439453125, f_iou 0.5415406823158264: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.36it/s]
epoch 44 | loss 2.975905418395996, f_iou 0.5409067869186401: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.36it/s]
epoch 44 | loss 2.975905418395996, f_iou 0.5409067869186401: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.37it/s]
epoch 44 | loss 1.3309791088104248, f_iou 0.5410335659980774: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.37it/s]
epoch 44 | loss 1.3309791088104248, f_iou 0.5410335659980774: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 44 | loss 1.0390934944152832, f_iou 0.5490742921829224: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 44 | loss 1.0390934944152832, f_iou 0.5490742921829224: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 44 | loss 1.410193920135498, f_iou 0.555263102054596: 65%|████████████████████████▋ | 48/74 [00:41<00:18, 1.38it/s]
epoch 44 | loss 1.410193920135498, f_iou 0.555263102054596: 66%|█████████████████████████▏ | 49/74 [00:41<00:18, 1.39it/s]
epoch 44 | loss 1.916937232017517, f_iou 0.5482609272003174: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.39it/s]
epoch 44 | loss 1.916937232017517, f_iou 0.5482609272003174: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 44 | loss 1.2813655138015747, f_iou 0.5553311109542847: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 44 | loss 1.2813655138015747, f_iou 0.5553311109542847: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 44 | loss 1.6095554828643799, f_iou 0.5553187131881714: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 44 | loss 1.6095554828643799, f_iou 0.5553187131881714: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 44 | loss 1.8558557033538818, f_iou 0.5586340427398682: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 44 | loss 1.8558557033538818, f_iou 0.5586340427398682: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.40it/s]
epoch 44 | loss 1.1005072593688965, f_iou 0.5583983659744263: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.40it/s]
epoch 44 | loss 1.1005072593688965, f_iou 0.5583983659744263: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 44 | loss 1.5808367729187012, f_iou 0.5620740056037903: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.40it/s]
epoch 44 | loss 1.5808367729187012, f_iou 0.5620740056037903: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 44 | loss 6.686430931091309, f_iou 0.5564929246902466: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.40it/s]
epoch 44 | loss 6.686430931091309, f_iou 0.5564929246902466: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.40it/s]
epoch 44 | loss 6.520198822021484, f_iou 0.5553422570228577: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.40it/s]
epoch 44 | loss 6.520198822021484, f_iou 0.5553422570228577: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.40it/s]
epoch 44 | loss 0.0, f_iou 0.5612213611602783: 77%|███████████████████████████████████████▎ | 57/74 [00:48<00:12, 1.40it/s]
epoch 44 | loss 0.0, f_iou 0.5612213611602783: 78%|███████████████████████████████████████▉ | 58/74 [00:48<00:11, 1.40it/s]
epoch 44 | loss 1.426330327987671, f_iou 0.5674300193786621: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.40it/s]
epoch 44 | loss 1.426330327987671, f_iou 0.5674300193786621: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.40it/s]
epoch 44 | loss 3.266354560852051, f_iou 0.565972626209259: 80%|██████████████████████████████▎ | 59/74 [00:49<00:10, 1.40it/s]
epoch 44 | loss 3.266354560852051, f_iou 0.565972626209259: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.39it/s]
epoch 44 | loss 4.008938789367676, f_iou 0.5674993991851807: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 44 | loss 4.008938789367676, f_iou 0.5674993991851807: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 44 | loss 0.0, f_iou 0.5731649398803711: 82%|██████████████████████████████████████████ | 61/74 [00:51<00:09, 1.39it/s]
epoch 44 | loss 0.0, f_iou 0.5731649398803711: 84%|██████████████████████████████████████████▋ | 62/74 [00:51<00:08, 1.39it/s]
epoch 44 | loss 2.9355838298797607, f_iou 0.5732381343841553: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 44 | loss 2.9355838298797607, f_iou 0.5732381343841553: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.40it/s]
epoch 44 | loss 0.5647436380386353, f_iou 0.5786177515983582: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.40it/s]
epoch 44 | loss 0.5647436380386353, f_iou 0.5786177515983582: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.40it/s]
epoch 44 | loss 1.457226276397705, f_iou 0.5813806653022766: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.40it/s]
epoch 44 | loss 1.457226276397705, f_iou 0.5813806653022766: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 44 | loss 2.397984504699707, f_iou 0.5815201997756958: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 44 | loss 2.397984504699707, f_iou 0.5815201997756958: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 44 | loss 2.223599433898926, f_iou 0.5806530714035034: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.40it/s]
epoch 44 | loss 2.223599433898926, f_iou 0.5806530714035034: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 44 | loss 0.8273767828941345, f_iou 0.5858703255653381: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 44 | loss 0.8273767828941345, f_iou 0.5858703255653381: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 44 | loss 3.867046594619751, f_iou 0.5894614458084106: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 44 | loss 3.867046594619751, f_iou 0.5894614458084106: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 44 | loss 1.3411896228790283, f_iou 0.5939599871635437: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 44 | loss 1.3411896228790283, f_iou 0.5939599871635437: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 44 | loss 1.4176433086395264, f_iou 0.5968355536460876: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 44 | loss 1.4176433086395264, f_iou 0.5968355536460876: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 44 | loss 1.0736682415008545, f_iou 0.6011285185813904: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 44 | loss 1.0736682415008545, f_iou 0.6011285185813904: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 44 | loss 0.956038236618042, f_iou 0.600473165512085: 97%|████████████████████████████████████▉ | 72/74 [00:58<00:01, 1.41it/s]
epoch 44 | loss 0.956038236618042, f_iou 0.600473165512085: 99%|█████████████████████████████████████▍| 73/74 [00:58<00:00, 1.41it/s]
epoch 44 | loss 1.1822458505630493, f_iou 0.6041809320449829: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 44 | loss 1.1822458505630493, f_iou 0.6041809320449829: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 44 | loss 1.1822458505630493, f_iou 0.6041809320449829: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 44 | valid.f_iou 0.7506600022315979, valid.f_f-score 0.83403: 0%| | 0/16 [00:05, ?it/s]
epoch 44 | valid.f_iou 0.7506600022315979, valid.f_f-score 0.83403: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 44 | valid.f_iou 0.7588499784469604, valid.f_f-score 0.87044: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 44 | valid.f_iou 0.7588499784469604, valid.f_f-score 0.87044: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 44 | valid.f_iou 0.6106500029563904, valid.f_f-score 0.7952: 12%|████ | 2/16 [00:06<00:34, 2.49s/it]
epoch 44 | valid.f_iou 0.6106500029563904, valid.f_f-score 0.7952: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 44 | valid.f_iou 0.6316099762916565, valid.f_f-score 0.79303: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 44 | valid.f_iou 0.6316099762916565, valid.f_f-score 0.79303: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 44 | valid.f_iou 0.6312999725341797, valid.f_f-score 0.79295: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 44 | valid.f_iou 0.6312999725341797, valid.f_f-score 0.79295: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 44 | valid.f_iou 0.5882400274276733, valid.f_f-score 0.748: 31%|██████████▎ | 5/16 [00:07<00:09, 1.14it/s]
epoch 44 | valid.f_iou 0.5882400274276733, valid.f_f-score 0.748: 38%|████████████▍ | 6/16 [00:07<00:07, 1.41it/s]
epoch 44 | valid.f_iou 0.594569981098175, valid.f_f-score 0.75619: 38%|████████████ | 6/16 [00:07<00:07, 1.41it/s]
epoch 44 | valid.f_iou 0.594569981098175, valid.f_f-score 0.75619: 44%|██████████████ | 7/16 [00:07<00:05, 1.66it/s]
epoch 44 | valid.f_iou 0.5945600271224976, valid.f_f-score 0.76258: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.66it/s]
epoch 44 | valid.f_iou 0.5945600271224976, valid.f_f-score 0.76258: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 44 | valid.f_iou 0.6006199717521667, valid.f_f-score 0.7533: 50%|████████████████ | 8/16 [00:08<00:04, 1.90it/s]
epoch 44 | valid.f_iou 0.6006199717521667, valid.f_f-score 0.7533: 56%|██████████████████ | 9/16 [00:08<00:03, 2.12it/s]
epoch 44 | valid.f_iou 0.5876100063323975, valid.f_f-score 0.75771: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.12it/s]
epoch 44 | valid.f_iou 0.5876100063323975, valid.f_f-score 0.75771: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.28it/s]
epoch 44 | valid.f_iou 0.5905600190162659, valid.f_f-score 0.75757: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.28it/s]
epoch 44 | valid.f_iou 0.5905600190162659, valid.f_f-score 0.75757: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 44 | valid.f_iou 0.6042600274085999, valid.f_f-score 0.7711: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.40it/s]
epoch 44 | valid.f_iou 0.6042600274085999, valid.f_f-score 0.7711: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.50it/s]
epoch 44 | valid.f_iou 0.6231300234794617, valid.f_f-score 0.78421: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.50it/s]
epoch 44 | valid.f_iou 0.6231300234794617, valid.f_f-score 0.78421: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 44 | valid.f_iou 0.6179699897766113, valid.f_f-score 0.77856: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 44 | valid.f_iou 0.6179699897766113, valid.f_f-score 0.77856: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 44 | valid.f_iou 0.6159899830818176, valid.f_f-score 0.77642: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 44 | valid.f_iou 0.6159899830818176, valid.f_f-score 0.77642: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 44 | valid.f_iou 0.6176900267601013, valid.f_f-score 0.77216: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.66it/s]
epoch 44 | valid.f_iou 0.6176900267601013, valid.f_f-score 0.77216: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 44 | valid.f_iou 0.6176900267601013, valid.f_f-score 0.77216: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 44 | valid.f_iou 0.7477200031280518, valid.f_f-score 0.71984: 0%| | 0/16 [00:05, ?it/s]
epoch 44 | valid.f_iou 0.7477200031280518, valid.f_f-score 0.71984: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 44 | valid.f_iou 0.7946500182151794, valid.f_f-score 0.83287: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 44 | valid.f_iou 0.7946500182151794, valid.f_f-score 0.83287: 12%|███▉ | 2/16 [00:05<00:33, 2.40s/it]
epoch 44 | valid.f_iou 0.6957100033760071, valid.f_f-score 0.78881: 12%|███▉ | 2/16 [00:06<00:33, 2.40s/it]
epoch 44 | valid.f_iou 0.6957100033760071, valid.f_f-score 0.78881: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 44 | valid.f_iou 0.6773399710655212, valid.f_f-score 0.76599: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 44 | valid.f_iou 0.6773399710655212, valid.f_f-score 0.76599: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 44 | valid.f_iou 0.6791700124740601, valid.f_f-score 0.77403: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 44 | valid.f_iou 0.6791700124740601, valid.f_f-score 0.77403: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 44 | valid.f_iou 0.6383100152015686, valid.f_f-score 0.7351: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 44 | valid.f_iou 0.6383100152015686, valid.f_f-score 0.7351: 38%|████████████ | 6/16 [00:07<00:07, 1.41it/s]
epoch 44 | valid.f_iou 0.6497300267219543, valid.f_f-score 0.75681: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 44 | valid.f_iou 0.6497300267219543, valid.f_f-score 0.75681: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 44 | valid.f_iou 0.6471099853515625, valid.f_f-score 0.75287: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.67it/s]
epoch 44 | valid.f_iou 0.6471099853515625, valid.f_f-score 0.75287: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 44 | valid.f_iou 0.6710000038146973, valid.f_f-score 0.76944: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 44 | valid.f_iou 0.6710000038146973, valid.f_f-score 0.76944: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 44 | valid.f_iou 0.673259973526001, valid.f_f-score 0.77722: 56%|██████████████████ | 9/16 [00:08<00:03, 2.12it/s]
epoch 44 | valid.f_iou 0.673259973526001, valid.f_f-score 0.77722: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.28it/s]
epoch 44 | valid.f_iou 0.6687899827957153, valid.f_f-score 0.76491: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.28it/s]
epoch 44 | valid.f_iou 0.6687899827957153, valid.f_f-score 0.76491: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 44 | valid.f_iou 0.6822900176048279, valid.f_f-score 0.77766: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 44 | valid.f_iou 0.6822900176048279, valid.f_f-score 0.77766: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 44 | valid.f_iou 0.6997500061988831, valid.f_f-score 0.79211: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 44 | valid.f_iou 0.6997500061988831, valid.f_f-score 0.79211: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 44 | valid.f_iou 0.6935999989509583, valid.f_f-score 0.78775: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 44 | valid.f_iou 0.6935999989509583, valid.f_f-score 0.78775: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 44 | valid.f_iou 0.6922299861907959, valid.f_f-score 0.78661: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 44 | valid.f_iou 0.6922299861907959, valid.f_f-score 0.78661: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 44 | valid.f_iou 0.6869300007820129, valid.f_f-score 0.78092: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 44 | valid.f_iou 0.6869300007820129, valid.f_f-score 0.78092: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 44 | valid.f_iou 0.6869300007820129, valid.f_f-score 0.78092: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 44 | valid.f_iou 0.7477200031280518, valid.f_f-score 0.71984: 0%| | 0/16 [00:04, ?it/s]
epoch 44 | valid.f_iou 0.7477200031280518, valid.f_f-score 0.71984: 6%|█▉ | 1/16 [00:04<01:06, 4.44s/it]
epoch 44 | valid.f_iou 0.7946500182151794, valid.f_f-score 0.83287: 6%|█▉ | 1/16 [00:04<01:06, 4.44s/it]
epoch 44 | valid.f_iou 0.7946500182151794, valid.f_f-score 0.83287: 12%|███▉ | 2/16 [00:04<00:28, 2.06s/it]
epoch 44 | valid.f_iou 0.6957100033760071, valid.f_f-score 0.78881: 12%|███▉ | 2/16 [00:05<00:28, 2.06s/it]
epoch 44 | valid.f_iou 0.6957100033760071, valid.f_f-score 0.78881: 19%|█████▊ | 3/16 [00:05<00:16, 1.29s/it]
epoch 44 | valid.f_iou 0.6773399710655212, valid.f_f-score 0.76599: 19%|█████▊ | 3/16 [00:05<00:16, 1.29s/it]
epoch 44 | valid.f_iou 0.6773399710655212, valid.f_f-score 0.76599: 25%|███████▊ | 4/16 [00:05<00:11, 1.07it/s]
epoch 44 | valid.f_iou 0.6831899881362915, valid.f_f-score 0.77403: 25%|███████▊ | 4/16 [00:06<00:11, 1.07it/s]
epoch 44 | valid.f_iou 0.6831899881362915, valid.f_f-score 0.77403: 31%|█████████▋ | 5/16 [00:06<00:08, 1.31it/s]
epoch 44 | valid.f_iou 0.6416599750518799, valid.f_f-score 0.7351: 31%|██████████ | 5/16 [00:06<00:08, 1.31it/s]
epoch 44 | valid.f_iou 0.6416599750518799, valid.f_f-score 0.7351: 38%|████████████ | 6/16 [00:06<00:06, 1.51it/s]
epoch 44 | valid.f_iou 0.6525999903678894, valid.f_f-score 0.75681: 38%|███████████▋ | 6/16 [00:06<00:06, 1.51it/s]
epoch 44 | valid.f_iou 0.6525999903678894, valid.f_f-score 0.75681: 44%|█████████████▌ | 7/16 [00:06<00:05, 1.75it/s]
epoch 44 | valid.f_iou 0.649619996547699, valid.f_f-score 0.75287: 44%|██████████████ | 7/16 [00:07<00:05, 1.75it/s]
epoch 44 | valid.f_iou 0.649619996547699, valid.f_f-score 0.75287: 50%|████████████████ | 8/16 [00:07<00:04, 1.91it/s]
epoch 44 | valid.f_iou 0.6738799810409546, valid.f_f-score 0.76944: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.91it/s]
epoch 44 | valid.f_iou 0.6738799810409546, valid.f_f-score 0.76944: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.08it/s]
epoch 44 | valid.f_iou 0.6730800271034241, valid.f_f-score 0.77394: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.08it/s]
epoch 44 | valid.f_iou 0.6730800271034241, valid.f_f-score 0.77394: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.22it/s]
epoch 44 | valid.f_iou 0.6686199903488159, valid.f_f-score 0.76193: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.22it/s]
epoch 44 | valid.f_iou 0.6686199903488159, valid.f_f-score 0.76193: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.36it/s]
epoch 44 | valid.f_iou 0.682129979133606, valid.f_f-score 0.77493: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.36it/s]
epoch 44 | valid.f_iou 0.682129979133606, valid.f_f-score 0.77493: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.46it/s]
epoch 44 | valid.f_iou 0.6995999813079834, valid.f_f-score 0.78959: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 44 | valid.f_iou 0.6995999813079834, valid.f_f-score 0.78959: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.54it/s]
epoch 44 | valid.f_iou 0.6934700012207031, valid.f_f-score 0.78542: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.54it/s]
epoch 44 | valid.f_iou 0.6934700012207031, valid.f_f-score 0.78542: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.59it/s]
epoch 44 | valid.f_iou 0.692110002040863, valid.f_f-score 0.78444: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.59it/s]
epoch 44 | valid.f_iou 0.692110002040863, valid.f_f-score 0.78444: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.62it/s]
epoch 44 | valid.f_iou 0.6876699924468994, valid.f_f-score 0.77888: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 44 | valid.f_iou 0.6876699924468994, valid.f_f-score 0.77888: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 44 | valid.f_iou 0.6876699924468994, valid.f_f-score 0.77888: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.56it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 45 | loss 0.8098117113113403, f_iou 0.8269287943840027: 0%| | 0/74 [00:05, ?it/s]
epoch 45 | loss 0.8098117113113403, f_iou 0.8269287943840027: 1%|▌ | 1/74 [00:05<06:33, 5.40s/it]
epoch 45 | loss 0.5432226657867432, f_iou 0.8997240662574768: 1%|▌ | 1/74 [00:06<06:33, 5.40s/it]
epoch 45 | loss 0.5432226657867432, f_iou 0.8997240662574768: 3%|█ | 2/74 [00:06<03:17, 2.74s/it]
epoch 45 | loss 0.9765411019325256, f_iou 0.8868550658226013: 3%|█ | 2/74 [00:07<03:17, 2.74s/it]
epoch 45 | loss 0.9765411019325256, f_iou 0.8868550658226013: 4%|█▌ | 3/74 [00:07<02:10, 1.84s/it]
epoch 45 | loss 0.8979600667953491, f_iou 0.8634291887283325: 4%|█▌ | 3/74 [00:07<02:10, 1.84s/it]
epoch 45 | loss 0.8979600667953491, f_iou 0.8634291887283325: 5%|██ | 4/74 [00:07<01:39, 1.42s/it]
epoch 45 | loss 0.8109359741210938, f_iou 0.8478506207466125: 5%|██ | 4/74 [00:08<01:39, 1.42s/it]
epoch 45 | loss 0.8109359741210938, f_iou 0.8478506207466125: 7%|██▌ | 5/74 [00:08<01:22, 1.19s/it]
epoch 45 | loss 1.8447778224945068, f_iou 0.8352972865104675: 7%|██▌ | 5/74 [00:09<01:22, 1.19s/it]
epoch 45 | loss 1.8447778224945068, f_iou 0.8352972865104675: 8%|███ | 6/74 [00:09<01:12, 1.06s/it]
epoch 45 | loss 0.7231872081756592, f_iou 0.8484421968460083: 8%|███ | 6/74 [00:10<01:12, 1.06s/it]
epoch 45 | loss 0.7231872081756592, f_iou 0.8484421968460083: 9%|███▌ | 7/74 [00:10<01:07, 1.00s/it]
epoch 45 | loss 0.5175133943557739, f_iou 0.8603208661079407: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 45 | loss 0.5175133943557739, f_iou 0.8603208661079407: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 45 | loss 2.2540266513824463, f_iou 0.8057035803794861: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 45 | loss 2.2540266513824463, f_iou 0.8057035803794861: 12%|████▌ | 9/74 [00:11<00:57, 1.14it/s]
epoch 45 | loss 0.7156832218170166, f_iou 0.8061582446098328: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 45 | loss 0.7156832218170166, f_iou 0.8061582446098328: 14%|████▊ | 10/74 [00:12<00:52, 1.21it/s]
epoch 45 | loss 3.4238839149475098, f_iou 0.7643681764602661: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 45 | loss 3.4238839149475098, f_iou 0.7643681764602661: 15%|█████▎ | 11/74 [00:13<00:50, 1.26it/s]
epoch 45 | loss 2.06016206741333, f_iou 0.7606692314147949: 15%|█████▋ | 11/74 [00:13<00:50, 1.26it/s]
epoch 45 | loss 2.06016206741333, f_iou 0.7606692314147949: 16%|██████▏ | 12/74 [00:13<00:47, 1.29it/s]
epoch 45 | loss 1.5928915739059448, f_iou 0.7630401253700256: 16%|█████▊ | 12/74 [00:14<00:47, 1.29it/s]
epoch 45 | loss 1.5928915739059448, f_iou 0.7630401253700256: 18%|██████▎ | 13/74 [00:14<00:46, 1.32it/s]
epoch 45 | loss 1.4936909675598145, f_iou 0.7629520893096924: 18%|██████▎ | 13/74 [00:15<00:46, 1.32it/s]
epoch 45 | loss 1.4936909675598145, f_iou 0.7629520893096924: 19%|██████▊ | 14/74 [00:15<00:44, 1.34it/s]
epoch 45 | loss 1.4664585590362549, f_iou 0.7641597390174866: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 45 | loss 1.4664585590362549, f_iou 0.7641597390174866: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 45 | loss 3.8086698055267334, f_iou 0.7516405582427979: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 45 | loss 3.8086698055267334, f_iou 0.7516405582427979: 22%|███████▊ | 16/74 [00:16<00:42, 1.36it/s]
epoch 45 | loss 3.866262435913086, f_iou 0.7277470827102661: 22%|████████ | 16/74 [00:17<00:42, 1.36it/s]
epoch 45 | loss 3.866262435913086, f_iou 0.7277470827102661: 23%|████████▌ | 17/74 [00:17<00:41, 1.37it/s]
epoch 45 | loss 1.5171546936035156, f_iou 0.7364733815193176: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 45 | loss 1.5171546936035156, f_iou 0.7364733815193176: 24%|████████▊ | 18/74 [00:18<00:41, 1.36it/s]
epoch 45 | loss 2.8625152111053467, f_iou 0.7394120693206787: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 45 | loss 2.8625152111053467, f_iou 0.7394120693206787: 26%|█████████▏ | 19/74 [00:19<00:40, 1.36it/s]
epoch 45 | loss 0.3460109829902649, f_iou 0.7511829733848572: 26%|█████████▏ | 19/74 [00:19<00:40, 1.36it/s]
epoch 45 | loss 0.3460109829902649, f_iou 0.7511829733848572: 27%|█████████▋ | 20/74 [00:19<00:39, 1.36it/s]
epoch 45 | loss 1.17205810546875, f_iou 0.7574418783187866: 27%|██████████▎ | 20/74 [00:20<00:39, 1.36it/s]
epoch 45 | loss 1.17205810546875, f_iou 0.7574418783187866: 28%|██████████▊ | 21/74 [00:20<00:38, 1.36it/s]
epoch 45 | loss 1.3653285503387451, f_iou 0.7644334435462952: 28%|██████████▏ | 21/74 [00:21<00:38, 1.36it/s]
epoch 45 | loss 1.3653285503387451, f_iou 0.7644334435462952: 30%|██████████▋ | 22/74 [00:21<00:38, 1.37it/s]
epoch 45 | loss 5.893082618713379, f_iou 0.734130859375: 30%|████████████▏ | 22/74 [00:22<00:38, 1.37it/s]
epoch 45 | loss 5.893082618713379, f_iou 0.734130859375: 31%|████████████▋ | 23/74 [00:22<00:37, 1.36it/s]
epoch 45 | loss 3.280691146850586, f_iou 0.711746871471405: 31%|███████████▊ | 23/74 [00:22<00:37, 1.36it/s]
epoch 45 | loss 3.280691146850586, f_iou 0.711746871471405: 32%|████████████▎ | 24/74 [00:22<00:36, 1.37it/s]
epoch 45 | loss 2.218855857849121, f_iou 0.7049981355667114: 32%|████████████ | 24/74 [00:23<00:36, 1.37it/s]
epoch 45 | loss 2.218855857849121, f_iou 0.7049981355667114: 34%|████████████▌ | 25/74 [00:23<00:35, 1.38it/s]
epoch 45 | loss 1.7531074285507202, f_iou 0.6836044192314148: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 45 | loss 1.7531074285507202, f_iou 0.6836044192314148: 35%|████████████▋ | 26/74 [00:24<00:34, 1.38it/s]
epoch 45 | loss 3.387575626373291, f_iou 0.6792449355125427: 35%|█████████████ | 26/74 [00:24<00:34, 1.38it/s]
epoch 45 | loss 3.387575626373291, f_iou 0.6792449355125427: 36%|█████████████▌ | 27/74 [00:24<00:34, 1.38it/s]
epoch 45 | loss 1.9230031967163086, f_iou 0.6807634830474854: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 45 | loss 1.9230031967163086, f_iou 0.6807634830474854: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.39it/s]
epoch 45 | loss 0.7331182956695557, f_iou 0.6904518008232117: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 45 | loss 0.7331182956695557, f_iou 0.6904518008232117: 39%|██████████████ | 29/74 [00:26<00:32, 1.38it/s]
epoch 45 | loss 3.277364730834961, f_iou 0.682098925113678: 39%|██████████████▉ | 29/74 [00:27<00:32, 1.38it/s]
epoch 45 | loss 3.277364730834961, f_iou 0.682098925113678: 41%|███████████████▍ | 30/74 [00:27<00:31, 1.38it/s]
epoch 45 | loss 2.322328567504883, f_iou 0.6838682293891907: 41%|███████████████ | 30/74 [00:27<00:31, 1.38it/s]
epoch 45 | loss 2.322328567504883, f_iou 0.6838682293891907: 42%|███████████████▌ | 31/74 [00:27<00:31, 1.38it/s]
epoch 45 | loss 1.830531358718872, f_iou 0.6833155155181885: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.38it/s]
epoch 45 | loss 1.830531358718872, f_iou 0.6833155155181885: 43%|████████████████ | 32/74 [00:28<00:30, 1.39it/s]
epoch 45 | loss 0.5939611196517944, f_iou 0.691460371017456: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 45 | loss 0.5939611196517944, f_iou 0.691460371017456: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.38it/s]
epoch 45 | loss 1.1457613706588745, f_iou 0.6975885033607483: 45%|████████████████ | 33/74 [00:29<00:29, 1.38it/s]
epoch 45 | loss 1.1457613706588745, f_iou 0.6975885033607483: 46%|████████████████▌ | 34/74 [00:29<00:28, 1.38it/s]
epoch 45 | loss 4.512302398681641, f_iou 0.6943623423576355: 46%|█████████████████ | 34/74 [00:30<00:28, 1.38it/s]
epoch 45 | loss 4.512302398681641, f_iou 0.6943623423576355: 47%|█████████████████▌ | 35/74 [00:30<00:28, 1.39it/s]
epoch 45 | loss 1.6074432134628296, f_iou 0.6979940533638: 47%|██████████████████▍ | 35/74 [00:31<00:28, 1.39it/s]
epoch 45 | loss 1.6074432134628296, f_iou 0.6979940533638: 49%|██████████████████▉ | 36/74 [00:31<00:27, 1.39it/s]
epoch 45 | loss 0.6893313527107239, f_iou 0.7042655348777771: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 45 | loss 0.6893313527107239, f_iou 0.7042655348777771: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 45 | loss 2.7781264781951904, f_iou 0.7105469703674316: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 45 | loss 2.7781264781951904, f_iou 0.7105469703674316: 51%|██████████████████▍ | 38/74 [00:32<00:26, 1.37it/s]
epoch 45 | loss 0.7385784983634949, f_iou 0.7111811637878418: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.37it/s]
epoch 45 | loss 0.7385784983634949, f_iou 0.7111811637878418: 53%|██████████████████▉ | 39/74 [00:33<00:26, 1.34it/s]
epoch 45 | loss 1.8233083486557007, f_iou 0.7122253775596619: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 45 | loss 1.8233083486557007, f_iou 0.7122253775596619: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.32it/s]
epoch 45 | loss 0.9704940915107727, f_iou 0.7152026295661926: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.32it/s]
epoch 45 | loss 0.9704940915107727, f_iou 0.7152026295661926: 55%|███████████████████▉ | 41/74 [00:35<00:25, 1.31it/s]
epoch 45 | loss 0.6323493719100952, f_iou 0.7209834456443787: 55%|███████████████████▉ | 41/74 [00:35<00:25, 1.31it/s]
epoch 45 | loss 0.6323493719100952, f_iou 0.7209834456443787: 57%|████████████████████▍ | 42/74 [00:35<00:24, 1.30it/s]
epoch 45 | loss 3.736421823501587, f_iou 0.7198285460472107: 57%|█████████████████████ | 42/74 [00:36<00:24, 1.30it/s]
epoch 45 | loss 3.736421823501587, f_iou 0.7198285460472107: 58%|█████████████████████▍ | 43/74 [00:36<00:23, 1.30it/s]
epoch 45 | loss 1.5899053812026978, f_iou 0.7194797396659851: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.30it/s]
epoch 45 | loss 1.5899053812026978, f_iou 0.7194797396659851: 59%|█████████████████████▍ | 44/74 [00:37<00:22, 1.33it/s]
epoch 45 | loss 1.1410844326019287, f_iou 0.7204256653785706: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.33it/s]
epoch 45 | loss 1.1410844326019287, f_iou 0.7204256653785706: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.35it/s]
epoch 45 | loss 1.781679630279541, f_iou 0.7189605832099915: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.35it/s]
epoch 45 | loss 1.781679630279541, f_iou 0.7189605832099915: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.36it/s]
epoch 45 | loss 1.3130888938903809, f_iou 0.7082867622375488: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.36it/s]
epoch 45 | loss 1.3130888938903809, f_iou 0.7082867622375488: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.35it/s]
epoch 45 | loss 4.120116710662842, f_iou 0.700706422328949: 64%|████████████████████████▏ | 47/74 [00:40<00:19, 1.35it/s]
epoch 45 | loss 4.120116710662842, f_iou 0.700706422328949: 65%|████████████████████████▋ | 48/74 [00:40<00:19, 1.33it/s]
epoch 45 | loss 1.8926457166671753, f_iou 0.7021786570549011: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.33it/s]
epoch 45 | loss 1.8926457166671753, f_iou 0.7021786570549011: 66%|███████████████████████▊ | 49/74 [00:41<00:19, 1.31it/s]
epoch 45 | loss 0.6813710331916809, f_iou 0.7048836350440979: 66%|███████████████████████▊ | 49/74 [00:41<00:19, 1.31it/s]
epoch 45 | loss 0.6813710331916809, f_iou 0.7048836350440979: 68%|████████████████████████▎ | 50/74 [00:41<00:18, 1.31it/s]
epoch 45 | loss 1.419119954109192, f_iou 0.7090264558792114: 68%|█████████████████████████ | 50/74 [00:42<00:18, 1.31it/s]
epoch 45 | loss 1.419119954109192, f_iou 0.7090264558792114: 69%|█████████████████████████▌ | 51/74 [00:42<00:17, 1.33it/s]
epoch 45 | loss 2.295170545578003, f_iou 0.7083587646484375: 69%|█████████████████████████▌ | 51/74 [00:43<00:17, 1.33it/s]
epoch 45 | loss 2.295170545578003, f_iou 0.7083587646484375: 70%|██████████████████████████ | 52/74 [00:43<00:16, 1.35it/s]
epoch 45 | loss 1.7582179307937622, f_iou 0.7089599370956421: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.35it/s]
epoch 45 | loss 1.7582179307937622, f_iou 0.7089599370956421: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.36it/s]
epoch 45 | loss 2.6514227390289307, f_iou 0.7001538276672363: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.36it/s]
epoch 45 | loss 2.6514227390289307, f_iou 0.7001538276672363: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.37it/s]
epoch 45 | loss 3.850788116455078, f_iou 0.6953942775726318: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 45 | loss 3.850788116455078, f_iou 0.6953942775726318: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 45 | loss 1.0190991163253784, f_iou 0.6829851865768433: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 45 | loss 1.0190991163253784, f_iou 0.6829851865768433: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 45 | loss 1.1234197616577148, f_iou 0.6862698197364807: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 45 | loss 1.1234197616577148, f_iou 0.6862698197364807: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 45 | loss 0.0, f_iou 0.6901246905326843: 77%|███████████████████████████████████████▎ | 57/74 [00:47<00:12, 1.38it/s]
epoch 45 | loss 0.0, f_iou 0.6901246905326843: 78%|███████████████████████████████████████▉ | 58/74 [00:47<00:11, 1.39it/s]
epoch 45 | loss 1.1134564876556396, f_iou 0.6914017200469971: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 45 | loss 1.1134564876556396, f_iou 0.6914017200469971: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 45 | loss 1.3676974773406982, f_iou 0.6927233934402466: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 45 | loss 1.3676974773406982, f_iou 0.6927233934402466: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 45 | loss 0.8376848101615906, f_iou 0.6966971755027771: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 45 | loss 0.8376848101615906, f_iou 0.6966971755027771: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.39it/s]
epoch 45 | loss 0.602222740650177, f_iou 0.6978138089179993: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 45 | loss 0.602222740650177, f_iou 0.6978138089179993: 84%|███████████████████████████████ | 62/74 [00:50<00:08, 1.39it/s]
epoch 45 | loss 1.7132413387298584, f_iou 0.6994894742965698: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 45 | loss 1.7132413387298584, f_iou 0.6994894742965698: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.37it/s]
epoch 45 | loss 2.1895806789398193, f_iou 0.693659245967865: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.37it/s]
epoch 45 | loss 2.1895806789398193, f_iou 0.693659245967865: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.33it/s]
epoch 45 | loss 1.219812035560608, f_iou 0.6952050924301147: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.33it/s]
epoch 45 | loss 1.219812035560608, f_iou 0.6952050924301147: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.32it/s]
epoch 45 | loss 1.5468544960021973, f_iou 0.6926473379135132: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.32it/s]
epoch 45 | loss 1.5468544960021973, f_iou 0.6926473379135132: 89%|████████████████████████████████ | 66/74 [00:53<00:06, 1.32it/s]
epoch 45 | loss 0.6428909301757812, f_iou 0.6964432001113892: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.32it/s]
epoch 45 | loss 0.6428909301757812, f_iou 0.6964432001113892: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.34it/s]
epoch 45 | loss 1.623889446258545, f_iou 0.6964194178581238: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.34it/s]
epoch 45 | loss 1.623889446258545, f_iou 0.6964194178581238: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.35it/s]
epoch 45 | loss 2.7380809783935547, f_iou 0.6875740885734558: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.35it/s]
epoch 45 | loss 2.7380809783935547, f_iou 0.6875740885734558: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.37it/s]
epoch 45 | loss 0.9963811635971069, f_iou 0.690955400466919: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.37it/s]
epoch 45 | loss 0.9963811635971069, f_iou 0.690955400466919: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.36it/s]
epoch 45 | loss 6.603158473968506, f_iou 0.6856074929237366: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.36it/s]
epoch 45 | loss 6.603158473968506, f_iou 0.6856074929237366: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.35it/s]
epoch 45 | loss 1.1980056762695312, f_iou 0.6885588765144348: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.35it/s]
epoch 45 | loss 1.1980056762695312, f_iou 0.6885588765144348: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.34it/s]
epoch 45 | loss 0.8584612011909485, f_iou 0.6846145391464233: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.34it/s]
epoch 45 | loss 0.8584612011909485, f_iou 0.6846145391464233: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.33it/s]
epoch 45 | loss 1.7891454696655273, f_iou 0.6818719506263733: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.33it/s]
epoch 45 | loss 1.7891454696655273, f_iou 0.6818719506263733: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.31it/s]
epoch 45 | loss 1.7891454696655273, f_iou 0.6818719506263733: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 45 | valid.f_iou 0.7458000183105469, valid.f_f-score 0.87131: 0%| | 0/16 [00:05, ?it/s]
epoch 45 | valid.f_iou 0.7458000183105469, valid.f_f-score 0.87131: 6%|█▉ | 1/16 [00:05<01:26, 5.79s/it]
epoch 45 | valid.f_iou 0.6256099939346313, valid.f_f-score 0.83511: 6%|█▉ | 1/16 [00:06<01:26, 5.79s/it]
epoch 45 | valid.f_iou 0.6256099939346313, valid.f_f-score 0.83511: 12%|███▉ | 2/16 [00:06<00:37, 2.65s/it]
epoch 45 | valid.f_iou 0.5139700174331665, valid.f_f-score 0.75567: 12%|███▉ | 2/16 [00:06<00:37, 2.65s/it]
epoch 45 | valid.f_iou 0.5139700174331665, valid.f_f-score 0.75567: 19%|█████▊ | 3/16 [00:06<00:21, 1.64s/it]
epoch 45 | valid.f_iou 0.5548800230026245, valid.f_f-score 0.76545: 19%|█████▊ | 3/16 [00:07<00:21, 1.64s/it]
epoch 45 | valid.f_iou 0.5548800230026245, valid.f_f-score 0.76545: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 45 | valid.f_iou 0.5295100212097168, valid.f_f-score 0.74173: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 45 | valid.f_iou 0.5295100212097168, valid.f_f-score 0.74173: 31%|█████████▋ | 5/16 [00:07<00:10, 1.10it/s]
epoch 45 | valid.f_iou 0.4972200095653534, valid.f_f-score 0.70655: 31%|█████████▋ | 5/16 [00:08<00:10, 1.10it/s]
epoch 45 | valid.f_iou 0.4972200095653534, valid.f_f-score 0.70655: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 45 | valid.f_iou 0.5138000249862671, valid.f_f-score 0.71729: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 45 | valid.f_iou 0.5138000249862671, valid.f_f-score 0.71729: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 45 | valid.f_iou 0.5090399980545044, valid.f_f-score 0.71439: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 45 | valid.f_iou 0.5090399980545044, valid.f_f-score 0.71439: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 45 | valid.f_iou 0.5163699984550476, valid.f_f-score 0.70109: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 45 | valid.f_iou 0.5163699984550476, valid.f_f-score 0.70109: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 45 | valid.f_iou 0.5025200247764587, valid.f_f-score 0.70213: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 45 | valid.f_iou 0.5025200247764587, valid.f_f-score 0.70213: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.97it/s]
epoch 45 | valid.f_iou 0.5032899975776672, valid.f_f-score 0.70229: 62%|██████████████████▊ | 10/16 [00:10<00:03, 1.97it/s]
epoch 45 | valid.f_iou 0.5032899975776672, valid.f_f-score 0.70229: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 45 | valid.f_iou 0.5273799896240234, valid.f_f-score 0.72065: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 45 | valid.f_iou 0.5273799896240234, valid.f_f-score 0.72065: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.09it/s]
epoch 45 | valid.f_iou 0.5354800224304199, valid.f_f-score 0.73135: 75%|██████████████████████▌ | 12/16 [00:11<00:01, 2.09it/s]
epoch 45 | valid.f_iou 0.5354800224304199, valid.f_f-score 0.73135: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.18it/s]
epoch 45 | valid.f_iou 0.5214400291442871, valid.f_f-score 0.71923: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.18it/s]
epoch 45 | valid.f_iou 0.5214400291442871, valid.f_f-score 0.71923: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.33it/s]
epoch 45 | valid.f_iou 0.524150013923645, valid.f_f-score 0.71987: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.33it/s]
epoch 45 | valid.f_iou 0.524150013923645, valid.f_f-score 0.71987: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.44it/s]
epoch 45 | valid.f_iou 0.5340700149536133, valid.f_f-score 0.72072: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.44it/s]
epoch 45 | valid.f_iou 0.5340700149536133, valid.f_f-score 0.72072: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.52it/s]
epoch 45 | valid.f_iou 0.5340700149536133, valid.f_f-score 0.72072: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.31it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 45 | valid.f_iou 0.7683500051498413, valid.f_f-score 0.83995: 0%| | 0/16 [00:04, ?it/s]
epoch 45 | valid.f_iou 0.7683500051498413, valid.f_f-score 0.83995: 6%|█▉ | 1/16 [00:04<01:14, 4.95s/it]
epoch 45 | valid.f_iou 0.8074399828910828, valid.f_f-score 0.89142: 6%|█▉ | 1/16 [00:05<01:14, 4.95s/it]
epoch 45 | valid.f_iou 0.8074399828910828, valid.f_f-score 0.89142: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 45 | valid.f_iou 0.7328100204467773, valid.f_f-score 0.83543: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 45 | valid.f_iou 0.7328100204467773, valid.f_f-score 0.83543: 19%|█████▊ | 3/16 [00:05<00:19, 1.47s/it]
epoch 45 | valid.f_iou 0.7021499872207642, valid.f_f-score 0.78502: 19%|█████▊ | 3/16 [00:06<00:19, 1.47s/it]
epoch 45 | valid.f_iou 0.7021499872207642, valid.f_f-score 0.78502: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 45 | valid.f_iou 0.6802399754524231, valid.f_f-score 0.76844: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 45 | valid.f_iou 0.6802399754524231, valid.f_f-score 0.76844: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 45 | valid.f_iou 0.6618499755859375, valid.f_f-score 0.75686: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 45 | valid.f_iou 0.6618499755859375, valid.f_f-score 0.75686: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 45 | valid.f_iou 0.6677600145339966, valid.f_f-score 0.77391: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 45 | valid.f_iou 0.6677600145339966, valid.f_f-score 0.77391: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 45 | valid.f_iou 0.6607099771499634, valid.f_f-score 0.76742: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 45 | valid.f_iou 0.6607099771499634, valid.f_f-score 0.76742: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 45 | valid.f_iou 0.6743699908256531, valid.f_f-score 0.7766: 50%|████████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 45 | valid.f_iou 0.6743699908256531, valid.f_f-score 0.7766: 56%|██████████████████ | 9/16 [00:08<00:03, 1.92it/s]
epoch 45 | valid.f_iou 0.6909000277519226, valid.f_f-score 0.79189: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 45 | valid.f_iou 0.6909000277519226, valid.f_f-score 0.79189: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 45 | valid.f_iou 0.6830599904060364, valid.f_f-score 0.77788: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 45 | valid.f_iou 0.6830599904060364, valid.f_f-score 0.77788: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 45 | valid.f_iou 0.6911699771881104, valid.f_f-score 0.78761: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 45 | valid.f_iou 0.6911699771881104, valid.f_f-score 0.78761: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 45 | valid.f_iou 0.7009900212287903, valid.f_f-score 0.79555: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 45 | valid.f_iou 0.7009900212287903, valid.f_f-score 0.79555: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 45 | valid.f_iou 0.691540002822876, valid.f_f-score 0.78792: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 45 | valid.f_iou 0.691540002822876, valid.f_f-score 0.78792: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.51it/s]
epoch 45 | valid.f_iou 0.6830099821090698, valid.f_f-score 0.77782: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.51it/s]
epoch 45 | valid.f_iou 0.6830099821090698, valid.f_f-score 0.77782: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.58it/s]
epoch 45 | valid.f_iou 0.6833599805831909, valid.f_f-score 0.77621: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 45 | valid.f_iou 0.6833599805831909, valid.f_f-score 0.77621: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 45 | valid.f_iou 0.6833599805831909, valid.f_f-score 0.77621: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 45 | valid.f_iou 0.7683500051498413, valid.f_f-score 0.83995: 0%| | 0/16 [00:04, ?it/s]
epoch 45 | valid.f_iou 0.7683500051498413, valid.f_f-score 0.83995: 6%|█▉ | 1/16 [00:04<01:09, 4.61s/it]
epoch 45 | valid.f_iou 0.8074399828910828, valid.f_f-score 0.89142: 6%|█▉ | 1/16 [00:05<01:09, 4.61s/it]
epoch 45 | valid.f_iou 0.8074399828910828, valid.f_f-score 0.89142: 12%|███▉ | 2/16 [00:05<00:30, 2.18s/it]
epoch 45 | valid.f_iou 0.7328100204467773, valid.f_f-score 0.83543: 12%|███▉ | 2/16 [00:05<00:30, 2.18s/it]
epoch 45 | valid.f_iou 0.7328100204467773, valid.f_f-score 0.83543: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 45 | valid.f_iou 0.7022899985313416, valid.f_f-score 0.78502: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 45 | valid.f_iou 0.7022899985313416, valid.f_f-score 0.78502: 25%|███████▊ | 4/16 [00:05<00:11, 1.03it/s]
epoch 45 | valid.f_iou 0.683709979057312, valid.f_f-score 0.76844: 25%|████████ | 4/16 [00:06<00:11, 1.03it/s]
epoch 45 | valid.f_iou 0.683709979057312, valid.f_f-score 0.76844: 31%|██████████ | 5/16 [00:06<00:08, 1.33it/s]
epoch 45 | valid.f_iou 0.6647400259971619, valid.f_f-score 0.75686: 31%|█████████▋ | 5/16 [00:06<00:08, 1.33it/s]
epoch 45 | valid.f_iou 0.6647400259971619, valid.f_f-score 0.75686: 38%|███████████▋ | 6/16 [00:06<00:06, 1.60it/s]
epoch 45 | valid.f_iou 0.6727799773216248, valid.f_f-score 0.77391: 38%|███████████▋ | 6/16 [00:06<00:06, 1.60it/s]
epoch 45 | valid.f_iou 0.6727799773216248, valid.f_f-score 0.77391: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.87it/s]
epoch 45 | valid.f_iou 0.6650999784469604, valid.f_f-score 0.76742: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.87it/s]
epoch 45 | valid.f_iou 0.6650999784469604, valid.f_f-score 0.76742: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.07it/s]
epoch 45 | valid.f_iou 0.6815599799156189, valid.f_f-score 0.7766: 50%|████████████████ | 8/16 [00:07<00:03, 2.07it/s]
epoch 45 | valid.f_iou 0.6815599799156189, valid.f_f-score 0.7766: 56%|██████████████████ | 9/16 [00:07<00:03, 2.26it/s]
epoch 45 | valid.f_iou 0.6940799951553345, valid.f_f-score 0.78841: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.26it/s]
epoch 45 | valid.f_iou 0.6940799951553345, valid.f_f-score 0.78841: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.39it/s]
epoch 45 | valid.f_iou 0.6828100085258484, valid.f_f-score 0.77084: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.39it/s]
epoch 45 | valid.f_iou 0.6828100085258484, valid.f_f-score 0.77084: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.49it/s]
epoch 45 | valid.f_iou 0.6909400224685669, valid.f_f-score 0.78115: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.49it/s]
epoch 45 | valid.f_iou 0.6909400224685669, valid.f_f-score 0.78115: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.57it/s]
epoch 45 | valid.f_iou 0.6970800161361694, valid.f_f-score 0.78686: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.57it/s]
epoch 45 | valid.f_iou 0.6970800161361694, valid.f_f-score 0.78686: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.62it/s]
epoch 45 | valid.f_iou 0.6879100203514099, valid.f_f-score 0.77986: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.62it/s]
epoch 45 | valid.f_iou 0.6879100203514099, valid.f_f-score 0.77986: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 45 | valid.f_iou 0.6796200275421143, valid.f_f-score 0.7703: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.65it/s]
epoch 45 | valid.f_iou 0.6796200275421143, valid.f_f-score 0.7703: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.68it/s]
epoch 45 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.76916: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 45 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.76916: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 45 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.76916: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.57it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 46 | loss 2.076493978500366, f_iou 0.5265123248100281: 0%| | 0/74 [00:06, ?it/s]
epoch 46 | loss 2.076493978500366, f_iou 0.5265123248100281: 1%|▌ | 1/74 [00:06<07:35, 6.24s/it]
epoch 46 | loss 0.6703667640686035, f_iou 0.6348739862442017: 1%|▌ | 1/74 [00:07<07:35, 6.24s/it]
epoch 46 | loss 0.6703667640686035, f_iou 0.6348739862442017: 3%|█ | 2/74 [00:07<03:38, 3.03s/it]
epoch 46 | loss 0.7060452103614807, f_iou 0.42349204421043396: 3%|▉ | 2/74 [00:07<03:38, 3.03s/it]
epoch 46 | loss 0.7060452103614807, f_iou 0.42349204421043396: 4%|█▍ | 3/74 [00:07<02:22, 2.01s/it]
epoch 46 | loss 1.700602412223816, f_iou 0.49134141206741333: 4%|█▌ | 3/74 [00:08<02:22, 2.01s/it]
epoch 46 | loss 1.700602412223816, f_iou 0.49134141206741333: 5%|██ | 4/74 [00:08<01:52, 1.60s/it]
epoch 46 | loss 1.9071284532546997, f_iou 0.5210854411125183: 5%|██ | 4/74 [00:09<01:52, 1.60s/it]
epoch 46 | loss 1.9071284532546997, f_iou 0.5210854411125183: 7%|██▌ | 5/74 [00:09<01:32, 1.34s/it]
epoch 46 | loss 2.5787110328674316, f_iou 0.5367119312286377: 7%|██▌ | 5/74 [00:10<01:32, 1.34s/it]
epoch 46 | loss 2.5787110328674316, f_iou 0.5367119312286377: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 46 | loss 1.1154725551605225, f_iou 0.5638120770454407: 8%|███ | 6/74 [00:11<01:18, 1.15s/it]
epoch 46 | loss 1.1154725551605225, f_iou 0.5638120770454407: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 46 | loss 3.6419529914855957, f_iou 0.5173438787460327: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 46 | loss 3.6419529914855957, f_iou 0.5173438787460327: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 46 | loss 3.9412944316864014, f_iou 0.48961585760116577: 11%|███▉ | 8/74 [00:12<01:02, 1.06it/s]
epoch 46 | loss 3.9412944316864014, f_iou 0.48961585760116577: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 46 | loss 2.4683854579925537, f_iou 0.4842267632484436: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 46 | loss 2.4683854579925537, f_iou 0.4842267632484436: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 46 | loss 2.46748685836792, f_iou 0.4815177321434021: 14%|█████▏ | 10/74 [00:14<00:54, 1.18it/s]
epoch 46 | loss 2.46748685836792, f_iou 0.4815177321434021: 15%|█████▋ | 11/74 [00:14<00:51, 1.21it/s]
epoch 46 | loss 1.236107587814331, f_iou 0.5022774338722229: 15%|█████▌ | 11/74 [00:14<00:51, 1.21it/s]
epoch 46 | loss 1.236107587814331, f_iou 0.5022774338722229: 16%|██████ | 12/74 [00:14<00:49, 1.26it/s]
epoch 46 | loss 1.1873658895492554, f_iou 0.5010589361190796: 16%|█████▊ | 12/74 [00:15<00:49, 1.26it/s]
epoch 46 | loss 1.1873658895492554, f_iou 0.5010589361190796: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 46 | loss 1.7767765522003174, f_iou 0.4790393114089966: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 46 | loss 1.7767765522003174, f_iou 0.4790393114089966: 19%|██████▊ | 14/74 [00:16<00:45, 1.32it/s]
epoch 46 | loss 0.9049464464187622, f_iou 0.5112695693969727: 19%|██████▊ | 14/74 [00:17<00:45, 1.32it/s]
epoch 46 | loss 0.9049464464187622, f_iou 0.5112695693969727: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 46 | loss 1.58986496925354, f_iou 0.5248128175735474: 20%|███████▋ | 15/74 [00:17<00:44, 1.34it/s]
epoch 46 | loss 1.58986496925354, f_iou 0.5248128175735474: 22%|████████▏ | 16/74 [00:17<00:42, 1.35it/s]
epoch 46 | loss 1.4135345220565796, f_iou 0.545735776424408: 22%|████████ | 16/74 [00:18<00:42, 1.35it/s]
epoch 46 | loss 1.4135345220565796, f_iou 0.545735776424408: 23%|████████▌ | 17/74 [00:18<00:41, 1.36it/s]
epoch 46 | loss 2.359163284301758, f_iou 0.5597691535949707: 23%|████████▌ | 17/74 [00:19<00:41, 1.36it/s]
epoch 46 | loss 2.359163284301758, f_iou 0.5597691535949707: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 46 | loss 1.547890305519104, f_iou 0.5703161954879761: 24%|█████████ | 18/74 [00:20<00:40, 1.37it/s]
epoch 46 | loss 1.547890305519104, f_iou 0.5703161954879761: 26%|█████████▌ | 19/74 [00:20<00:39, 1.38it/s]
epoch 46 | loss 1.3671658039093018, f_iou 0.5663892030715942: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 46 | loss 1.3671658039093018, f_iou 0.5663892030715942: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 46 | loss 2.0254838466644287, f_iou 0.5656201839447021: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 46 | loss 2.0254838466644287, f_iou 0.5656201839447021: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 46 | loss 1.2372394800186157, f_iou 0.5636653304100037: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 46 | loss 1.2372394800186157, f_iou 0.5636653304100037: 30%|██████████▋ | 22/74 [00:22<00:38, 1.35it/s]
epoch 46 | loss 2.240858793258667, f_iou 0.5608536005020142: 30%|███████████ | 22/74 [00:22<00:38, 1.35it/s]
epoch 46 | loss 2.240858793258667, f_iou 0.5608536005020142: 31%|███████████▌ | 23/74 [00:22<00:37, 1.35it/s]
epoch 46 | loss 2.089768648147583, f_iou 0.5692070126533508: 31%|███████████▌ | 23/74 [00:23<00:37, 1.35it/s]
epoch 46 | loss 2.089768648147583, f_iou 0.5692070126533508: 32%|████████████ | 24/74 [00:23<00:36, 1.36it/s]
epoch 46 | loss 1.8593106269836426, f_iou 0.5757768750190735: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 46 | loss 1.8593106269836426, f_iou 0.5757768750190735: 34%|████████████▏ | 25/74 [00:24<00:35, 1.37it/s]
epoch 46 | loss 1.781030535697937, f_iou 0.5890945196151733: 34%|████████████▌ | 25/74 [00:25<00:35, 1.37it/s]
epoch 46 | loss 1.781030535697937, f_iou 0.5890945196151733: 35%|█████████████ | 26/74 [00:25<00:35, 1.36it/s]
epoch 46 | loss 1.5860751867294312, f_iou 0.568324089050293: 35%|█████████████ | 26/74 [00:25<00:35, 1.36it/s]
epoch 46 | loss 1.5860751867294312, f_iou 0.568324089050293: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.35it/s]
epoch 46 | loss 0.7793580889701843, f_iou 0.575410008430481: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.35it/s]
epoch 46 | loss 0.7793580889701843, f_iou 0.575410008430481: 38%|██████████████ | 28/74 [00:26<00:33, 1.36it/s]
epoch 46 | loss 0.9278925657272339, f_iou 0.5555682182312012: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.36it/s]
epoch 46 | loss 0.9278925657272339, f_iou 0.5555682182312012: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 46 | loss 0.45090973377227783, f_iou 0.5675789713859558: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.37it/s]
epoch 46 | loss 0.45090973377227783, f_iou 0.5675789713859558: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.34it/s]
epoch 46 | loss 3.82509446144104, f_iou 0.5711864233016968: 41%|███████████████▍ | 30/74 [00:28<00:32, 1.34it/s]
epoch 46 | loss 3.82509446144104, f_iou 0.5711864233016968: 42%|███████████████▉ | 31/74 [00:28<00:32, 1.32it/s]
epoch 46 | loss 1.9852051734924316, f_iou 0.5619358420372009: 42%|███████████████ | 31/74 [00:29<00:32, 1.32it/s]
epoch 46 | loss 1.9852051734924316, f_iou 0.5619358420372009: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.34it/s]
epoch 46 | loss 0.3901507258415222, f_iou 0.544918954372406: 43%|████████████████ | 32/74 [00:30<00:31, 1.34it/s]
epoch 46 | loss 0.3901507258415222, f_iou 0.544918954372406: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.36it/s]
epoch 46 | loss 4.99617338180542, f_iou 0.5385611057281494: 45%|████████████████▉ | 33/74 [00:31<00:30, 1.36it/s]
epoch 46 | loss 4.99617338180542, f_iou 0.5385611057281494: 46%|█████████████████▍ | 34/74 [00:31<00:29, 1.37it/s]
epoch 46 | loss 2.089195728302002, f_iou 0.5423880219459534: 46%|█████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 46 | loss 2.089195728302002, f_iou 0.5423880219459534: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.38it/s]
epoch 46 | loss 2.889409303665161, f_iou 0.551771342754364: 47%|█████████████████▉ | 35/74 [00:32<00:28, 1.38it/s]
epoch 46 | loss 2.889409303665161, f_iou 0.551771342754364: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.37it/s]
epoch 46 | loss 1.5925216674804688, f_iou 0.5607334971427917: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 46 | loss 1.5925216674804688, f_iou 0.5607334971427917: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 46 | loss 1.6118125915527344, f_iou 0.5627465844154358: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 46 | loss 1.6118125915527344, f_iou 0.5627465844154358: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 46 | loss 0.9794094562530518, f_iou 0.5674421787261963: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 46 | loss 0.9794094562530518, f_iou 0.5674421787261963: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 46 | loss 1.0236340761184692, f_iou 0.5681927800178528: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.39it/s]
epoch 46 | loss 1.0236340761184692, f_iou 0.5681927800178528: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 46 | loss 1.5296670198440552, f_iou 0.5725862979888916: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.39it/s]
epoch 46 | loss 1.5296670198440552, f_iou 0.5725862979888916: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 46 | loss 1.275597333908081, f_iou 0.5805640816688538: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 46 | loss 1.275597333908081, f_iou 0.5805640816688538: 57%|█████████████████████ | 42/74 [00:36<00:22, 1.40it/s]
epoch 46 | loss 1.1081637144088745, f_iou 0.5848772525787354: 57%|████████████████████▍ | 42/74 [00:37<00:22, 1.40it/s]
epoch 46 | loss 1.1081637144088745, f_iou 0.5848772525787354: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.40it/s]
epoch 46 | loss 1.8710840940475464, f_iou 0.5891650319099426: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.40it/s]
epoch 46 | loss 1.8710840940475464, f_iou 0.5891650319099426: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.40it/s]
epoch 46 | loss 3.33579683303833, f_iou 0.5828723311424255: 59%|██████████████████████▌ | 44/74 [00:38<00:21, 1.40it/s]
epoch 46 | loss 3.33579683303833, f_iou 0.5828723311424255: 61%|███████████████████████ | 45/74 [00:38<00:20, 1.40it/s]
epoch 46 | loss 3.2849409580230713, f_iou 0.577052652835846: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.40it/s]
epoch 46 | loss 3.2849409580230713, f_iou 0.577052652835846: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.40it/s]
epoch 46 | loss 1.2944252490997314, f_iou 0.5794208645820618: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.40it/s]
epoch 46 | loss 1.2944252490997314, f_iou 0.5794208645820618: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.41it/s]
epoch 46 | loss 2.1800689697265625, f_iou 0.5784286260604858: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.41it/s]
epoch 46 | loss 2.1800689697265625, f_iou 0.5784286260604858: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.40it/s]
epoch 46 | loss 0.9967691898345947, f_iou 0.5666771531105042: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.40it/s]
epoch 46 | loss 0.9967691898345947, f_iou 0.5666771531105042: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.40it/s]
epoch 46 | loss 3.4354937076568604, f_iou 0.5631427764892578: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.40it/s]
epoch 46 | loss 3.4354937076568604, f_iou 0.5631427764892578: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 46 | loss 2.9556658267974854, f_iou 0.5671454071998596: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.40it/s]
epoch 46 | loss 2.9556658267974854, f_iou 0.5671454071998596: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.40it/s]
epoch 46 | loss 3.699939489364624, f_iou 0.5642628073692322: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.40it/s]
epoch 46 | loss 3.699939489364624, f_iou 0.5642628073692322: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.41it/s]
epoch 46 | loss 1.511142373085022, f_iou 0.5589806437492371: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.41it/s]
epoch 46 | loss 1.511142373085022, f_iou 0.5589806437492371: 72%|██████████████████████████▌ | 53/74 [00:44<00:14, 1.40it/s]
epoch 46 | loss 0.8984148502349854, f_iou 0.5594462752342224: 72%|█████████████████████████▊ | 53/74 [00:45<00:14, 1.40it/s]
epoch 46 | loss 0.8984148502349854, f_iou 0.5594462752342224: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 46 | loss 2.3951778411865234, f_iou 0.5609645843505859: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.40it/s]
epoch 46 | loss 2.3951778411865234, f_iou 0.5609645843505859: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 46 | loss 1.2037770748138428, f_iou 0.5662531852722168: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 46 | loss 1.2037770748138428, f_iou 0.5662531852722168: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.40it/s]
epoch 46 | loss 4.528531551361084, f_iou 0.5652366876602173: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.40it/s]
epoch 46 | loss 4.528531551361084, f_iou 0.5652366876602173: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.40it/s]
epoch 46 | loss 4.90091609954834, f_iou 0.5586568713188171: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.40it/s]
epoch 46 | loss 4.90091609954834, f_iou 0.5586568713188171: 78%|█████████████████████████████▊ | 58/74 [00:48<00:11, 1.40it/s]
epoch 46 | loss 0.934532642364502, f_iou 0.5656607747077942: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.40it/s]
epoch 46 | loss 0.934532642364502, f_iou 0.5656607747077942: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.40it/s]
epoch 46 | loss 1.9562488794326782, f_iou 0.5625688433647156: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 46 | loss 1.9562488794326782, f_iou 0.5625688433647156: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 46 | loss 0.91419517993927, f_iou 0.5679559707641602: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.39it/s]
epoch 46 | loss 0.91419517993927, f_iou 0.5679559707641602: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.39it/s]
epoch 46 | loss 2.37197208404541, f_iou 0.5618111491203308: 82%|███████████████████████████████▎ | 61/74 [00:51<00:09, 1.39it/s]
epoch 46 | loss 2.37197208404541, f_iou 0.5618111491203308: 84%|███████████████████████████████▊ | 62/74 [00:51<00:08, 1.40it/s]
epoch 46 | loss 0.9562108516693115, f_iou 0.5634902119636536: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.40it/s]
epoch 46 | loss 0.9562108516693115, f_iou 0.5634902119636536: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 46 | loss 2.1316118240356445, f_iou 0.5565065741539001: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 46 | loss 2.1316118240356445, f_iou 0.5565065741539001: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 46 | loss 1.9293653964996338, f_iou 0.5494810342788696: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 46 | loss 1.9293653964996338, f_iou 0.5494810342788696: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.35it/s]
epoch 46 | loss 1.6072204113006592, f_iou 0.5525798201560974: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.35it/s]
epoch 46 | loss 1.6072204113006592, f_iou 0.5525798201560974: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 46 | loss 0.7837631702423096, f_iou 0.55778968334198: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.37it/s]
epoch 46 | loss 0.7837631702423096, f_iou 0.55778968334198: 91%|██████████████████████████████████▍ | 67/74 [00:54<00:05, 1.38it/s]
epoch 46 | loss 5.95529317855835, f_iou 0.5551425814628601: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.38it/s]
epoch 46 | loss 5.95529317855835, f_iou 0.5551425814628601: 92%|██████████████████████████████████▉ | 68/74 [00:55<00:04, 1.39it/s]
epoch 46 | loss 1.608797550201416, f_iou 0.5498992800712585: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 46 | loss 1.608797550201416, f_iou 0.5498992800712585: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 46 | loss 1.1754546165466309, f_iou 0.5504308938980103: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 46 | loss 1.1754546165466309, f_iou 0.5504308938980103: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 46 | loss 0.5499619245529175, f_iou 0.5557344555854797: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 46 | loss 0.5499619245529175, f_iou 0.5557344555854797: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 46 | loss 0.2645663619041443, f_iou 0.5593951940536499: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 46 | loss 0.2645663619041443, f_iou 0.5593951940536499: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 46 | loss 0.34096014499664307, f_iou 0.5648555159568787: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 46 | loss 0.34096014499664307, f_iou 0.5648555159568787: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 46 | loss 2.299633741378784, f_iou 0.5690765976905823: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 46 | loss 2.299633741378784, f_iou 0.5690765976905823: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 46 | loss 2.299633741378784, f_iou 0.5690765976905823: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 46 | valid.f_iou 0.7762699723243713, valid.f_f-score 0.83495: 0%| | 0/16 [00:05, ?it/s]
epoch 46 | valid.f_iou 0.7762699723243713, valid.f_f-score 0.83495: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 46 | valid.f_iou 0.6315699815750122, valid.f_f-score 0.75164: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 46 | valid.f_iou 0.6315699815750122, valid.f_f-score 0.75164: 12%|███▉ | 2/16 [00:05<00:35, 2.54s/it]
epoch 46 | valid.f_iou 0.5163499712944031, valid.f_f-score 0.69955: 12%|███▉ | 2/16 [00:06<00:35, 2.54s/it]
epoch 46 | valid.f_iou 0.5163499712944031, valid.f_f-score 0.69955: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 46 | valid.f_iou 0.5756700038909912, valid.f_f-score 0.72439: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 46 | valid.f_iou 0.5756700038909912, valid.f_f-score 0.72439: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 46 | valid.f_iou 0.5418999791145325, valid.f_f-score 0.70724: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 46 | valid.f_iou 0.5418999791145325, valid.f_f-score 0.70724: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 46 | valid.f_iou 0.5113099813461304, valid.f_f-score 0.67382: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 46 | valid.f_iou 0.5113099813461304, valid.f_f-score 0.67382: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 46 | valid.f_iou 0.5213900208473206, valid.f_f-score 0.69328: 38%|███████████▋ | 6/16 [00:08<00:07, 1.38it/s]
epoch 46 | valid.f_iou 0.5213900208473206, valid.f_f-score 0.69328: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 46 | valid.f_iou 0.5098000168800354, valid.f_f-score 0.68352: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 46 | valid.f_iou 0.5098000168800354, valid.f_f-score 0.68352: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 46 | valid.f_iou 0.5055000185966492, valid.f_f-score 0.6644: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 46 | valid.f_iou 0.5055000185966492, valid.f_f-score 0.6644: 56%|██████████████████ | 9/16 [00:08<00:03, 2.00it/s]
epoch 46 | valid.f_iou 0.49845999479293823, valid.f_f-score 0.67007: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.00it/s]
epoch 46 | valid.f_iou 0.49845999479293823, valid.f_f-score 0.67007: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 46 | valid.f_iou 0.4920099973678589, valid.f_f-score 0.66956: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 46 | valid.f_iou 0.4920099973678589, valid.f_f-score 0.66956: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 46 | valid.f_iou 0.5181999802589417, valid.f_f-score 0.69073: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.12it/s]
epoch 46 | valid.f_iou 0.5181999802589417, valid.f_f-score 0.69073: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 46 | valid.f_iou 0.5237699747085571, valid.f_f-score 0.70231: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 46 | valid.f_iou 0.5237699747085571, valid.f_f-score 0.70231: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 46 | valid.f_iou 0.5011699795722961, valid.f_f-score 0.68224: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 46 | valid.f_iou 0.5011699795722961, valid.f_f-score 0.68224: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 46 | valid.f_iou 0.5027099847793579, valid.f_f-score 0.68435: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.50it/s]
epoch 46 | valid.f_iou 0.5027099847793579, valid.f_f-score 0.68435: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 46 | valid.f_iou 0.5082499980926514, valid.f_f-score 0.68199: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 46 | valid.f_iou 0.5082499980926514, valid.f_f-score 0.68199: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 46 | valid.f_iou 0.5082499980926514, valid.f_f-score 0.68199: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 46 | valid.f_iou 0.7999500036239624, valid.f_f-score 0.79375: 0%| | 0/16 [00:04, ?it/s]
epoch 46 | valid.f_iou 0.7999500036239624, valid.f_f-score 0.79375: 6%|█▉ | 1/16 [00:04<01:14, 4.95s/it]
epoch 46 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86638: 6%|█▉ | 1/16 [00:05<01:14, 4.95s/it]
epoch 46 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86638: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 46 | valid.f_iou 0.7172200083732605, valid.f_f-score 0.80695: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 46 | valid.f_iou 0.7172200083732605, valid.f_f-score 0.80695: 19%|█████▊ | 3/16 [00:05<00:18, 1.46s/it]
epoch 46 | valid.f_iou 0.6906300187110901, valid.f_f-score 0.7904: 19%|██████ | 3/16 [00:06<00:18, 1.46s/it]
epoch 46 | valid.f_iou 0.6906300187110901, valid.f_f-score 0.7904: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 46 | valid.f_iou 0.6881899833679199, valid.f_f-score 0.7977: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 46 | valid.f_iou 0.6881899833679199, valid.f_f-score 0.7977: 31%|██████████ | 5/16 [00:06<00:09, 1.22it/s]
epoch 46 | valid.f_iou 0.6669899821281433, valid.f_f-score 0.78282: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 46 | valid.f_iou 0.6669899821281433, valid.f_f-score 0.78282: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 46 | valid.f_iou 0.6845800280570984, valid.f_f-score 0.80757: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 46 | valid.f_iou 0.6845800280570984, valid.f_f-score 0.80757: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 46 | valid.f_iou 0.6718599796295166, valid.f_f-score 0.79777: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 46 | valid.f_iou 0.6718599796295166, valid.f_f-score 0.79777: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 46 | valid.f_iou 0.6806300282478333, valid.f_f-score 0.80165: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 46 | valid.f_iou 0.6806300282478333, valid.f_f-score 0.80165: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 46 | valid.f_iou 0.6910600066184998, valid.f_f-score 0.81249: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 46 | valid.f_iou 0.6910600066184998, valid.f_f-score 0.81249: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.08it/s]
epoch 46 | valid.f_iou 0.6805800199508667, valid.f_f-score 0.79498: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 46 | valid.f_iou 0.6805800199508667, valid.f_f-score 0.79498: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 46 | valid.f_iou 0.6944500207901001, valid.f_f-score 0.80578: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 46 | valid.f_iou 0.6944500207901001, valid.f_f-score 0.80578: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 46 | valid.f_iou 0.7073500156402588, valid.f_f-score 0.81446: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 46 | valid.f_iou 0.7073500156402588, valid.f_f-score 0.81446: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.47it/s]
epoch 46 | valid.f_iou 0.6997399926185608, valid.f_f-score 0.80757: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 46 | valid.f_iou 0.6997399926185608, valid.f_f-score 0.80757: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 46 | valid.f_iou 0.7083500027656555, valid.f_f-score 0.81507: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 46 | valid.f_iou 0.7083500027656555, valid.f_f-score 0.81507: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 46 | valid.f_iou 0.7096099853515625, valid.f_f-score 0.81564: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 46 | valid.f_iou 0.7096099853515625, valid.f_f-score 0.81564: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 46 | valid.f_iou 0.7096099853515625, valid.f_f-score 0.81564: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 46 | valid.f_iou 0.7999500036239624, valid.f_f-score 0.79375: 0%| | 0/16 [00:05, ?it/s]
epoch 46 | valid.f_iou 0.7999500036239624, valid.f_f-score 0.79375: 6%|█▉ | 1/16 [00:05<01:18, 5.24s/it]
epoch 46 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86638: 6%|█▉ | 1/16 [00:05<01:18, 5.24s/it]
epoch 46 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86638: 12%|███▉ | 2/16 [00:05<00:33, 2.43s/it]
epoch 46 | valid.f_iou 0.7172200083732605, valid.f_f-score 0.80695: 12%|███▉ | 2/16 [00:06<00:33, 2.43s/it]
epoch 46 | valid.f_iou 0.7172200083732605, valid.f_f-score 0.80695: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 46 | valid.f_iou 0.6908900141716003, valid.f_f-score 0.7904: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 46 | valid.f_iou 0.6908900141716003, valid.f_f-score 0.7904: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 46 | valid.f_iou 0.6924300193786621, valid.f_f-score 0.7977: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 46 | valid.f_iou 0.6924300193786621, valid.f_f-score 0.7977: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 46 | valid.f_iou 0.670520007610321, valid.f_f-score 0.78282: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 46 | valid.f_iou 0.670520007610321, valid.f_f-score 0.78282: 38%|████████████ | 6/16 [00:07<00:07, 1.35it/s]
epoch 46 | valid.f_iou 0.6901900172233582, valid.f_f-score 0.80757: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 46 | valid.f_iou 0.6901900172233582, valid.f_f-score 0.80757: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 46 | valid.f_iou 0.6767699718475342, valid.f_f-score 0.79777: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 46 | valid.f_iou 0.6767699718475342, valid.f_f-score 0.79777: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 46 | valid.f_iou 0.6851099729537964, valid.f_f-score 0.80165: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 46 | valid.f_iou 0.6851099729537964, valid.f_f-score 0.80165: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 46 | valid.f_iou 0.6923499703407288, valid.f_f-score 0.80893: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.93it/s]
epoch 46 | valid.f_iou 0.6923499703407288, valid.f_f-score 0.80893: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 46 | valid.f_iou 0.6817600131034851, valid.f_f-score 0.79174: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 46 | valid.f_iou 0.6817600131034851, valid.f_f-score 0.79174: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 46 | valid.f_iou 0.6955299973487854, valid.f_f-score 0.80282: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.18it/s]
epoch 46 | valid.f_iou 0.6955299973487854, valid.f_f-score 0.80282: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 46 | valid.f_iou 0.7078800201416016, valid.f_f-score 0.81189: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 46 | valid.f_iou 0.7078800201416016, valid.f_f-score 0.81189: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 46 | valid.f_iou 0.7002400159835815, valid.f_f-score 0.8052: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.44it/s]
epoch 46 | valid.f_iou 0.7002400159835815, valid.f_f-score 0.8052: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.52it/s]
epoch 46 | valid.f_iou 0.7088099718093872, valid.f_f-score 0.81286: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 46 | valid.f_iou 0.7088099718093872, valid.f_f-score 0.81286: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 46 | valid.f_iou 0.7106800079345703, valid.f_f-score 0.81357: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 46 | valid.f_iou 0.7106800079345703, valid.f_f-score 0.81357: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 46 | valid.f_iou 0.7106800079345703, valid.f_f-score 0.81357: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 47 | loss 0.7091166377067566, f_iou 0.9437243342399597: 0%| | 0/74 [00:05, ?it/s]
epoch 47 | loss 0.7091166377067566, f_iou 0.9437243342399597: 1%|▌ | 1/74 [00:05<07:07, 5.86s/it]
epoch 47 | loss 2.966930866241455, f_iou 0.7937282919883728: 1%|▌ | 1/74 [00:06<07:07, 5.86s/it]
epoch 47 | loss 2.966930866241455, f_iou 0.7937282919883728: 3%|█ | 2/74 [00:06<03:29, 2.91s/it]
epoch 47 | loss 4.710077285766602, f_iou 0.6282035112380981: 3%|█ | 2/74 [00:07<03:29, 2.91s/it]
epoch 47 | loss 4.710077285766602, f_iou 0.6282035112380981: 4%|█▌ | 3/74 [00:07<02:18, 1.95s/it]
epoch 47 | loss 1.081701636314392, f_iou 0.6807706356048584: 4%|█▌ | 3/74 [00:08<02:18, 1.95s/it]
epoch 47 | loss 1.081701636314392, f_iou 0.6807706356048584: 5%|██ | 4/74 [00:08<01:44, 1.49s/it]
epoch 47 | loss 0.7016280293464661, f_iou 0.6716997027397156: 5%|██ | 4/74 [00:09<01:44, 1.49s/it]
epoch 47 | loss 0.7016280293464661, f_iou 0.6716997027397156: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 47 | loss 1.841632604598999, f_iou 0.6454730033874512: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 47 | loss 1.841632604598999, f_iou 0.6454730033874512: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 47 | loss 3.592697858810425, f_iou 0.6334922909736633: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 47 | loss 3.592697858810425, f_iou 0.6334922909736633: 9%|███▌ | 7/74 [00:10<01:04, 1.04it/s]
epoch 47 | loss 0.8306295275688171, f_iou 0.5778420567512512: 9%|███▌ | 7/74 [00:11<01:04, 1.04it/s]
epoch 47 | loss 0.8306295275688171, f_iou 0.5778420567512512: 11%|████ | 8/74 [00:11<00:59, 1.11it/s]
epoch 47 | loss 0.6963992714881897, f_iou 0.6082038879394531: 11%|████ | 8/74 [00:12<00:59, 1.11it/s]
epoch 47 | loss 0.6963992714881897, f_iou 0.6082038879394531: 12%|████▌ | 9/74 [00:12<00:55, 1.17it/s]
epoch 47 | loss 1.289571762084961, f_iou 0.6291393637657166: 12%|████▌ | 9/74 [00:12<00:55, 1.17it/s]
epoch 47 | loss 1.289571762084961, f_iou 0.6291393637657166: 14%|█████ | 10/74 [00:12<00:53, 1.19it/s]
epoch 47 | loss 0.9838253259658813, f_iou 0.6451586484909058: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 47 | loss 0.9838253259658813, f_iou 0.6451586484909058: 15%|█████▎ | 11/74 [00:13<00:52, 1.21it/s]
epoch 47 | loss 0.48544079065322876, f_iou 0.6718530654907227: 15%|█████▏ | 11/74 [00:14<00:52, 1.21it/s]
epoch 47 | loss 0.48544079065322876, f_iou 0.6718530654907227: 16%|█████▋ | 12/74 [00:14<00:50, 1.22it/s]
epoch 47 | loss 0.8084688186645508, f_iou 0.6810079216957092: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 47 | loss 0.8084688186645508, f_iou 0.6810079216957092: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 47 | loss 0.9765353202819824, f_iou 0.6915699243545532: 18%|██████▎ | 13/74 [00:16<00:49, 1.24it/s]
epoch 47 | loss 0.9765353202819824, f_iou 0.6915699243545532: 19%|██████▊ | 14/74 [00:16<00:47, 1.25it/s]
epoch 47 | loss 1.3381253480911255, f_iou 0.7080552577972412: 19%|██████▊ | 14/74 [00:16<00:47, 1.25it/s]
epoch 47 | loss 1.3381253480911255, f_iou 0.7080552577972412: 20%|███████▎ | 15/74 [00:16<00:46, 1.26it/s]
epoch 47 | loss 1.0117661952972412, f_iou 0.6638097167015076: 20%|███████▎ | 15/74 [00:17<00:46, 1.26it/s]
epoch 47 | loss 1.0117661952972412, f_iou 0.6638097167015076: 22%|███████▊ | 16/74 [00:17<00:45, 1.29it/s]
epoch 47 | loss 3.17824649810791, f_iou 0.648384153842926: 22%|████████▍ | 16/74 [00:18<00:45, 1.29it/s]
epoch 47 | loss 3.17824649810791, f_iou 0.648384153842926: 23%|████████▉ | 17/74 [00:18<00:43, 1.31it/s]
epoch 47 | loss 2.997318744659424, f_iou 0.6360815167427063: 23%|████████▌ | 17/74 [00:19<00:43, 1.31it/s]
epoch 47 | loss 2.997318744659424, f_iou 0.6360815167427063: 24%|█████████ | 18/74 [00:19<00:42, 1.33it/s]
epoch 47 | loss 1.545670509338379, f_iou 0.644650936126709: 24%|█████████▏ | 18/74 [00:19<00:42, 1.33it/s]
epoch 47 | loss 1.545670509338379, f_iou 0.644650936126709: 26%|█████████▊ | 19/74 [00:19<00:40, 1.35it/s]
epoch 47 | loss 0.558371901512146, f_iou 0.6369810700416565: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 47 | loss 0.558371901512146, f_iou 0.6369810700416565: 27%|██████████ | 20/74 [00:20<00:39, 1.36it/s]
epoch 47 | loss 0.5845575928688049, f_iou 0.6511200666427612: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 47 | loss 0.5845575928688049, f_iou 0.6511200666427612: 28%|██████████▏ | 21/74 [00:21<00:39, 1.35it/s]
epoch 47 | loss 2.555229663848877, f_iou 0.6431043744087219: 28%|██████████▌ | 21/74 [00:21<00:39, 1.35it/s]
epoch 47 | loss 2.555229663848877, f_iou 0.6431043744087219: 30%|███████████ | 22/74 [00:21<00:38, 1.36it/s]
epoch 47 | loss 3.0617542266845703, f_iou 0.6248241066932678: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 47 | loss 3.0617542266845703, f_iou 0.6248241066932678: 31%|███████████▏ | 23/74 [00:22<00:38, 1.33it/s]
epoch 47 | loss 0.6169862151145935, f_iou 0.6153682470321655: 31%|███████████▏ | 23/74 [00:23<00:38, 1.33it/s]
epoch 47 | loss 0.6169862151145935, f_iou 0.6153682470321655: 32%|███████████▋ | 24/74 [00:23<00:37, 1.32it/s]
epoch 47 | loss 2.0252909660339355, f_iou 0.6096097826957703: 32%|███████████▋ | 24/74 [00:24<00:37, 1.32it/s]
epoch 47 | loss 2.0252909660339355, f_iou 0.6096097826957703: 34%|████████████▏ | 25/74 [00:24<00:37, 1.31it/s]
epoch 47 | loss 0.5874731540679932, f_iou 0.6223913431167603: 34%|████████████▏ | 25/74 [00:25<00:37, 1.31it/s]
epoch 47 | loss 0.5874731540679932, f_iou 0.6223913431167603: 35%|████████████▋ | 26/74 [00:25<00:37, 1.29it/s]
epoch 47 | loss 2.888543128967285, f_iou 0.6189552545547485: 35%|█████████████ | 26/74 [00:25<00:37, 1.29it/s]
epoch 47 | loss 2.888543128967285, f_iou 0.6189552545547485: 36%|█████████████▌ | 27/74 [00:25<00:36, 1.29it/s]
epoch 47 | loss 1.6174792051315308, f_iou 0.6177963018417358: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.29it/s]
epoch 47 | loss 1.6174792051315308, f_iou 0.6177963018417358: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.31it/s]
epoch 47 | loss 1.6050071716308594, f_iou 0.5984656810760498: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.31it/s]
epoch 47 | loss 1.6050071716308594, f_iou 0.5984656810760498: 39%|██████████████ | 29/74 [00:27<00:33, 1.33it/s]
epoch 47 | loss 3.2794690132141113, f_iou 0.6024376153945923: 39%|██████████████ | 29/74 [00:28<00:33, 1.33it/s]
epoch 47 | loss 3.2794690132141113, f_iou 0.6024376153945923: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.35it/s]
epoch 47 | loss 2.5094618797302246, f_iou 0.5959895253181458: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.35it/s]
epoch 47 | loss 2.5094618797302246, f_iou 0.5959895253181458: 42%|███████████████ | 31/74 [00:28<00:31, 1.36it/s]
epoch 47 | loss 3.2741832733154297, f_iou 0.5811800360679626: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 47 | loss 3.2741832733154297, f_iou 0.5811800360679626: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 47 | loss 2.467963695526123, f_iou 0.584974467754364: 43%|████████████████▍ | 32/74 [00:30<00:30, 1.36it/s]
epoch 47 | loss 2.467963695526123, f_iou 0.584974467754364: 45%|████████████████▉ | 33/74 [00:30<00:30, 1.34it/s]
epoch 47 | loss 1.7111095190048218, f_iou 0.5762249231338501: 45%|████████████████ | 33/74 [00:31<00:30, 1.34it/s]
epoch 47 | loss 1.7111095190048218, f_iou 0.5762249231338501: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.32it/s]
epoch 47 | loss 2.742799997329712, f_iou 0.5718023777008057: 46%|█████████████████ | 34/74 [00:31<00:30, 1.32it/s]
epoch 47 | loss 2.742799997329712, f_iou 0.5718023777008057: 47%|█████████████████▌ | 35/74 [00:31<00:29, 1.31it/s]
epoch 47 | loss 0.5397617220878601, f_iou 0.5829895734786987: 47%|█████████████████ | 35/74 [00:32<00:29, 1.31it/s]
epoch 47 | loss 0.5397617220878601, f_iou 0.5829895734786987: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.31it/s]
epoch 47 | loss 1.4293713569641113, f_iou 0.5896336436271667: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.31it/s]
epoch 47 | loss 1.4293713569641113, f_iou 0.5896336436271667: 50%|██████████████████ | 37/74 [00:33<00:28, 1.31it/s]
epoch 47 | loss 0.8935703039169312, f_iou 0.597272515296936: 50%|██████████████████▌ | 37/74 [00:34<00:28, 1.31it/s]
epoch 47 | loss 0.8935703039169312, f_iou 0.597272515296936: 51%|███████████████████ | 38/74 [00:34<00:27, 1.32it/s]
epoch 47 | loss 0.6884328126907349, f_iou 0.6068347096443176: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 47 | loss 0.6884328126907349, f_iou 0.6068347096443176: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.31it/s]
epoch 47 | loss 2.3741211891174316, f_iou 0.6022362112998962: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.31it/s]
epoch 47 | loss 2.3741211891174316, f_iou 0.6022362112998962: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.33it/s]
epoch 47 | loss 0.9500551223754883, f_iou 0.604522168636322: 54%|████████████████████ | 40/74 [00:36<00:25, 1.33it/s]
epoch 47 | loss 0.9500551223754883, f_iou 0.604522168636322: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.35it/s]
epoch 47 | loss 1.0334933996200562, f_iou 0.6067659854888916: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.35it/s]
epoch 47 | loss 1.0334933996200562, f_iou 0.6067659854888916: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.36it/s]
epoch 47 | loss 3.513298749923706, f_iou 0.6039350032806396: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.36it/s]
epoch 47 | loss 3.513298749923706, f_iou 0.6039350032806396: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.34it/s]
epoch 47 | loss 1.906080961227417, f_iou 0.6049558520317078: 58%|█████████████████████▍ | 43/74 [00:38<00:23, 1.34it/s]
epoch 47 | loss 1.906080961227417, f_iou 0.6049558520317078: 59%|██████████████████████ | 44/74 [00:38<00:22, 1.32it/s]
epoch 47 | loss 1.9722678661346436, f_iou 0.6054825186729431: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.32it/s]
epoch 47 | loss 1.9722678661346436, f_iou 0.6054825186729431: 61%|█████████████████████▉ | 45/74 [00:39<00:22, 1.30it/s]
epoch 47 | loss 1.7732985019683838, f_iou 0.6099614500999451: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.30it/s]
epoch 47 | loss 1.7732985019683838, f_iou 0.6099614500999451: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.29it/s]
epoch 47 | loss 2.4305450916290283, f_iou 0.6048239469528198: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.29it/s]
epoch 47 | loss 2.4305450916290283, f_iou 0.6048239469528198: 64%|██████████████████████▊ | 47/74 [00:40<00:21, 1.28it/s]
epoch 47 | loss 1.0341604948043823, f_iou 0.6114876866340637: 64%|██████████████████████▊ | 47/74 [00:41<00:21, 1.28it/s]
epoch 47 | loss 1.0341604948043823, f_iou 0.6114876866340637: 65%|███████████████████████▎ | 48/74 [00:41<00:20, 1.28it/s]
epoch 47 | loss 1.784139633178711, f_iou 0.6149927377700806: 65%|████████████████████████ | 48/74 [00:42<00:20, 1.28it/s]
epoch 47 | loss 1.784139633178711, f_iou 0.6149927377700806: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.28it/s]
epoch 47 | loss 3.246603012084961, f_iou 0.6123772859573364: 66%|████████████████████████▌ | 49/74 [00:43<00:19, 1.28it/s]
epoch 47 | loss 3.246603012084961, f_iou 0.6123772859573364: 68%|█████████████████████████ | 50/74 [00:43<00:18, 1.28it/s]
epoch 47 | loss 0.9869106411933899, f_iou 0.6176996827125549: 68%|████████████████████████▎ | 50/74 [00:44<00:18, 1.28it/s]
epoch 47 | loss 0.9869106411933899, f_iou 0.6176996827125549: 69%|████████████████████████▊ | 51/74 [00:44<00:18, 1.27it/s]
epoch 47 | loss 2.618337392807007, f_iou 0.6219408512115479: 69%|█████████████████████████▌ | 51/74 [00:44<00:18, 1.27it/s]
epoch 47 | loss 2.618337392807007, f_iou 0.6219408512115479: 70%|██████████████████████████ | 52/74 [00:44<00:17, 1.29it/s]
epoch 47 | loss 2.389181613922119, f_iou 0.6217774748802185: 70%|██████████████████████████ | 52/74 [00:45<00:17, 1.29it/s]
epoch 47 | loss 2.389181613922119, f_iou 0.6217774748802185: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.32it/s]
epoch 47 | loss 0.5093804597854614, f_iou 0.6280856132507324: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.32it/s]
epoch 47 | loss 0.5093804597854614, f_iou 0.6280856132507324: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.33it/s]
epoch 47 | loss 1.8388316631317139, f_iou 0.621411919593811: 73%|███████████████████████████ | 54/74 [00:47<00:14, 1.33it/s]
epoch 47 | loss 1.8388316631317139, f_iou 0.621411919593811: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.35it/s]
epoch 47 | loss 0.03125, f_iou 0.6281653642654419: 74%|██████████████████████████████████▉ | 55/74 [00:47<00:14, 1.35it/s]
epoch 47 | loss 0.03125, f_iou 0.6281653642654419: 76%|███████████████████████████████████▌ | 56/74 [00:47<00:13, 1.37it/s]
epoch 47 | loss 0.8966272473335266, f_iou 0.6171448826789856: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.37it/s]
epoch 47 | loss 0.8966272473335266, f_iou 0.6171448826789856: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.34it/s]
epoch 47 | loss 0.716812014579773, f_iou 0.6230311393737793: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.34it/s]
epoch 47 | loss 0.716812014579773, f_iou 0.6230311393737793: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.35it/s]
epoch 47 | loss 0.8993234634399414, f_iou 0.6268213987350464: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.35it/s]
epoch 47 | loss 0.8993234634399414, f_iou 0.6268213987350464: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.36it/s]
epoch 47 | loss 1.4206925630569458, f_iou 0.6297139525413513: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.36it/s]
epoch 47 | loss 1.4206925630569458, f_iou 0.6297139525413513: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 47 | loss 1.3564099073410034, f_iou 0.6334782242774963: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.38it/s]
epoch 47 | loss 1.3564099073410034, f_iou 0.6334782242774963: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 47 | loss 1.2284154891967773, f_iou 0.6355921626091003: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.39it/s]
epoch 47 | loss 1.2284154891967773, f_iou 0.6355921626091003: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 47 | loss 0.6110835671424866, f_iou 0.6371955871582031: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 47 | loss 0.6110835671424866, f_iou 0.6371955871582031: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 47 | loss 2.552027940750122, f_iou 0.6347651481628418: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.38it/s]
epoch 47 | loss 2.552027940750122, f_iou 0.6347651481628418: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.39it/s]
epoch 47 | loss 1.040105938911438, f_iou 0.6382356882095337: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.39it/s]
epoch 47 | loss 1.040105938911438, f_iou 0.6382356882095337: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 47 | loss 1.3920361995697021, f_iou 0.6426496505737305: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 47 | loss 1.3920361995697021, f_iou 0.6426496505737305: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 47 | loss 1.7404389381408691, f_iou 0.6430004835128784: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 47 | loss 1.7404389381408691, f_iou 0.6430004835128784: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 47 | loss 2.4513967037200928, f_iou 0.6451534628868103: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.37it/s]
epoch 47 | loss 2.4513967037200928, f_iou 0.6451534628868103: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.35it/s]
epoch 47 | loss 3.452244997024536, f_iou 0.6461670994758606: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.35it/s]
epoch 47 | loss 3.452244997024536, f_iou 0.6461670994758606: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.34it/s]
epoch 47 | loss 0.9294687509536743, f_iou 0.6482037305831909: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.34it/s]
epoch 47 | loss 0.9294687509536743, f_iou 0.6482037305831909: 95%|██████████████████████████████████ | 70/74 [00:58<00:03, 1.33it/s]
epoch 47 | loss 1.5854532718658447, f_iou 0.640833854675293: 95%|███████████████████████████████████ | 70/74 [00:58<00:03, 1.33it/s]
epoch 47 | loss 1.5854532718658447, f_iou 0.640833854675293: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.33it/s]
epoch 47 | loss 0.7923964858055115, f_iou 0.6446108818054199: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.33it/s]
epoch 47 | loss 0.7923964858055115, f_iou 0.6446108818054199: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.33it/s]
epoch 47 | loss 1.062783122062683, f_iou 0.6357809901237488: 97%|████████████████████████████████████ | 72/74 [01:00<00:01, 1.33it/s]
epoch 47 | loss 1.062783122062683, f_iou 0.6357809901237488: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.35it/s]
epoch 47 | loss 2.0939252376556396, f_iou 0.6319381594657898: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.35it/s]
epoch 47 | loss 2.0939252376556396, f_iou 0.6319381594657898: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.36it/s]
epoch 47 | loss 2.0939252376556396, f_iou 0.6319381594657898: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 47 | valid.f_iou 0.7471699714660645, valid.f_f-score 0.82756: 0%| | 0/16 [00:05, ?it/s]
epoch 47 | valid.f_iou 0.7471699714660645, valid.f_f-score 0.82756: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 47 | valid.f_iou 0.6352900266647339, valid.f_f-score 0.76822: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 47 | valid.f_iou 0.6352900266647339, valid.f_f-score 0.76822: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 47 | valid.f_iou 0.5125300288200378, valid.f_f-score 0.71016: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 47 | valid.f_iou 0.5125300288200378, valid.f_f-score 0.71016: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 47 | valid.f_iou 0.5683799982070923, valid.f_f-score 0.72846: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 47 | valid.f_iou 0.5683799982070923, valid.f_f-score 0.72846: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 47 | valid.f_iou 0.5424799919128418, valid.f_f-score 0.72503: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 47 | valid.f_iou 0.5424799919128418, valid.f_f-score 0.72503: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 47 | valid.f_iou 0.5090100169181824, valid.f_f-score 0.69098: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 47 | valid.f_iou 0.5090100169181824, valid.f_f-score 0.69098: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 47 | valid.f_iou 0.5422999858856201, valid.f_f-score 0.71712: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 47 | valid.f_iou 0.5422999858856201, valid.f_f-score 0.71712: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 47 | valid.f_iou 0.5349500179290771, valid.f_f-score 0.71149: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 47 | valid.f_iou 0.5349500179290771, valid.f_f-score 0.71149: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 47 | valid.f_iou 0.5371000170707703, valid.f_f-score 0.70086: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.74it/s]
epoch 47 | valid.f_iou 0.5371000170707703, valid.f_f-score 0.70086: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 47 | valid.f_iou 0.5328400135040283, valid.f_f-score 0.7065: 56%|██████████████████ | 9/16 [00:09<00:03, 1.98it/s]
epoch 47 | valid.f_iou 0.5328400135040283, valid.f_f-score 0.7065: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.17it/s]
epoch 47 | valid.f_iou 0.527679979801178, valid.f_f-score 0.70322: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.17it/s]
epoch 47 | valid.f_iou 0.527679979801178, valid.f_f-score 0.70322: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.30it/s]
epoch 47 | valid.f_iou 0.5484300255775452, valid.f_f-score 0.72132: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.30it/s]
epoch 47 | valid.f_iou 0.5484300255775452, valid.f_f-score 0.72132: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 47 | valid.f_iou 0.5565500259399414, valid.f_f-score 0.73078: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 47 | valid.f_iou 0.5565500259399414, valid.f_f-score 0.73078: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 47 | valid.f_iou 0.539330005645752, valid.f_f-score 0.717: 81%|██████████████████████████▊ | 13/16 [00:10<00:01, 2.52it/s]
epoch 47 | valid.f_iou 0.539330005645752, valid.f_f-score 0.717: 88%|████████████████████████████▉ | 14/16 [00:10<00:00, 2.58it/s]
epoch 47 | valid.f_iou 0.5398200154304504, valid.f_f-score 0.71175: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 47 | valid.f_iou 0.5398200154304504, valid.f_f-score 0.71175: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 47 | valid.f_iou 0.5469099879264832, valid.f_f-score 0.71238: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 47 | valid.f_iou 0.5469099879264832, valid.f_f-score 0.71238: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 47 | valid.f_iou 0.5469099879264832, valid.f_f-score 0.71238: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 47 | valid.f_iou 0.7728000283241272, valid.f_f-score 0.76946: 0%| | 0/16 [00:04, ?it/s]
epoch 47 | valid.f_iou 0.7728000283241272, valid.f_f-score 0.76946: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 47 | valid.f_iou 0.8100500106811523, valid.f_f-score 0.85148: 6%|█▉ | 1/16 [00:05<01:08, 4.54s/it]
epoch 47 | valid.f_iou 0.8100500106811523, valid.f_f-score 0.85148: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 47 | valid.f_iou 0.6782199740409851, valid.f_f-score 0.78971: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 47 | valid.f_iou 0.6782199740409851, valid.f_f-score 0.78971: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 47 | valid.f_iou 0.6887199878692627, valid.f_f-score 0.78946: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 47 | valid.f_iou 0.6887199878692627, valid.f_f-score 0.78946: 25%|███████▊ | 4/16 [00:05<00:11, 1.03it/s]
epoch 47 | valid.f_iou 0.685949981212616, valid.f_f-score 0.79478: 25%|████████ | 4/16 [00:06<00:11, 1.03it/s]
epoch 47 | valid.f_iou 0.685949981212616, valid.f_f-score 0.79478: 31%|██████████ | 5/16 [00:06<00:08, 1.29it/s]
epoch 47 | valid.f_iou 0.6438699960708618, valid.f_f-score 0.75429: 31%|█████████▋ | 5/16 [00:06<00:08, 1.29it/s]
epoch 47 | valid.f_iou 0.6438699960708618, valid.f_f-score 0.75429: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 47 | valid.f_iou 0.6615999937057495, valid.f_f-score 0.77759: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 47 | valid.f_iou 0.6615999937057495, valid.f_f-score 0.77759: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 47 | valid.f_iou 0.6589199900627136, valid.f_f-score 0.77902: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 47 | valid.f_iou 0.6589199900627136, valid.f_f-score 0.77902: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 47 | valid.f_iou 0.6770200133323669, valid.f_f-score 0.78945: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 47 | valid.f_iou 0.6770200133323669, valid.f_f-score 0.78945: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 47 | valid.f_iou 0.6859700083732605, valid.f_f-score 0.79982: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 47 | valid.f_iou 0.6859700083732605, valid.f_f-score 0.79982: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 47 | valid.f_iou 0.6727799773216248, valid.f_f-score 0.77703: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 47 | valid.f_iou 0.6727799773216248, valid.f_f-score 0.77703: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.26it/s]
epoch 47 | valid.f_iou 0.6860700249671936, valid.f_f-score 0.7891: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.26it/s]
epoch 47 | valid.f_iou 0.6860700249671936, valid.f_f-score 0.7891: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.38it/s]
epoch 47 | valid.f_iou 0.6979699730873108, valid.f_f-score 0.79768: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 47 | valid.f_iou 0.6979699730873108, valid.f_f-score 0.79768: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 47 | valid.f_iou 0.6879900097846985, valid.f_f-score 0.78894: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 47 | valid.f_iou 0.6879900097846985, valid.f_f-score 0.78894: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.56it/s]
epoch 47 | valid.f_iou 0.6787899732589722, valid.f_f-score 0.7793: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.56it/s]
epoch 47 | valid.f_iou 0.6787899732589722, valid.f_f-score 0.7793: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 47 | valid.f_iou 0.6790300011634827, valid.f_f-score 0.77884: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 47 | valid.f_iou 0.6790300011634827, valid.f_f-score 0.77884: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 47 | valid.f_iou 0.6790300011634827, valid.f_f-score 0.77884: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 47 | valid.f_iou 0.7728000283241272, valid.f_f-score 0.76946: 0%| | 0/16 [00:04, ?it/s]
epoch 47 | valid.f_iou 0.7728000283241272, valid.f_f-score 0.76946: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 47 | valid.f_iou 0.8100500106811523, valid.f_f-score 0.85148: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 47 | valid.f_iou 0.8100500106811523, valid.f_f-score 0.85148: 12%|███▉ | 2/16 [00:05<00:29, 2.14s/it]
epoch 47 | valid.f_iou 0.6782199740409851, valid.f_f-score 0.78971: 12%|███▉ | 2/16 [00:05<00:29, 2.14s/it]
epoch 47 | valid.f_iou 0.6782199740409851, valid.f_f-score 0.78971: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 47 | valid.f_iou 0.6932700276374817, valid.f_f-score 0.78453: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 47 | valid.f_iou 0.6932700276374817, valid.f_f-score 0.78453: 25%|███████▊ | 4/16 [00:05<00:12, 1.00s/it]
epoch 47 | valid.f_iou 0.6965199708938599, valid.f_f-score 0.79083: 25%|███████▊ | 4/16 [00:06<00:12, 1.00s/it]
epoch 47 | valid.f_iou 0.6965199708938599, valid.f_f-score 0.79083: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 47 | valid.f_iou 0.652679979801178, valid.f_f-score 0.75101: 31%|██████████ | 5/16 [00:06<00:08, 1.24it/s]
epoch 47 | valid.f_iou 0.652679979801178, valid.f_f-score 0.75101: 38%|████████████ | 6/16 [00:06<00:06, 1.46it/s]
epoch 47 | valid.f_iou 0.6729699969291687, valid.f_f-score 0.77477: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 47 | valid.f_iou 0.6729699969291687, valid.f_f-score 0.77477: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 47 | valid.f_iou 0.6688699722290039, valid.f_f-score 0.77656: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 47 | valid.f_iou 0.6688699722290039, valid.f_f-score 0.77656: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 47 | valid.f_iou 0.6896600127220154, valid.f_f-score 0.78726: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 47 | valid.f_iou 0.6896600127220154, valid.f_f-score 0.78726: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.08it/s]
epoch 47 | valid.f_iou 0.6938999891281128, valid.f_f-score 0.79445: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.08it/s]
epoch 47 | valid.f_iou 0.6938999891281128, valid.f_f-score 0.79445: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.25it/s]
epoch 47 | valid.f_iou 0.6799899935722351, valid.f_f-score 0.77215: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.25it/s]
epoch 47 | valid.f_iou 0.6799899935722351, valid.f_f-score 0.77215: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.38it/s]
epoch 47 | valid.f_iou 0.6926800012588501, valid.f_f-score 0.78463: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 47 | valid.f_iou 0.6926800012588501, valid.f_f-score 0.78463: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 47 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.79416: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 47 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.79416: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 47 | valid.f_iou 0.6907200217247009, valid.f_f-score 0.78269: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 47 | valid.f_iou 0.6907200217247009, valid.f_f-score 0.78269: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.60it/s]
epoch 47 | valid.f_iou 0.6813300251960754, valid.f_f-score 0.77347: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 47 | valid.f_iou 0.6813300251960754, valid.f_f-score 0.77347: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 47 | valid.f_iou 0.6822400093078613, valid.f_f-score 0.77338: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 47 | valid.f_iou 0.6822400093078613, valid.f_f-score 0.77338: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 47 | valid.f_iou 0.6822400093078613, valid.f_f-score 0.77338: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 48 | loss 0.9201521277427673, f_iou 0.7719993591308594: 0%| | 0/74 [00:05, ?it/s]
epoch 48 | loss 0.9201521277427673, f_iou 0.7719993591308594: 1%|▌ | 1/74 [00:05<07:04, 5.81s/it]
epoch 48 | loss 2.038952350616455, f_iou 0.6157369017601013: 1%|▌ | 1/74 [00:06<07:04, 5.81s/it]
epoch 48 | loss 2.038952350616455, f_iou 0.6157369017601013: 3%|█ | 2/74 [00:06<03:26, 2.86s/it]
epoch 48 | loss 1.9254965782165527, f_iou 0.574061393737793: 3%|█ | 2/74 [00:07<03:26, 2.86s/it]
epoch 48 | loss 1.9254965782165527, f_iou 0.574061393737793: 4%|█▌ | 3/74 [00:07<02:20, 1.97s/it]
epoch 48 | loss 0.7154679894447327, f_iou 0.6727569699287415: 4%|█▌ | 3/74 [00:08<02:20, 1.97s/it]
epoch 48 | loss 0.7154679894447327, f_iou 0.6727569699287415: 5%|██ | 4/74 [00:08<01:46, 1.51s/it]
epoch 48 | loss 1.2246962785720825, f_iou 0.5647618174552917: 5%|██ | 4/74 [00:09<01:46, 1.51s/it]
epoch 48 | loss 1.2246962785720825, f_iou 0.5647618174552917: 7%|██▌ | 5/74 [00:09<01:27, 1.26s/it]
epoch 48 | loss 0.7467378377914429, f_iou 0.532194197177887: 7%|██▌ | 5/74 [00:09<01:27, 1.26s/it]
epoch 48 | loss 0.7467378377914429, f_iou 0.532194197177887: 8%|███ | 6/74 [00:09<01:15, 1.11s/it]
epoch 48 | loss 0.0, f_iou 0.5893897414207458: 8%|████▏ | 6/74 [00:10<01:15, 1.11s/it]
epoch 48 | loss 0.0, f_iou 0.5893897414207458: 9%|████▉ | 7/74 [00:10<01:07, 1.01s/it]
epoch 48 | loss 1.2767006158828735, f_iou 0.542500376701355: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 48 | loss 1.2767006158828735, f_iou 0.542500376701355: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 48 | loss 1.200223684310913, f_iou 0.5120649337768555: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 48 | loss 1.200223684310913, f_iou 0.5120649337768555: 12%|████▌ | 9/74 [00:12<00:58, 1.12it/s]
epoch 48 | loss 0.7173095941543579, f_iou 0.5471580624580383: 12%|████▌ | 9/74 [00:13<00:58, 1.12it/s]
epoch 48 | loss 0.7173095941543579, f_iou 0.5471580624580383: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 48 | loss 1.676790475845337, f_iou 0.5047963857650757: 14%|█████ | 10/74 [00:13<00:54, 1.18it/s]
epoch 48 | loss 1.676790475845337, f_iou 0.5047963857650757: 15%|█████▌ | 11/74 [00:13<00:50, 1.24it/s]
epoch 48 | loss 1.1576648950576782, f_iou 0.523747444152832: 15%|█████▌ | 11/74 [00:14<00:50, 1.24it/s]
epoch 48 | loss 1.1576648950576782, f_iou 0.523747444152832: 16%|██████ | 12/74 [00:14<00:48, 1.28it/s]
epoch 48 | loss 0.9807953834533691, f_iou 0.5309391617774963: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 48 | loss 0.9807953834533691, f_iou 0.5309391617774963: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 48 | loss 0.9607213139533997, f_iou 0.4933127164840698: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 48 | loss 0.9607213139533997, f_iou 0.4933127164840698: 19%|██████▊ | 14/74 [00:15<00:44, 1.34it/s]
epoch 48 | loss 1.2024500370025635, f_iou 0.5130929350852966: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 48 | loss 1.2024500370025635, f_iou 0.5130929350852966: 20%|███████▎ | 15/74 [00:16<00:43, 1.35it/s]
epoch 48 | loss 4.2079362869262695, f_iou 0.5011131763458252: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 48 | loss 4.2079362869262695, f_iou 0.5011131763458252: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 48 | loss 1.849142074584961, f_iou 0.5052600502967834: 22%|████████ | 16/74 [00:18<00:42, 1.37it/s]
epoch 48 | loss 1.849142074584961, f_iou 0.5052600502967834: 23%|████████▌ | 17/74 [00:18<00:41, 1.38it/s]
epoch 48 | loss 1.1445695161819458, f_iou 0.47720083594322205: 23%|████████ | 17/74 [00:18<00:41, 1.38it/s]
epoch 48 | loss 1.1445695161819458, f_iou 0.47720083594322205: 24%|████████▌ | 18/74 [00:18<00:40, 1.38it/s]
epoch 48 | loss 1.3099634647369385, f_iou 0.4884873330593109: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 48 | loss 1.3099634647369385, f_iou 0.4884873330593109: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 48 | loss 1.5147926807403564, f_iou 0.486202210187912: 26%|█████████▌ | 19/74 [00:20<00:39, 1.38it/s]
epoch 48 | loss 1.5147926807403564, f_iou 0.486202210187912: 27%|██████████ | 20/74 [00:20<00:38, 1.39it/s]
epoch 48 | loss 6.488954544067383, f_iou 0.4694732129573822: 27%|██████████ | 20/74 [00:20<00:38, 1.39it/s]
epoch 48 | loss 6.488954544067383, f_iou 0.4694732129573822: 28%|██████████▌ | 21/74 [00:20<00:38, 1.39it/s]
epoch 48 | loss 2.2199130058288574, f_iou 0.48368069529533386: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 48 | loss 2.2199130058288574, f_iou 0.48368069529533386: 30%|██████████▍ | 22/74 [00:21<00:37, 1.39it/s]
epoch 48 | loss 1.9622735977172852, f_iou 0.46855342388153076: 30%|██████████▍ | 22/74 [00:22<00:37, 1.39it/s]
epoch 48 | loss 1.9622735977172852, f_iou 0.46855342388153076: 31%|██████████▉ | 23/74 [00:22<00:36, 1.39it/s]
epoch 48 | loss 1.0664043426513672, f_iou 0.4606021046638489: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 48 | loss 1.0664043426513672, f_iou 0.4606021046638489: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 48 | loss 1.2558367252349854, f_iou 0.4612562954425812: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 48 | loss 1.2558367252349854, f_iou 0.4612562954425812: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 48 | loss 0.19949516654014587, f_iou 0.47256556153297424: 34%|███████████▍ | 25/74 [00:24<00:35, 1.39it/s]
epoch 48 | loss 0.19949516654014587, f_iou 0.47256556153297424: 35%|███████████▉ | 26/74 [00:24<00:34, 1.40it/s]
epoch 48 | loss 3.023556709289551, f_iou 0.47444266080856323: 35%|████████████▋ | 26/74 [00:25<00:34, 1.40it/s]
epoch 48 | loss 3.023556709289551, f_iou 0.47444266080856323: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.40it/s]
epoch 48 | loss 1.2792764902114868, f_iou 0.48444294929504395: 36%|████████████▊ | 27/74 [00:26<00:33, 1.40it/s]
epoch 48 | loss 1.2792764902114868, f_iou 0.48444294929504395: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.39it/s]
epoch 48 | loss 1.272608995437622, f_iou 0.49843549728393555: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 48 | loss 1.272608995437622, f_iou 0.49843549728393555: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 48 | loss 5.660499572753906, f_iou 0.49230197072029114: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 48 | loss 5.660499572753906, f_iou 0.49230197072029114: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.38it/s]
epoch 48 | loss 2.2473671436309814, f_iou 0.49745163321495056: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.38it/s]
epoch 48 | loss 2.2473671436309814, f_iou 0.49745163321495056: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.38it/s]
epoch 48 | loss 2.283320188522339, f_iou 0.4936484396457672: 42%|███████████████▌ | 31/74 [00:28<00:31, 1.38it/s]
epoch 48 | loss 2.283320188522339, f_iou 0.4936484396457672: 43%|████████████████ | 32/74 [00:28<00:30, 1.38it/s]
epoch 48 | loss 1.0274723768234253, f_iou 0.5041534900665283: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.38it/s]
epoch 48 | loss 1.0274723768234253, f_iou 0.5041534900665283: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 48 | loss 4.31380558013916, f_iou 0.5083416104316711: 45%|████████████████▉ | 33/74 [00:30<00:29, 1.39it/s]
epoch 48 | loss 4.31380558013916, f_iou 0.5083416104316711: 46%|█████████████████▍ | 34/74 [00:30<00:28, 1.39it/s]
epoch 48 | loss 3.41162109375, f_iou 0.5076777338981628: 46%|██████████████████▊ | 34/74 [00:31<00:28, 1.39it/s]
epoch 48 | loss 3.41162109375, f_iou 0.5076777338981628: 47%|███████████████████▍ | 35/74 [00:31<00:28, 1.39it/s]
epoch 48 | loss 1.1731582880020142, f_iou 0.49809351563453674: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 48 | loss 1.1731582880020142, f_iou 0.49809351563453674: 49%|█████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 48 | loss 1.346576452255249, f_iou 0.502665638923645: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.39it/s]
epoch 48 | loss 1.346576452255249, f_iou 0.502665638923645: 50%|███████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 48 | loss 1.4599130153656006, f_iou 0.5079172849655151: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 48 | loss 1.4599130153656006, f_iou 0.5079172849655151: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.37it/s]
epoch 48 | loss 1.709716796875, f_iou 0.5129690766334534: 51%|████████████████████▌ | 38/74 [00:34<00:26, 1.37it/s]
epoch 48 | loss 1.709716796875, f_iou 0.5129690766334534: 53%|█████████████████████ | 39/74 [00:34<00:25, 1.36it/s]
epoch 48 | loss 4.152799606323242, f_iou 0.5103946924209595: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.36it/s]
epoch 48 | loss 4.152799606323242, f_iou 0.5103946924209595: 54%|████████████████████ | 40/74 [00:34<00:25, 1.36it/s]
epoch 48 | loss 2.0037689208984375, f_iou 0.5111111998558044: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.36it/s]
epoch 48 | loss 2.0037689208984375, f_iou 0.5111111998558044: 55%|███████████████████▉ | 41/74 [00:35<00:25, 1.32it/s]
epoch 48 | loss 0.8874208927154541, f_iou 0.5128461122512817: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.32it/s]
epoch 48 | loss 0.8874208927154541, f_iou 0.5128461122512817: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.31it/s]
epoch 48 | loss 0.0, f_iou 0.5241751670837402: 57%|████████████████████████████▉ | 42/74 [00:37<00:24, 1.31it/s]
epoch 48 | loss 0.0, f_iou 0.5241751670837402: 58%|█████████████████████████████▋ | 43/74 [00:37<00:23, 1.32it/s]
epoch 48 | loss 3.6701951026916504, f_iou 0.5148202180862427: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.32it/s]
epoch 48 | loss 3.6701951026916504, f_iou 0.5148202180862427: 59%|█████████████████████▍ | 44/74 [00:37<00:22, 1.34it/s]
epoch 48 | loss 1.9124841690063477, f_iou 0.5060025453567505: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 48 | loss 1.9124841690063477, f_iou 0.5060025453567505: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.36it/s]
epoch 48 | loss 0.9787785410881042, f_iou 0.5139740705490112: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.36it/s]
epoch 48 | loss 0.9787785410881042, f_iou 0.5139740705490112: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.37it/s]
epoch 48 | loss 2.3705077171325684, f_iou 0.5191761255264282: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.37it/s]
epoch 48 | loss 2.3705077171325684, f_iou 0.5191761255264282: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.36it/s]
epoch 48 | loss 1.3751142024993896, f_iou 0.5216425061225891: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.36it/s]
epoch 48 | loss 1.3751142024993896, f_iou 0.5216425061225891: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.37it/s]
epoch 48 | loss 0.8607877492904663, f_iou 0.5262331962585449: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.37it/s]
epoch 48 | loss 0.8607877492904663, f_iou 0.5262331962585449: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 48 | loss 0.7898544073104858, f_iou 0.5260663628578186: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 48 | loss 0.7898544073104858, f_iou 0.5260663628578186: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 48 | loss 1.134778380393982, f_iou 0.5333451628684998: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.38it/s]
epoch 48 | loss 1.134778380393982, f_iou 0.5333451628684998: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.37it/s]
epoch 48 | loss 1.1016258001327515, f_iou 0.5411726236343384: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.37it/s]
epoch 48 | loss 1.1016258001327515, f_iou 0.5411726236343384: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.38it/s]
epoch 48 | loss 4.199718952178955, f_iou 0.5357067584991455: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.38it/s]
epoch 48 | loss 4.199718952178955, f_iou 0.5357067584991455: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.38it/s]
epoch 48 | loss 1.7227675914764404, f_iou 0.5311327576637268: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 48 | loss 1.7227675914764404, f_iou 0.5311327576637268: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 48 | loss 0.5704399347305298, f_iou 0.5390050411224365: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 48 | loss 0.5704399347305298, f_iou 0.5390050411224365: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 48 | loss 0.9777074456214905, f_iou 0.5446441173553467: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 48 | loss 0.9777074456214905, f_iou 0.5446441173553467: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 48 | loss 1.9895105361938477, f_iou 0.536443293094635: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 48 | loss 1.9895105361938477, f_iou 0.536443293094635: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 48 | loss 1.274625539779663, f_iou 0.5404676795005798: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 48 | loss 1.274625539779663, f_iou 0.5404676795005798: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.39it/s]
epoch 48 | loss 1.1883126497268677, f_iou 0.5418604612350464: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 48 | loss 1.1883126497268677, f_iou 0.5418604612350464: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 48 | loss 4.086774826049805, f_iou 0.5409164428710938: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 48 | loss 4.086774826049805, f_iou 0.5409164428710938: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.39it/s]
epoch 48 | loss 0.8177022933959961, f_iou 0.547746479511261: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 48 | loss 0.8177022933959961, f_iou 0.547746479511261: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 48 | loss 1.76529860496521, f_iou 0.5451861023902893: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.39it/s]
epoch 48 | loss 1.76529860496521, f_iou 0.5451861023902893: 84%|███████████████████████████████▊ | 62/74 [00:50<00:08, 1.40it/s]
epoch 48 | loss 0.7146673202514648, f_iou 0.5517014861106873: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.40it/s]
epoch 48 | loss 0.7146673202514648, f_iou 0.5517014861106873: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 48 | loss 0.6177672743797302, f_iou 0.5532851815223694: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 48 | loss 0.6177672743797302, f_iou 0.5532851815223694: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 48 | loss 3.7718613147735596, f_iou 0.5531841516494751: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 48 | loss 3.7718613147735596, f_iou 0.5531841516494751: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 48 | loss 2.3404617309570312, f_iou 0.5502200126647949: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 48 | loss 2.3404617309570312, f_iou 0.5502200126647949: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 48 | loss 2.5575475692749023, f_iou 0.5460059642791748: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 48 | loss 2.5575475692749023, f_iou 0.5460059642791748: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.36it/s]
epoch 48 | loss 1.256873607635498, f_iou 0.5486595630645752: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.36it/s]
epoch 48 | loss 1.256873607635498, f_iou 0.5486595630645752: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.34it/s]
epoch 48 | loss 10.740565299987793, f_iou 0.5452014803886414: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.34it/s]
epoch 48 | loss 10.740565299987793, f_iou 0.5452014803886414: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.33it/s]
epoch 48 | loss 2.2349936962127686, f_iou 0.5475429892539978: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.33it/s]
epoch 48 | loss 2.2349936962127686, f_iou 0.5475429892539978: 95%|██████████████████████████████████ | 70/74 [00:56<00:03, 1.32it/s]
epoch 48 | loss 2.102609157562256, f_iou 0.5465799570083618: 95%|███████████████████████████████████ | 70/74 [00:57<00:03, 1.32it/s]
epoch 48 | loss 2.102609157562256, f_iou 0.5465799570083618: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.31it/s]
epoch 48 | loss 0.4598443806171417, f_iou 0.5523738861083984: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.31it/s]
epoch 48 | loss 0.4598443806171417, f_iou 0.5523738861083984: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.33it/s]
epoch 48 | loss 3.6315929889678955, f_iou 0.5482651591300964: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.33it/s]
epoch 48 | loss 3.6315929889678955, f_iou 0.5482651591300964: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.35it/s]
epoch 48 | loss 0.828436553478241, f_iou 0.5408561825752258: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.35it/s]
epoch 48 | loss 0.828436553478241, f_iou 0.5408561825752258: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.36it/s]
epoch 48 | loss 0.828436553478241, f_iou 0.5408561825752258: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 48 | valid.f_iou 0.5851100087165833, valid.f_f-score 0.72507: 0%| | 0/16 [00:05, ?it/s]
epoch 48 | valid.f_iou 0.5851100087165833, valid.f_f-score 0.72507: 6%|█▉ | 1/16 [00:05<01:23, 5.53s/it]
epoch 48 | valid.f_iou 0.5291900038719177, valid.f_f-score 0.73193: 6%|█▉ | 1/16 [00:05<01:23, 5.53s/it]
epoch 48 | valid.f_iou 0.5291900038719177, valid.f_f-score 0.73193: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 48 | valid.f_iou 0.4156099855899811, valid.f_f-score 0.66544: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 48 | valid.f_iou 0.4156099855899811, valid.f_f-score 0.66544: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 48 | valid.f_iou 0.48148998618125916, valid.f_f-score 0.6929: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 48 | valid.f_iou 0.48148998618125916, valid.f_f-score 0.6929: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 48 | valid.f_iou 0.4548400044441223, valid.f_f-score 0.67626: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 48 | valid.f_iou 0.4548400044441223, valid.f_f-score 0.67626: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 48 | valid.f_iou 0.4303300082683563, valid.f_f-score 0.64831: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 48 | valid.f_iou 0.4303300082683563, valid.f_f-score 0.64831: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 48 | valid.f_iou 0.455159991979599, valid.f_f-score 0.66558: 38%|████████████ | 6/16 [00:08<00:07, 1.32it/s]
epoch 48 | valid.f_iou 0.455159991979599, valid.f_f-score 0.66558: 44%|██████████████ | 7/16 [00:08<00:05, 1.53it/s]
epoch 48 | valid.f_iou 0.433789998292923, valid.f_f-score 0.65391: 44%|██████████████ | 7/16 [00:08<00:05, 1.53it/s]
epoch 48 | valid.f_iou 0.433789998292923, valid.f_f-score 0.65391: 50%|████████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 48 | valid.f_iou 0.44359999895095825, valid.f_f-score 0.64611: 50%|███████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 48 | valid.f_iou 0.44359999895095825, valid.f_f-score 0.64611: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.95it/s]
epoch 48 | valid.f_iou 0.4336099922657013, valid.f_f-score 0.65087: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 48 | valid.f_iou 0.4336099922657013, valid.f_f-score 0.65087: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 48 | valid.f_iou 0.4426099956035614, valid.f_f-score 0.65381: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 48 | valid.f_iou 0.4426099956035614, valid.f_f-score 0.65381: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 48 | valid.f_iou 0.4489299952983856, valid.f_f-score 0.67369: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 48 | valid.f_iou 0.4489299952983856, valid.f_f-score 0.67369: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 48 | valid.f_iou 0.4495300054550171, valid.f_f-score 0.68117: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 48 | valid.f_iou 0.4495300054550171, valid.f_f-score 0.68117: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 48 | valid.f_iou 0.4460499882698059, valid.f_f-score 0.67531: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 48 | valid.f_iou 0.4460499882698059, valid.f_f-score 0.67531: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.51it/s]
epoch 48 | valid.f_iou 0.4560900032520294, valid.f_f-score 0.6777: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.51it/s]
epoch 48 | valid.f_iou 0.4560900032520294, valid.f_f-score 0.6777: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.57it/s]
epoch 48 | valid.f_iou 0.46518999338150024, valid.f_f-score 0.67927: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 48 | valid.f_iou 0.46518999338150024, valid.f_f-score 0.67927: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 48 | valid.f_iou 0.46518999338150024, valid.f_f-score 0.67927: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 48 | valid.f_iou 0.7835500240325928, valid.f_f-score 0.77163: 0%| | 0/16 [00:04, ?it/s]
epoch 48 | valid.f_iou 0.7835500240325928, valid.f_f-score 0.77163: 6%|█▉ | 1/16 [00:04<01:12, 4.86s/it]
epoch 48 | valid.f_iou 0.816070020198822, valid.f_f-score 0.85811: 6%|██ | 1/16 [00:05<01:12, 4.86s/it]
epoch 48 | valid.f_iou 0.816070020198822, valid.f_f-score 0.85811: 12%|████ | 2/16 [00:05<00:34, 2.48s/it]
epoch 48 | valid.f_iou 0.7548099756240845, valid.f_f-score 0.84546: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 48 | valid.f_iou 0.7548099756240845, valid.f_f-score 0.84546: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 48 | valid.f_iou 0.7148799896240234, valid.f_f-score 0.79055: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 48 | valid.f_iou 0.7148799896240234, valid.f_f-score 0.79055: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 48 | valid.f_iou 0.7072100043296814, valid.f_f-score 0.78922: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 48 | valid.f_iou 0.7072100043296814, valid.f_f-score 0.78922: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 48 | valid.f_iou 0.6838300228118896, valid.f_f-score 0.78444: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 48 | valid.f_iou 0.6838300228118896, valid.f_f-score 0.78444: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 48 | valid.f_iou 0.6897500157356262, valid.f_f-score 0.8: 38%|█████████████▏ | 6/16 [00:07<00:07, 1.34it/s]
epoch 48 | valid.f_iou 0.6897500157356262, valid.f_f-score 0.8: 44%|███████████████▎ | 7/16 [00:07<00:05, 1.56it/s]
epoch 48 | valid.f_iou 0.6784700155258179, valid.f_f-score 0.79422: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 48 | valid.f_iou 0.6784700155258179, valid.f_f-score 0.79422: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 48 | valid.f_iou 0.6955100297927856, valid.f_f-score 0.80145: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 48 | valid.f_iou 0.6955100297927856, valid.f_f-score 0.80145: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 48 | valid.f_iou 0.7018899917602539, valid.f_f-score 0.8136: 56%|██████████████████ | 9/16 [00:09<00:03, 1.93it/s]
epoch 48 | valid.f_iou 0.7018899917602539, valid.f_f-score 0.8136: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.01it/s]
epoch 48 | valid.f_iou 0.6956400275230408, valid.f_f-score 0.79973: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 48 | valid.f_iou 0.6956400275230408, valid.f_f-score 0.79973: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.06it/s]
epoch 48 | valid.f_iou 0.7039099931716919, valid.f_f-score 0.80909: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.06it/s]
epoch 48 | valid.f_iou 0.7039099931716919, valid.f_f-score 0.80909: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 48 | valid.f_iou 0.7127299904823303, valid.f_f-score 0.8173: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.22it/s]
epoch 48 | valid.f_iou 0.7127299904823303, valid.f_f-score 0.8173: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.35it/s]
epoch 48 | valid.f_iou 0.7043899893760681, valid.f_f-score 0.81036: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.35it/s]
epoch 48 | valid.f_iou 0.7043899893760681, valid.f_f-score 0.81036: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.45it/s]
epoch 48 | valid.f_iou 0.7016400098800659, valid.f_f-score 0.80556: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.45it/s]
epoch 48 | valid.f_iou 0.7016400098800659, valid.f_f-score 0.80556: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 48 | valid.f_iou 0.6998400092124939, valid.f_f-score 0.80195: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 48 | valid.f_iou 0.6998400092124939, valid.f_f-score 0.80195: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 48 | valid.f_iou 0.6998400092124939, valid.f_f-score 0.80195: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 48 | valid.f_iou 0.7835500240325928, valid.f_f-score 0.77163: 0%| | 0/16 [00:04, ?it/s]
epoch 48 | valid.f_iou 0.7835500240325928, valid.f_f-score 0.77163: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 48 | valid.f_iou 0.816070020198822, valid.f_f-score 0.85811: 6%|██ | 1/16 [00:04<01:08, 4.54s/it]
epoch 48 | valid.f_iou 0.816070020198822, valid.f_f-score 0.85811: 12%|████ | 2/16 [00:05<00:30, 2.15s/it]
epoch 48 | valid.f_iou 0.7548099756240845, valid.f_f-score 0.84546: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 48 | valid.f_iou 0.7548099756240845, valid.f_f-score 0.84546: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 48 | valid.f_iou 0.7149800062179565, valid.f_f-score 0.79055: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 48 | valid.f_iou 0.7149800062179565, valid.f_f-score 0.79055: 25%|███████▊ | 4/16 [00:05<00:12, 1.01s/it]
epoch 48 | valid.f_iou 0.7079200148582458, valid.f_f-score 0.78922: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 48 | valid.f_iou 0.7079200148582458, valid.f_f-score 0.78922: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 48 | valid.f_iou 0.6844300031661987, valid.f_f-score 0.78444: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 48 | valid.f_iou 0.6844300031661987, valid.f_f-score 0.78444: 38%|███████████▋ | 6/16 [00:06<00:06, 1.46it/s]
epoch 48 | valid.f_iou 0.692080020904541, valid.f_f-score 0.8: 38%|█████████████▌ | 6/16 [00:07<00:06, 1.46it/s]
epoch 48 | valid.f_iou 0.692080020904541, valid.f_f-score 0.8: 44%|███████████████▊ | 7/16 [00:07<00:05, 1.66it/s]
epoch 48 | valid.f_iou 0.6805099844932556, valid.f_f-score 0.79422: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 48 | valid.f_iou 0.6805099844932556, valid.f_f-score 0.79422: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.79it/s]
epoch 48 | valid.f_iou 0.6997100114822388, valid.f_f-score 0.80145: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 48 | valid.f_iou 0.6997100114822388, valid.f_f-score 0.80145: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 48 | valid.f_iou 0.7028599977493286, valid.f_f-score 0.81002: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 48 | valid.f_iou 0.7028599977493286, valid.f_f-score 0.81002: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.12it/s]
epoch 48 | valid.f_iou 0.6965199708938599, valid.f_f-score 0.79647: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.12it/s]
epoch 48 | valid.f_iou 0.6965199708938599, valid.f_f-score 0.79647: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.27it/s]
epoch 48 | valid.f_iou 0.7047200202941895, valid.f_f-score 0.8061: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.27it/s]
epoch 48 | valid.f_iou 0.7047200202941895, valid.f_f-score 0.8061: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.39it/s]
epoch 48 | valid.f_iou 0.7098000049591064, valid.f_f-score 0.8121: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.39it/s]
epoch 48 | valid.f_iou 0.7098000049591064, valid.f_f-score 0.8121: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.48it/s]
epoch 48 | valid.f_iou 0.6985099911689758, valid.f_f-score 0.80249: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 48 | valid.f_iou 0.6985099911689758, valid.f_f-score 0.80249: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.55it/s]
epoch 48 | valid.f_iou 0.696150004863739, valid.f_f-score 0.79821: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 48 | valid.f_iou 0.696150004863739, valid.f_f-score 0.79821: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 48 | valid.f_iou 0.695169985294342, valid.f_f-score 0.79506: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 48 | valid.f_iou 0.695169985294342, valid.f_f-score 0.79506: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 48 | valid.f_iou 0.695169985294342, valid.f_f-score 0.79506: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 49 | loss 0.0, f_iou 0.9909395575523376: 0%| | 0/74 [00:06, ?it/s]
epoch 49 | loss 0.0, f_iou 0.9909395575523376: 1%|▋ | 1/74 [00:06<07:55, 6.51s/it]
epoch 49 | loss 0.41942617297172546, f_iou 0.9613291025161743: 1%|▍ | 1/74 [00:07<07:55, 6.51s/it]
epoch 49 | loss 0.41942617297172546, f_iou 0.9613291025161743: 3%|▉ | 2/74 [00:07<03:47, 3.16s/it]
epoch 49 | loss 1.0471580028533936, f_iou 0.7548410296440125: 3%|█ | 2/74 [00:08<03:47, 3.16s/it]
epoch 49 | loss 1.0471580028533936, f_iou 0.7548410296440125: 4%|█▌ | 3/74 [00:08<02:28, 2.09s/it]
epoch 49 | loss 2.692901372909546, f_iou 0.7544072866439819: 4%|█▌ | 3/74 [00:09<02:28, 2.09s/it]
epoch 49 | loss 2.692901372909546, f_iou 0.7544072866439819: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 49 | loss 1.9777569770812988, f_iou 0.6200574040412903: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 49 | loss 1.9777569770812988, f_iou 0.6200574040412903: 7%|██▌ | 5/74 [00:09<01:31, 1.33s/it]
epoch 49 | loss 0.73075270652771, f_iou 0.5328420996665955: 7%|██▋ | 5/74 [00:10<01:31, 1.33s/it]
epoch 49 | loss 0.73075270652771, f_iou 0.5328420996665955: 8%|███▏ | 6/74 [00:10<01:19, 1.17s/it]
epoch 49 | loss 3.5007290840148926, f_iou 0.49184730648994446: 8%|██▉ | 6/74 [00:11<01:19, 1.17s/it]
epoch 49 | loss 3.5007290840148926, f_iou 0.49184730648994446: 9%|███▍ | 7/74 [00:11<01:10, 1.05s/it]
epoch 49 | loss 1.9716877937316895, f_iou 0.4619012773036957: 9%|███▌ | 7/74 [00:12<01:10, 1.05s/it]
epoch 49 | loss 1.9716877937316895, f_iou 0.4619012773036957: 11%|████ | 8/74 [00:12<01:04, 1.03it/s]
epoch 49 | loss 1.601603388786316, f_iou 0.5059073567390442: 11%|████ | 8/74 [00:13<01:04, 1.03it/s]
epoch 49 | loss 1.601603388786316, f_iou 0.5059073567390442: 12%|████▌ | 9/74 [00:13<00:59, 1.09it/s]
epoch 49 | loss 2.1107542514801025, f_iou 0.4635394215583801: 12%|████▌ | 9/74 [00:13<00:59, 1.09it/s]
epoch 49 | loss 2.1107542514801025, f_iou 0.4635394215583801: 14%|████▊ | 10/74 [00:13<00:56, 1.14it/s]
epoch 49 | loss 1.623957633972168, f_iou 0.4321522116661072: 14%|█████ | 10/74 [00:14<00:56, 1.14it/s]
epoch 49 | loss 1.623957633972168, f_iou 0.4321522116661072: 15%|█████▌ | 11/74 [00:14<00:53, 1.17it/s]
epoch 49 | loss 1.377416968345642, f_iou 0.4160459637641907: 15%|█████▌ | 11/74 [00:15<00:53, 1.17it/s]
epoch 49 | loss 1.377416968345642, f_iou 0.4160459637641907: 16%|██████ | 12/74 [00:15<00:51, 1.20it/s]
epoch 49 | loss 1.6294792890548706, f_iou 0.41321122646331787: 16%|█████▋ | 12/74 [00:16<00:51, 1.20it/s]
epoch 49 | loss 1.6294792890548706, f_iou 0.41321122646331787: 18%|██████▏ | 13/74 [00:16<00:50, 1.21it/s]
epoch 49 | loss 1.4804173707962036, f_iou 0.43318504095077515: 18%|██████▏ | 13/74 [00:17<00:50, 1.21it/s]
epoch 49 | loss 1.4804173707962036, f_iou 0.43318504095077515: 19%|██████▌ | 14/74 [00:17<00:47, 1.25it/s]
epoch 49 | loss 4.629960536956787, f_iou 0.42132729291915894: 19%|██████▊ | 14/74 [00:17<00:47, 1.25it/s]
epoch 49 | loss 4.629960536956787, f_iou 0.42132729291915894: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 49 | loss 4.913262844085693, f_iou 0.44590091705322266: 20%|███████▎ | 15/74 [00:18<00:45, 1.29it/s]
epoch 49 | loss 4.913262844085693, f_iou 0.44590091705322266: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 49 | loss 1.495605230331421, f_iou 0.47156181931495667: 22%|███████▊ | 16/74 [00:19<00:43, 1.33it/s]
epoch 49 | loss 1.495605230331421, f_iou 0.47156181931495667: 23%|████████▎ | 17/74 [00:19<00:42, 1.33it/s]
epoch 49 | loss 1.5736415386199951, f_iou 0.46360841393470764: 23%|████████ | 17/74 [00:19<00:42, 1.33it/s]
epoch 49 | loss 1.5736415386199951, f_iou 0.46360841393470764: 24%|████████▌ | 18/74 [00:19<00:41, 1.35it/s]
epoch 49 | loss 2.0760021209716797, f_iou 0.44010016322135925: 24%|████████▌ | 18/74 [00:20<00:41, 1.35it/s]
epoch 49 | loss 2.0760021209716797, f_iou 0.44010016322135925: 26%|████████▉ | 19/74 [00:20<00:40, 1.36it/s]
epoch 49 | loss 0.9751605987548828, f_iou 0.44701242446899414: 26%|████████▉ | 19/74 [00:21<00:40, 1.36it/s]
epoch 49 | loss 0.9751605987548828, f_iou 0.44701242446899414: 27%|█████████▍ | 20/74 [00:21<00:39, 1.35it/s]
epoch 49 | loss 0.6457561254501343, f_iou 0.4257267713546753: 27%|█████████▋ | 20/74 [00:22<00:39, 1.35it/s]
epoch 49 | loss 0.6457561254501343, f_iou 0.4257267713546753: 28%|██████████▏ | 21/74 [00:22<00:40, 1.31it/s]
epoch 49 | loss 0.125, f_iou 0.4512215554714203: 28%|█████████████▉ | 21/74 [00:23<00:40, 1.31it/s]
epoch 49 | loss 0.125, f_iou 0.4512215554714203: 30%|██████████████▌ | 22/74 [00:23<00:39, 1.30it/s]
epoch 49 | loss 1.853151798248291, f_iou 0.44148895144462585: 30%|██████████▋ | 22/74 [00:23<00:39, 1.30it/s]
epoch 49 | loss 1.853151798248291, f_iou 0.44148895144462585: 31%|███████████▏ | 23/74 [00:23<00:39, 1.29it/s]
epoch 49 | loss 1.8284331560134888, f_iou 0.4443899393081665: 31%|███████████▏ | 23/74 [00:24<00:39, 1.29it/s]
epoch 49 | loss 1.8284331560134888, f_iou 0.4443899393081665: 32%|███████████▋ | 24/74 [00:24<00:38, 1.31it/s]
epoch 49 | loss 2.679702043533325, f_iou 0.45552390813827515: 32%|███████████▋ | 24/74 [00:25<00:38, 1.31it/s]
epoch 49 | loss 2.679702043533325, f_iou 0.45552390813827515: 34%|████████████▏ | 25/74 [00:25<00:37, 1.32it/s]
epoch 49 | loss 3.7554125785827637, f_iou 0.462820440530777: 34%|████████████▌ | 25/74 [00:26<00:37, 1.32it/s]
epoch 49 | loss 3.7554125785827637, f_iou 0.462820440530777: 35%|█████████████ | 26/74 [00:26<00:36, 1.32it/s]
epoch 49 | loss 0.552490770816803, f_iou 0.4795166254043579: 35%|█████████████ | 26/74 [00:26<00:36, 1.32it/s]
epoch 49 | loss 0.552490770816803, f_iou 0.4795166254043579: 36%|█████████████▌ | 27/74 [00:26<00:35, 1.33it/s]
epoch 49 | loss 1.4945504665374756, f_iou 0.49462515115737915: 36%|████████████▊ | 27/74 [00:27<00:35, 1.33it/s]
epoch 49 | loss 1.4945504665374756, f_iou 0.49462515115737915: 38%|█████████████▏ | 28/74 [00:27<00:34, 1.34it/s]
epoch 49 | loss 1.102309226989746, f_iou 0.4776138663291931: 38%|██████████████ | 28/74 [00:28<00:34, 1.34it/s]
epoch 49 | loss 1.102309226989746, f_iou 0.4776138663291931: 39%|██████████████▌ | 29/74 [00:28<00:33, 1.34it/s]
epoch 49 | loss 0.7644127011299133, f_iou 0.4709326922893524: 39%|██████████████ | 29/74 [00:28<00:33, 1.34it/s]
epoch 49 | loss 0.7644127011299133, f_iou 0.4709326922893524: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.36it/s]
epoch 49 | loss 7.696094036102295, f_iou 0.455741286277771: 41%|███████████████▍ | 30/74 [00:29<00:32, 1.36it/s]
epoch 49 | loss 7.696094036102295, f_iou 0.455741286277771: 42%|███████████████▉ | 31/74 [00:29<00:31, 1.36it/s]
epoch 49 | loss 0.9417853355407715, f_iou 0.4612553119659424: 42%|███████████████ | 31/74 [00:30<00:31, 1.36it/s]
epoch 49 | loss 0.9417853355407715, f_iou 0.4612553119659424: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.37it/s]
epoch 49 | loss 1.5137783288955688, f_iou 0.4575342535972595: 43%|███████████████▌ | 32/74 [00:31<00:30, 1.37it/s]
epoch 49 | loss 1.5137783288955688, f_iou 0.4575342535972595: 45%|████████████████ | 33/74 [00:31<00:29, 1.37it/s]
epoch 49 | loss 0.9129117727279663, f_iou 0.4673099219799042: 45%|████████████████ | 33/74 [00:31<00:29, 1.37it/s]
epoch 49 | loss 0.9129117727279663, f_iou 0.4673099219799042: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.38it/s]
epoch 49 | loss 3.8609375953674316, f_iou 0.4735679626464844: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.38it/s]
epoch 49 | loss 3.8609375953674316, f_iou 0.4735679626464844: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 49 | loss 4.4038591384887695, f_iou 0.4632226228713989: 47%|█████████████████ | 35/74 [00:33<00:28, 1.38it/s]
epoch 49 | loss 4.4038591384887695, f_iou 0.4632226228713989: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 49 | loss 3.09085750579834, f_iou 0.4611872732639313: 49%|██████████████████▍ | 36/74 [00:34<00:27, 1.38it/s]
epoch 49 | loss 3.09085750579834, f_iou 0.4611872732639313: 50%|███████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 49 | loss 1.0880874395370483, f_iou 0.45113828778266907: 50%|█████████████████▌ | 37/74 [00:34<00:26, 1.38it/s]
epoch 49 | loss 1.0880874395370483, f_iou 0.45113828778266907: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 49 | loss 0.5081136226654053, f_iou 0.44214093685150146: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.38it/s]
epoch 49 | loss 0.5081136226654053, f_iou 0.44214093685150146: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 49 | loss 2.70461368560791, f_iou 0.44269105792045593: 53%|███████████████████▍ | 39/74 [00:36<00:25, 1.38it/s]
epoch 49 | loss 2.70461368560791, f_iou 0.44269105792045593: 54%|████████████████████ | 40/74 [00:36<00:24, 1.39it/s]
epoch 49 | loss 1.9033396244049072, f_iou 0.4442509710788727: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.39it/s]
epoch 49 | loss 1.9033396244049072, f_iou 0.4442509710788727: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.40it/s]
epoch 49 | loss 1.8614715337753296, f_iou 0.4488910138607025: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.40it/s]
epoch 49 | loss 1.8614715337753296, f_iou 0.4488910138607025: 57%|████████████████████▍ | 42/74 [00:37<00:22, 1.39it/s]
epoch 49 | loss 2.2744245529174805, f_iou 0.4397284984588623: 57%|████████████████████▍ | 42/74 [00:38<00:22, 1.39it/s]
epoch 49 | loss 2.2744245529174805, f_iou 0.4397284984588623: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.39it/s]
epoch 49 | loss 4.496072292327881, f_iou 0.4297350347042084: 58%|█████████████████████▍ | 43/74 [00:39<00:22, 1.39it/s]
epoch 49 | loss 4.496072292327881, f_iou 0.4297350347042084: 59%|██████████████████████ | 44/74 [00:39<00:21, 1.39it/s]
epoch 49 | loss 2.5121631622314453, f_iou 0.4335569739341736: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 49 | loss 2.5121631622314453, f_iou 0.4335569739341736: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 49 | loss 1.902584433555603, f_iou 0.44068875908851624: 61%|█████████████████████▉ | 45/74 [00:40<00:20, 1.39it/s]
epoch 49 | loss 1.902584433555603, f_iou 0.44068875908851624: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 49 | loss 1.5206224918365479, f_iou 0.4466187059879303: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.38it/s]
epoch 49 | loss 1.5206224918365479, f_iou 0.4466187059879303: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 49 | loss 2.155573606491089, f_iou 0.44317302107810974: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 49 | loss 2.155573606491089, f_iou 0.44317302107810974: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 49 | loss 3.127662181854248, f_iou 0.44148895144462585: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.39it/s]
epoch 49 | loss 3.127662181854248, f_iou 0.44148895144462585: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 49 | loss 1.8332996368408203, f_iou 0.4361870586872101: 66%|███████████████████████▊ | 49/74 [00:43<00:17, 1.39it/s]
epoch 49 | loss 1.8332996368408203, f_iou 0.4361870586872101: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 49 | loss 0.7944997549057007, f_iou 0.44366180896759033: 68%|███████████████████████▋ | 50/74 [00:44<00:17, 1.38it/s]
epoch 49 | loss 0.7944997549057007, f_iou 0.44366180896759033: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.35it/s]
epoch 49 | loss 3.413966417312622, f_iou 0.44136035442352295: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.35it/s]
epoch 49 | loss 3.413966417312622, f_iou 0.44136035442352295: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.33it/s]
epoch 49 | loss 1.0063787698745728, f_iou 0.43461841344833374: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.33it/s]
epoch 49 | loss 1.0063787698745728, f_iou 0.43461841344833374: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.33it/s]
epoch 49 | loss 0.7680423855781555, f_iou 0.4265699088573456: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.33it/s]
epoch 49 | loss 0.7680423855781555, f_iou 0.4265699088573456: 73%|██████████████████████████▎ | 54/74 [00:46<00:15, 1.32it/s]
epoch 49 | loss 2.5778794288635254, f_iou 0.42839792370796204: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.32it/s]
epoch 49 | loss 2.5778794288635254, f_iou 0.42839792370796204: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.33it/s]
epoch 49 | loss 0.9097570776939392, f_iou 0.42742595076560974: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.33it/s]
epoch 49 | loss 0.9097570776939392, f_iou 0.42742595076560974: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.35it/s]
epoch 49 | loss 0.8202911019325256, f_iou 0.4361836016178131: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.35it/s]
epoch 49 | loss 0.8202911019325256, f_iou 0.4361836016178131: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.36it/s]
epoch 49 | loss 1.6100133657455444, f_iou 0.43014249205589294: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.36it/s]
epoch 49 | loss 1.6100133657455444, f_iou 0.43014249205589294: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.35it/s]
epoch 49 | loss 1.770811676979065, f_iou 0.4292006492614746: 78%|█████████████████████████████ | 58/74 [00:50<00:11, 1.35it/s]
epoch 49 | loss 1.770811676979065, f_iou 0.4292006492614746: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.36it/s]
epoch 49 | loss 3.1729955673217773, f_iou 0.4363310933113098: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.36it/s]
epoch 49 | loss 3.1729955673217773, f_iou 0.4363310933113098: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 49 | loss 3.4358386993408203, f_iou 0.43883323669433594: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.37it/s]
epoch 49 | loss 3.4358386993408203, f_iou 0.43883323669433594: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 49 | loss 2.1430253982543945, f_iou 0.4401707649230957: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.38it/s]
epoch 49 | loss 2.1430253982543945, f_iou 0.4401707649230957: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 49 | loss 3.1605207920074463, f_iou 0.4396516680717468: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 49 | loss 3.1605207920074463, f_iou 0.4396516680717468: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 49 | loss 0.9064072370529175, f_iou 0.43572306632995605: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.39it/s]
epoch 49 | loss 0.9064072370529175, f_iou 0.43572306632995605: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.39it/s]
epoch 49 | loss 2.229403495788574, f_iou 0.43208542466163635: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.39it/s]
epoch 49 | loss 2.229403495788574, f_iou 0.43208542466163635: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.40it/s]
epoch 49 | loss 2.033609390258789, f_iou 0.4341292977333069: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.40it/s]
epoch 49 | loss 2.033609390258789, f_iou 0.4341292977333069: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 49 | loss 1.2154738903045654, f_iou 0.43792352080345154: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.39it/s]
epoch 49 | loss 1.2154738903045654, f_iou 0.43792352080345154: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.39it/s]
epoch 49 | loss 2.709537982940674, f_iou 0.43633630871772766: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 49 | loss 2.709537982940674, f_iou 0.43633630871772766: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 49 | loss 2.2368807792663574, f_iou 0.4366263449192047: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 49 | loss 2.2368807792663574, f_iou 0.4366263449192047: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.41it/s]
epoch 49 | loss 0.5063485503196716, f_iou 0.4442141056060791: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.41it/s]
epoch 49 | loss 0.5063485503196716, f_iou 0.4442141056060791: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 49 | loss 1.005340814590454, f_iou 0.44257837533950806: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 49 | loss 1.005340814590454, f_iou 0.44257837533950806: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 49 | loss 1.9219070672988892, f_iou 0.4493269920349121: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 49 | loss 1.9219070672988892, f_iou 0.4493269920349121: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 49 | loss 0.6948856711387634, f_iou 0.4549643099308014: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.41it/s]
epoch 49 | loss 0.6948856711387634, f_iou 0.4549643099308014: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 49 | loss 2.4424097537994385, f_iou 0.45452573895454407: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 49 | loss 2.4424097537994385, f_iou 0.45452573895454407: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.42it/s]
epoch 49 | loss 2.4424097537994385, f_iou 0.45452573895454407: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 49 | valid.f_iou 0.6422799825668335, valid.f_f-score 0.81633: 0%| | 0/16 [00:05, ?it/s]
epoch 49 | valid.f_iou 0.6422799825668335, valid.f_f-score 0.81633: 6%|█▉ | 1/16 [00:05<01:21, 5.45s/it]
epoch 49 | valid.f_iou 0.5615500211715698, valid.f_f-score 0.79528: 6%|█▉ | 1/16 [00:05<01:21, 5.45s/it]
epoch 49 | valid.f_iou 0.5615500211715698, valid.f_f-score 0.79528: 12%|███▉ | 2/16 [00:05<00:35, 2.51s/it]
epoch 49 | valid.f_iou 0.447270005941391, valid.f_f-score 0.74325: 12%|████ | 2/16 [00:06<00:35, 2.51s/it]
epoch 49 | valid.f_iou 0.447270005941391, valid.f_f-score 0.74325: 19%|██████ | 3/16 [00:06<00:20, 1.57s/it]
epoch 49 | valid.f_iou 0.5072500109672546, valid.f_f-score 0.74052: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 49 | valid.f_iou 0.5072500109672546, valid.f_f-score 0.74052: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 49 | valid.f_iou 0.47152000665664673, valid.f_f-score 0.74116: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 49 | valid.f_iou 0.47152000665664673, valid.f_f-score 0.74116: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 49 | valid.f_iou 0.44530001282691956, valid.f_f-score 0.71359: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 49 | valid.f_iou 0.44530001282691956, valid.f_f-score 0.71359: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 49 | valid.f_iou 0.46351000666618347, valid.f_f-score 0.72407: 38%|███████████▎ | 6/16 [00:08<00:07, 1.41it/s]
epoch 49 | valid.f_iou 0.46351000666618347, valid.f_f-score 0.72407: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 49 | valid.f_iou 0.45034000277519226, valid.f_f-score 0.72408: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 49 | valid.f_iou 0.45034000277519226, valid.f_f-score 0.72408: 50%|███████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 49 | valid.f_iou 0.4704799950122833, valid.f_f-score 0.71909: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 49 | valid.f_iou 0.4704799950122833, valid.f_f-score 0.71909: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 49 | valid.f_iou 0.4582499861717224, valid.f_f-score 0.71973: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.04it/s]
epoch 49 | valid.f_iou 0.4582499861717224, valid.f_f-score 0.71973: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 49 | valid.f_iou 0.4612399935722351, valid.f_f-score 0.71621: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 49 | valid.f_iou 0.4612399935722351, valid.f_f-score 0.71621: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 49 | valid.f_iou 0.4754599928855896, valid.f_f-score 0.73333: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 49 | valid.f_iou 0.4754599928855896, valid.f_f-score 0.73333: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.45it/s]
epoch 49 | valid.f_iou 0.4790300130844116, valid.f_f-score 0.73963: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.45it/s]
epoch 49 | valid.f_iou 0.4790300130844116, valid.f_f-score 0.73963: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.53it/s]
epoch 49 | valid.f_iou 0.4742499887943268, valid.f_f-score 0.731: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.53it/s]
epoch 49 | valid.f_iou 0.4742499887943268, valid.f_f-score 0.731: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.58it/s]
epoch 49 | valid.f_iou 0.4809899926185608, valid.f_f-score 0.7292: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.58it/s]
epoch 49 | valid.f_iou 0.4809899926185608, valid.f_f-score 0.7292: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.62it/s]
epoch 49 | valid.f_iou 0.4927000105381012, valid.f_f-score 0.72922: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 49 | valid.f_iou 0.4927000105381012, valid.f_f-score 0.72922: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 49 | valid.f_iou 0.4927000105381012, valid.f_f-score 0.72922: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 49 | valid.f_iou 0.7762899994850159, valid.f_f-score 0.82481: 0%| | 0/16 [00:05, ?it/s]
epoch 49 | valid.f_iou 0.7762899994850159, valid.f_f-score 0.82481: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 49 | valid.f_iou 0.8106799721717834, valid.f_f-score 0.8842: 6%|██ | 1/16 [00:05<01:17, 5.18s/it]
epoch 49 | valid.f_iou 0.8106799721717834, valid.f_f-score 0.8842: 12%|████ | 2/16 [00:05<00:33, 2.39s/it]
epoch 49 | valid.f_iou 0.6911900043487549, valid.f_f-score 0.81463: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 49 | valid.f_iou 0.6911900043487549, valid.f_f-score 0.81463: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 49 | valid.f_iou 0.6777200102806091, valid.f_f-score 0.80565: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 49 | valid.f_iou 0.6777200102806091, valid.f_f-score 0.80565: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 49 | valid.f_iou 0.67221999168396, valid.f_f-score 0.80846: 25%|████████▎ | 4/16 [00:06<00:12, 1.07s/it]
epoch 49 | valid.f_iou 0.67221999168396, valid.f_f-score 0.80846: 31%|██████████▎ | 5/16 [00:06<00:09, 1.22it/s]
epoch 49 | valid.f_iou 0.6463500261306763, valid.f_f-score 0.78744: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 49 | valid.f_iou 0.6463500261306763, valid.f_f-score 0.78744: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 49 | valid.f_iou 0.6642400026321411, valid.f_f-score 0.80696: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 49 | valid.f_iou 0.6642400026321411, valid.f_f-score 0.80696: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.77it/s]
epoch 49 | valid.f_iou 0.6430699825286865, valid.f_f-score 0.78865: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.77it/s]
epoch 49 | valid.f_iou 0.6430699825286865, valid.f_f-score 0.78865: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.98it/s]
epoch 49 | valid.f_iou 0.6606400012969971, valid.f_f-score 0.79552: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.98it/s]
epoch 49 | valid.f_iou 0.6606400012969971, valid.f_f-score 0.79552: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 49 | valid.f_iou 0.6716899871826172, valid.f_f-score 0.80699: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 49 | valid.f_iou 0.6716899871826172, valid.f_f-score 0.80699: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 49 | valid.f_iou 0.6649399995803833, valid.f_f-score 0.79169: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.33it/s]
epoch 49 | valid.f_iou 0.6649399995803833, valid.f_f-score 0.79169: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 49 | valid.f_iou 0.6744800209999084, valid.f_f-score 0.80214: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 49 | valid.f_iou 0.6744800209999084, valid.f_f-score 0.80214: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 49 | valid.f_iou 0.690060019493103, valid.f_f-score 0.81212: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.52it/s]
epoch 49 | valid.f_iou 0.690060019493103, valid.f_f-score 0.81212: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.58it/s]
epoch 49 | valid.f_iou 0.6811800003051758, valid.f_f-score 0.80371: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.58it/s]
epoch 49 | valid.f_iou 0.6811800003051758, valid.f_f-score 0.80371: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 49 | valid.f_iou 0.6735600233078003, valid.f_f-score 0.7959: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 49 | valid.f_iou 0.6735600233078003, valid.f_f-score 0.7959: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 49 | valid.f_iou 0.673829972743988, valid.f_f-score 0.79569: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 49 | valid.f_iou 0.673829972743988, valid.f_f-score 0.79569: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 49 | valid.f_iou 0.673829972743988, valid.f_f-score 0.79569: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 49 | valid.f_iou 0.7762899994850159, valid.f_f-score 0.82481: 0%| | 0/16 [00:04, ?it/s]
epoch 49 | valid.f_iou 0.7762899994850159, valid.f_f-score 0.82481: 6%|█▉ | 1/16 [00:04<01:12, 4.84s/it]
epoch 49 | valid.f_iou 0.8106799721717834, valid.f_f-score 0.8842: 6%|██ | 1/16 [00:05<01:12, 4.84s/it]
epoch 49 | valid.f_iou 0.8106799721717834, valid.f_f-score 0.8842: 12%|████ | 2/16 [00:05<00:31, 2.25s/it]
epoch 49 | valid.f_iou 0.6911900043487549, valid.f_f-score 0.81463: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 49 | valid.f_iou 0.6911900043487549, valid.f_f-score 0.81463: 19%|█████▊ | 3/16 [00:05<00:18, 1.46s/it]
epoch 49 | valid.f_iou 0.6782699823379517, valid.f_f-score 0.80565: 19%|█████▊ | 3/16 [00:06<00:18, 1.46s/it]
epoch 49 | valid.f_iou 0.6782699823379517, valid.f_f-score 0.80565: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 49 | valid.f_iou 0.6747900247573853, valid.f_f-score 0.80846: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 49 | valid.f_iou 0.6747900247573853, valid.f_f-score 0.80846: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 49 | valid.f_iou 0.6484900116920471, valid.f_f-score 0.78744: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 49 | valid.f_iou 0.6484900116920471, valid.f_f-score 0.78744: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 49 | valid.f_iou 0.668690025806427, valid.f_f-score 0.80696: 38%|████████████ | 6/16 [00:07<00:07, 1.42it/s]
epoch 49 | valid.f_iou 0.668690025806427, valid.f_f-score 0.80696: 44%|██████████████ | 7/16 [00:07<00:05, 1.70it/s]
epoch 49 | valid.f_iou 0.6469600200653076, valid.f_f-score 0.78865: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 49 | valid.f_iou 0.6469600200653076, valid.f_f-score 0.78865: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.92it/s]
epoch 49 | valid.f_iou 0.6671299934387207, valid.f_f-score 0.79552: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.92it/s]
epoch 49 | valid.f_iou 0.6671299934387207, valid.f_f-score 0.79552: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.15it/s]
epoch 49 | valid.f_iou 0.674049973487854, valid.f_f-score 0.80355: 56%|██████████████████ | 9/16 [00:08<00:03, 2.15it/s]
epoch 49 | valid.f_iou 0.674049973487854, valid.f_f-score 0.80355: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.29it/s]
epoch 49 | valid.f_iou 0.6670799851417542, valid.f_f-score 0.78856: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.29it/s]
epoch 49 | valid.f_iou 0.6670799851417542, valid.f_f-score 0.78856: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.42it/s]
epoch 49 | valid.f_iou 0.6764400005340576, valid.f_f-score 0.79927: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 49 | valid.f_iou 0.6764400005340576, valid.f_f-score 0.79927: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 49 | valid.f_iou 0.6881300210952759, valid.f_f-score 0.80685: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 49 | valid.f_iou 0.6881300210952759, valid.f_f-score 0.80685: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.56it/s]
epoch 49 | valid.f_iou 0.6728399991989136, valid.f_f-score 0.79271: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 49 | valid.f_iou 0.6728399991989136, valid.f_f-score 0.79271: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 49 | valid.f_iou 0.6657800078392029, valid.f_f-score 0.78563: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 49 | valid.f_iou 0.6657800078392029, valid.f_f-score 0.78563: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 49 | valid.f_iou 0.6673700213432312, valid.f_f-score 0.78607: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 49 | valid.f_iou 0.6673700213432312, valid.f_f-score 0.78607: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 49 | valid.f_iou 0.6673700213432312, valid.f_f-score 0.78607: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 50 | loss 1.857367992401123, f_iou 0.740880012512207: 0%| | 0/74 [00:06, ?it/s]
epoch 50 | loss 1.857367992401123, f_iou 0.740880012512207: 1%|▌ | 1/74 [00:06<07:18, 6.01s/it]
epoch 50 | loss 2.6607279777526855, f_iou 0.371645987033844: 1%|▌ | 1/74 [00:06<07:18, 6.01s/it]
epoch 50 | loss 2.6607279777526855, f_iou 0.371645987033844: 3%|█ | 2/74 [00:06<03:34, 2.98s/it]
epoch 50 | loss 1.921044111251831, f_iou 0.33366578817367554: 3%|█ | 2/74 [00:07<03:34, 2.98s/it]
epoch 50 | loss 1.921044111251831, f_iou 0.33366578817367554: 4%|█▌ | 3/74 [00:07<02:21, 1.99s/it]
epoch 50 | loss 0.7938780784606934, f_iou 0.4659144878387451: 4%|█▌ | 3/74 [00:08<02:21, 1.99s/it]
epoch 50 | loss 0.7938780784606934, f_iou 0.4659144878387451: 5%|██ | 4/74 [00:08<01:46, 1.51s/it]
epoch 50 | loss 1.2601629495620728, f_iou 0.508732259273529: 5%|██ | 4/74 [00:09<01:46, 1.51s/it]
epoch 50 | loss 1.2601629495620728, f_iou 0.508732259273529: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 50 | loss 2.18624210357666, f_iou 0.43947070837020874: 7%|██▌ | 5/74 [00:10<01:26, 1.25s/it]
epoch 50 | loss 2.18624210357666, f_iou 0.43947070837020874: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 50 | loss 2.88320255279541, f_iou 0.4518888294696808: 8%|███▏ | 6/74 [00:10<01:14, 1.10s/it]
epoch 50 | loss 2.88320255279541, f_iou 0.4518888294696808: 9%|███▋ | 7/74 [00:10<01:06, 1.01it/s]
epoch 50 | loss 3.398059606552124, f_iou 0.46524953842163086: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 50 | loss 3.398059606552124, f_iou 0.46524953842163086: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 50 | loss 2.2069356441497803, f_iou 0.48272058367729187: 11%|███▉ | 8/74 [00:12<01:00, 1.09it/s]
epoch 50 | loss 2.2069356441497803, f_iou 0.48272058367729187: 12%|████▍ | 9/74 [00:12<00:56, 1.15it/s]
epoch 50 | loss 1.3016548156738281, f_iou 0.5217534899711609: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 50 | loss 1.3016548156738281, f_iou 0.5217534899711609: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 50 | loss 1.4133373498916626, f_iou 0.47678354382514954: 14%|████▋ | 10/74 [00:13<00:52, 1.21it/s]
epoch 50 | loss 1.4133373498916626, f_iou 0.47678354382514954: 15%|█████▏ | 11/74 [00:13<00:49, 1.27it/s]
epoch 50 | loss 0.21862086653709412, f_iou 0.5129973292350769: 15%|█████▏ | 11/74 [00:14<00:49, 1.27it/s]
epoch 50 | loss 0.21862086653709412, f_iou 0.5129973292350769: 16%|█████▋ | 12/74 [00:14<00:48, 1.29it/s]
epoch 50 | loss 1.1748230457305908, f_iou 0.5426824688911438: 16%|█████▊ | 12/74 [00:15<00:48, 1.29it/s]
epoch 50 | loss 1.1748230457305908, f_iou 0.5426824688911438: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 50 | loss 1.6212092638015747, f_iou 0.5605056285858154: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 50 | loss 1.6212092638015747, f_iou 0.5605056285858154: 19%|██████▊ | 14/74 [00:16<00:46, 1.30it/s]
epoch 50 | loss 1.6074676513671875, f_iou 0.5704904198646545: 19%|██████▊ | 14/74 [00:16<00:46, 1.30it/s]
epoch 50 | loss 1.6074676513671875, f_iou 0.5704904198646545: 20%|███████▎ | 15/74 [00:16<00:44, 1.31it/s]
epoch 50 | loss 1.441282033920288, f_iou 0.5697159171104431: 20%|███████▌ | 15/74 [00:17<00:44, 1.31it/s]
epoch 50 | loss 1.441282033920288, f_iou 0.5697159171104431: 22%|████████ | 16/74 [00:17<00:43, 1.34it/s]
epoch 50 | loss 3.713599920272827, f_iou 0.5592011213302612: 22%|████████ | 16/74 [00:18<00:43, 1.34it/s]
epoch 50 | loss 3.713599920272827, f_iou 0.5592011213302612: 23%|████████▌ | 17/74 [00:18<00:42, 1.36it/s]
epoch 50 | loss 0.8696870803833008, f_iou 0.5414440035820007: 23%|████████▎ | 17/74 [00:18<00:42, 1.36it/s]
epoch 50 | loss 0.8696870803833008, f_iou 0.5414440035820007: 24%|████████▊ | 18/74 [00:18<00:40, 1.37it/s]
epoch 50 | loss 0.6475953459739685, f_iou 0.5607962608337402: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 50 | loss 0.6475953459739685, f_iou 0.5607962608337402: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 50 | loss 0.8860386610031128, f_iou 0.5509607195854187: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 50 | loss 0.8860386610031128, f_iou 0.5509607195854187: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 50 | loss 2.2410311698913574, f_iou 0.5604381561279297: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 50 | loss 2.2410311698913574, f_iou 0.5604381561279297: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 50 | loss 0.466251015663147, f_iou 0.5788923501968384: 28%|██████████▌ | 21/74 [00:21<00:38, 1.39it/s]
epoch 50 | loss 0.466251015663147, f_iou 0.5788923501968384: 30%|███████████ | 22/74 [00:21<00:37, 1.39it/s]
epoch 50 | loss 0.6957743167877197, f_iou 0.5943869352340698: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 50 | loss 0.6957743167877197, f_iou 0.5943869352340698: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 50 | loss 0.7497093081474304, f_iou 0.5965127348899841: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 50 | loss 0.7497093081474304, f_iou 0.5965127348899841: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 50 | loss 1.7055037021636963, f_iou 0.5937689542770386: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 50 | loss 1.7055037021636963, f_iou 0.5937689542770386: 34%|████████████▏ | 25/74 [00:23<00:35, 1.38it/s]
epoch 50 | loss 1.0325764417648315, f_iou 0.5709317326545715: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 50 | loss 1.0325764417648315, f_iou 0.5709317326545715: 35%|████████████▋ | 26/74 [00:24<00:34, 1.38it/s]
epoch 50 | loss 2.911975383758545, f_iou 0.5713688731193542: 35%|█████████████ | 26/74 [00:25<00:34, 1.38it/s]
epoch 50 | loss 2.911975383758545, f_iou 0.5713688731193542: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 50 | loss 1.620024561882019, f_iou 0.5679172277450562: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.39it/s]
epoch 50 | loss 1.620024561882019, f_iou 0.5679172277450562: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 50 | loss 4.7027764320373535, f_iou 0.5663430690765381: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 50 | loss 4.7027764320373535, f_iou 0.5663430690765381: 39%|██████████████ | 29/74 [00:26<00:32, 1.40it/s]
epoch 50 | loss 0.6880782842636108, f_iou 0.5786560773849487: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 50 | loss 0.6880782842636108, f_iou 0.5786560773849487: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.40it/s]
epoch 50 | loss 1.076592206954956, f_iou 0.58763188123703: 41%|███████████████▊ | 30/74 [00:28<00:31, 1.40it/s]
epoch 50 | loss 1.076592206954956, f_iou 0.58763188123703: 42%|████████████████▎ | 31/74 [00:28<00:30, 1.40it/s]
epoch 50 | loss 1.5060410499572754, f_iou 0.5791292190551758: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 50 | loss 1.5060410499572754, f_iou 0.5791292190551758: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.40it/s]
epoch 50 | loss 3.294501543045044, f_iou 0.568627119064331: 43%|████████████████▍ | 32/74 [00:29<00:30, 1.40it/s]
epoch 50 | loss 3.294501543045044, f_iou 0.568627119064331: 45%|████████████████▉ | 33/74 [00:29<00:29, 1.40it/s]
epoch 50 | loss 1.1042332649230957, f_iou 0.566410481929779: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.40it/s]
epoch 50 | loss 1.1042332649230957, f_iou 0.566410481929779: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 50 | loss 1.899822473526001, f_iou 0.5590300559997559: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 50 | loss 1.899822473526001, f_iou 0.5590300559997559: 47%|█████████████████▌ | 35/74 [00:31<00:27, 1.39it/s]
epoch 50 | loss 1.376563310623169, f_iou 0.5571751594543457: 47%|█████████████████▌ | 35/74 [00:31<00:27, 1.39it/s]
epoch 50 | loss 1.376563310623169, f_iou 0.5571751594543457: 49%|██████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 50 | loss 1.0345635414123535, f_iou 0.5674670338630676: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 50 | loss 1.0345635414123535, f_iou 0.5674670338630676: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 50 | loss 1.9266839027404785, f_iou 0.5659219622612: 50%|███████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 50 | loss 1.9266839027404785, f_iou 0.5659219622612: 51%|████████████████████ | 38/74 [00:33<00:25, 1.39it/s]
epoch 50 | loss 1.6256146430969238, f_iou 0.5564960837364197: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 50 | loss 1.6256146430969238, f_iou 0.5564960837364197: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 50 | loss 2.171786308288574, f_iou 0.5567966103553772: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 50 | loss 2.171786308288574, f_iou 0.5567966103553772: 54%|████████████████████ | 40/74 [00:34<00:24, 1.39it/s]
epoch 50 | loss 1.2412915229797363, f_iou 0.5656175017356873: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 50 | loss 1.2412915229797363, f_iou 0.5656175017356873: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 50 | loss 0.6718614101409912, f_iou 0.5521504878997803: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 50 | loss 0.6718614101409912, f_iou 0.5521504878997803: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 50 | loss 5.883347511291504, f_iou 0.5568529963493347: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.39it/s]
epoch 50 | loss 5.883347511291504, f_iou 0.5568529963493347: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.39it/s]
epoch 50 | loss 1.7602910995483398, f_iou 0.5613762140274048: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 50 | loss 1.7602910995483398, f_iou 0.5613762140274048: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 50 | loss 0.8839634656906128, f_iou 0.564109742641449: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 50 | loss 0.8839634656906128, f_iou 0.564109742641449: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 50 | loss 0.400676429271698, f_iou 0.5719383358955383: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.39it/s]
epoch 50 | loss 0.400676429271698, f_iou 0.5719383358955383: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.36it/s]
epoch 50 | loss 1.2868983745574951, f_iou 0.5771661400794983: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.36it/s]
epoch 50 | loss 1.2868983745574951, f_iou 0.5771661400794983: 64%|██████████████████████▊ | 47/74 [00:39<00:20, 1.34it/s]
epoch 50 | loss 1.0887173414230347, f_iou 0.5818698406219482: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.34it/s]
epoch 50 | loss 1.0887173414230347, f_iou 0.5818698406219482: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.32it/s]
epoch 50 | loss 1.081775188446045, f_iou 0.5839121341705322: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.32it/s]
epoch 50 | loss 1.081775188446045, f_iou 0.5839121341705322: 66%|████████████████████████▌ | 49/74 [00:41<00:19, 1.31it/s]
epoch 50 | loss 1.220497727394104, f_iou 0.5888634920120239: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.31it/s]
epoch 50 | loss 1.220497727394104, f_iou 0.5888634920120239: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.34it/s]
epoch 50 | loss 0.9940545558929443, f_iou 0.5952731966972351: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.34it/s]
epoch 50 | loss 0.9940545558929443, f_iou 0.5952731966972351: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.35it/s]
epoch 50 | loss 0.42862433195114136, f_iou 0.5839308500289917: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.35it/s]
epoch 50 | loss 0.42862433195114136, f_iou 0.5839308500289917: 70%|████████████████████████▌ | 52/74 [00:43<00:16, 1.36it/s]
epoch 50 | loss 1.2904304265975952, f_iou 0.5827049612998962: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.36it/s]
epoch 50 | loss 1.2904304265975952, f_iou 0.5827049612998962: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.37it/s]
epoch 50 | loss 1.8551318645477295, f_iou 0.581180214881897: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.37it/s]
epoch 50 | loss 1.8551318645477295, f_iou 0.581180214881897: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 50 | loss 0.7878316044807434, f_iou 0.5853102803230286: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.37it/s]
epoch 50 | loss 0.7878316044807434, f_iou 0.5853102803230286: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.38it/s]
epoch 50 | loss 0.0, f_iou 0.5910081267356873: 74%|█████████████████████████████████████▉ | 55/74 [00:46<00:13, 1.38it/s]
epoch 50 | loss 0.0, f_iou 0.5910081267356873: 76%|██████████████████████████████████████▌ | 56/74 [00:46<00:13, 1.36it/s]
epoch 50 | loss 2.3679068088531494, f_iou 0.5957226753234863: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.36it/s]
epoch 50 | loss 2.3679068088531494, f_iou 0.5957226753234863: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.33it/s]
epoch 50 | loss 3.4727749824523926, f_iou 0.5893293023109436: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.33it/s]
epoch 50 | loss 3.4727749824523926, f_iou 0.5893293023109436: 78%|████████████████████████████▏ | 58/74 [00:48<00:12, 1.31it/s]
epoch 50 | loss 1.4928761720657349, f_iou 0.5939947962760925: 78%|████████████████████████████▏ | 58/74 [00:48<00:12, 1.31it/s]
epoch 50 | loss 1.4928761720657349, f_iou 0.5939947962760925: 80%|████████████████████████████▋ | 59/74 [00:48<00:11, 1.30it/s]
epoch 50 | loss 1.5257847309112549, f_iou 0.5944464802742004: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.30it/s]
epoch 50 | loss 1.5257847309112549, f_iou 0.5944464802742004: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.30it/s]
epoch 50 | loss 4.222975730895996, f_iou 0.5946999788284302: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.30it/s]
epoch 50 | loss 4.222975730895996, f_iou 0.5946999788284302: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.34it/s]
epoch 50 | loss 3.4413962364196777, f_iou 0.5882076621055603: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.34it/s]
epoch 50 | loss 3.4413962364196777, f_iou 0.5882076621055603: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.35it/s]
epoch 50 | loss 0.5041290521621704, f_iou 0.5846909880638123: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.35it/s]
epoch 50 | loss 0.5041290521621704, f_iou 0.5846909880638123: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.36it/s]
epoch 50 | loss 2.080589532852173, f_iou 0.5894691348075867: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.36it/s]
epoch 50 | loss 2.080589532852173, f_iou 0.5894691348075867: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.34it/s]
epoch 50 | loss 1.1430290937423706, f_iou 0.5887609720230103: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.34it/s]
epoch 50 | loss 1.1430290937423706, f_iou 0.5887609720230103: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.32it/s]
epoch 50 | loss 0.6492993235588074, f_iou 0.5893375873565674: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.32it/s]
epoch 50 | loss 0.6492993235588074, f_iou 0.5893375873565674: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.31it/s]
epoch 50 | loss 1.4881893396377563, f_iou 0.5900624394416809: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.31it/s]
epoch 50 | loss 1.4881893396377563, f_iou 0.5900624394416809: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.30it/s]
epoch 50 | loss 0.0, f_iou 0.5959714651107788: 91%|██████████████████████████████████████████████▏ | 67/74 [00:55<00:05, 1.30it/s]
epoch 50 | loss 0.0, f_iou 0.5959714651107788: 92%|██████████████████████████████████████████████▊ | 68/74 [00:55<00:04, 1.30it/s]
epoch 50 | loss 0.43889203667640686, f_iou 0.6014049649238586: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.30it/s]
epoch 50 | loss 0.43889203667640686, f_iou 0.6014049649238586: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.30it/s]
epoch 50 | loss 0.5111492872238159, f_iou 0.5958715677261353: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.30it/s]
epoch 50 | loss 0.5111492872238159, f_iou 0.5958715677261353: 95%|██████████████████████████████████ | 70/74 [00:57<00:03, 1.26it/s]
epoch 50 | loss 0.6968957185745239, f_iou 0.6007323861122131: 95%|██████████████████████████████████ | 70/74 [00:58<00:03, 1.26it/s]
epoch 50 | loss 0.6968957185745239, f_iou 0.6007323861122131: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.30it/s]
epoch 50 | loss 0.694412887096405, f_iou 0.6029552817344666: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.30it/s]
epoch 50 | loss 0.694412887096405, f_iou 0.6029552817344666: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.33it/s]
epoch 50 | loss 0.8241662979125977, f_iou 0.5981091856956482: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.33it/s]
epoch 50 | loss 0.8241662979125977, f_iou 0.5981091856956482: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.34it/s]
epoch 50 | loss 3.3087551593780518, f_iou 0.5980961918830872: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.34it/s]
epoch 50 | loss 3.3087551593780518, f_iou 0.5980961918830872: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.35it/s]
epoch 50 | loss 3.3087551593780518, f_iou 0.5980961918830872: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 50 | valid.f_iou 0.6445599794387817, valid.f_f-score 0.78411: 0%| | 0/16 [00:05, ?it/s]
epoch 50 | valid.f_iou 0.6445599794387817, valid.f_f-score 0.78411: 6%|█▉ | 1/16 [00:05<01:23, 5.57s/it]
epoch 50 | valid.f_iou 0.5428299903869629, valid.f_f-score 0.7564: 6%|██ | 1/16 [00:06<01:23, 5.57s/it]
epoch 50 | valid.f_iou 0.5428299903869629, valid.f_f-score 0.7564: 12%|████ | 2/16 [00:06<00:35, 2.56s/it]
epoch 50 | valid.f_iou 0.44641000032424927, valid.f_f-score 0.70578: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 50 | valid.f_iou 0.44641000032424927, valid.f_f-score 0.70578: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 50 | valid.f_iou 0.5088499784469604, valid.f_f-score 0.71767: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 50 | valid.f_iou 0.5088499784469604, valid.f_f-score 0.71767: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 50 | valid.f_iou 0.486050009727478, valid.f_f-score 0.70499: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 50 | valid.f_iou 0.486050009727478, valid.f_f-score 0.70499: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 50 | valid.f_iou 0.45969000458717346, valid.f_f-score 0.67573: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 50 | valid.f_iou 0.45969000458717346, valid.f_f-score 0.67573: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 50 | valid.f_iou 0.4866900146007538, valid.f_f-score 0.68979: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 50 | valid.f_iou 0.4866900146007538, valid.f_f-score 0.68979: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 50 | valid.f_iou 0.47481998801231384, valid.f_f-score 0.67915: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 50 | valid.f_iou 0.47481998801231384, valid.f_f-score 0.67915: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 50 | valid.f_iou 0.4836199879646301, valid.f_f-score 0.66892: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 50 | valid.f_iou 0.4836199879646301, valid.f_f-score 0.66892: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 50 | valid.f_iou 0.47332999110221863, valid.f_f-score 0.67256: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.95it/s]
epoch 50 | valid.f_iou 0.47332999110221863, valid.f_f-score 0.67256: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 50 | valid.f_iou 0.4713999927043915, valid.f_f-score 0.67216: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 50 | valid.f_iou 0.4713999927043915, valid.f_f-score 0.67216: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 50 | valid.f_iou 0.4981600046157837, valid.f_f-score 0.69334: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.10it/s]
epoch 50 | valid.f_iou 0.4981600046157837, valid.f_f-score 0.69334: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.13it/s]
epoch 50 | valid.f_iou 0.5026500225067139, valid.f_f-score 0.7032: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.13it/s]
epoch 50 | valid.f_iou 0.5026500225067139, valid.f_f-score 0.7032: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.24it/s]
epoch 50 | valid.f_iou 0.4892899990081787, valid.f_f-score 0.6899: 81%|█████████████████████████▏ | 13/16 [00:11<00:01, 2.24it/s]
epoch 50 | valid.f_iou 0.4892899990081787, valid.f_f-score 0.6899: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.38it/s]
epoch 50 | valid.f_iou 0.4991700053215027, valid.f_f-score 0.69206: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.38it/s]
epoch 50 | valid.f_iou 0.4991700053215027, valid.f_f-score 0.69206: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.48it/s]
epoch 50 | valid.f_iou 0.5077400207519531, valid.f_f-score 0.69271: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.48it/s]
epoch 50 | valid.f_iou 0.5077400207519531, valid.f_f-score 0.69271: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 50 | valid.f_iou 0.5077400207519531, valid.f_f-score 0.69271: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 50 | valid.f_iou 0.5231999754905701, valid.f_f-score 0.67408: 0%| | 0/16 [00:04, ?it/s]
epoch 50 | valid.f_iou 0.5231999754905701, valid.f_f-score 0.67408: 6%|█▉ | 1/16 [00:04<01:14, 4.98s/it]
epoch 50 | valid.f_iou 0.6844199895858765, valid.f_f-score 0.80585: 6%|█▉ | 1/16 [00:05<01:14, 4.98s/it]
epoch 50 | valid.f_iou 0.6844199895858765, valid.f_f-score 0.80585: 12%|███▉ | 2/16 [00:05<00:32, 2.33s/it]
epoch 50 | valid.f_iou 0.627560019493103, valid.f_f-score 0.77409: 12%|████ | 2/16 [00:05<00:32, 2.33s/it]
epoch 50 | valid.f_iou 0.627560019493103, valid.f_f-score 0.77409: 19%|██████ | 3/16 [00:05<00:19, 1.48s/it]
epoch 50 | valid.f_iou 0.6324499845504761, valid.f_f-score 0.77916: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 50 | valid.f_iou 0.6324499845504761, valid.f_f-score 0.77916: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 50 | valid.f_iou 0.6360800266265869, valid.f_f-score 0.7805: 25%|████████ | 4/16 [00:06<00:12, 1.07s/it]
epoch 50 | valid.f_iou 0.6360800266265869, valid.f_f-score 0.7805: 31%|██████████ | 5/16 [00:06<00:09, 1.18it/s]
epoch 50 | valid.f_iou 0.6237300038337708, valid.f_f-score 0.76713: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 50 | valid.f_iou 0.6237300038337708, valid.f_f-score 0.76713: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 50 | valid.f_iou 0.6496999859809875, valid.f_f-score 0.79001: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 50 | valid.f_iou 0.6496999859809875, valid.f_f-score 0.79001: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.56it/s]
epoch 50 | valid.f_iou 0.6333699822425842, valid.f_f-score 0.76908: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 50 | valid.f_iou 0.6333699822425842, valid.f_f-score 0.76908: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 50 | valid.f_iou 0.653410017490387, valid.f_f-score 0.77979: 50%|████████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 50 | valid.f_iou 0.653410017490387, valid.f_f-score 0.77979: 56%|██████████████████ | 9/16 [00:08<00:03, 1.89it/s]
epoch 50 | valid.f_iou 0.6626700162887573, valid.f_f-score 0.79242: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 50 | valid.f_iou 0.6626700162887573, valid.f_f-score 0.79242: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 50 | valid.f_iou 0.6603699922561646, valid.f_f-score 0.78055: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 50 | valid.f_iou 0.6603699922561646, valid.f_f-score 0.78055: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.11it/s]
epoch 50 | valid.f_iou 0.6756600141525269, valid.f_f-score 0.79276: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.11it/s]
epoch 50 | valid.f_iou 0.6756600141525269, valid.f_f-score 0.79276: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.21it/s]
epoch 50 | valid.f_iou 0.6811100244522095, valid.f_f-score 0.79956: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.21it/s]
epoch 50 | valid.f_iou 0.6811100244522095, valid.f_f-score 0.79956: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.35it/s]
epoch 50 | valid.f_iou 0.6769499778747559, valid.f_f-score 0.79465: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.35it/s]
epoch 50 | valid.f_iou 0.6769499778747559, valid.f_f-score 0.79465: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.45it/s]
epoch 50 | valid.f_iou 0.6879799962043762, valid.f_f-score 0.80339: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.45it/s]
epoch 50 | valid.f_iou 0.6879799962043762, valid.f_f-score 0.80339: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.53it/s]
epoch 50 | valid.f_iou 0.689490020275116, valid.f_f-score 0.80351: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.53it/s]
epoch 50 | valid.f_iou 0.689490020275116, valid.f_f-score 0.80351: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.41it/s]
epoch 50 | valid.f_iou 0.689490020275116, valid.f_f-score 0.80351: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 50 | valid.f_iou 0.5231999754905701, valid.f_f-score 0.67408: 0%| | 0/16 [00:05, ?it/s]
epoch 50 | valid.f_iou 0.5231999754905701, valid.f_f-score 0.67408: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 50 | valid.f_iou 0.6628999710083008, valid.f_f-score 0.78664: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 50 | valid.f_iou 0.6628999710083008, valid.f_f-score 0.78664: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 50 | valid.f_iou 0.6132100224494934, valid.f_f-score 0.76129: 12%|███▉ | 2/16 [00:06<00:34, 2.46s/it]
epoch 50 | valid.f_iou 0.6132100224494934, valid.f_f-score 0.76129: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 50 | valid.f_iou 0.6218799948692322, valid.f_f-score 0.76393: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 50 | valid.f_iou 0.6218799948692322, valid.f_f-score 0.76393: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 50 | valid.f_iou 0.6280800104141235, valid.f_f-score 0.76831: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 50 | valid.f_iou 0.6280800104141235, valid.f_f-score 0.76831: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 50 | valid.f_iou 0.6170600056648254, valid.f_f-score 0.75698: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 50 | valid.f_iou 0.6170600056648254, valid.f_f-score 0.75698: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 50 | valid.f_iou 0.647159993648529, valid.f_f-score 0.7813: 38%|████████████▍ | 6/16 [00:07<00:06, 1.43it/s]
epoch 50 | valid.f_iou 0.647159993648529, valid.f_f-score 0.7813: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.61it/s]
epoch 50 | valid.f_iou 0.6311500072479248, valid.f_f-score 0.76147: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 50 | valid.f_iou 0.6311500072479248, valid.f_f-score 0.76147: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 50 | valid.f_iou 0.6543300151824951, valid.f_f-score 0.77302: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 50 | valid.f_iou 0.6543300151824951, valid.f_f-score 0.77302: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 50 | valid.f_iou 0.6605799794197083, valid.f_f-score 0.78291: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 50 | valid.f_iou 0.6605799794197083, valid.f_f-score 0.78291: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 50 | valid.f_iou 0.6584699749946594, valid.f_f-score 0.77191: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 50 | valid.f_iou 0.6584699749946594, valid.f_f-score 0.77191: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 50 | valid.f_iou 0.6739199757575989, valid.f_f-score 0.78484: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 50 | valid.f_iou 0.6739199757575989, valid.f_f-score 0.78484: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 50 | valid.f_iou 0.6758300065994263, valid.f_f-score 0.7897: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.40it/s]
epoch 50 | valid.f_iou 0.6758300065994263, valid.f_f-score 0.7897: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 50 | valid.f_iou 0.6656000018119812, valid.f_f-score 0.7794: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 50 | valid.f_iou 0.6656000018119812, valid.f_f-score 0.7794: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 50 | valid.f_iou 0.6773800253868103, valid.f_f-score 0.78916: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 50 | valid.f_iou 0.6773800253868103, valid.f_f-score 0.78916: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 50 | valid.f_iou 0.6801499724388123, valid.f_f-score 0.79017: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 50 | valid.f_iou 0.6801499724388123, valid.f_f-score 0.79017: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 50 | valid.f_iou 0.6801499724388123, valid.f_f-score 0.79017: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 51 | loss 1.4813544750213623, f_iou 0.8617687225341797: 0%| | 0/74 [00:05, ?it/s]
epoch 51 | loss 1.4813544750213623, f_iou 0.8617687225341797: 1%|▌ | 1/74 [00:05<07:08, 5.87s/it]
epoch 51 | loss 2.9917855262756348, f_iou 0.6599298119544983: 1%|▌ | 1/74 [00:06<07:08, 5.87s/it]
epoch 51 | loss 2.9917855262756348, f_iou 0.6599298119544983: 3%|█ | 2/74 [00:06<03:28, 2.89s/it]
epoch 51 | loss 1.5360116958618164, f_iou 0.7118074893951416: 3%|█ | 2/74 [00:07<03:28, 2.89s/it]
epoch 51 | loss 1.5360116958618164, f_iou 0.7118074893951416: 4%|█▌ | 3/74 [00:07<02:18, 1.95s/it]
epoch 51 | loss 0.964533805847168, f_iou 0.7546162605285645: 4%|█▌ | 3/74 [00:08<02:18, 1.95s/it]
epoch 51 | loss 0.964533805847168, f_iou 0.7546162605285645: 5%|██ | 4/74 [00:08<01:45, 1.50s/it]
epoch 51 | loss 0.4346146285533905, f_iou 0.7972694635391235: 5%|██ | 4/74 [00:09<01:45, 1.50s/it]
epoch 51 | loss 0.4346146285533905, f_iou 0.7972694635391235: 7%|██▌ | 5/74 [00:09<01:28, 1.29s/it]
epoch 51 | loss 3.2255940437316895, f_iou 0.7434287071228027: 7%|██▌ | 5/74 [00:10<01:28, 1.29s/it]
epoch 51 | loss 3.2255940437316895, f_iou 0.7434287071228027: 8%|███ | 6/74 [00:10<01:17, 1.13s/it]
epoch 51 | loss 0.7756487131118774, f_iou 0.6713268160820007: 8%|███ | 6/74 [00:10<01:17, 1.13s/it]
epoch 51 | loss 0.7756487131118774, f_iou 0.6713268160820007: 9%|███▌ | 7/74 [00:10<01:09, 1.03s/it]
epoch 51 | loss 0.7174085378646851, f_iou 0.657752513885498: 9%|███▌ | 7/74 [00:11<01:09, 1.03s/it]
epoch 51 | loss 0.7174085378646851, f_iou 0.657752513885498: 11%|████ | 8/74 [00:11<01:03, 1.04it/s]
epoch 51 | loss 2.3686740398406982, f_iou 0.6043835282325745: 11%|████ | 8/74 [00:12<01:03, 1.04it/s]
epoch 51 | loss 2.3686740398406982, f_iou 0.6043835282325745: 12%|████▌ | 9/74 [00:12<00:59, 1.10it/s]
epoch 51 | loss 1.162964105606079, f_iou 0.6113423109054565: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 51 | loss 1.162964105606079, f_iou 0.6113423109054565: 14%|█████ | 10/74 [00:13<00:56, 1.13it/s]
epoch 51 | loss 3.6557374000549316, f_iou 0.6271320581436157: 14%|████▊ | 10/74 [00:14<00:56, 1.13it/s]
epoch 51 | loss 3.6557374000549316, f_iou 0.6271320581436157: 15%|█████▎ | 11/74 [00:14<00:53, 1.17it/s]
epoch 51 | loss 1.914817214012146, f_iou 0.623139500617981: 15%|█████▋ | 11/74 [00:14<00:53, 1.17it/s]
epoch 51 | loss 1.914817214012146, f_iou 0.623139500617981: 16%|██████▏ | 12/74 [00:14<00:51, 1.20it/s]
epoch 51 | loss 2.592944860458374, f_iou 0.5903276801109314: 16%|██████ | 12/74 [00:15<00:51, 1.20it/s]
epoch 51 | loss 2.592944860458374, f_iou 0.5903276801109314: 18%|██████▌ | 13/74 [00:15<00:49, 1.23it/s]
epoch 51 | loss 2.797572135925293, f_iou 0.6152920722961426: 18%|██████▌ | 13/74 [00:16<00:49, 1.23it/s]
epoch 51 | loss 2.797572135925293, f_iou 0.6152920722961426: 19%|███████ | 14/74 [00:16<00:48, 1.24it/s]
epoch 51 | loss 1.360093593597412, f_iou 0.6084496974945068: 19%|███████ | 14/74 [00:17<00:48, 1.24it/s]
epoch 51 | loss 1.360093593597412, f_iou 0.6084496974945068: 20%|███████▌ | 15/74 [00:17<00:46, 1.26it/s]
epoch 51 | loss 2.9523885250091553, f_iou 0.5894244313240051: 20%|███████▎ | 15/74 [00:17<00:46, 1.26it/s]
epoch 51 | loss 2.9523885250091553, f_iou 0.5894244313240051: 22%|███████▊ | 16/74 [00:17<00:45, 1.27it/s]
epoch 51 | loss 1.734885573387146, f_iou 0.5654522180557251: 22%|████████ | 16/74 [00:18<00:45, 1.27it/s]
epoch 51 | loss 1.734885573387146, f_iou 0.5654522180557251: 23%|████████▌ | 17/74 [00:18<00:43, 1.31it/s]
epoch 51 | loss 3.379222869873047, f_iou 0.5862782001495361: 23%|████████▌ | 17/74 [00:19<00:43, 1.31it/s]
epoch 51 | loss 3.379222869873047, f_iou 0.5862782001495361: 24%|█████████ | 18/74 [00:19<00:42, 1.33it/s]
epoch 51 | loss 4.0318169593811035, f_iou 0.5886244773864746: 24%|████████▊ | 18/74 [00:20<00:42, 1.33it/s]
epoch 51 | loss 4.0318169593811035, f_iou 0.5886244773864746: 26%|█████████▏ | 19/74 [00:20<00:40, 1.34it/s]
epoch 51 | loss 1.8010632991790771, f_iou 0.5969294905662537: 26%|█████████▏ | 19/74 [00:20<00:40, 1.34it/s]
epoch 51 | loss 1.8010632991790771, f_iou 0.5969294905662537: 27%|█████████▋ | 20/74 [00:20<00:39, 1.35it/s]
epoch 51 | loss 2.1023879051208496, f_iou 0.5794057846069336: 27%|█████████▋ | 20/74 [00:21<00:39, 1.35it/s]
epoch 51 | loss 2.1023879051208496, f_iou 0.5794057846069336: 28%|██████████▏ | 21/74 [00:21<00:38, 1.36it/s]
epoch 51 | loss 2.3433005809783936, f_iou 0.5702017545700073: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 51 | loss 2.3433005809783936, f_iou 0.5702017545700073: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 51 | loss 0.6479283571243286, f_iou 0.5564804673194885: 30%|██████████▋ | 22/74 [00:23<00:37, 1.37it/s]
epoch 51 | loss 0.6479283571243286, f_iou 0.5564804673194885: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 51 | loss 3.8681817054748535, f_iou 0.5392991304397583: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 51 | loss 3.8681817054748535, f_iou 0.5392991304397583: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 51 | loss 0.39396578073501587, f_iou 0.556339681148529: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 51 | loss 0.39396578073501587, f_iou 0.556339681148529: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 51 | loss 1.9642143249511719, f_iou 0.5503618121147156: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 51 | loss 1.9642143249511719, f_iou 0.5503618121147156: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 51 | loss 1.8044439554214478, f_iou 0.5427067875862122: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 51 | loss 1.8044439554214478, f_iou 0.5427067875862122: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 51 | loss 1.6040918827056885, f_iou 0.5452320575714111: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 51 | loss 1.6040918827056885, f_iou 0.5452320575714111: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 51 | loss 1.8788139820098877, f_iou 0.5538364052772522: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 51 | loss 1.8788139820098877, f_iou 0.5538364052772522: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 51 | loss 1.7704615592956543, f_iou 0.5540512800216675: 39%|██████████████ | 29/74 [00:28<00:32, 1.39it/s]
epoch 51 | loss 1.7704615592956543, f_iou 0.5540512800216675: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.38it/s]
epoch 51 | loss 1.6843550205230713, f_iou 0.5562594532966614: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.38it/s]
epoch 51 | loss 1.6843550205230713, f_iou 0.5562594532966614: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 51 | loss 1.7956820726394653, f_iou 0.5429690480232239: 42%|███████████████ | 31/74 [00:29<00:30, 1.39it/s]
epoch 51 | loss 1.7956820726394653, f_iou 0.5429690480232239: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 51 | loss 0.7780736088752747, f_iou 0.5304950475692749: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.39it/s]
epoch 51 | loss 0.7780736088752747, f_iou 0.5304950475692749: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 51 | loss 1.8088958263397217, f_iou 0.5303624868392944: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 51 | loss 1.8088958263397217, f_iou 0.5303624868392944: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 51 | loss 2.9496657848358154, f_iou 0.5317851305007935: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 51 | loss 2.9496657848358154, f_iou 0.5317851305007935: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 51 | loss 0.7649639844894409, f_iou 0.5377210378646851: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 51 | loss 0.7649639844894409, f_iou 0.5377210378646851: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.36it/s]
epoch 51 | loss 3.944802761077881, f_iou 0.5437051653862: 49%|███████████████████▍ | 36/74 [00:33<00:28, 1.36it/s]
epoch 51 | loss 3.944802761077881, f_iou 0.5437051653862: 50%|████████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 51 | loss 3.5046792030334473, f_iou 0.5485441088676453: 50%|██████████████████ | 37/74 [00:34<00:27, 1.33it/s]
epoch 51 | loss 3.5046792030334473, f_iou 0.5485441088676453: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.31it/s]
epoch 51 | loss 1.7286396026611328, f_iou 0.5364079475402832: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.31it/s]
epoch 51 | loss 1.7286396026611328, f_iou 0.5364079475402832: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 51 | loss 4.906959533691406, f_iou 0.5319449305534363: 53%|███████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 51 | loss 4.906959533691406, f_iou 0.5319449305534363: 54%|████████████████████ | 40/74 [00:35<00:25, 1.36it/s]
epoch 51 | loss 1.3533222675323486, f_iou 0.5306328535079956: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.36it/s]
epoch 51 | loss 1.3533222675323486, f_iou 0.5306328535079956: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.33it/s]
epoch 51 | loss 1.593735933303833, f_iou 0.5340795516967773: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.33it/s]
epoch 51 | loss 1.593735933303833, f_iou 0.5340795516967773: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.32it/s]
epoch 51 | loss 0.6826637983322144, f_iou 0.5413084626197815: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.32it/s]
epoch 51 | loss 0.6826637983322144, f_iou 0.5413084626197815: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.34it/s]
epoch 51 | loss 2.7873337268829346, f_iou 0.5408551096916199: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.34it/s]
epoch 51 | loss 2.7873337268829346, f_iou 0.5408551096916199: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.36it/s]
epoch 51 | loss 1.0038574934005737, f_iou 0.5473280549049377: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.36it/s]
epoch 51 | loss 1.0038574934005737, f_iou 0.5473280549049377: 61%|█████████████████████▉ | 45/74 [00:39<00:22, 1.29it/s]
epoch 51 | loss 0.7734241485595703, f_iou 0.5487448573112488: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.29it/s]
epoch 51 | loss 0.7734241485595703, f_iou 0.5487448573112488: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.32it/s]
epoch 51 | loss 3.0778048038482666, f_iou 0.5486427545547485: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.32it/s]
epoch 51 | loss 3.0778048038482666, f_iou 0.5486427545547485: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.33it/s]
epoch 51 | loss 1.7020697593688965, f_iou 0.5399993658065796: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.33it/s]
epoch 51 | loss 1.7020697593688965, f_iou 0.5399993658065796: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.35it/s]
epoch 51 | loss 5.227315425872803, f_iou 0.5331092476844788: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.35it/s]
epoch 51 | loss 5.227315425872803, f_iou 0.5331092476844788: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 51 | loss 0.9570368528366089, f_iou 0.5377871990203857: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.37it/s]
epoch 51 | loss 0.9570368528366089, f_iou 0.5377871990203857: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.37it/s]
epoch 51 | loss 3.6957569122314453, f_iou 0.5386532545089722: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.37it/s]
epoch 51 | loss 3.6957569122314453, f_iou 0.5386532545089722: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 51 | loss 1.4537668228149414, f_iou 0.5402178764343262: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 51 | loss 1.4537668228149414, f_iou 0.5402178764343262: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 51 | loss 1.1625664234161377, f_iou 0.5426786541938782: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.38it/s]
epoch 51 | loss 1.1625664234161377, f_iou 0.5426786541938782: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 51 | loss 3.1749353408813477, f_iou 0.5402137637138367: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 51 | loss 3.1749353408813477, f_iou 0.5402137637138367: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 51 | loss 3.4599123001098633, f_iou 0.537422239780426: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.39it/s]
epoch 51 | loss 3.4599123001098633, f_iou 0.537422239780426: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.35it/s]
epoch 51 | loss 2.876283645629883, f_iou 0.5421136617660522: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.35it/s]
epoch 51 | loss 2.876283645629883, f_iou 0.5421136617660522: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.33it/s]
epoch 51 | loss 0.741876482963562, f_iou 0.548151433467865: 76%|████████████████████████████▊ | 56/74 [00:48<00:13, 1.33it/s]
epoch 51 | loss 0.741876482963562, f_iou 0.548151433467865: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.32it/s]
epoch 51 | loss 1.623673439025879, f_iou 0.5498451590538025: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.32it/s]
epoch 51 | loss 1.623673439025879, f_iou 0.5498451590538025: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.31it/s]
epoch 51 | loss 0.9785147905349731, f_iou 0.5531883835792542: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.31it/s]
epoch 51 | loss 0.9785147905349731, f_iou 0.5531883835792542: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.31it/s]
epoch 51 | loss 1.2266085147857666, f_iou 0.557651162147522: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.31it/s]
epoch 51 | loss 1.2266085147857666, f_iou 0.557651162147522: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.30it/s]
epoch 51 | loss 0.6032828688621521, f_iou 0.5528867244720459: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.30it/s]
epoch 51 | loss 0.6032828688621521, f_iou 0.5528867244720459: 82%|█████████████████████████████▋ | 61/74 [00:51<00:10, 1.29it/s]
epoch 51 | loss 1.918094515800476, f_iou 0.5504447221755981: 82%|██████████████████████████████▌ | 61/74 [00:51<00:10, 1.29it/s]
epoch 51 | loss 1.918094515800476, f_iou 0.5504447221755981: 84%|███████████████████████████████ | 62/74 [00:51<00:09, 1.30it/s]
epoch 51 | loss 3.22660493850708, f_iou 0.5426048040390015: 84%|███████████████████████████████▊ | 62/74 [00:52<00:09, 1.30it/s]
epoch 51 | loss 3.22660493850708, f_iou 0.5426048040390015: 85%|████████████████████████████████▎ | 63/74 [00:52<00:08, 1.33it/s]
epoch 51 | loss 3.3800125122070312, f_iou 0.5402137041091919: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.33it/s]
epoch 51 | loss 3.3800125122070312, f_iou 0.5402137041091919: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.35it/s]
epoch 51 | loss 3.676023483276367, f_iou 0.5321065783500671: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.35it/s]
epoch 51 | loss 3.676023483276367, f_iou 0.5321065783500671: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.36it/s]
epoch 51 | loss 0.5563271045684814, f_iou 0.5340037941932678: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.36it/s]
epoch 51 | loss 0.5563271045684814, f_iou 0.5340037941932678: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 51 | loss 2.4809389114379883, f_iou 0.5373987555503845: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.37it/s]
epoch 51 | loss 2.4809389114379883, f_iou 0.5373987555503845: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 51 | loss 1.9062296152114868, f_iou 0.5387839078903198: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 51 | loss 1.9062296152114868, f_iou 0.5387839078903198: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 51 | loss 0.6014071106910706, f_iou 0.5430452227592468: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 51 | loss 0.6014071106910706, f_iou 0.5430452227592468: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 51 | loss 3.7713751792907715, f_iou 0.5417976975440979: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 51 | loss 3.7713751792907715, f_iou 0.5417976975440979: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 51 | loss 1.144056797027588, f_iou 0.5467231273651123: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 51 | loss 1.144056797027588, f_iou 0.5467231273651123: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 51 | loss 1.5630996227264404, f_iou 0.548639714717865: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 51 | loss 1.5630996227264404, f_iou 0.548639714717865: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 51 | loss 1.5223296880722046, f_iou 0.5520378947257996: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 51 | loss 1.5223296880722046, f_iou 0.5520378947257996: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 51 | loss 1.7380108833312988, f_iou 0.5461974740028381: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 51 | loss 1.7380108833312988, f_iou 0.5461974740028381: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 51 | loss 1.7380108833312988, f_iou 0.5461974740028381: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 51 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.89206: 0%| | 0/16 [00:05, ?it/s]
epoch 51 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.89206: 6%|█▉ | 1/16 [00:05<01:22, 5.52s/it]
epoch 51 | valid.f_iou 0.6678199768066406, valid.f_f-score 0.86859: 6%|█▉ | 1/16 [00:05<01:22, 5.52s/it]
epoch 51 | valid.f_iou 0.6678199768066406, valid.f_f-score 0.86859: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 51 | valid.f_iou 0.5216900110244751, valid.f_f-score 0.77457: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 51 | valid.f_iou 0.5216900110244751, valid.f_f-score 0.77457: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 51 | valid.f_iou 0.5761899948120117, valid.f_f-score 0.7753: 19%|██████ | 3/16 [00:06<00:20, 1.61s/it]
epoch 51 | valid.f_iou 0.5761899948120117, valid.f_f-score 0.7753: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 51 | valid.f_iou 0.5671899914741516, valid.f_f-score 0.76993: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 51 | valid.f_iou 0.5671899914741516, valid.f_f-score 0.76993: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 51 | valid.f_iou 0.5322399735450745, valid.f_f-score 0.73549: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 51 | valid.f_iou 0.5322399735450745, valid.f_f-score 0.73549: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 51 | valid.f_iou 0.5565599799156189, valid.f_f-score 0.7506: 38%|████████████ | 6/16 [00:08<00:07, 1.36it/s]
epoch 51 | valid.f_iou 0.5565599799156189, valid.f_f-score 0.7506: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 51 | valid.f_iou 0.5441799759864807, valid.f_f-score 0.7398: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 51 | valid.f_iou 0.5441799759864807, valid.f_f-score 0.7398: 50%|████████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 51 | valid.f_iou 0.5575100183486938, valid.f_f-score 0.73695: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 51 | valid.f_iou 0.5575100183486938, valid.f_f-score 0.73695: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.93it/s]
epoch 51 | valid.f_iou 0.5359799861907959, valid.f_f-score 0.73399: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.93it/s]
epoch 51 | valid.f_iou 0.5359799861907959, valid.f_f-score 0.73399: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 51 | valid.f_iou 0.5286499857902527, valid.f_f-score 0.72182: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 51 | valid.f_iou 0.5286499857902527, valid.f_f-score 0.72182: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.17it/s]
epoch 51 | valid.f_iou 0.5478900074958801, valid.f_f-score 0.73778: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.17it/s]
epoch 51 | valid.f_iou 0.5478900074958801, valid.f_f-score 0.73778: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 51 | valid.f_iou 0.5680199861526489, valid.f_f-score 0.7513: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.33it/s]
epoch 51 | valid.f_iou 0.5680199861526489, valid.f_f-score 0.7513: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.44it/s]
epoch 51 | valid.f_iou 0.5550400018692017, valid.f_f-score 0.74011: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 51 | valid.f_iou 0.5550400018692017, valid.f_f-score 0.74011: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 51 | valid.f_iou 0.5620800256729126, valid.f_f-score 0.74041: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 51 | valid.f_iou 0.5620800256729126, valid.f_f-score 0.74041: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 51 | valid.f_iou 0.5703700184822083, valid.f_f-score 0.74074: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 51 | valid.f_iou 0.5703700184822083, valid.f_f-score 0.74074: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 51 | valid.f_iou 0.5703700184822083, valid.f_f-score 0.74074: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 51 | valid.f_iou 0.5475000143051147, valid.f_f-score 0.69686: 0%| | 0/16 [00:04, ?it/s]
epoch 51 | valid.f_iou 0.5475000143051147, valid.f_f-score 0.69686: 6%|█▉ | 1/16 [00:04<01:07, 4.52s/it]
epoch 51 | valid.f_iou 0.6948400139808655, valid.f_f-score 0.81582: 6%|█▉ | 1/16 [00:04<01:07, 4.52s/it]
epoch 51 | valid.f_iou 0.6948400139808655, valid.f_f-score 0.81582: 12%|███▉ | 2/16 [00:04<00:29, 2.08s/it]
epoch 51 | valid.f_iou 0.632070004940033, valid.f_f-score 0.78549: 12%|████ | 2/16 [00:05<00:29, 2.08s/it]
epoch 51 | valid.f_iou 0.632070004940033, valid.f_f-score 0.78549: 19%|██████ | 3/16 [00:05<00:16, 1.30s/it]
epoch 51 | valid.f_iou 0.6539499759674072, valid.f_f-score 0.77974: 19%|█████▊ | 3/16 [00:05<00:16, 1.30s/it]
epoch 51 | valid.f_iou 0.6539499759674072, valid.f_f-score 0.77974: 25%|███████▊ | 4/16 [00:05<00:11, 1.07it/s]
epoch 51 | valid.f_iou 0.6504999995231628, valid.f_f-score 0.78123: 25%|███████▊ | 4/16 [00:06<00:11, 1.07it/s]
epoch 51 | valid.f_iou 0.6504999995231628, valid.f_f-score 0.78123: 31%|█████████▋ | 5/16 [00:06<00:08, 1.36it/s]
epoch 51 | valid.f_iou 0.6385599970817566, valid.f_f-score 0.7749: 31%|██████████ | 5/16 [00:06<00:08, 1.36it/s]
epoch 51 | valid.f_iou 0.6385599970817566, valid.f_f-score 0.7749: 38%|████████████ | 6/16 [00:06<00:06, 1.63it/s]
epoch 51 | valid.f_iou 0.6591200232505798, valid.f_f-score 0.7925: 38%|████████████ | 6/16 [00:06<00:06, 1.63it/s]
epoch 51 | valid.f_iou 0.6591200232505798, valid.f_f-score 0.7925: 44%|██████████████ | 7/16 [00:06<00:04, 1.90it/s]
epoch 51 | valid.f_iou 0.6412699818611145, valid.f_f-score 0.77152: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.90it/s]
epoch 51 | valid.f_iou 0.6412699818611145, valid.f_f-score 0.77152: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.10it/s]
epoch 51 | valid.f_iou 0.6593700051307678, valid.f_f-score 0.78073: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.10it/s]
epoch 51 | valid.f_iou 0.6593700051307678, valid.f_f-score 0.78073: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.30it/s]
epoch 51 | valid.f_iou 0.6684399843215942, valid.f_f-score 0.79371: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.30it/s]
epoch 51 | valid.f_iou 0.6684399843215942, valid.f_f-score 0.79371: 62%|██████████████████▊ | 10/16 [00:07<00:02, 2.42it/s]
epoch 51 | valid.f_iou 0.6612799763679504, valid.f_f-score 0.77776: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.42it/s]
epoch 51 | valid.f_iou 0.6612799763679504, valid.f_f-score 0.77776: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.52it/s]
epoch 51 | valid.f_iou 0.6762700080871582, valid.f_f-score 0.78992: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.52it/s]
epoch 51 | valid.f_iou 0.6762700080871582, valid.f_f-score 0.78992: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.59it/s]
epoch 51 | valid.f_iou 0.689300000667572, valid.f_f-score 0.7986: 75%|████████████████████████ | 12/16 [00:08<00:01, 2.59it/s]
epoch 51 | valid.f_iou 0.689300000667572, valid.f_f-score 0.7986: 81%|██████████████████████████ | 13/16 [00:08<00:01, 2.64it/s]
epoch 51 | valid.f_iou 0.6837400197982788, valid.f_f-score 0.79338: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.64it/s]
epoch 51 | valid.f_iou 0.6837400197982788, valid.f_f-score 0.79338: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.68it/s]
epoch 51 | valid.f_iou 0.6877999901771545, valid.f_f-score 0.79715: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.68it/s]
epoch 51 | valid.f_iou 0.6877999901771545, valid.f_f-score 0.79715: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.72it/s]
epoch 51 | valid.f_iou 0.6909999847412109, valid.f_f-score 0.79742: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.72it/s]
epoch 51 | valid.f_iou 0.6909999847412109, valid.f_f-score 0.79742: 100%|██████████████████████████████| 16/16 [00:09<00:00, 2.72it/s]
epoch 51 | valid.f_iou 0.6909999847412109, valid.f_f-score 0.79742: 100%|██████████████████████████████| 16/16 [00:09<00:00, 1.60it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 51 | valid.f_iou 0.5475000143051147, valid.f_f-score 0.69686: 0%| | 0/16 [00:04, ?it/s]
epoch 51 | valid.f_iou 0.5475000143051147, valid.f_f-score 0.69686: 6%|█▉ | 1/16 [00:04<01:11, 4.79s/it]
epoch 51 | valid.f_iou 0.6948400139808655, valid.f_f-score 0.81582: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 51 | valid.f_iou 0.6948400139808655, valid.f_f-score 0.81582: 12%|███▉ | 2/16 [00:05<00:31, 2.23s/it]
epoch 51 | valid.f_iou 0.632070004940033, valid.f_f-score 0.78549: 12%|████ | 2/16 [00:05<00:31, 2.23s/it]
epoch 51 | valid.f_iou 0.632070004940033, valid.f_f-score 0.78549: 19%|██████ | 3/16 [00:05<00:18, 1.43s/it]
epoch 51 | valid.f_iou 0.6545699834823608, valid.f_f-score 0.77974: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 51 | valid.f_iou 0.6545699834823608, valid.f_f-score 0.77974: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 51 | valid.f_iou 0.6565600037574768, valid.f_f-score 0.78123: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 51 | valid.f_iou 0.6565600037574768, valid.f_f-score 0.78123: 31%|█████████▋ | 5/16 [00:06<00:08, 1.22it/s]
epoch 51 | valid.f_iou 0.6436200141906738, valid.f_f-score 0.7749: 31%|██████████ | 5/16 [00:06<00:08, 1.22it/s]
epoch 51 | valid.f_iou 0.6436200141906738, valid.f_f-score 0.7749: 38%|████████████ | 6/16 [00:06<00:06, 1.46it/s]
epoch 51 | valid.f_iou 0.6652399897575378, valid.f_f-score 0.7925: 38%|████████████ | 6/16 [00:07<00:06, 1.46it/s]
epoch 51 | valid.f_iou 0.6652399897575378, valid.f_f-score 0.7925: 44%|██████████████ | 7/16 [00:07<00:05, 1.65it/s]
epoch 51 | valid.f_iou 0.6466299891471863, valid.f_f-score 0.77152: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 51 | valid.f_iou 0.6466299891471863, valid.f_f-score 0.77152: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 51 | valid.f_iou 0.6683599948883057, valid.f_f-score 0.78073: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 51 | valid.f_iou 0.6683599948883057, valid.f_f-score 0.78073: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 51 | valid.f_iou 0.6741799712181091, valid.f_f-score 0.79031: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 51 | valid.f_iou 0.6741799712181091, valid.f_f-score 0.79031: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 51 | valid.f_iou 0.6664999723434448, valid.f_f-score 0.77467: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 51 | valid.f_iou 0.6664999723434448, valid.f_f-score 0.77467: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 51 | valid.f_iou 0.6810500025749207, valid.f_f-score 0.78708: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 51 | valid.f_iou 0.6810500025749207, valid.f_f-score 0.78708: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 51 | valid.f_iou 0.6900100111961365, valid.f_f-score 0.79286: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 51 | valid.f_iou 0.6900100111961365, valid.f_f-score 0.79286: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.50it/s]
epoch 51 | valid.f_iou 0.678659975528717, valid.f_f-score 0.78201: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 51 | valid.f_iou 0.678659975528717, valid.f_f-score 0.78201: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.59it/s]
epoch 51 | valid.f_iou 0.6830599904060364, valid.f_f-score 0.78654: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 51 | valid.f_iou 0.6830599904060364, valid.f_f-score 0.78654: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 51 | valid.f_iou 0.6871399879455566, valid.f_f-score 0.78748: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 51 | valid.f_iou 0.6871399879455566, valid.f_f-score 0.78748: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 51 | valid.f_iou 0.6871399879455566, valid.f_f-score 0.78748: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 52 | loss 1.6429778337478638, f_iou 0.8726432919502258: 0%| | 0/74 [00:05, ?it/s]
epoch 52 | loss 1.6429778337478638, f_iou 0.8726432919502258: 1%|▌ | 1/74 [00:05<06:27, 5.31s/it]
epoch 52 | loss 1.644338607788086, f_iou 0.46792370080947876: 1%|▌ | 1/74 [00:06<06:27, 5.31s/it]
epoch 52 | loss 1.644338607788086, f_iou 0.46792370080947876: 3%|█ | 2/74 [00:06<03:11, 2.65s/it]
epoch 52 | loss 0.8979622721672058, f_iou 0.6083877086639404: 3%|█ | 2/74 [00:06<03:11, 2.65s/it]
epoch 52 | loss 0.8979622721672058, f_iou 0.6083877086639404: 4%|█▌ | 3/74 [00:06<02:10, 1.84s/it]
epoch 52 | loss 1.5412617921829224, f_iou 0.6268534660339355: 4%|█▌ | 3/74 [00:07<02:10, 1.84s/it]
epoch 52 | loss 1.5412617921829224, f_iou 0.6268534660339355: 5%|██ | 4/74 [00:07<01:39, 1.42s/it]
epoch 52 | loss 1.8561476469039917, f_iou 0.6481770873069763: 5%|██ | 4/74 [00:08<01:39, 1.42s/it]
epoch 52 | loss 1.8561476469039917, f_iou 0.6481770873069763: 7%|██▌ | 5/74 [00:08<01:21, 1.18s/it]
epoch 52 | loss 1.6387511491775513, f_iou 0.619287371635437: 7%|██▌ | 5/74 [00:09<01:21, 1.18s/it]
epoch 52 | loss 1.6387511491775513, f_iou 0.619287371635437: 8%|███ | 6/74 [00:09<01:10, 1.04s/it]
epoch 52 | loss 0.931881308555603, f_iou 0.6659462451934814: 8%|███ | 6/74 [00:10<01:10, 1.04s/it]
epoch 52 | loss 0.931881308555603, f_iou 0.6659462451934814: 9%|███▌ | 7/74 [00:10<01:03, 1.06it/s]
epoch 52 | loss 2.094507932662964, f_iou 0.6292591094970703: 9%|███▌ | 7/74 [00:10<01:03, 1.06it/s]
epoch 52 | loss 2.094507932662964, f_iou 0.6292591094970703: 11%|████ | 8/74 [00:10<00:57, 1.14it/s]
epoch 52 | loss 1.1977827548980713, f_iou 0.5593444108963013: 11%|████ | 8/74 [00:11<00:57, 1.14it/s]
epoch 52 | loss 1.1977827548980713, f_iou 0.5593444108963013: 12%|████▌ | 9/74 [00:11<00:54, 1.20it/s]
epoch 52 | loss 1.0471915006637573, f_iou 0.5761527419090271: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 52 | loss 1.0471915006637573, f_iou 0.5761527419090271: 14%|████▊ | 10/74 [00:12<00:51, 1.24it/s]
epoch 52 | loss 2.9600272178649902, f_iou 0.564361572265625: 14%|█████ | 10/74 [00:12<00:51, 1.24it/s]
epoch 52 | loss 2.9600272178649902, f_iou 0.564361572265625: 15%|█████▌ | 11/74 [00:12<00:49, 1.28it/s]
epoch 52 | loss 3.3774256706237793, f_iou 0.5808720588684082: 15%|█████▎ | 11/74 [00:13<00:49, 1.28it/s]
epoch 52 | loss 3.3774256706237793, f_iou 0.5808720588684082: 16%|█████▊ | 12/74 [00:13<00:47, 1.31it/s]
epoch 52 | loss 3.463172674179077, f_iou 0.5600167512893677: 16%|██████ | 12/74 [00:14<00:47, 1.31it/s]
epoch 52 | loss 3.463172674179077, f_iou 0.5600167512893677: 18%|██████▌ | 13/74 [00:14<00:45, 1.34it/s]
epoch 52 | loss 0.0, f_iou 0.5883350372314453: 18%|████████▉ | 13/74 [00:15<00:45, 1.34it/s]
epoch 52 | loss 0.0, f_iou 0.5883350372314453: 19%|█████████▋ | 14/74 [00:15<00:44, 1.35it/s]
epoch 52 | loss 0.9895247220993042, f_iou 0.5995709300041199: 19%|██████▊ | 14/74 [00:15<00:44, 1.35it/s]
epoch 52 | loss 0.9895247220993042, f_iou 0.5995709300041199: 20%|███████▎ | 15/74 [00:15<00:43, 1.36it/s]
epoch 52 | loss 1.4456202983856201, f_iou 0.5761328935623169: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 52 | loss 1.4456202983856201, f_iou 0.5761328935623169: 22%|███████▊ | 16/74 [00:16<00:42, 1.37it/s]
epoch 52 | loss 1.428918480873108, f_iou 0.5754885077476501: 22%|████████ | 16/74 [00:17<00:42, 1.37it/s]
epoch 52 | loss 1.428918480873108, f_iou 0.5754885077476501: 23%|████████▌ | 17/74 [00:17<00:41, 1.38it/s]
epoch 52 | loss 1.6694802045822144, f_iou 0.5846913456916809: 23%|████████▎ | 17/74 [00:18<00:41, 1.38it/s]
epoch 52 | loss 1.6694802045822144, f_iou 0.5846913456916809: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 52 | loss 0.7129929065704346, f_iou 0.6033321022987366: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 52 | loss 0.7129929065704346, f_iou 0.6033321022987366: 26%|█████████▏ | 19/74 [00:18<00:39, 1.38it/s]
epoch 52 | loss 1.149063229560852, f_iou 0.5922484993934631: 26%|█████████▌ | 19/74 [00:19<00:39, 1.38it/s]
epoch 52 | loss 1.149063229560852, f_iou 0.5922484993934631: 27%|██████████ | 20/74 [00:19<00:38, 1.39it/s]
epoch 52 | loss 2.223696231842041, f_iou 0.5953187346458435: 27%|██████████ | 20/74 [00:20<00:38, 1.39it/s]
epoch 52 | loss 2.223696231842041, f_iou 0.5953187346458435: 28%|██████████▌ | 21/74 [00:20<00:38, 1.39it/s]
epoch 52 | loss 0.0, f_iou 0.6046420931816101: 28%|██████████████▍ | 21/74 [00:20<00:38, 1.39it/s]
epoch 52 | loss 0.0, f_iou 0.6046420931816101: 30%|███████████████▏ | 22/74 [00:20<00:37, 1.39it/s]
epoch 52 | loss 1.1591362953186035, f_iou 0.6174441576004028: 30%|██████████▋ | 22/74 [00:21<00:37, 1.39it/s]
epoch 52 | loss 1.1591362953186035, f_iou 0.6174441576004028: 31%|███████████▏ | 23/74 [00:21<00:36, 1.39it/s]
epoch 52 | loss 2.8446831703186035, f_iou 0.6237282156944275: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 52 | loss 2.8446831703186035, f_iou 0.6237282156944275: 32%|███████████▋ | 24/74 [00:22<00:35, 1.39it/s]
epoch 52 | loss 7.6416754722595215, f_iou 0.6031108498573303: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 52 | loss 7.6416754722595215, f_iou 0.6031108498573303: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 52 | loss 2.0574114322662354, f_iou 0.6062605977058411: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 52 | loss 2.0574114322662354, f_iou 0.6062605977058411: 35%|████████████▋ | 26/74 [00:23<00:34, 1.38it/s]
epoch 52 | loss 2.16359281539917, f_iou 0.6045467853546143: 35%|█████████████▎ | 26/74 [00:24<00:34, 1.38it/s]
epoch 52 | loss 2.16359281539917, f_iou 0.6045467853546143: 36%|█████████████▊ | 27/74 [00:24<00:33, 1.38it/s]
epoch 52 | loss 0.2350507229566574, f_iou 0.6156251430511475: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.38it/s]
epoch 52 | loss 0.2350507229566574, f_iou 0.6156251430511475: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.36it/s]
epoch 52 | loss 1.5607695579528809, f_iou 0.600196123123169: 38%|██████████████ | 28/74 [00:26<00:33, 1.36it/s]
epoch 52 | loss 1.5607695579528809, f_iou 0.600196123123169: 39%|██████████████▌ | 29/74 [00:26<00:33, 1.33it/s]
epoch 52 | loss 0.0, f_iou 0.6135186553001404: 39%|███████████████████▉ | 29/74 [00:26<00:33, 1.33it/s]
epoch 52 | loss 0.0, f_iou 0.6135186553001404: 41%|████████████████████▋ | 30/74 [00:26<00:33, 1.32it/s]
epoch 52 | loss 1.3382258415222168, f_iou 0.6182473301887512: 41%|██████████████▌ | 30/74 [00:27<00:33, 1.32it/s]
epoch 52 | loss 1.3382258415222168, f_iou 0.6182473301887512: 42%|███████████████ | 31/74 [00:27<00:32, 1.34it/s]
epoch 52 | loss 3.8859658241271973, f_iou 0.6119292974472046: 42%|███████████████ | 31/74 [00:28<00:32, 1.34it/s]
epoch 52 | loss 3.8859658241271973, f_iou 0.6119292974472046: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.36it/s]
epoch 52 | loss 3.0819931030273438, f_iou 0.6095184683799744: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.36it/s]
epoch 52 | loss 3.0819931030273438, f_iou 0.6095184683799744: 45%|████████████████ | 33/74 [00:28<00:29, 1.37it/s]
epoch 52 | loss 1.861810564994812, f_iou 0.5982668995857239: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.37it/s]
epoch 52 | loss 1.861810564994812, f_iou 0.5982668995857239: 46%|█████████████████ | 34/74 [00:29<00:29, 1.37it/s]
epoch 52 | loss 1.9910186529159546, f_iou 0.6000325679779053: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.37it/s]
epoch 52 | loss 1.9910186529159546, f_iou 0.6000325679779053: 47%|█████████████████ | 35/74 [00:30<00:28, 1.37it/s]
epoch 52 | loss 1.1305787563323975, f_iou 0.6039744019508362: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 52 | loss 1.1305787563323975, f_iou 0.6039744019508362: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.37it/s]
epoch 52 | loss 1.464145302772522, f_iou 0.6091641187667847: 49%|██████████████████ | 36/74 [00:31<00:27, 1.37it/s]
epoch 52 | loss 1.464145302772522, f_iou 0.6091641187667847: 50%|██████████████████▌ | 37/74 [00:31<00:26, 1.38it/s]
epoch 52 | loss 0.6684484481811523, f_iou 0.6186811923980713: 50%|██████████████████ | 37/74 [00:32<00:26, 1.38it/s]
epoch 52 | loss 0.6684484481811523, f_iou 0.6186811923980713: 51%|██████████████████▍ | 38/74 [00:32<00:25, 1.39it/s]
epoch 52 | loss 0.46108245849609375, f_iou 0.627621591091156: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 52 | loss 0.46108245849609375, f_iou 0.627621591091156: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.38it/s]
epoch 52 | loss 1.115031123161316, f_iou 0.6332163214683533: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 52 | loss 1.115031123161316, f_iou 0.6332163214683533: 54%|████████████████████ | 40/74 [00:34<00:24, 1.38it/s]
epoch 52 | loss 2.3625006675720215, f_iou 0.6204343438148499: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.38it/s]
epoch 52 | loss 2.3625006675720215, f_iou 0.6204343438148499: 55%|███████████████████▉ | 41/74 [00:34<00:23, 1.38it/s]
epoch 52 | loss 1.4175381660461426, f_iou 0.6244861483573914: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 52 | loss 1.4175381660461426, f_iou 0.6244861483573914: 57%|████████████████████▍ | 42/74 [00:35<00:23, 1.38it/s]
epoch 52 | loss 1.2014745473861694, f_iou 0.624865710735321: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.38it/s]
epoch 52 | loss 1.2014745473861694, f_iou 0.624865710735321: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.38it/s]
epoch 52 | loss 2.098522663116455, f_iou 0.6188312768936157: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.38it/s]
epoch 52 | loss 2.098522663116455, f_iou 0.6188312768936157: 59%|██████████████████████ | 44/74 [00:36<00:21, 1.39it/s]
epoch 52 | loss 4.914599418640137, f_iou 0.6095815300941467: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.39it/s]
epoch 52 | loss 4.914599418640137, f_iou 0.6095815300941467: 61%|██████████████████████▌ | 45/74 [00:37<00:20, 1.38it/s]
epoch 52 | loss 2.751905679702759, f_iou 0.6128705739974976: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.38it/s]
epoch 52 | loss 2.751905679702759, f_iou 0.6128705739974976: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.38it/s]
epoch 52 | loss 1.1265186071395874, f_iou 0.615328848361969: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.38it/s]
epoch 52 | loss 1.1265186071395874, f_iou 0.615328848361969: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.38it/s]
epoch 52 | loss 1.7110595703125, f_iou 0.6188322901725769: 64%|████████████████████████▊ | 47/74 [00:39<00:19, 1.38it/s]
epoch 52 | loss 1.7110595703125, f_iou 0.6188322901725769: 65%|█████████████████████████▎ | 48/74 [00:39<00:18, 1.38it/s]
epoch 52 | loss 1.3045618534088135, f_iou 0.6139305830001831: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 52 | loss 1.3045618534088135, f_iou 0.6139305830001831: 66%|███████████████████████▊ | 49/74 [00:40<00:18, 1.38it/s]
epoch 52 | loss 2.1399357318878174, f_iou 0.609474241733551: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.38it/s]
epoch 52 | loss 2.1399357318878174, f_iou 0.609474241733551: 68%|█████████████████████████ | 50/74 [00:41<00:17, 1.39it/s]
epoch 52 | loss 1.756505012512207, f_iou 0.6020764112472534: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 52 | loss 1.756505012512207, f_iou 0.6020764112472534: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.36it/s]
epoch 52 | loss 1.189545750617981, f_iou 0.5951405763626099: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.36it/s]
epoch 52 | loss 1.189545750617981, f_iou 0.5951405763626099: 70%|██████████████████████████ | 52/74 [00:42<00:16, 1.34it/s]
epoch 52 | loss 1.7842750549316406, f_iou 0.5960583090782166: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.34it/s]
epoch 52 | loss 1.7842750549316406, f_iou 0.5960583090782166: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.35it/s]
epoch 52 | loss 2.1145453453063965, f_iou 0.5872249007225037: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.35it/s]
epoch 52 | loss 2.1145453453063965, f_iou 0.5872249007225037: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.36it/s]
epoch 52 | loss 1.2668874263763428, f_iou 0.577002763748169: 73%|███████████████████████████ | 54/74 [00:44<00:14, 1.36it/s]
epoch 52 | loss 1.2668874263763428, f_iou 0.577002763748169: 74%|███████████████████████████▌ | 55/74 [00:44<00:14, 1.35it/s]
epoch 52 | loss 2.3351387977600098, f_iou 0.5746538639068604: 74%|██████████████████████████▊ | 55/74 [00:45<00:14, 1.35it/s]
epoch 52 | loss 2.3351387977600098, f_iou 0.5746538639068604: 76%|███████████████████████████▏ | 56/74 [00:45<00:13, 1.33it/s]
epoch 52 | loss 0.7645225524902344, f_iou 0.5786224603652954: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.33it/s]
epoch 52 | loss 0.7645225524902344, f_iou 0.5786224603652954: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.32it/s]
epoch 52 | loss 1.8551340103149414, f_iou 0.57475346326828: 77%|█████████████████████████████▎ | 57/74 [00:47<00:12, 1.32it/s]
epoch 52 | loss 1.8551340103149414, f_iou 0.57475346326828: 78%|█████████████████████████████▊ | 58/74 [00:47<00:12, 1.30it/s]
epoch 52 | loss 1.017592191696167, f_iou 0.5721696019172668: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.30it/s]
epoch 52 | loss 1.017592191696167, f_iou 0.5721696019172668: 80%|█████████████████████████████▌ | 59/74 [00:48<00:11, 1.29it/s]
epoch 52 | loss 1.320369005203247, f_iou 0.5773661732673645: 80%|█████████████████████████████▌ | 59/74 [00:48<00:11, 1.29it/s]
epoch 52 | loss 1.320369005203247, f_iou 0.5773661732673645: 81%|██████████████████████████████ | 60/74 [00:48<00:10, 1.28it/s]
epoch 52 | loss 1.4682520627975464, f_iou 0.56938636302948: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.28it/s]
epoch 52 | loss 1.4682520627975464, f_iou 0.56938636302948: 82%|███████████████████████████████▎ | 61/74 [00:49<00:10, 1.28it/s]
epoch 52 | loss 0.0, f_iou 0.5755294561386108: 82%|██████████████████████████████████████████ | 61/74 [00:50<00:10, 1.28it/s]
epoch 52 | loss 0.0, f_iou 0.5755294561386108: 84%|██████████████████████████████████████████▋ | 62/74 [00:50<00:09, 1.29it/s]
epoch 52 | loss 1.3535386323928833, f_iou 0.5679920315742493: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.29it/s]
epoch 52 | loss 1.3535386323928833, f_iou 0.5679920315742493: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.30it/s]
epoch 52 | loss 1.982042908668518, f_iou 0.5677839517593384: 85%|███████████████████████████████▌ | 63/74 [00:51<00:08, 1.30it/s]
epoch 52 | loss 1.982042908668518, f_iou 0.5677839517593384: 86%|████████████████████████████████ | 64/74 [00:51<00:07, 1.33it/s]
epoch 52 | loss 4.025698661804199, f_iou 0.5634336471557617: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.33it/s]
epoch 52 | loss 4.025698661804199, f_iou 0.5634336471557617: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.35it/s]
epoch 52 | loss 1.0763359069824219, f_iou 0.5602823495864868: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.35it/s]
epoch 52 | loss 1.0763359069824219, f_iou 0.5602823495864868: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.35it/s]
epoch 52 | loss 1.188256025314331, f_iou 0.5627036690711975: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.35it/s]
epoch 52 | loss 1.188256025314331, f_iou 0.5627036690711975: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.37it/s]
epoch 52 | loss 0.8615660667419434, f_iou 0.5602723360061646: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.37it/s]
epoch 52 | loss 0.8615660667419434, f_iou 0.5602723360061646: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.37it/s]
epoch 52 | loss 2.5830163955688477, f_iou 0.5564832091331482: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.37it/s]
epoch 52 | loss 2.5830163955688477, f_iou 0.5564832091331482: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.38it/s]
epoch 52 | loss 1.3673397302627563, f_iou 0.5560811161994934: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.38it/s]
epoch 52 | loss 1.3673397302627563, f_iou 0.5560811161994934: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 52 | loss 3.7965407371520996, f_iou 0.5594649314880371: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 52 | loss 3.7965407371520996, f_iou 0.5594649314880371: 96%|██████████████████████████████████▌ | 71/74 [00:56<00:02, 1.39it/s]
epoch 52 | loss 2.031283140182495, f_iou 0.5554013252258301: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 52 | loss 2.031283140182495, f_iou 0.5554013252258301: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.39it/s]
epoch 52 | loss 2.037482261657715, f_iou 0.5544019937515259: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 52 | loss 2.037482261657715, f_iou 0.5544019937515259: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 52 | loss 2.3927621841430664, f_iou 0.5558855533599854: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 52 | loss 2.3927621841430664, f_iou 0.5558855533599854: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 52 | loss 2.3927621841430664, f_iou 0.5558855533599854: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 52 | valid.f_iou 0.6591100096702576, valid.f_f-score 0.85813: 0%| | 0/16 [00:05, ?it/s]
epoch 52 | valid.f_iou 0.6591100096702576, valid.f_f-score 0.85813: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 52 | valid.f_iou 0.44159001111984253, valid.f_f-score 0.72635: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 52 | valid.f_iou 0.44159001111984253, valid.f_f-score 0.72635: 12%|███▊ | 2/16 [00:05<00:34, 2.47s/it]
epoch 52 | valid.f_iou 0.36515000462532043, valid.f_f-score 0.66194: 12%|███▊ | 2/16 [00:06<00:34, 2.47s/it]
epoch 52 | valid.f_iou 0.36515000462532043, valid.f_f-score 0.66194: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 52 | valid.f_iou 0.45094001293182373, valid.f_f-score 0.68943: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 52 | valid.f_iou 0.45094001293182373, valid.f_f-score 0.68943: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 52 | valid.f_iou 0.4275299906730652, valid.f_f-score 0.67001: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 52 | valid.f_iou 0.4275299906730652, valid.f_f-score 0.67001: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 52 | valid.f_iou 0.4085899889469147, valid.f_f-score 0.63335: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 52 | valid.f_iou 0.4085899889469147, valid.f_f-score 0.63335: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 52 | valid.f_iou 0.436710000038147, valid.f_f-score 0.65443: 38%|████████████ | 6/16 [00:08<00:07, 1.36it/s]
epoch 52 | valid.f_iou 0.436710000038147, valid.f_f-score 0.65443: 44%|██████████████ | 7/16 [00:08<00:05, 1.61it/s]
epoch 52 | valid.f_iou 0.41835999488830566, valid.f_f-score 0.64548: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 52 | valid.f_iou 0.41835999488830566, valid.f_f-score 0.64548: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 52 | valid.f_iou 0.42489999532699585, valid.f_f-score 0.63395: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 52 | valid.f_iou 0.42489999532699585, valid.f_f-score 0.63395: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.98it/s]
epoch 52 | valid.f_iou 0.4177199900150299, valid.f_f-score 0.63707: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 52 | valid.f_iou 0.4177199900150299, valid.f_f-score 0.63707: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 52 | valid.f_iou 0.42122000455856323, valid.f_f-score 0.64087: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 52 | valid.f_iou 0.42122000455856323, valid.f_f-score 0.64087: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.11it/s]
epoch 52 | valid.f_iou 0.43992000818252563, valid.f_f-score 0.66227: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.11it/s]
epoch 52 | valid.f_iou 0.43992000818252563, valid.f_f-score 0.66227: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.26it/s]
epoch 52 | valid.f_iou 0.4415999948978424, valid.f_f-score 0.6747: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.26it/s]
epoch 52 | valid.f_iou 0.4415999948978424, valid.f_f-score 0.6747: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.39it/s]
epoch 52 | valid.f_iou 0.4279699921607971, valid.f_f-score 0.66125: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 52 | valid.f_iou 0.4279699921607971, valid.f_f-score 0.66125: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 52 | valid.f_iou 0.4295800030231476, valid.f_f-score 0.65879: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 52 | valid.f_iou 0.4295800030231476, valid.f_f-score 0.65879: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 52 | valid.f_iou 0.43946999311447144, valid.f_f-score 0.6576: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 52 | valid.f_iou 0.43946999311447144, valid.f_f-score 0.6576: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 52 | valid.f_iou 0.43946999311447144, valid.f_f-score 0.6576: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 52 | valid.f_iou 0.8055999875068665, valid.f_f-score 0.86921: 0%| | 0/16 [00:04, ?it/s]
epoch 52 | valid.f_iou 0.8055999875068665, valid.f_f-score 0.86921: 6%|█▉ | 1/16 [00:04<01:07, 4.51s/it]
epoch 52 | valid.f_iou 0.81836998462677, valid.f_f-score 0.90238: 6%|██ | 1/16 [00:05<01:07, 4.51s/it]
epoch 52 | valid.f_iou 0.81836998462677, valid.f_f-score 0.90238: 12%|████▏ | 2/16 [00:05<00:34, 2.49s/it]
epoch 52 | valid.f_iou 0.691510021686554, valid.f_f-score 0.82273: 12%|████ | 2/16 [00:06<00:34, 2.49s/it]
epoch 52 | valid.f_iou 0.691510021686554, valid.f_f-score 0.82273: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 52 | valid.f_iou 0.6654999852180481, valid.f_f-score 0.78275: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 52 | valid.f_iou 0.6654999852180481, valid.f_f-score 0.78275: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 52 | valid.f_iou 0.6502799987792969, valid.f_f-score 0.77797: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 52 | valid.f_iou 0.6502799987792969, valid.f_f-score 0.77797: 31%|█████████▋ | 5/16 [00:06<00:09, 1.16it/s]
epoch 52 | valid.f_iou 0.6168400049209595, valid.f_f-score 0.74313: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 52 | valid.f_iou 0.6168400049209595, valid.f_f-score 0.74313: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 52 | valid.f_iou 0.6360599994659424, valid.f_f-score 0.76238: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 52 | valid.f_iou 0.6360599994659424, valid.f_f-score 0.76238: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 52 | valid.f_iou 0.6274999976158142, valid.f_f-score 0.75749: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.66it/s]
epoch 52 | valid.f_iou 0.6274999976158142, valid.f_f-score 0.75749: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 52 | valid.f_iou 0.6393100023269653, valid.f_f-score 0.76473: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 52 | valid.f_iou 0.6393100023269653, valid.f_f-score 0.76473: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 52 | valid.f_iou 0.6573399901390076, valid.f_f-score 0.77961: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 52 | valid.f_iou 0.6573399901390076, valid.f_f-score 0.77961: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.11it/s]
epoch 52 | valid.f_iou 0.6477400064468384, valid.f_f-score 0.76426: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 52 | valid.f_iou 0.6477400064468384, valid.f_f-score 0.76426: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 52 | valid.f_iou 0.6639400124549866, valid.f_f-score 0.77744: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 52 | valid.f_iou 0.6639400124549866, valid.f_f-score 0.77744: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.30it/s]
epoch 52 | valid.f_iou 0.6676899790763855, valid.f_f-score 0.78683: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.30it/s]
epoch 52 | valid.f_iou 0.6676899790763855, valid.f_f-score 0.78683: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 52 | valid.f_iou 0.6649900078773499, valid.f_f-score 0.78345: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 52 | valid.f_iou 0.6649900078773499, valid.f_f-score 0.78345: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 52 | valid.f_iou 0.6708300113677979, valid.f_f-score 0.79021: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 52 | valid.f_iou 0.6708300113677979, valid.f_f-score 0.79021: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.57it/s]
epoch 52 | valid.f_iou 0.6682199835777283, valid.f_f-score 0.79123: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 52 | valid.f_iou 0.6682199835777283, valid.f_f-score 0.79123: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 52 | valid.f_iou 0.6682199835777283, valid.f_f-score 0.79123: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 52 | valid.f_iou 0.8055999875068665, valid.f_f-score 0.86921: 0%| | 0/16 [00:04, ?it/s]
epoch 52 | valid.f_iou 0.8055999875068665, valid.f_f-score 0.86921: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 52 | valid.f_iou 0.81836998462677, valid.f_f-score 0.90238: 6%|██ | 1/16 [00:04<01:08, 4.54s/it]
epoch 52 | valid.f_iou 0.81836998462677, valid.f_f-score 0.90238: 12%|████▏ | 2/16 [00:05<00:29, 2.14s/it]
epoch 52 | valid.f_iou 0.691510021686554, valid.f_f-score 0.82273: 12%|████ | 2/16 [00:05<00:29, 2.14s/it]
epoch 52 | valid.f_iou 0.691510021686554, valid.f_f-score 0.82273: 19%|██████ | 3/16 [00:05<00:17, 1.37s/it]
epoch 52 | valid.f_iou 0.6660500168800354, valid.f_f-score 0.78275: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 52 | valid.f_iou 0.6660500168800354, valid.f_f-score 0.78275: 25%|███████▊ | 4/16 [00:05<00:12, 1.01s/it]
epoch 52 | valid.f_iou 0.6509000062942505, valid.f_f-score 0.77797: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 52 | valid.f_iou 0.6509000062942505, valid.f_f-score 0.77797: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 52 | valid.f_iou 0.61735999584198, valid.f_f-score 0.74313: 31%|██████████▎ | 5/16 [00:06<00:08, 1.26it/s]
epoch 52 | valid.f_iou 0.61735999584198, valid.f_f-score 0.74313: 38%|████████████▍ | 6/16 [00:06<00:06, 1.47it/s]
epoch 52 | valid.f_iou 0.639739990234375, valid.f_f-score 0.76238: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 52 | valid.f_iou 0.639739990234375, valid.f_f-score 0.76238: 44%|██████████████ | 7/16 [00:07<00:05, 1.74it/s]
epoch 52 | valid.f_iou 0.6307200193405151, valid.f_f-score 0.75749: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.74it/s]
epoch 52 | valid.f_iou 0.6307200193405151, valid.f_f-score 0.75749: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.86it/s]
epoch 52 | valid.f_iou 0.6456000208854675, valid.f_f-score 0.76473: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.86it/s]
epoch 52 | valid.f_iou 0.6456000208854675, valid.f_f-score 0.76473: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.08it/s]
epoch 52 | valid.f_iou 0.6594300270080566, valid.f_f-score 0.77623: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.08it/s]
epoch 52 | valid.f_iou 0.6594300270080566, valid.f_f-score 0.77623: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.21it/s]
epoch 52 | valid.f_iou 0.649649977684021, valid.f_f-score 0.76119: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.21it/s]
epoch 52 | valid.f_iou 0.649649977684021, valid.f_f-score 0.76119: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.34it/s]
epoch 52 | valid.f_iou 0.665690004825592, valid.f_f-score 0.77463: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.34it/s]
epoch 52 | valid.f_iou 0.665690004825592, valid.f_f-score 0.77463: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.45it/s]
epoch 52 | valid.f_iou 0.6655899882316589, valid.f_f-score 0.78094: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.45it/s]
epoch 52 | valid.f_iou 0.6655899882316589, valid.f_f-score 0.78094: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 52 | valid.f_iou 0.6565399765968323, valid.f_f-score 0.77185: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 52 | valid.f_iou 0.6565399765968323, valid.f_f-score 0.77185: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.59it/s]
epoch 52 | valid.f_iou 0.6629400253295898, valid.f_f-score 0.77938: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 52 | valid.f_iou 0.6629400253295898, valid.f_f-score 0.77938: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 52 | valid.f_iou 0.6616100072860718, valid.f_f-score 0.78108: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 52 | valid.f_iou 0.6616100072860718, valid.f_f-score 0.78108: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 52 | valid.f_iou 0.6616100072860718, valid.f_f-score 0.78108: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 53 | loss 0.8849844336509705, f_iou 0.7205061316490173: 0%| | 0/74 [00:06, ?it/s]
epoch 53 | loss 0.8849844336509705, f_iou 0.7205061316490173: 1%|▌ | 1/74 [00:06<08:05, 6.65s/it]
epoch 53 | loss 4.5054731369018555, f_iou 0.5451793670654297: 1%|▌ | 1/74 [00:07<08:05, 6.65s/it]
epoch 53 | loss 4.5054731369018555, f_iou 0.5451793670654297: 3%|█ | 2/74 [00:07<03:51, 3.21s/it]
epoch 53 | loss 1.0244698524475098, f_iou 0.6413748264312744: 3%|█ | 2/74 [00:08<03:51, 3.21s/it]
epoch 53 | loss 1.0244698524475098, f_iou 0.6413748264312744: 4%|█▌ | 3/74 [00:08<02:30, 2.11s/it]
epoch 53 | loss 2.0854556560516357, f_iou 0.49560457468032837: 4%|█▍ | 3/74 [00:09<02:30, 2.11s/it]
epoch 53 | loss 2.0854556560516357, f_iou 0.49560457468032837: 5%|█▉ | 4/74 [00:09<01:52, 1.60s/it]
epoch 53 | loss 0.9811014533042908, f_iou 0.48973366618156433: 5%|█▉ | 4/74 [00:09<01:52, 1.60s/it]
epoch 53 | loss 0.9811014533042908, f_iou 0.48973366618156433: 7%|██▍ | 5/74 [00:09<01:30, 1.31s/it]
epoch 53 | loss 2.150278091430664, f_iou 0.4806416630744934: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 53 | loss 2.150278091430664, f_iou 0.4806416630744934: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 53 | loss 2.658003568649292, f_iou 0.5107830762863159: 8%|███ | 6/74 [00:11<01:18, 1.15s/it]
epoch 53 | loss 2.658003568649292, f_iou 0.5107830762863159: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 53 | loss 4.248108386993408, f_iou 0.49165499210357666: 9%|███▌ | 7/74 [00:12<01:08, 1.02s/it]
epoch 53 | loss 4.248108386993408, f_iou 0.49165499210357666: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 53 | loss 0.0, f_iou 0.5393007397651672: 11%|█████▌ | 8/74 [00:12<01:01, 1.08it/s]
epoch 53 | loss 0.0, f_iou 0.5393007397651672: 12%|██████▎ | 9/74 [00:12<00:56, 1.15it/s]
epoch 53 | loss 1.5862741470336914, f_iou 0.4928043782711029: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 53 | loss 1.5862741470336914, f_iou 0.4928043782711029: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 53 | loss 1.8400170803070068, f_iou 0.46189409494400024: 14%|████▋ | 10/74 [00:14<00:53, 1.19it/s]
epoch 53 | loss 1.8400170803070068, f_iou 0.46189409494400024: 15%|█████▏ | 11/74 [00:14<00:50, 1.24it/s]
epoch 53 | loss 1.0532851219177246, f_iou 0.49074089527130127: 15%|█████▏ | 11/74 [00:15<00:50, 1.24it/s]
epoch 53 | loss 1.0532851219177246, f_iou 0.49074089527130127: 16%|█████▋ | 12/74 [00:15<00:48, 1.28it/s]
epoch 53 | loss 6.749303817749023, f_iou 0.4593239724636078: 16%|██████ | 12/74 [00:15<00:48, 1.28it/s]
epoch 53 | loss 6.749303817749023, f_iou 0.4593239724636078: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 53 | loss 1.0437688827514648, f_iou 0.4558473527431488: 18%|██████▎ | 13/74 [00:16<00:46, 1.32it/s]
epoch 53 | loss 1.0437688827514648, f_iou 0.4558473527431488: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 53 | loss 3.2381720542907715, f_iou 0.4479120075702667: 19%|██████▊ | 14/74 [00:17<00:44, 1.34it/s]
epoch 53 | loss 3.2381720542907715, f_iou 0.4479120075702667: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 53 | loss 1.302098035812378, f_iou 0.4709767699241638: 20%|███████▌ | 15/74 [00:18<00:44, 1.34it/s]
epoch 53 | loss 1.302098035812378, f_iou 0.4709767699241638: 22%|████████ | 16/74 [00:18<00:43, 1.32it/s]
epoch 53 | loss 1.5111145973205566, f_iou 0.44327226281166077: 22%|███████▌ | 16/74 [00:18<00:43, 1.32it/s]
epoch 53 | loss 1.5111145973205566, f_iou 0.44327226281166077: 23%|████████ | 17/74 [00:18<00:43, 1.30it/s]
epoch 53 | loss 1.6294331550598145, f_iou 0.4341135323047638: 23%|████████▎ | 17/74 [00:19<00:43, 1.30it/s]
epoch 53 | loss 1.6294331550598145, f_iou 0.4341135323047638: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 53 | loss 2.9021191596984863, f_iou 0.42430442571640015: 24%|████████▌ | 18/74 [00:20<00:43, 1.30it/s]
epoch 53 | loss 2.9021191596984863, f_iou 0.42430442571640015: 26%|████████▉ | 19/74 [00:20<00:41, 1.33it/s]
epoch 53 | loss 0.6659549474716187, f_iou 0.40459153056144714: 26%|████████▉ | 19/74 [00:21<00:41, 1.33it/s]
epoch 53 | loss 0.6659549474716187, f_iou 0.40459153056144714: 27%|█████████▍ | 20/74 [00:21<00:40, 1.34it/s]
epoch 53 | loss 1.5458217859268188, f_iou 0.4116920232772827: 27%|█████████▋ | 20/74 [00:21<00:40, 1.34it/s]
epoch 53 | loss 1.5458217859268188, f_iou 0.4116920232772827: 28%|██████████▏ | 21/74 [00:21<00:39, 1.36it/s]
epoch 53 | loss 0.638698935508728, f_iou 0.406668096780777: 28%|██████████▊ | 21/74 [00:22<00:39, 1.36it/s]
epoch 53 | loss 0.638698935508728, f_iou 0.406668096780777: 30%|███████████▎ | 22/74 [00:22<00:38, 1.37it/s]
epoch 53 | loss 0.9167587757110596, f_iou 0.41170623898506165: 30%|██████████▍ | 22/74 [00:23<00:38, 1.37it/s]
epoch 53 | loss 0.9167587757110596, f_iou 0.41170623898506165: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 53 | loss 0.940276026725769, f_iou 0.4026745557785034: 31%|███████████▌ | 23/74 [00:24<00:36, 1.38it/s]
epoch 53 | loss 0.940276026725769, f_iou 0.4026745557785034: 32%|████████████ | 24/74 [00:24<00:38, 1.30it/s]
epoch 53 | loss 1.5748904943466187, f_iou 0.40981781482696533: 32%|███████████▎ | 24/74 [00:24<00:38, 1.30it/s]
epoch 53 | loss 1.5748904943466187, f_iou 0.40981781482696533: 34%|███████████▊ | 25/74 [00:24<00:36, 1.32it/s]
epoch 53 | loss 1.4515891075134277, f_iou 0.4198940098285675: 34%|████████████▏ | 25/74 [00:25<00:36, 1.32it/s]
epoch 53 | loss 1.4515891075134277, f_iou 0.4198940098285675: 35%|████████████▋ | 26/74 [00:25<00:35, 1.34it/s]
epoch 53 | loss 1.2667787075042725, f_iou 0.4044387638568878: 35%|████████████▋ | 26/74 [00:26<00:35, 1.34it/s]
epoch 53 | loss 1.2667787075042725, f_iou 0.4044387638568878: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.36it/s]
epoch 53 | loss 1.0626420974731445, f_iou 0.4090421497821808: 36%|█████████████▏ | 27/74 [00:27<00:34, 1.36it/s]
epoch 53 | loss 1.0626420974731445, f_iou 0.4090421497821808: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 53 | loss 2.285545825958252, f_iou 0.4267200231552124: 38%|██████████████ | 28/74 [00:27<00:33, 1.37it/s]
epoch 53 | loss 2.285545825958252, f_iou 0.4267200231552124: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.38it/s]
epoch 53 | loss 3.0838818550109863, f_iou 0.43826693296432495: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.38it/s]
epoch 53 | loss 3.0838818550109863, f_iou 0.43826693296432495: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.38it/s]
epoch 53 | loss 0.9285202026367188, f_iou 0.4525030851364136: 41%|██████████████▌ | 30/74 [00:29<00:31, 1.38it/s]
epoch 53 | loss 0.9285202026367188, f_iou 0.4525030851364136: 42%|███████████████ | 31/74 [00:29<00:30, 1.39it/s]
epoch 53 | loss 0.8535344004631042, f_iou 0.45285624265670776: 42%|██████████████▋ | 31/74 [00:29<00:30, 1.39it/s]
epoch 53 | loss 0.8535344004631042, f_iou 0.45285624265670776: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.39it/s]
epoch 53 | loss 1.2046911716461182, f_iou 0.4393965005874634: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.39it/s]
epoch 53 | loss 1.2046911716461182, f_iou 0.4393965005874634: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 53 | loss 0.8821570873260498, f_iou 0.4289745092391968: 45%|████████████████ | 33/74 [00:31<00:29, 1.39it/s]
epoch 53 | loss 0.8821570873260498, f_iou 0.4289745092391968: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 53 | loss 0.8243314027786255, f_iou 0.42223408818244934: 46%|████████████████ | 34/74 [00:32<00:28, 1.39it/s]
epoch 53 | loss 0.8243314027786255, f_iou 0.42223408818244934: 47%|████████████████▌ | 35/74 [00:32<00:27, 1.39it/s]
epoch 53 | loss 3.3106374740600586, f_iou 0.42108842730522156: 47%|████████████████▌ | 35/74 [00:32<00:27, 1.39it/s]
epoch 53 | loss 3.3106374740600586, f_iou 0.42108842730522156: 49%|█████████████████ | 36/74 [00:32<00:27, 1.40it/s]
epoch 53 | loss 1.8754013776779175, f_iou 0.429996132850647: 49%|██████████████████ | 36/74 [00:33<00:27, 1.40it/s]
epoch 53 | loss 1.8754013776779175, f_iou 0.429996132850647: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 53 | loss 0.904686689376831, f_iou 0.4420730769634247: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.40it/s]
epoch 53 | loss 0.904686689376831, f_iou 0.4420730769634247: 51%|███████████████████ | 38/74 [00:34<00:26, 1.36it/s]
epoch 53 | loss 2.0549962520599365, f_iou 0.43765610456466675: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.36it/s]
epoch 53 | loss 2.0549962520599365, f_iou 0.43765610456466675: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 53 | loss 2.205777168273926, f_iou 0.4415059983730316: 53%|███████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 53 | loss 2.205777168273926, f_iou 0.4415059983730316: 54%|████████████████████ | 40/74 [00:35<00:25, 1.33it/s]
epoch 53 | loss 2.5992321968078613, f_iou 0.44777822494506836: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.33it/s]
epoch 53 | loss 2.5992321968078613, f_iou 0.44777822494506836: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.35it/s]
epoch 53 | loss 4.279384613037109, f_iou 0.45464953780174255: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.35it/s]
epoch 53 | loss 4.279384613037109, f_iou 0.45464953780174255: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.36it/s]
epoch 53 | loss 1.807845950126648, f_iou 0.4493952989578247: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.36it/s]
epoch 53 | loss 1.807845950126648, f_iou 0.4493952989578247: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.37it/s]
epoch 53 | loss 1.8658246994018555, f_iou 0.4478883743286133: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.37it/s]
epoch 53 | loss 1.8658246994018555, f_iou 0.4478883743286133: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 53 | loss 0.9018552303314209, f_iou 0.43867167830467224: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.38it/s]
epoch 53 | loss 0.9018552303314209, f_iou 0.43867167830467224: 61%|█████████████████████▎ | 45/74 [00:39<00:20, 1.38it/s]
epoch 53 | loss 1.3587223291397095, f_iou 0.4423101246356964: 61%|█████████████████████▉ | 45/74 [00:40<00:20, 1.38it/s]
epoch 53 | loss 1.3587223291397095, f_iou 0.4423101246356964: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 53 | loss 1.9465867280960083, f_iou 0.45010560750961304: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.38it/s]
epoch 53 | loss 1.9465867280960083, f_iou 0.45010560750961304: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 53 | loss 0.9936738014221191, f_iou 0.44278404116630554: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.39it/s]
epoch 53 | loss 0.9936738014221191, f_iou 0.44278404116630554: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.40it/s]
epoch 53 | loss 1.2507836818695068, f_iou 0.43374761939048767: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.40it/s]
epoch 53 | loss 1.2507836818695068, f_iou 0.43374761939048767: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.40it/s]
epoch 53 | loss 0.3513636887073517, f_iou 0.4250856339931488: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.40it/s]
epoch 53 | loss 0.3513636887073517, f_iou 0.4250856339931488: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 53 | loss 1.2153347730636597, f_iou 0.4323795735836029: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.40it/s]
epoch 53 | loss 1.2153347730636597, f_iou 0.4323795735836029: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.40it/s]
epoch 53 | loss 0.832944393157959, f_iou 0.43284785747528076: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.40it/s]
epoch 53 | loss 0.832944393157959, f_iou 0.43284785747528076: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.40it/s]
epoch 53 | loss 0.5285265445709229, f_iou 0.43165332078933716: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.40it/s]
epoch 53 | loss 0.5285265445709229, f_iou 0.43165332078933716: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 53 | loss 2.1188652515411377, f_iou 0.4331597685813904: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 53 | loss 2.1188652515411377, f_iou 0.4331597685813904: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.38it/s]
epoch 53 | loss 2.206216812133789, f_iou 0.4396025836467743: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 53 | loss 2.206216812133789, f_iou 0.4396025836467743: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 53 | loss 0.21349063515663147, f_iou 0.4481137692928314: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.39it/s]
epoch 53 | loss 0.21349063515663147, f_iou 0.4481137692928314: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.39it/s]
epoch 53 | loss 1.665574073791504, f_iou 0.4508325159549713: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 53 | loss 1.665574073791504, f_iou 0.4508325159549713: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.40it/s]
epoch 53 | loss 0.803372323513031, f_iou 0.44892218708992004: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.40it/s]
epoch 53 | loss 0.803372323513031, f_iou 0.44892218708992004: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 53 | loss 1.4878638982772827, f_iou 0.4539032280445099: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 53 | loss 1.4878638982772827, f_iou 0.4539032280445099: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 53 | loss 0.0, f_iou 0.4625774025917053: 80%|████████████████████████████████████████▋ | 59/74 [00:50<00:10, 1.40it/s]
epoch 53 | loss 0.0, f_iou 0.4625774025917053: 81%|█████████████████████████████████████████▎ | 60/74 [00:50<00:10, 1.39it/s]
epoch 53 | loss 1.308067798614502, f_iou 0.4649999439716339: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 53 | loss 1.308067798614502, f_iou 0.4649999439716339: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.40it/s]
epoch 53 | loss 1.5635918378829956, f_iou 0.46783316135406494: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.40it/s]
epoch 53 | loss 1.5635918378829956, f_iou 0.46783316135406494: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.39it/s]
epoch 53 | loss 2.9658827781677246, f_iou 0.4648909866809845: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 53 | loss 2.9658827781677246, f_iou 0.4648909866809845: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 53 | loss 1.0113531351089478, f_iou 0.4707185626029968: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 53 | loss 1.0113531351089478, f_iou 0.4707185626029968: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 53 | loss 4.73244571685791, f_iou 0.4725790321826935: 86%|████████████████████████████████▊ | 64/74 [00:53<00:07, 1.39it/s]
epoch 53 | loss 4.73244571685791, f_iou 0.4725790321826935: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.39it/s]
epoch 53 | loss 2.385918140411377, f_iou 0.4730995297431946: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 53 | loss 2.385918140411377, f_iou 0.4730995297431946: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 53 | loss 1.434871792793274, f_iou 0.47594907879829407: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 53 | loss 1.434871792793274, f_iou 0.47594907879829407: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 53 | loss 1.029776930809021, f_iou 0.47738394141197205: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 53 | loss 1.029776930809021, f_iou 0.47738394141197205: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.36it/s]
epoch 53 | loss 0.0, f_iou 0.4824463129043579: 92%|██████████████████████████████████████████████▊ | 68/74 [00:56<00:04, 1.36it/s]
epoch 53 | loss 0.0, f_iou 0.4824463129043579: 93%|███████████████████████████████████████████████▌ | 69/74 [00:56<00:03, 1.35it/s]
epoch 53 | loss 1.0891250371932983, f_iou 0.4771903455257416: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.35it/s]
epoch 53 | loss 1.0891250371932983, f_iou 0.4771903455257416: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 53 | loss 0.8259934186935425, f_iou 0.48416146636009216: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.35it/s]
epoch 53 | loss 0.8259934186935425, f_iou 0.48416146636009216: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.34it/s]
epoch 53 | loss 0.5146394968032837, f_iou 0.4780573844909668: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.34it/s]
epoch 53 | loss 0.5146394968032837, f_iou 0.4780573844909668: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.33it/s]
epoch 53 | loss 1.9100955724716187, f_iou 0.4805348515510559: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.33it/s]
epoch 53 | loss 1.9100955724716187, f_iou 0.4805348515510559: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.35it/s]
epoch 53 | loss 1.0853450298309326, f_iou 0.48597410321235657: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.35it/s]
epoch 53 | loss 1.0853450298309326, f_iou 0.48597410321235657: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.36it/s]
epoch 53 | loss 1.0853450298309326, f_iou 0.48597410321235657: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 53 | valid.f_iou 0.7639700174331665, valid.f_f-score 0.84171: 0%| | 0/16 [00:05, ?it/s]
epoch 53 | valid.f_iou 0.7639700174331665, valid.f_f-score 0.84171: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 53 | valid.f_iou 0.5793799757957458, valid.f_f-score 0.73853: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 53 | valid.f_iou 0.5793799757957458, valid.f_f-score 0.73853: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 53 | valid.f_iou 0.5031499862670898, valid.f_f-score 0.69504: 12%|███▉ | 2/16 [00:06<00:35, 2.53s/it]
epoch 53 | valid.f_iou 0.5031499862670898, valid.f_f-score 0.69504: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 53 | valid.f_iou 0.5549299716949463, valid.f_f-score 0.72188: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 53 | valid.f_iou 0.5549299716949463, valid.f_f-score 0.72188: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 53 | valid.f_iou 0.5377900004386902, valid.f_f-score 0.71564: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 53 | valid.f_iou 0.5377900004386902, valid.f_f-score 0.71564: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 53 | valid.f_iou 0.5186600089073181, valid.f_f-score 0.6952: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 53 | valid.f_iou 0.5186600089073181, valid.f_f-score 0.6952: 38%|████████████ | 6/16 [00:07<00:07, 1.36it/s]
epoch 53 | valid.f_iou 0.5388399958610535, valid.f_f-score 0.71613: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 53 | valid.f_iou 0.5388399958610535, valid.f_f-score 0.71613: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 53 | valid.f_iou 0.52565997838974, valid.f_f-score 0.71405: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.62it/s]
epoch 53 | valid.f_iou 0.52565997838974, valid.f_f-score 0.71405: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 53 | valid.f_iou 0.5192300081253052, valid.f_f-score 0.69449: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 53 | valid.f_iou 0.5192300081253052, valid.f_f-score 0.69449: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.00it/s]
epoch 53 | valid.f_iou 0.5118700265884399, valid.f_f-score 0.69793: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.00it/s]
epoch 53 | valid.f_iou 0.5118700265884399, valid.f_f-score 0.69793: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 53 | valid.f_iou 0.5108199715614319, valid.f_f-score 0.69565: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 53 | valid.f_iou 0.5108199715614319, valid.f_f-score 0.69565: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 53 | valid.f_iou 0.5356600284576416, valid.f_f-score 0.71404: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.25it/s]
epoch 53 | valid.f_iou 0.5356600284576416, valid.f_f-score 0.71404: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.32it/s]
epoch 53 | valid.f_iou 0.5344399809837341, valid.f_f-score 0.71925: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.32it/s]
epoch 53 | valid.f_iou 0.5344399809837341, valid.f_f-score 0.71925: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 53 | valid.f_iou 0.517009973526001, valid.f_f-score 0.70405: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.43it/s]
epoch 53 | valid.f_iou 0.517009973526001, valid.f_f-score 0.70405: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.52it/s]
epoch 53 | valid.f_iou 0.5203800201416016, valid.f_f-score 0.70435: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 53 | valid.f_iou 0.5203800201416016, valid.f_f-score 0.70435: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 53 | valid.f_iou 0.5266600251197815, valid.f_f-score 0.70342: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 53 | valid.f_iou 0.5266600251197815, valid.f_f-score 0.70342: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 53 | valid.f_iou 0.5266600251197815, valid.f_f-score 0.70342: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 53 | valid.f_iou 0.5705000162124634, valid.f_f-score 0.72905: 0%| | 0/16 [00:04, ?it/s]
epoch 53 | valid.f_iou 0.5705000162124634, valid.f_f-score 0.72905: 6%|█▉ | 1/16 [00:04<01:05, 4.39s/it]
epoch 53 | valid.f_iou 0.7095800042152405, valid.f_f-score 0.83665: 6%|█▉ | 1/16 [00:05<01:05, 4.39s/it]
epoch 53 | valid.f_iou 0.7095800042152405, valid.f_f-score 0.83665: 12%|███▉ | 2/16 [00:05<00:32, 2.30s/it]
epoch 53 | valid.f_iou 0.6775100231170654, valid.f_f-score 0.80989: 12%|███▉ | 2/16 [00:05<00:32, 2.30s/it]
epoch 53 | valid.f_iou 0.6775100231170654, valid.f_f-score 0.80989: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 53 | valid.f_iou 0.6632800102233887, valid.f_f-score 0.77511: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 53 | valid.f_iou 0.6632800102233887, valid.f_f-score 0.77511: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 53 | valid.f_iou 0.6454799771308899, valid.f_f-score 0.76202: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 53 | valid.f_iou 0.6454799771308899, valid.f_f-score 0.76202: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 53 | valid.f_iou 0.6323800086975098, valid.f_f-score 0.73941: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 53 | valid.f_iou 0.6323800086975098, valid.f_f-score 0.73941: 38%|███████████▋ | 6/16 [00:06<00:06, 1.47it/s]
epoch 53 | valid.f_iou 0.6495400071144104, valid.f_f-score 0.75918: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 53 | valid.f_iou 0.6495400071144104, valid.f_f-score 0.75918: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 53 | valid.f_iou 0.645359992980957, valid.f_f-score 0.75204: 44%|██████████████ | 7/16 [00:07<00:05, 1.66it/s]
epoch 53 | valid.f_iou 0.645359992980957, valid.f_f-score 0.75204: 50%|████████████████ | 8/16 [00:07<00:04, 1.85it/s]
epoch 53 | valid.f_iou 0.6565499901771545, valid.f_f-score 0.75429: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.85it/s]
epoch 53 | valid.f_iou 0.6565499901771545, valid.f_f-score 0.75429: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.08it/s]
epoch 53 | valid.f_iou 0.676829993724823, valid.f_f-score 0.77055: 56%|██████████████████ | 9/16 [00:08<00:03, 2.08it/s]
epoch 53 | valid.f_iou 0.676829993724823, valid.f_f-score 0.77055: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.25it/s]
epoch 53 | valid.f_iou 0.6700400114059448, valid.f_f-score 0.75897: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.25it/s]
epoch 53 | valid.f_iou 0.6700400114059448, valid.f_f-score 0.75897: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.38it/s]
epoch 53 | valid.f_iou 0.6851199865341187, valid.f_f-score 0.77307: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 53 | valid.f_iou 0.6851199865341187, valid.f_f-score 0.77307: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 53 | valid.f_iou 0.6947600245475769, valid.f_f-score 0.78176: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 53 | valid.f_iou 0.6947600245475769, valid.f_f-score 0.78176: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 53 | valid.f_iou 0.6897000074386597, valid.f_f-score 0.77806: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 53 | valid.f_iou 0.6897000074386597, valid.f_f-score 0.77806: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.61it/s]
epoch 53 | valid.f_iou 0.6976799964904785, valid.f_f-score 0.78649: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 53 | valid.f_iou 0.6976799964904785, valid.f_f-score 0.78649: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 53 | valid.f_iou 0.7014999985694885, valid.f_f-score 0.78991: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 53 | valid.f_iou 0.7014999985694885, valid.f_f-score 0.78991: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 53 | valid.f_iou 0.7014999985694885, valid.f_f-score 0.78991: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 53 | valid.f_iou 0.5705000162124634, valid.f_f-score 0.72905: 0%| | 0/16 [00:04, ?it/s]
epoch 53 | valid.f_iou 0.5705000162124634, valid.f_f-score 0.72905: 6%|█▉ | 1/16 [00:04<01:14, 4.98s/it]
epoch 53 | valid.f_iou 0.6885300278663635, valid.f_f-score 0.81538: 6%|█▉ | 1/16 [00:05<01:14, 4.98s/it]
epoch 53 | valid.f_iou 0.6885300278663635, valid.f_f-score 0.81538: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 53 | valid.f_iou 0.6634799838066101, valid.f_f-score 0.7957: 12%|████ | 2/16 [00:05<00:32, 2.32s/it]
epoch 53 | valid.f_iou 0.6634799838066101, valid.f_f-score 0.7957: 19%|██████ | 3/16 [00:05<00:19, 1.47s/it]
epoch 53 | valid.f_iou 0.6540499925613403, valid.f_f-score 0.75637: 19%|█████▊ | 3/16 [00:06<00:19, 1.47s/it]
epoch 53 | valid.f_iou 0.6540499925613403, valid.f_f-score 0.75637: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 53 | valid.f_iou 0.645579993724823, valid.f_f-score 0.74702: 25%|████████ | 4/16 [00:06<00:12, 1.06s/it]
epoch 53 | valid.f_iou 0.645579993724823, valid.f_f-score 0.74702: 31%|██████████ | 5/16 [00:06<00:09, 1.19it/s]
epoch 53 | valid.f_iou 0.6324599981307983, valid.f_f-score 0.72691: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 53 | valid.f_iou 0.6324599981307983, valid.f_f-score 0.72691: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 53 | valid.f_iou 0.6530299782752991, valid.f_f-score 0.74847: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 53 | valid.f_iou 0.6530299782752991, valid.f_f-score 0.74847: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 53 | valid.f_iou 0.6484100222587585, valid.f_f-score 0.74267: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 53 | valid.f_iou 0.6484100222587585, valid.f_f-score 0.74267: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 53 | valid.f_iou 0.6611300110816956, valid.f_f-score 0.74596: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 53 | valid.f_iou 0.6611300110816956, valid.f_f-score 0.74596: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 53 | valid.f_iou 0.6766499876976013, valid.f_f-score 0.75947: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 53 | valid.f_iou 0.6766499876976013, valid.f_f-score 0.75947: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 53 | valid.f_iou 0.6655799746513367, valid.f_f-score 0.74687: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 53 | valid.f_iou 0.6655799746513367, valid.f_f-score 0.74687: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 53 | valid.f_iou 0.6810200214385986, valid.f_f-score 0.76198: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 53 | valid.f_iou 0.6810200214385986, valid.f_f-score 0.76198: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.24it/s]
epoch 53 | valid.f_iou 0.6849300265312195, valid.f_f-score 0.76721: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.24it/s]
epoch 53 | valid.f_iou 0.6849300265312195, valid.f_f-score 0.76721: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.24it/s]
epoch 53 | valid.f_iou 0.6748700141906738, valid.f_f-score 0.75871: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.24it/s]
epoch 53 | valid.f_iou 0.6748700141906738, valid.f_f-score 0.75871: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.23it/s]
epoch 53 | valid.f_iou 0.6838399767875671, valid.f_f-score 0.76843: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.23it/s]
epoch 53 | valid.f_iou 0.6838399767875671, valid.f_f-score 0.76843: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.23it/s]
epoch 53 | valid.f_iou 0.6892799735069275, valid.f_f-score 0.77298: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.23it/s]
epoch 53 | valid.f_iou 0.6892799735069275, valid.f_f-score 0.77298: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.35it/s]
epoch 53 | valid.f_iou 0.6892799735069275, valid.f_f-score 0.77298: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 54 | loss 1.0074350833892822, f_iou 0.8136207461357117: 0%| | 0/74 [00:06, ?it/s]
epoch 54 | loss 1.0074350833892822, f_iou 0.8136207461357117: 1%|▌ | 1/74 [00:06<07:37, 6.27s/it]
epoch 54 | loss 1.035237193107605, f_iou 0.850132942199707: 1%|▌ | 1/74 [00:07<07:37, 6.27s/it]
epoch 54 | loss 1.035237193107605, f_iou 0.850132942199707: 3%|█ | 2/74 [00:07<03:41, 3.08s/it]
epoch 54 | loss 3.570714235305786, f_iou 0.772539496421814: 3%|█ | 2/74 [00:07<03:41, 3.08s/it]
epoch 54 | loss 3.570714235305786, f_iou 0.772539496421814: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 54 | loss 2.239309787750244, f_iou 0.7620996236801147: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 54 | loss 2.239309787750244, f_iou 0.7620996236801147: 5%|██ | 4/74 [00:08<01:49, 1.57s/it]
epoch 54 | loss 4.232362747192383, f_iou 0.6959254741668701: 5%|██ | 4/74 [00:09<01:49, 1.57s/it]
epoch 54 | loss 4.232362747192383, f_iou 0.6959254741668701: 7%|██▌ | 5/74 [00:09<01:28, 1.29s/it]
epoch 54 | loss 0.7457100749015808, f_iou 0.6431173086166382: 7%|██▌ | 5/74 [00:10<01:28, 1.29s/it]
epoch 54 | loss 0.7457100749015808, f_iou 0.6431173086166382: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 54 | loss 3.7572474479675293, f_iou 0.6042470932006836: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 54 | loss 3.7572474479675293, f_iou 0.6042470932006836: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 54 | loss 0.8036346435546875, f_iou 0.6419941782951355: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 54 | loss 0.8036346435546875, f_iou 0.6419941782951355: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 54 | loss 3.7360172271728516, f_iou 0.5840781927108765: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 54 | loss 3.7360172271728516, f_iou 0.5840781927108765: 12%|████▌ | 9/74 [00:12<00:56, 1.15it/s]
epoch 54 | loss 0.678969144821167, f_iou 0.5608363151550293: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 54 | loss 0.678969144821167, f_iou 0.5608363151550293: 14%|█████ | 10/74 [00:13<00:52, 1.21it/s]
epoch 54 | loss 2.124213933944702, f_iou 0.5696004629135132: 14%|█████ | 10/74 [00:14<00:52, 1.21it/s]
epoch 54 | loss 2.124213933944702, f_iou 0.5696004629135132: 15%|█████▌ | 11/74 [00:14<00:49, 1.27it/s]
epoch 54 | loss 1.3694242238998413, f_iou 0.5807535648345947: 15%|█████▎ | 11/74 [00:14<00:49, 1.27it/s]
epoch 54 | loss 1.3694242238998413, f_iou 0.5807535648345947: 16%|█████▊ | 12/74 [00:14<00:47, 1.30it/s]
epoch 54 | loss 0.5760283470153809, f_iou 0.6111367344856262: 16%|█████▊ | 12/74 [00:15<00:47, 1.30it/s]
epoch 54 | loss 0.5760283470153809, f_iou 0.6111367344856262: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 54 | loss 1.0624489784240723, f_iou 0.5753814578056335: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 54 | loss 1.0624489784240723, f_iou 0.5753814578056335: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 54 | loss 2.5839297771453857, f_iou 0.5840714573860168: 19%|██████▊ | 14/74 [00:17<00:46, 1.28it/s]
epoch 54 | loss 2.5839297771453857, f_iou 0.5840714573860168: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 54 | loss 1.7265539169311523, f_iou 0.5550948977470398: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 54 | loss 1.7265539169311523, f_iou 0.5550948977470398: 22%|███████▊ | 16/74 [00:17<00:45, 1.27it/s]
epoch 54 | loss 0.4678595960140228, f_iou 0.5765490531921387: 22%|███████▊ | 16/74 [00:18<00:45, 1.27it/s]
epoch 54 | loss 0.4678595960140228, f_iou 0.5765490531921387: 23%|████████▎ | 17/74 [00:18<00:44, 1.28it/s]
epoch 54 | loss 1.291257619857788, f_iou 0.5869422554969788: 23%|████████▌ | 17/74 [00:19<00:44, 1.28it/s]
epoch 54 | loss 1.291257619857788, f_iou 0.5869422554969788: 24%|█████████ | 18/74 [00:19<00:42, 1.31it/s]
epoch 54 | loss 2.858246088027954, f_iou 0.5816094279289246: 24%|█████████ | 18/74 [00:20<00:42, 1.31it/s]
epoch 54 | loss 2.858246088027954, f_iou 0.5816094279289246: 26%|█████████▌ | 19/74 [00:20<00:41, 1.33it/s]
epoch 54 | loss 0.7882712483406067, f_iou 0.5837704539299011: 26%|█████████▏ | 19/74 [00:20<00:41, 1.33it/s]
epoch 54 | loss 0.7882712483406067, f_iou 0.5837704539299011: 27%|█████████▋ | 20/74 [00:20<00:40, 1.33it/s]
epoch 54 | loss 0.47169244289398193, f_iou 0.6015481352806091: 27%|█████████▍ | 20/74 [00:21<00:40, 1.33it/s]
epoch 54 | loss 0.47169244289398193, f_iou 0.6015481352806091: 28%|█████████▉ | 21/74 [00:21<00:39, 1.34it/s]
epoch 54 | loss 0.4999876022338867, f_iou 0.6184414029121399: 28%|██████████▏ | 21/74 [00:22<00:39, 1.34it/s]
epoch 54 | loss 0.4999876022338867, f_iou 0.6184414029121399: 30%|██████████▋ | 22/74 [00:22<00:38, 1.35it/s]
epoch 54 | loss 2.8550357818603516, f_iou 0.6126696467399597: 30%|██████████▋ | 22/74 [00:23<00:38, 1.35it/s]
epoch 54 | loss 2.8550357818603516, f_iou 0.6126696467399597: 31%|███████████▏ | 23/74 [00:23<00:37, 1.36it/s]
epoch 54 | loss 1.410370111465454, f_iou 0.6224771738052368: 31%|███████████▌ | 23/74 [00:23<00:37, 1.36it/s]
epoch 54 | loss 1.410370111465454, f_iou 0.6224771738052368: 32%|████████████ | 24/74 [00:23<00:36, 1.36it/s]
epoch 54 | loss 3.8993425369262695, f_iou 0.6097559928894043: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 54 | loss 3.8993425369262695, f_iou 0.6097559928894043: 34%|████████████▏ | 25/74 [00:24<00:36, 1.36it/s]
epoch 54 | loss 0.4620917737483978, f_iou 0.5902391076087952: 34%|████████████▏ | 25/74 [00:25<00:36, 1.36it/s]
epoch 54 | loss 0.4620917737483978, f_iou 0.5902391076087952: 35%|████████████▋ | 26/74 [00:25<00:36, 1.33it/s]
epoch 54 | loss 0.542288064956665, f_iou 0.5714280009269714: 35%|█████████████ | 26/74 [00:26<00:36, 1.33it/s]
epoch 54 | loss 0.542288064956665, f_iou 0.5714280009269714: 36%|█████████████▌ | 27/74 [00:26<00:35, 1.33it/s]
epoch 54 | loss 4.044641494750977, f_iou 0.5810067653656006: 36%|█████████████▌ | 27/74 [00:26<00:35, 1.33it/s]
epoch 54 | loss 4.044641494750977, f_iou 0.5810067653656006: 38%|██████████████ | 28/74 [00:26<00:34, 1.35it/s]
epoch 54 | loss 1.2816877365112305, f_iou 0.5893675684928894: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.35it/s]
epoch 54 | loss 1.2816877365112305, f_iou 0.5893675684928894: 39%|██████████████ | 29/74 [00:27<00:33, 1.36it/s]
epoch 54 | loss 1.7050031423568726, f_iou 0.5979641079902649: 39%|██████████████ | 29/74 [00:28<00:33, 1.36it/s]
epoch 54 | loss 1.7050031423568726, f_iou 0.5979641079902649: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.37it/s]
epoch 54 | loss 0.9975129961967468, f_iou 0.595484733581543: 41%|███████████████ | 30/74 [00:29<00:32, 1.37it/s]
epoch 54 | loss 0.9975129961967468, f_iou 0.595484733581543: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.37it/s]
epoch 54 | loss 0.6506302356719971, f_iou 0.6062729954719543: 42%|███████████████ | 31/74 [00:29<00:31, 1.37it/s]
epoch 54 | loss 0.6506302356719971, f_iou 0.6062729954719543: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.35it/s]
epoch 54 | loss 0.9262183904647827, f_iou 0.6158140301704407: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.35it/s]
epoch 54 | loss 0.9262183904647827, f_iou 0.6158140301704407: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 54 | loss 1.2951675653457642, f_iou 0.6234352588653564: 45%|████████████████ | 33/74 [00:31<00:30, 1.36it/s]
epoch 54 | loss 1.2951675653457642, f_iou 0.6234352588653564: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 54 | loss 1.352597951889038, f_iou 0.606003999710083: 46%|█████████████████▍ | 34/74 [00:31<00:29, 1.36it/s]
epoch 54 | loss 1.352597951889038, f_iou 0.606003999710083: 47%|█████████████████▉ | 35/74 [00:31<00:28, 1.37it/s]
epoch 54 | loss 2.090406894683838, f_iou 0.6132084131240845: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.37it/s]
epoch 54 | loss 2.090406894683838, f_iou 0.6132084131240845: 49%|██████████████████ | 36/74 [00:32<00:27, 1.37it/s]
epoch 54 | loss 0.7833738923072815, f_iou 0.6118255257606506: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 54 | loss 0.7833738923072815, f_iou 0.6118255257606506: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 54 | loss 1.750407338142395, f_iou 0.6124485731124878: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.38it/s]
epoch 54 | loss 1.750407338142395, f_iou 0.6124485731124878: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 54 | loss 1.6903014183044434, f_iou 0.612521767616272: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 54 | loss 1.6903014183044434, f_iou 0.612521767616272: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 54 | loss 2.764458656311035, f_iou 0.6023995876312256: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 54 | loss 2.764458656311035, f_iou 0.6023995876312256: 54%|████████████████████ | 40/74 [00:35<00:24, 1.38it/s]
epoch 54 | loss 2.067408323287964, f_iou 0.608824610710144: 54%|████████████████████▌ | 40/74 [00:36<00:24, 1.38it/s]
epoch 54 | loss 2.067408323287964, f_iou 0.608824610710144: 55%|█████████████████████ | 41/74 [00:36<00:23, 1.38it/s]
epoch 54 | loss 2.0647690296173096, f_iou 0.6105573773384094: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.38it/s]
epoch 54 | loss 2.0647690296173096, f_iou 0.6105573773384094: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.35it/s]
epoch 54 | loss 1.0862128734588623, f_iou 0.6146507859230042: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.35it/s]
epoch 54 | loss 1.0862128734588623, f_iou 0.6146507859230042: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.36it/s]
epoch 54 | loss 0.25502514839172363, f_iou 0.6212674975395203: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.36it/s]
epoch 54 | loss 0.25502514839172363, f_iou 0.6212674975395203: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.35it/s]
epoch 54 | loss 1.1126291751861572, f_iou 0.6251253485679626: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.35it/s]
epoch 54 | loss 1.1126291751861572, f_iou 0.6251253485679626: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.32it/s]
epoch 54 | loss 4.316352367401123, f_iou 0.6168697476387024: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.32it/s]
epoch 54 | loss 4.316352367401123, f_iou 0.6168697476387024: 62%|███████████████████████ | 46/74 [00:40<00:21, 1.31it/s]
epoch 54 | loss 1.8418644666671753, f_iou 0.6170634031295776: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.31it/s]
epoch 54 | loss 1.8418644666671753, f_iou 0.6170634031295776: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.29it/s]
epoch 54 | loss 2.5030717849731445, f_iou 0.6159089207649231: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.29it/s]
epoch 54 | loss 2.5030717849731445, f_iou 0.6159089207649231: 65%|███████████████████████▎ | 48/74 [00:41<00:20, 1.29it/s]
epoch 54 | loss 1.6661680936813354, f_iou 0.606252133846283: 65%|████████████████████████ | 48/74 [00:42<00:20, 1.29it/s]
epoch 54 | loss 1.6661680936813354, f_iou 0.606252133846283: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.28it/s]
epoch 54 | loss 1.4336683750152588, f_iou 0.6058942079544067: 66%|███████████████████████▊ | 49/74 [00:43<00:19, 1.28it/s]
epoch 54 | loss 1.4336683750152588, f_iou 0.6058942079544067: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.28it/s]
epoch 54 | loss 0.45533663034439087, f_iou 0.594016432762146: 68%|████████████████████████▎ | 50/74 [00:44<00:18, 1.28it/s]
epoch 54 | loss 0.45533663034439087, f_iou 0.594016432762146: 69%|████████████████████████▊ | 51/74 [00:44<00:18, 1.27it/s]
epoch 54 | loss 0.6997802257537842, f_iou 0.6007328033447266: 69%|████████████████████████▊ | 51/74 [00:44<00:18, 1.27it/s]
epoch 54 | loss 0.6997802257537842, f_iou 0.6007328033447266: 70%|█████████████████████████▎ | 52/74 [00:44<00:17, 1.27it/s]
epoch 54 | loss 1.171561598777771, f_iou 0.6028436422348022: 70%|██████████████████████████ | 52/74 [00:45<00:17, 1.27it/s]
epoch 54 | loss 1.171561598777771, f_iou 0.6028436422348022: 72%|██████████████████████████▌ | 53/74 [00:45<00:16, 1.27it/s]
epoch 54 | loss 2.09205961227417, f_iou 0.6056326627731323: 72%|███████████████████████████▏ | 53/74 [00:46<00:16, 1.27it/s]
epoch 54 | loss 2.09205961227417, f_iou 0.6056326627731323: 73%|███████████████████████████▋ | 54/74 [00:46<00:15, 1.27it/s]
epoch 54 | loss 1.3055040836334229, f_iou 0.5946553945541382: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.27it/s]
epoch 54 | loss 1.3055040836334229, f_iou 0.5946553945541382: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.30it/s]
epoch 54 | loss 1.1015068292617798, f_iou 0.5952131748199463: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.30it/s]
epoch 54 | loss 1.1015068292617798, f_iou 0.5952131748199463: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.32it/s]
epoch 54 | loss 3.271449327468872, f_iou 0.5902118682861328: 76%|████████████████████████████ | 56/74 [00:48<00:13, 1.32it/s]
epoch 54 | loss 3.271449327468872, f_iou 0.5902118682861328: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.34it/s]
epoch 54 | loss 0.6447576284408569, f_iou 0.5813363790512085: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.34it/s]
epoch 54 | loss 0.6447576284408569, f_iou 0.5813363790512085: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.35it/s]
epoch 54 | loss 1.9586907625198364, f_iou 0.58622807264328: 78%|█████████████████████████████▊ | 58/74 [00:50<00:11, 1.35it/s]
epoch 54 | loss 1.9586907625198364, f_iou 0.58622807264328: 80%|██████████████████████████████▎ | 59/74 [00:50<00:10, 1.37it/s]
epoch 54 | loss 3.3887062072753906, f_iou 0.5764611959457397: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.37it/s]
epoch 54 | loss 3.3887062072753906, f_iou 0.5764611959457397: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 54 | loss 1.4563735723495483, f_iou 0.5795037150382996: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.37it/s]
epoch 54 | loss 1.4563735723495483, f_iou 0.5795037150382996: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.37it/s]
epoch 54 | loss 2.1756160259246826, f_iou 0.5779919028282166: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.37it/s]
epoch 54 | loss 2.1756160259246826, f_iou 0.5779919028282166: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 54 | loss 1.8983782529830933, f_iou 0.5776287317276001: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 54 | loss 1.8983782529830933, f_iou 0.5776287317276001: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 54 | loss 1.1185758113861084, f_iou 0.5795213580131531: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 54 | loss 1.1185758113861084, f_iou 0.5795213580131531: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 54 | loss 1.1259353160858154, f_iou 0.5825023055076599: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.38it/s]
epoch 54 | loss 1.1259353160858154, f_iou 0.5825023055076599: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 54 | loss 0.8832042217254639, f_iou 0.5882490277290344: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.39it/s]
epoch 54 | loss 0.8832042217254639, f_iou 0.5882490277290344: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 54 | loss 0.0, f_iou 0.5931839346885681: 89%|█████████████████████████████████████████████▍ | 66/74 [00:55<00:05, 1.39it/s]
epoch 54 | loss 0.0, f_iou 0.5931839346885681: 91%|██████████████████████████████████████████████▏ | 67/74 [00:55<00:05, 1.40it/s]
epoch 54 | loss 1.936387300491333, f_iou 0.5872478485107422: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.40it/s]
epoch 54 | loss 1.936387300491333, f_iou 0.5872478485107422: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 54 | loss 4.045782566070557, f_iou 0.5795994997024536: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 54 | loss 4.045782566070557, f_iou 0.5795994997024536: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.37it/s]
epoch 54 | loss 2.9722039699554443, f_iou 0.5792088508605957: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.37it/s]
epoch 54 | loss 2.9722039699554443, f_iou 0.5792088508605957: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.34it/s]
epoch 54 | loss 1.1403992176055908, f_iou 0.5754022598266602: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.34it/s]
epoch 54 | loss 1.1403992176055908, f_iou 0.5754022598266602: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.35it/s]
epoch 54 | loss 0.8315354585647583, f_iou 0.5804777145385742: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.35it/s]
epoch 54 | loss 0.8315354585647583, f_iou 0.5804777145385742: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.36it/s]
epoch 54 | loss 3.3053388595581055, f_iou 0.5727745890617371: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.36it/s]
epoch 54 | loss 3.3053388595581055, f_iou 0.5727745890617371: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 54 | loss 3.4583916664123535, f_iou 0.5700260400772095: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 54 | loss 3.4583916664123535, f_iou 0.5700260400772095: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 54 | loss 3.4583916664123535, f_iou 0.5700260400772095: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 54 | valid.f_iou 0.6680399775505066, valid.f_f-score 0.8845: 0%| | 0/16 [00:05, ?it/s]
epoch 54 | valid.f_iou 0.6680399775505066, valid.f_f-score 0.8845: 6%|██ | 1/16 [00:05<01:23, 5.58s/it]
epoch 54 | valid.f_iou 0.6019300222396851, valid.f_f-score 0.83774: 6%|█▉ | 1/16 [00:06<01:23, 5.58s/it]
epoch 54 | valid.f_iou 0.6019300222396851, valid.f_f-score 0.83774: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 54 | valid.f_iou 0.4784500002861023, valid.f_f-score 0.7461: 12%|████ | 2/16 [00:06<00:35, 2.56s/it]
epoch 54 | valid.f_iou 0.4784500002861023, valid.f_f-score 0.7461: 19%|██████ | 3/16 [00:06<00:20, 1.61s/it]
epoch 54 | valid.f_iou 0.5385500192642212, valid.f_f-score 0.75448: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 54 | valid.f_iou 0.5385500192642212, valid.f_f-score 0.75448: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 54 | valid.f_iou 0.5115399956703186, valid.f_f-score 0.73598: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 54 | valid.f_iou 0.5115399956703186, valid.f_f-score 0.73598: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 54 | valid.f_iou 0.48794999718666077, valid.f_f-score 0.70402: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 54 | valid.f_iou 0.48794999718666077, valid.f_f-score 0.70402: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 54 | valid.f_iou 0.5118299722671509, valid.f_f-score 0.72262: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 54 | valid.f_iou 0.5118299722671509, valid.f_f-score 0.72262: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 54 | valid.f_iou 0.5018900036811829, valid.f_f-score 0.71614: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 54 | valid.f_iou 0.5018900036811829, valid.f_f-score 0.71614: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.71it/s]
epoch 54 | valid.f_iou 0.508870005607605, valid.f_f-score 0.70423: 50%|████████████████ | 8/16 [00:09<00:04, 1.71it/s]
epoch 54 | valid.f_iou 0.508870005607605, valid.f_f-score 0.70423: 56%|██████████████████ | 9/16 [00:09<00:03, 1.85it/s]
epoch 54 | valid.f_iou 0.49202001094818115, valid.f_f-score 0.7033: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 54 | valid.f_iou 0.49202001094818115, valid.f_f-score 0.7033: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.95it/s]
epoch 54 | valid.f_iou 0.49180999398231506, valid.f_f-score 0.70029: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.95it/s]
epoch 54 | valid.f_iou 0.49180999398231506, valid.f_f-score 0.70029: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.02it/s]
epoch 54 | valid.f_iou 0.5112699866294861, valid.f_f-score 0.71781: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.02it/s]
epoch 54 | valid.f_iou 0.5112699866294861, valid.f_f-score 0.71781: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.08it/s]
epoch 54 | valid.f_iou 0.514989972114563, valid.f_f-score 0.72207: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.08it/s]
epoch 54 | valid.f_iou 0.514989972114563, valid.f_f-score 0.72207: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.12it/s]
epoch 54 | valid.f_iou 0.5025799870491028, valid.f_f-score 0.7091: 81%|█████████████████████████▏ | 13/16 [00:11<00:01, 2.12it/s]
epoch 54 | valid.f_iou 0.5025799870491028, valid.f_f-score 0.7091: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.16it/s]
epoch 54 | valid.f_iou 0.5103700160980225, valid.f_f-score 0.71015: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.16it/s]
epoch 54 | valid.f_iou 0.5103700160980225, valid.f_f-score 0.71015: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.20it/s]
epoch 54 | valid.f_iou 0.5184599757194519, valid.f_f-score 0.70939: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.20it/s]
epoch 54 | valid.f_iou 0.5184599757194519, valid.f_f-score 0.70939: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.35it/s]
epoch 54 | valid.f_iou 0.5184599757194519, valid.f_f-score 0.70939: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.31it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 54 | valid.f_iou 0.7627300024032593, valid.f_f-score 0.7751: 0%| | 0/16 [00:04, ?it/s]
epoch 54 | valid.f_iou 0.7627300024032593, valid.f_f-score 0.7751: 6%|██ | 1/16 [00:04<01:09, 4.65s/it]
epoch 54 | valid.f_iou 0.8156899809837341, valid.f_f-score 0.86279: 6%|█▉ | 1/16 [00:05<01:09, 4.65s/it]
epoch 54 | valid.f_iou 0.8156899809837341, valid.f_f-score 0.86279: 12%|███▉ | 2/16 [00:05<00:33, 2.40s/it]
epoch 54 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.80267: 12%|███▉ | 2/16 [00:05<00:33, 2.40s/it]
epoch 54 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.80267: 19%|█████▊ | 3/16 [00:05<00:19, 1.52s/it]
epoch 54 | valid.f_iou 0.6797000169754028, valid.f_f-score 0.75531: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 54 | valid.f_iou 0.6797000169754028, valid.f_f-score 0.75531: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 54 | valid.f_iou 0.6793400049209595, valid.f_f-score 0.76683: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 54 | valid.f_iou 0.6793400049209595, valid.f_f-score 0.76683: 31%|█████████▋ | 5/16 [00:06<00:09, 1.16it/s]
epoch 54 | valid.f_iou 0.6476500034332275, valid.f_f-score 0.74089: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 54 | valid.f_iou 0.6476500034332275, valid.f_f-score 0.74089: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 54 | valid.f_iou 0.6721000075340271, valid.f_f-score 0.7709: 38%|████████████ | 6/16 [00:07<00:07, 1.41it/s]
epoch 54 | valid.f_iou 0.6721000075340271, valid.f_f-score 0.7709: 44%|██████████████ | 7/16 [00:07<00:05, 1.58it/s]
epoch 54 | valid.f_iou 0.6659799814224243, valid.f_f-score 0.77133: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 54 | valid.f_iou 0.6659799814224243, valid.f_f-score 0.77133: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 54 | valid.f_iou 0.6831499934196472, valid.f_f-score 0.782: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 54 | valid.f_iou 0.6831499934196472, valid.f_f-score 0.782: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.90it/s]
epoch 54 | valid.f_iou 0.6984400153160095, valid.f_f-score 0.79461: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 54 | valid.f_iou 0.6984400153160095, valid.f_f-score 0.79461: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 54 | valid.f_iou 0.695360004901886, valid.f_f-score 0.79195: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.01it/s]
epoch 54 | valid.f_iou 0.695360004901886, valid.f_f-score 0.79195: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.19it/s]
epoch 54 | valid.f_iou 0.7083399891853333, valid.f_f-score 0.80323: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 54 | valid.f_iou 0.7083399891853333, valid.f_f-score 0.80323: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 54 | valid.f_iou 0.7191799879074097, valid.f_f-score 0.81048: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.25it/s]
epoch 54 | valid.f_iou 0.7191799879074097, valid.f_f-score 0.81048: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 54 | valid.f_iou 0.705590009689331, valid.f_f-score 0.80149: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.38it/s]
epoch 54 | valid.f_iou 0.705590009689331, valid.f_f-score 0.80149: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.49it/s]
epoch 54 | valid.f_iou 0.7129899859428406, valid.f_f-score 0.80964: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 54 | valid.f_iou 0.7129899859428406, valid.f_f-score 0.80964: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 54 | valid.f_iou 0.7114700078964233, valid.f_f-score 0.80655: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 54 | valid.f_iou 0.7114700078964233, valid.f_f-score 0.80655: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 54 | valid.f_iou 0.7114700078964233, valid.f_f-score 0.80655: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 54 | valid.f_iou 0.7627300024032593, valid.f_f-score 0.7751: 0%| | 0/16 [00:04, ?it/s]
epoch 54 | valid.f_iou 0.7627300024032593, valid.f_f-score 0.7751: 6%|██ | 1/16 [00:04<01:06, 4.43s/it]
epoch 54 | valid.f_iou 0.8156899809837341, valid.f_f-score 0.86279: 6%|█▉ | 1/16 [00:04<01:06, 4.43s/it]
epoch 54 | valid.f_iou 0.8156899809837341, valid.f_f-score 0.86279: 12%|███▉ | 2/16 [00:04<00:29, 2.11s/it]
epoch 54 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.80267: 12%|███▉ | 2/16 [00:05<00:29, 2.11s/it]
epoch 54 | valid.f_iou 0.7113199830055237, valid.f_f-score 0.80267: 19%|█████▊ | 3/16 [00:05<00:17, 1.35s/it]
epoch 54 | valid.f_iou 0.6798700094223022, valid.f_f-score 0.75531: 19%|█████▊ | 3/16 [00:05<00:17, 1.35s/it]
epoch 54 | valid.f_iou 0.6798700094223022, valid.f_f-score 0.75531: 25%|███████▊ | 4/16 [00:05<00:12, 1.00s/it]
epoch 54 | valid.f_iou 0.6846500039100647, valid.f_f-score 0.76683: 25%|███████▊ | 4/16 [00:06<00:12, 1.00s/it]
epoch 54 | valid.f_iou 0.6846500039100647, valid.f_f-score 0.76683: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 54 | valid.f_iou 0.6520699858665466, valid.f_f-score 0.74089: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 54 | valid.f_iou 0.6520699858665466, valid.f_f-score 0.74089: 38%|███████████▋ | 6/16 [00:06<00:06, 1.46it/s]
epoch 54 | valid.f_iou 0.6787700057029724, valid.f_f-score 0.7709: 38%|████████████ | 6/16 [00:07<00:06, 1.46it/s]
epoch 54 | valid.f_iou 0.6787700057029724, valid.f_f-score 0.7709: 44%|██████████████ | 7/16 [00:07<00:05, 1.65it/s]
epoch 54 | valid.f_iou 0.67180997133255, valid.f_f-score 0.77133: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.65it/s]
epoch 54 | valid.f_iou 0.67180997133255, valid.f_f-score 0.77133: 50%|████████████████▌ | 8/16 [00:07<00:04, 1.81it/s]
epoch 54 | valid.f_iou 0.6912099719047546, valid.f_f-score 0.782: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 54 | valid.f_iou 0.6912099719047546, valid.f_f-score 0.782: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.98it/s]
epoch 54 | valid.f_iou 0.7009999752044678, valid.f_f-score 0.79095: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 54 | valid.f_iou 0.7009999752044678, valid.f_f-score 0.79095: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 54 | valid.f_iou 0.6976900100708008, valid.f_f-score 0.78863: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 54 | valid.f_iou 0.6976900100708008, valid.f_f-score 0.78863: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.33it/s]
epoch 54 | valid.f_iou 0.7104799747467041, valid.f_f-score 0.80018: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.33it/s]
epoch 54 | valid.f_iou 0.7104799747467041, valid.f_f-score 0.80018: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.44it/s]
epoch 54 | valid.f_iou 0.7175099849700928, valid.f_f-score 0.8052: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.44it/s]
epoch 54 | valid.f_iou 0.7175099849700928, valid.f_f-score 0.8052: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.53it/s]
epoch 54 | valid.f_iou 0.704039990901947, valid.f_f-score 0.7966: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.53it/s]
epoch 54 | valid.f_iou 0.704039990901947, valid.f_f-score 0.7966: 88%|████████████████████████████ | 14/16 [00:09<00:00, 2.60it/s]
epoch 54 | valid.f_iou 0.7115399837493896, valid.f_f-score 0.80508: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 54 | valid.f_iou 0.7115399837493896, valid.f_f-score 0.80508: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 54 | valid.f_iou 0.711139976978302, valid.f_f-score 0.80227: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 54 | valid.f_iou 0.711139976978302, valid.f_f-score 0.80227: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 54 | valid.f_iou 0.711139976978302, valid.f_f-score 0.80227: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 55 | loss 1.361548662185669, f_iou 0.15428118407726288: 0%| | 0/74 [00:06, ?it/s]
epoch 55 | loss 1.361548662185669, f_iou 0.15428118407726288: 1%|▌ | 1/74 [00:06<07:46, 6.39s/it]
epoch 55 | loss 1.1330475807189941, f_iou 0.46443405747413635: 1%|▍ | 1/74 [00:07<07:46, 6.39s/it]
epoch 55 | loss 1.1330475807189941, f_iou 0.46443405747413635: 3%|▉ | 2/74 [00:07<03:46, 3.14s/it]
epoch 55 | loss 0.8488249182701111, f_iou 0.45487892627716064: 3%|▉ | 2/74 [00:08<03:46, 3.14s/it]
epoch 55 | loss 0.8488249182701111, f_iou 0.45487892627716064: 4%|█▍ | 3/74 [00:08<02:28, 2.09s/it]
epoch 55 | loss 3.1042821407318115, f_iou 0.5244762897491455: 4%|█▌ | 3/74 [00:08<02:28, 2.09s/it]
epoch 55 | loss 3.1042821407318115, f_iou 0.5244762897491455: 5%|██ | 4/74 [00:08<01:51, 1.59s/it]
epoch 55 | loss 1.948213815689087, f_iou 0.49434491991996765: 5%|██ | 4/74 [00:09<01:51, 1.59s/it]
epoch 55 | loss 1.948213815689087, f_iou 0.49434491991996765: 7%|██▌ | 5/74 [00:09<01:29, 1.30s/it]
epoch 55 | loss 1.2871055603027344, f_iou 0.4848420321941376: 7%|██▌ | 5/74 [00:10<01:29, 1.30s/it]
epoch 55 | loss 1.2871055603027344, f_iou 0.4848420321941376: 8%|███ | 6/74 [00:10<01:15, 1.12s/it]
epoch 55 | loss 0.740530252456665, f_iou 0.5422830581665039: 8%|███ | 6/74 [00:11<01:15, 1.12s/it]
epoch 55 | loss 0.740530252456665, f_iou 0.5422830581665039: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 55 | loss 0.6205179691314697, f_iou 0.475460410118103: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 55 | loss 0.6205179691314697, f_iou 0.475460410118103: 11%|████ | 8/74 [00:11<01:00, 1.08it/s]
epoch 55 | loss 0.2903239130973816, f_iou 0.4227415919303894: 11%|████ | 8/74 [00:12<01:00, 1.08it/s]
epoch 55 | loss 0.2903239130973816, f_iou 0.4227415919303894: 12%|████▌ | 9/74 [00:12<00:56, 1.15it/s]
epoch 55 | loss 2.8152544498443604, f_iou 0.41866299510002136: 12%|████▍ | 9/74 [00:13<00:56, 1.15it/s]
epoch 55 | loss 2.8152544498443604, f_iou 0.41866299510002136: 14%|████▋ | 10/74 [00:13<00:53, 1.19it/s]
epoch 55 | loss 1.7709803581237793, f_iou 0.4447125792503357: 14%|████▊ | 10/74 [00:14<00:53, 1.19it/s]
epoch 55 | loss 1.7709803581237793, f_iou 0.4447125792503357: 15%|█████▎ | 11/74 [00:14<00:51, 1.22it/s]
epoch 55 | loss 3.46429443359375, f_iou 0.4556819200515747: 15%|█████▋ | 11/74 [00:14<00:51, 1.22it/s]
epoch 55 | loss 3.46429443359375, f_iou 0.4556819200515747: 16%|██████▏ | 12/74 [00:14<00:48, 1.27it/s]
epoch 55 | loss 1.3955504894256592, f_iou 0.4608776867389679: 16%|█████▊ | 12/74 [00:15<00:48, 1.27it/s]
epoch 55 | loss 1.3955504894256592, f_iou 0.4608776867389679: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 55 | loss 2.2648353576660156, f_iou 0.47093504667282104: 18%|██████▏ | 13/74 [00:16<00:46, 1.31it/s]
epoch 55 | loss 2.2648353576660156, f_iou 0.47093504667282104: 19%|██████▌ | 14/74 [00:16<00:45, 1.33it/s]
epoch 55 | loss 0.6440774202346802, f_iou 0.5035001635551453: 19%|██████▊ | 14/74 [00:17<00:45, 1.33it/s]
epoch 55 | loss 0.6440774202346802, f_iou 0.5035001635551453: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 55 | loss 0.637972891330719, f_iou 0.4793097674846649: 20%|███████▌ | 15/74 [00:17<00:43, 1.35it/s]
epoch 55 | loss 0.637972891330719, f_iou 0.4793097674846649: 22%|████████ | 16/74 [00:17<00:42, 1.36it/s]
epoch 55 | loss 1.3370583057403564, f_iou 0.5000616908073425: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 55 | loss 1.3370583057403564, f_iou 0.5000616908073425: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 55 | loss 0.9058355093002319, f_iou 0.4761446416378021: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 55 | loss 0.9058355093002319, f_iou 0.4761446416378021: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 55 | loss 2.355180263519287, f_iou 0.48308703303337097: 24%|████████▊ | 18/74 [00:20<00:40, 1.38it/s]
epoch 55 | loss 2.355180263519287, f_iou 0.48308703303337097: 26%|█████████▏ | 19/74 [00:20<00:39, 1.39it/s]
epoch 55 | loss 1.4928646087646484, f_iou 0.4982268512248993: 26%|█████████▏ | 19/74 [00:20<00:39, 1.39it/s]
epoch 55 | loss 1.4928646087646484, f_iou 0.4982268512248993: 27%|█████████▋ | 20/74 [00:20<00:39, 1.37it/s]
epoch 55 | loss 2.2216668128967285, f_iou 0.5007210969924927: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 55 | loss 2.2216668128967285, f_iou 0.5007210969924927: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 55 | loss 2.3838448524475098, f_iou 0.49072274565696716: 28%|█████████▉ | 21/74 [00:22<00:38, 1.38it/s]
epoch 55 | loss 2.3838448524475098, f_iou 0.49072274565696716: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 55 | loss 1.9651228189468384, f_iou 0.48105934262275696: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 55 | loss 1.9651228189468384, f_iou 0.48105934262275696: 31%|██████████▉ | 23/74 [00:22<00:36, 1.38it/s]
epoch 55 | loss 2.5182626247406006, f_iou 0.46935009956359863: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 55 | loss 2.5182626247406006, f_iou 0.46935009956359863: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 55 | loss 1.0374679565429688, f_iou 0.48321089148521423: 32%|███████████▎ | 24/74 [00:24<00:36, 1.38it/s]
epoch 55 | loss 1.0374679565429688, f_iou 0.48321089148521423: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 55 | loss 1.030867576599121, f_iou 0.49986085295677185: 34%|████████████▏ | 25/74 [00:25<00:35, 1.39it/s]
epoch 55 | loss 1.030867576599121, f_iou 0.49986085295677185: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 55 | loss 2.437788486480713, f_iou 0.5015390515327454: 35%|█████████████ | 26/74 [00:25<00:34, 1.39it/s]
epoch 55 | loss 2.437788486480713, f_iou 0.5015390515327454: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 55 | loss 0.6120554208755493, f_iou 0.5165148973464966: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 55 | loss 0.6120554208755493, f_iou 0.5165148973464966: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 55 | loss 1.9835829734802246, f_iou 0.5147099494934082: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 55 | loss 1.9835829734802246, f_iou 0.5147099494934082: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 55 | loss 2.032048463821411, f_iou 0.5044822096824646: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.40it/s]
epoch 55 | loss 2.032048463821411, f_iou 0.5044822096824646: 41%|███████████████ | 30/74 [00:27<00:31, 1.40it/s]
epoch 55 | loss 3.537935256958008, f_iou 0.5005692839622498: 41%|███████████████ | 30/74 [00:28<00:31, 1.40it/s]
epoch 55 | loss 3.537935256958008, f_iou 0.5005692839622498: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.40it/s]
epoch 55 | loss 0.3684416711330414, f_iou 0.48495885729789734: 42%|██████████████▋ | 31/74 [00:29<00:30, 1.40it/s]
epoch 55 | loss 0.3684416711330414, f_iou 0.48495885729789734: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.40it/s]
epoch 55 | loss 0.8961242437362671, f_iou 0.4968551993370056: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.40it/s]
epoch 55 | loss 0.8961242437362671, f_iou 0.4968551993370056: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 55 | loss 1.6034729480743408, f_iou 0.5051331520080566: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 55 | loss 1.6034729480743408, f_iou 0.5051331520080566: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 55 | loss 1.6063439846038818, f_iou 0.51312655210495: 46%|█████████████████▍ | 34/74 [00:31<00:28, 1.39it/s]
epoch 55 | loss 1.6063439846038818, f_iou 0.51312655210495: 47%|█████████████████▉ | 35/74 [00:31<00:28, 1.39it/s]
epoch 55 | loss 2.951807975769043, f_iou 0.49888643622398376: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 55 | loss 2.951807975769043, f_iou 0.49888643622398376: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 55 | loss 2.1194701194763184, f_iou 0.4962685704231262: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 55 | loss 2.1194701194763184, f_iou 0.4962685704231262: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 55 | loss 1.3532978296279907, f_iou 0.48484066128730774: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 55 | loss 1.3532978296279907, f_iou 0.48484066128730774: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.40it/s]
epoch 55 | loss 0.7483769655227661, f_iou 0.48641133308410645: 51%|█████████████████▉ | 38/74 [00:34<00:25, 1.40it/s]
epoch 55 | loss 0.7483769655227661, f_iou 0.48641133308410645: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.40it/s]
epoch 55 | loss 1.9549386501312256, f_iou 0.4941144585609436: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.40it/s]
epoch 55 | loss 1.9549386501312256, f_iou 0.4941144585609436: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.40it/s]
epoch 55 | loss 1.274322271347046, f_iou 0.5037127733230591: 54%|████████████████████ | 40/74 [00:35<00:24, 1.40it/s]
epoch 55 | loss 1.274322271347046, f_iou 0.5037127733230591: 55%|████████████████████▌ | 41/74 [00:35<00:23, 1.40it/s]
epoch 55 | loss 1.9687985181808472, f_iou 0.49686700105667114: 55%|███████████████████▍ | 41/74 [00:36<00:23, 1.40it/s]
epoch 55 | loss 1.9687985181808472, f_iou 0.49686700105667114: 57%|███████████████████▊ | 42/74 [00:36<00:22, 1.40it/s]
epoch 55 | loss 1.8865790367126465, f_iou 0.4993641972541809: 57%|████████████████████▍ | 42/74 [00:37<00:22, 1.40it/s]
epoch 55 | loss 1.8865790367126465, f_iou 0.4993641972541809: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.40it/s]
epoch 55 | loss 1.9108778238296509, f_iou 0.4993703365325928: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.40it/s]
epoch 55 | loss 1.9108778238296509, f_iou 0.4993703365325928: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.40it/s]
epoch 55 | loss 0.6630982160568237, f_iou 0.5091245770454407: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.40it/s]
epoch 55 | loss 0.6630982160568237, f_iou 0.5091245770454407: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.40it/s]
epoch 55 | loss 1.6934950351715088, f_iou 0.5117632746696472: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.40it/s]
epoch 55 | loss 1.6934950351715088, f_iou 0.5117632746696472: 62%|██████████████████████▍ | 46/74 [00:39<00:19, 1.40it/s]
epoch 55 | loss 3.6363797187805176, f_iou 0.5126422643661499: 62%|██████████████████████▍ | 46/74 [00:40<00:19, 1.40it/s]
epoch 55 | loss 3.6363797187805176, f_iou 0.5126422643661499: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 55 | loss 1.8349874019622803, f_iou 0.5149170160293579: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 55 | loss 1.8349874019622803, f_iou 0.5149170160293579: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.37it/s]
epoch 55 | loss 4.508170127868652, f_iou 0.5087901949882507: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.37it/s]
epoch 55 | loss 4.508170127868652, f_iou 0.5087901949882507: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.38it/s]
epoch 55 | loss 2.0654144287109375, f_iou 0.5155287981033325: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 55 | loss 2.0654144287109375, f_iou 0.5155287981033325: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 55 | loss 1.4026238918304443, f_iou 0.5196212530136108: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 55 | loss 1.4026238918304443, f_iou 0.5196212530136108: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 55 | loss 1.039462924003601, f_iou 0.5205354690551758: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.38it/s]
epoch 55 | loss 1.039462924003601, f_iou 0.5205354690551758: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 55 | loss 0.5109845399856567, f_iou 0.5233210921287537: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 55 | loss 0.5109845399856567, f_iou 0.5233210921287537: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 55 | loss 0.9295108914375305, f_iou 0.5293050408363342: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 55 | loss 0.9295108914375305, f_iou 0.5293050408363342: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 55 | loss 0.3986041247844696, f_iou 0.5357133746147156: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 55 | loss 0.3986041247844696, f_iou 0.5357133746147156: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 55 | loss 2.6265623569488525, f_iou 0.5349302887916565: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 55 | loss 2.6265623569488525, f_iou 0.5349302887916565: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.37it/s]
epoch 55 | loss 1.4319555759429932, f_iou 0.5387042760848999: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.37it/s]
epoch 55 | loss 1.4319555759429932, f_iou 0.5387042760848999: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.34it/s]
epoch 55 | loss 3.009024143218994, f_iou 0.5382637977600098: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.34it/s]
epoch 55 | loss 3.009024143218994, f_iou 0.5382637977600098: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.35it/s]
epoch 55 | loss 1.866202473640442, f_iou 0.5345566272735596: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.35it/s]
epoch 55 | loss 1.866202473640442, f_iou 0.5345566272735596: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.37it/s]
epoch 55 | loss 3.237192153930664, f_iou 0.5375222563743591: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.37it/s]
epoch 55 | loss 3.237192153930664, f_iou 0.5375222563743591: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.36it/s]
epoch 55 | loss 0.9592275619506836, f_iou 0.5433352589607239: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.36it/s]
epoch 55 | loss 0.9592275619506836, f_iou 0.5433352589607239: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.37it/s]
epoch 55 | loss 0.8389514684677124, f_iou 0.5485745668411255: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.37it/s]
epoch 55 | loss 0.8389514684677124, f_iou 0.5485745668411255: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.37it/s]
epoch 55 | loss 1.6789557933807373, f_iou 0.5485644936561584: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.37it/s]
epoch 55 | loss 1.6789557933807373, f_iou 0.5485644936561584: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 55 | loss 1.2326414585113525, f_iou 0.5507357120513916: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 55 | loss 1.2326414585113525, f_iou 0.5507357120513916: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.37it/s]
epoch 55 | loss 1.1183857917785645, f_iou 0.554574728012085: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.37it/s]
epoch 55 | loss 1.1183857917785645, f_iou 0.554574728012085: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 55 | loss 2.2541494369506836, f_iou 0.5588338971138: 88%|██████████████████████████████████▎ | 65/74 [00:53<00:06, 1.37it/s]
epoch 55 | loss 2.2541494369506836, f_iou 0.5588338971138: 89%|██████████████████████████████████▊ | 66/74 [00:53<00:05, 1.38it/s]
epoch 55 | loss 2.503140449523926, f_iou 0.5616291165351868: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 55 | loss 2.503140449523926, f_iou 0.5616291165351868: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 55 | loss 1.4771418571472168, f_iou 0.5635659098625183: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 55 | loss 1.4771418571472168, f_iou 0.5635659098625183: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 55 | loss 0.8326228857040405, f_iou 0.5611209273338318: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 55 | loss 0.8326228857040405, f_iou 0.5611209273338318: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 55 | loss 0.8698232173919678, f_iou 0.5595799684524536: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 55 | loss 0.8698232173919678, f_iou 0.5595799684524536: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 55 | loss 0.4980107545852661, f_iou 0.5646952986717224: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 55 | loss 0.4980107545852661, f_iou 0.5646952986717224: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 55 | loss 4.617966175079346, f_iou 0.5657227635383606: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 55 | loss 4.617966175079346, f_iou 0.5657227635383606: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 55 | loss 2.0246386528015137, f_iou 0.5679553747177124: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 55 | loss 2.0246386528015137, f_iou 0.5679553747177124: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 55 | loss 0.36051952838897705, f_iou 0.570638120174408: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 55 | loss 0.36051952838897705, f_iou 0.570638120174408: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 55 | loss 0.36051952838897705, f_iou 0.570638120174408: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 55 | valid.f_iou 0.710099995136261, valid.f_f-score 0.88472: 0%| | 0/16 [00:05, ?it/s]
epoch 55 | valid.f_iou 0.710099995136261, valid.f_f-score 0.88472: 6%|██ | 1/16 [00:05<01:23, 5.54s/it]
epoch 55 | valid.f_iou 0.5445600152015686, valid.f_f-score 0.75264: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 55 | valid.f_iou 0.5445600152015686, valid.f_f-score 0.75264: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 55 | valid.f_iou 0.43911999464035034, valid.f_f-score 0.6831: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 55 | valid.f_iou 0.43911999464035034, valid.f_f-score 0.6831: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 55 | valid.f_iou 0.4982999861240387, valid.f_f-score 0.69936: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 55 | valid.f_iou 0.4982999861240387, valid.f_f-score 0.69936: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 55 | valid.f_iou 0.4769600033760071, valid.f_f-score 0.69198: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 55 | valid.f_iou 0.4769600033760071, valid.f_f-score 0.69198: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 55 | valid.f_iou 0.46094998717308044, valid.f_f-score 0.66876: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 55 | valid.f_iou 0.46094998717308044, valid.f_f-score 0.66876: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 55 | valid.f_iou 0.4873499870300293, valid.f_f-score 0.69214: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 55 | valid.f_iou 0.4873499870300293, valid.f_f-score 0.69214: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 55 | valid.f_iou 0.4752199947834015, valid.f_f-score 0.67937: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 55 | valid.f_iou 0.4752199947834015, valid.f_f-score 0.67937: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 55 | valid.f_iou 0.4744200110435486, valid.f_f-score 0.66556: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 55 | valid.f_iou 0.4744200110435486, valid.f_f-score 0.66556: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 55 | valid.f_iou 0.46584999561309814, valid.f_f-score 0.66985: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 55 | valid.f_iou 0.46584999561309814, valid.f_f-score 0.66985: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.01it/s]
epoch 55 | valid.f_iou 0.4662100076675415, valid.f_f-score 0.67103: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 55 | valid.f_iou 0.4662100076675415, valid.f_f-score 0.67103: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 55 | valid.f_iou 0.4875600039958954, valid.f_f-score 0.69068: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.18it/s]
epoch 55 | valid.f_iou 0.4875600039958954, valid.f_f-score 0.69068: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 55 | valid.f_iou 0.4858799874782562, valid.f_f-score 0.69419: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 55 | valid.f_iou 0.4858799874782562, valid.f_f-score 0.69419: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 55 | valid.f_iou 0.46873998641967773, valid.f_f-score 0.67795: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 55 | valid.f_iou 0.46873998641967773, valid.f_f-score 0.67795: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 55 | valid.f_iou 0.4698899984359741, valid.f_f-score 0.67746: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 55 | valid.f_iou 0.4698899984359741, valid.f_f-score 0.67746: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 55 | valid.f_iou 0.4790000021457672, valid.f_f-score 0.67719: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 55 | valid.f_iou 0.4790000021457672, valid.f_f-score 0.67719: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 55 | valid.f_iou 0.4790000021457672, valid.f_f-score 0.67719: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 55 | valid.f_iou 0.821120023727417, valid.f_f-score 0.90387: 0%| | 0/16 [00:05, ?it/s]
epoch 55 | valid.f_iou 0.821120023727417, valid.f_f-score 0.90387: 6%|██ | 1/16 [00:05<01:21, 5.43s/it]
epoch 55 | valid.f_iou 0.815500020980835, valid.f_f-score 0.91033: 6%|██ | 1/16 [00:05<01:21, 5.43s/it]
epoch 55 | valid.f_iou 0.815500020980835, valid.f_f-score 0.91033: 12%|████ | 2/16 [00:05<00:35, 2.51s/it]
epoch 55 | valid.f_iou 0.7015200257301331, valid.f_f-score 0.83177: 12%|███▉ | 2/16 [00:06<00:35, 2.51s/it]
epoch 55 | valid.f_iou 0.7015200257301331, valid.f_f-score 0.83177: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 55 | valid.f_iou 0.6736800074577332, valid.f_f-score 0.77713: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 55 | valid.f_iou 0.6736800074577332, valid.f_f-score 0.77713: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 55 | valid.f_iou 0.6673099994659424, valid.f_f-score 0.77959: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 55 | valid.f_iou 0.6673099994659424, valid.f_f-score 0.77959: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 55 | valid.f_iou 0.6308299899101257, valid.f_f-score 0.74971: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 55 | valid.f_iou 0.6308299899101257, valid.f_f-score 0.74971: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 55 | valid.f_iou 0.6602200269699097, valid.f_f-score 0.77889: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 55 | valid.f_iou 0.6602200269699097, valid.f_f-score 0.77889: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 55 | valid.f_iou 0.654449999332428, valid.f_f-score 0.7754: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.60it/s]
epoch 55 | valid.f_iou 0.654449999332428, valid.f_f-score 0.7754: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 55 | valid.f_iou 0.6779900193214417, valid.f_f-score 0.79028: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 55 | valid.f_iou 0.6779900193214417, valid.f_f-score 0.79028: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 55 | valid.f_iou 0.6840999722480774, valid.f_f-score 0.79971: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.03it/s]
epoch 55 | valid.f_iou 0.6840999722480774, valid.f_f-score 0.79971: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 55 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.78888: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 55 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.78888: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 55 | valid.f_iou 0.6949700117111206, valid.f_f-score 0.80037: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 55 | valid.f_iou 0.6949700117111206, valid.f_f-score 0.80037: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 55 | valid.f_iou 0.7028099894523621, valid.f_f-score 0.80552: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.47it/s]
epoch 55 | valid.f_iou 0.7028099894523621, valid.f_f-score 0.80552: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 55 | valid.f_iou 0.6870599985122681, valid.f_f-score 0.79524: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 55 | valid.f_iou 0.6870599985122681, valid.f_f-score 0.79524: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 55 | valid.f_iou 0.6991599798202515, valid.f_f-score 0.80559: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.63it/s]
epoch 55 | valid.f_iou 0.6991599798202515, valid.f_f-score 0.80559: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.67it/s]
epoch 55 | valid.f_iou 0.6966599822044373, valid.f_f-score 0.80171: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.67it/s]
epoch 55 | valid.f_iou 0.6966599822044373, valid.f_f-score 0.80171: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.70it/s]
epoch 55 | valid.f_iou 0.6966599822044373, valid.f_f-score 0.80171: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 55 | valid.f_iou 0.821120023727417, valid.f_f-score 0.90387: 0%| | 0/16 [00:04, ?it/s]
epoch 55 | valid.f_iou 0.821120023727417, valid.f_f-score 0.90387: 6%|██ | 1/16 [00:04<01:11, 4.79s/it]
epoch 55 | valid.f_iou 0.7513800263404846, valid.f_f-score 0.85603: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 55 | valid.f_iou 0.7513800263404846, valid.f_f-score 0.85603: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 55 | valid.f_iou 0.6587700247764587, valid.f_f-score 0.79557: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 55 | valid.f_iou 0.6587700247764587, valid.f_f-score 0.79557: 19%|█████▊ | 3/16 [00:05<00:18, 1.42s/it]
epoch 55 | valid.f_iou 0.6361500024795532, valid.f_f-score 0.74105: 19%|█████▊ | 3/16 [00:06<00:18, 1.42s/it]
epoch 55 | valid.f_iou 0.6361500024795532, valid.f_f-score 0.74105: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 55 | valid.f_iou 0.643589973449707, valid.f_f-score 0.75072: 25%|████████ | 4/16 [00:06<00:12, 1.03s/it]
epoch 55 | valid.f_iou 0.643589973449707, valid.f_f-score 0.75072: 31%|██████████ | 5/16 [00:06<00:08, 1.23it/s]
epoch 55 | valid.f_iou 0.6110600233078003, valid.f_f-score 0.72565: 31%|█████████▋ | 5/16 [00:06<00:08, 1.23it/s]
epoch 55 | valid.f_iou 0.6110600233078003, valid.f_f-score 0.72565: 38%|███████████▋ | 6/16 [00:06<00:06, 1.46it/s]
epoch 55 | valid.f_iou 0.6474000215530396, valid.f_f-score 0.75827: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 55 | valid.f_iou 0.6474000215530396, valid.f_f-score 0.75827: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 55 | valid.f_iou 0.6432300209999084, valid.f_f-score 0.75735: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 55 | valid.f_iou 0.6432300209999084, valid.f_f-score 0.75735: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 55 | valid.f_iou 0.6702899932861328, valid.f_f-score 0.77424: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 55 | valid.f_iou 0.6702899932861328, valid.f_f-score 0.77424: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 55 | valid.f_iou 0.6741600036621094, valid.f_f-score 0.78191: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 55 | valid.f_iou 0.6741600036621094, valid.f_f-score 0.78191: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.07it/s]
epoch 55 | valid.f_iou 0.6597099900245667, valid.f_f-score 0.76553: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 55 | valid.f_iou 0.6597099900245667, valid.f_f-score 0.76553: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 55 | valid.f_iou 0.6754699945449829, valid.f_f-score 0.77897: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 55 | valid.f_iou 0.6754699945449829, valid.f_f-score 0.77897: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.15it/s]
epoch 55 | valid.f_iou 0.6797699928283691, valid.f_f-score 0.78334: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 55 | valid.f_iou 0.6797699928283691, valid.f_f-score 0.78334: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.17it/s]
epoch 55 | valid.f_iou 0.6651099920272827, valid.f_f-score 0.77092: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.17it/s]
epoch 55 | valid.f_iou 0.6651099920272827, valid.f_f-score 0.77092: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.19it/s]
epoch 55 | valid.f_iou 0.6786699891090393, valid.f_f-score 0.7829: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.19it/s]
epoch 55 | valid.f_iou 0.6786699891090393, valid.f_f-score 0.7829: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.21it/s]
epoch 55 | valid.f_iou 0.6753900051116943, valid.f_f-score 0.77658: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.21it/s]
epoch 55 | valid.f_iou 0.6753900051116943, valid.f_f-score 0.77658: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.22it/s]
epoch 55 | valid.f_iou 0.6753900051116943, valid.f_f-score 0.77658: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 56 | loss 0.5417091846466064, f_iou 0.0: 0%| | 0/74 [00:06, ?it/s]
epoch 56 | loss 0.5417091846466064, f_iou 0.0: 1%|▋ | 1/74 [00:06<07:59, 6.57s/it]
epoch 56 | loss 1.5619738101959229, f_iou 0.3355155289173126: 1%|▌ | 1/74 [00:07<07:59, 6.57s/it]
epoch 56 | loss 1.5619738101959229, f_iou 0.3355155289173126: 3%|█ | 2/74 [00:07<03:51, 3.21s/it]
epoch 56 | loss 0.5117578506469727, f_iou 0.38417908549308777: 3%|▉ | 2/74 [00:08<03:51, 3.21s/it]
epoch 56 | loss 0.5117578506469727, f_iou 0.38417908549308777: 4%|█▍ | 3/74 [00:08<02:33, 2.16s/it]
epoch 56 | loss 1.8671778440475464, f_iou 0.4264342188835144: 4%|█▌ | 3/74 [00:09<02:33, 2.16s/it]
epoch 56 | loss 1.8671778440475464, f_iou 0.4264342188835144: 5%|██ | 4/74 [00:09<01:54, 1.64s/it]
epoch 56 | loss 2.1070733070373535, f_iou 0.4647838771343231: 5%|██ | 4/74 [00:09<01:54, 1.64s/it]
epoch 56 | loss 2.1070733070373535, f_iou 0.4647838771343231: 7%|██▌ | 5/74 [00:09<01:32, 1.34s/it]
epoch 56 | loss 6.673103332519531, f_iou 0.44827044010162354: 7%|██▌ | 5/74 [00:10<01:32, 1.34s/it]
epoch 56 | loss 6.673103332519531, f_iou 0.44827044010162354: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 56 | loss 0.7985353469848633, f_iou 0.3914901614189148: 8%|███ | 6/74 [00:11<01:18, 1.15s/it]
epoch 56 | loss 0.7985353469848633, f_iou 0.3914901614189148: 9%|███▌ | 7/74 [00:11<01:09, 1.04s/it]
epoch 56 | loss 3.1943273544311523, f_iou 0.3771343231201172: 9%|███▌ | 7/74 [00:12<01:09, 1.04s/it]
epoch 56 | loss 3.1943273544311523, f_iou 0.3771343231201172: 11%|████ | 8/74 [00:12<01:03, 1.04it/s]
epoch 56 | loss 3.5417065620422363, f_iou 0.38496145606040955: 11%|███▉ | 8/74 [00:13<01:03, 1.04it/s]
epoch 56 | loss 3.5417065620422363, f_iou 0.38496145606040955: 12%|████▍ | 9/74 [00:13<00:59, 1.10it/s]
epoch 56 | loss 3.380558967590332, f_iou 0.3694332242012024: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 56 | loss 3.380558967590332, f_iou 0.3694332242012024: 14%|█████ | 10/74 [00:13<00:56, 1.14it/s]
epoch 56 | loss 2.776047945022583, f_iou 0.41723769903182983: 14%|████▊ | 10/74 [00:14<00:56, 1.14it/s]
epoch 56 | loss 2.776047945022583, f_iou 0.41723769903182983: 15%|█████▎ | 11/74 [00:14<00:53, 1.17it/s]
epoch 56 | loss 1.1154069900512695, f_iou 0.42625731229782104: 15%|█████▏ | 11/74 [00:15<00:53, 1.17it/s]
epoch 56 | loss 1.1154069900512695, f_iou 0.42625731229782104: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 56 | loss 1.401456594467163, f_iou 0.4540005922317505: 16%|██████ | 12/74 [00:16<00:51, 1.20it/s]
epoch 56 | loss 1.401456594467163, f_iou 0.4540005922317505: 18%|██████▌ | 13/74 [00:16<00:50, 1.22it/s]
epoch 56 | loss 1.5429314374923706, f_iou 0.47138094902038574: 18%|██████▏ | 13/74 [00:17<00:50, 1.22it/s]
epoch 56 | loss 1.5429314374923706, f_iou 0.47138094902038574: 19%|██████▌ | 14/74 [00:17<00:48, 1.25it/s]
epoch 56 | loss 2.0542194843292236, f_iou 0.4959298074245453: 19%|██████▊ | 14/74 [00:17<00:48, 1.25it/s]
epoch 56 | loss 2.0542194843292236, f_iou 0.4959298074245453: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 56 | loss 2.0062389373779297, f_iou 0.5071907639503479: 20%|███████▎ | 15/74 [00:18<00:45, 1.29it/s]
epoch 56 | loss 2.0062389373779297, f_iou 0.5071907639503479: 22%|███████▊ | 16/74 [00:18<00:44, 1.32it/s]
epoch 56 | loss 0.4726412296295166, f_iou 0.5275587439537048: 22%|███████▊ | 16/74 [00:19<00:44, 1.32it/s]
epoch 56 | loss 0.4726412296295166, f_iou 0.5275587439537048: 23%|████████▎ | 17/74 [00:19<00:42, 1.34it/s]
epoch 56 | loss 1.1354115009307861, f_iou 0.5468625426292419: 23%|████████▎ | 17/74 [00:19<00:42, 1.34it/s]
epoch 56 | loss 1.1354115009307861, f_iou 0.5468625426292419: 24%|████████▊ | 18/74 [00:19<00:41, 1.35it/s]
epoch 56 | loss 0.5931106805801392, f_iou 0.5180923342704773: 24%|████████▊ | 18/74 [00:20<00:41, 1.35it/s]
epoch 56 | loss 0.5931106805801392, f_iou 0.5180923342704773: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 56 | loss 3.4125022888183594, f_iou 0.5222794413566589: 26%|█████████▏ | 19/74 [00:21<00:40, 1.36it/s]
epoch 56 | loss 3.4125022888183594, f_iou 0.5222794413566589: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 56 | loss 2.9915194511413574, f_iou 0.5215497612953186: 27%|█████████▋ | 20/74 [00:22<00:39, 1.37it/s]
epoch 56 | loss 2.9915194511413574, f_iou 0.5215497612953186: 28%|██████████▏ | 21/74 [00:22<00:38, 1.38it/s]
epoch 56 | loss 0.996837854385376, f_iou 0.5369864702224731: 28%|██████████▌ | 21/74 [00:22<00:38, 1.38it/s]
epoch 56 | loss 0.996837854385376, f_iou 0.5369864702224731: 30%|███████████ | 22/74 [00:22<00:37, 1.38it/s]
epoch 56 | loss 1.5741596221923828, f_iou 0.535398542881012: 30%|███████████ | 22/74 [00:23<00:37, 1.38it/s]
epoch 56 | loss 1.5741596221923828, f_iou 0.535398542881012: 31%|███████████▌ | 23/74 [00:23<00:36, 1.38it/s]
epoch 56 | loss 0.5400223135948181, f_iou 0.5507118701934814: 31%|███████████▏ | 23/74 [00:24<00:36, 1.38it/s]
epoch 56 | loss 0.5400223135948181, f_iou 0.5507118701934814: 32%|███████████▋ | 24/74 [00:24<00:36, 1.39it/s]
epoch 56 | loss 1.8706817626953125, f_iou 0.555938184261322: 32%|████████████ | 24/74 [00:25<00:36, 1.39it/s]
epoch 56 | loss 1.8706817626953125, f_iou 0.555938184261322: 34%|████████████▌ | 25/74 [00:25<00:35, 1.39it/s]
epoch 56 | loss 0.6401186585426331, f_iou 0.5393787026405334: 34%|████████████▏ | 25/74 [00:25<00:35, 1.39it/s]
epoch 56 | loss 0.6401186585426331, f_iou 0.5393787026405334: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 56 | loss 0.5594789981842041, f_iou 0.5554566383361816: 35%|████████████▋ | 26/74 [00:26<00:34, 1.39it/s]
epoch 56 | loss 0.5594789981842041, f_iou 0.5554566383361816: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 56 | loss 1.2676420211791992, f_iou 0.5644436478614807: 36%|█████████████▏ | 27/74 [00:27<00:33, 1.39it/s]
epoch 56 | loss 1.2676420211791992, f_iou 0.5644436478614807: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 56 | loss 0.5277606248855591, f_iou 0.5628671050071716: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 56 | loss 0.5277606248855591, f_iou 0.5628671050071716: 39%|██████████████ | 29/74 [00:27<00:33, 1.34it/s]
epoch 56 | loss 0.3837255835533142, f_iou 0.5757971405982971: 39%|██████████████ | 29/74 [00:28<00:33, 1.34it/s]
epoch 56 | loss 0.3837255835533142, f_iou 0.5757971405982971: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.32it/s]
epoch 56 | loss 1.5402591228485107, f_iou 0.5665809512138367: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.32it/s]
epoch 56 | loss 1.5402591228485107, f_iou 0.5665809512138367: 42%|███████████████ | 31/74 [00:29<00:32, 1.30it/s]
epoch 56 | loss 1.5806375741958618, f_iou 0.5637751817703247: 42%|███████████████ | 31/74 [00:30<00:32, 1.30it/s]
epoch 56 | loss 1.5806375741958618, f_iou 0.5637751817703247: 43%|███████████████▌ | 32/74 [00:30<00:32, 1.29it/s]
epoch 56 | loss 0.9434385299682617, f_iou 0.5644997358322144: 43%|███████████████▌ | 32/74 [00:31<00:32, 1.29it/s]
epoch 56 | loss 0.9434385299682617, f_iou 0.5644997358322144: 45%|████████████████ | 33/74 [00:31<00:31, 1.28it/s]
epoch 56 | loss 1.655580997467041, f_iou 0.5485984086990356: 45%|████████████████▌ | 33/74 [00:31<00:31, 1.28it/s]
epoch 56 | loss 1.655580997467041, f_iou 0.5485984086990356: 46%|█████████████████ | 34/74 [00:31<00:30, 1.31it/s]
epoch 56 | loss 0.9376480579376221, f_iou 0.555022120475769: 46%|█████████████████ | 34/74 [00:32<00:30, 1.31it/s]
epoch 56 | loss 0.9376480579376221, f_iou 0.555022120475769: 47%|█████████████████▌ | 35/74 [00:32<00:29, 1.30it/s]
epoch 56 | loss 0.8891032934188843, f_iou 0.5642257332801819: 47%|█████████████████ | 35/74 [00:33<00:29, 1.30it/s]
epoch 56 | loss 0.8891032934188843, f_iou 0.5642257332801819: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.30it/s]
epoch 56 | loss 0.6677480340003967, f_iou 0.5629741549491882: 49%|█████████████████▌ | 36/74 [00:34<00:29, 1.30it/s]
epoch 56 | loss 0.6677480340003967, f_iou 0.5629741549491882: 50%|██████████████████ | 37/74 [00:34<00:28, 1.31it/s]
epoch 56 | loss 0.7952345609664917, f_iou 0.5731257200241089: 50%|██████████████████ | 37/74 [00:34<00:28, 1.31it/s]
epoch 56 | loss 0.7952345609664917, f_iou 0.5731257200241089: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 56 | loss 3.57529354095459, f_iou 0.5650618672370911: 51%|███████████████████▌ | 38/74 [00:35<00:26, 1.34it/s]
epoch 56 | loss 3.57529354095459, f_iou 0.5650618672370911: 53%|████████████████████ | 39/74 [00:35<00:25, 1.35it/s]
epoch 56 | loss 1.2506521940231323, f_iou 0.5534161925315857: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.35it/s]
epoch 56 | loss 1.2506521940231323, f_iou 0.5534161925315857: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.36it/s]
epoch 56 | loss 1.289806604385376, f_iou 0.5513941049575806: 54%|████████████████████ | 40/74 [00:37<00:24, 1.36it/s]
epoch 56 | loss 1.289806604385376, f_iou 0.5513941049575806: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.36it/s]
epoch 56 | loss 1.3037911653518677, f_iou 0.5535638928413391: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.36it/s]
epoch 56 | loss 1.3037911653518677, f_iou 0.5535638928413391: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.33it/s]
epoch 56 | loss 1.8658632040023804, f_iou 0.5609472990036011: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.33it/s]
epoch 56 | loss 1.8658632040023804, f_iou 0.5609472990036011: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.31it/s]
epoch 56 | loss 1.7941925525665283, f_iou 0.5607376098632812: 58%|████████████████████▉ | 43/74 [00:39<00:23, 1.31it/s]
epoch 56 | loss 1.7941925525665283, f_iou 0.5607376098632812: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.33it/s]
epoch 56 | loss 1.9323527812957764, f_iou 0.5670837759971619: 59%|█████████████████████▍ | 44/74 [00:40<00:22, 1.33it/s]
epoch 56 | loss 1.9323527812957764, f_iou 0.5670837759971619: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.35it/s]
epoch 56 | loss 3.4429290294647217, f_iou 0.5706398487091064: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.35it/s]
epoch 56 | loss 3.4429290294647217, f_iou 0.5706398487091064: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 56 | loss 1.091446876525879, f_iou 0.5606785416603088: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.36it/s]
epoch 56 | loss 1.091446876525879, f_iou 0.5606785416603088: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.36it/s]
epoch 56 | loss 2.6485424041748047, f_iou 0.5573174953460693: 64%|██████████████████████▊ | 47/74 [00:42<00:19, 1.36it/s]
epoch 56 | loss 2.6485424041748047, f_iou 0.5573174953460693: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.37it/s]
epoch 56 | loss 1.4231910705566406, f_iou 0.5630481243133545: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.37it/s]
epoch 56 | loss 1.4231910705566406, f_iou 0.5630481243133545: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 56 | loss 0.7816548943519592, f_iou 0.5663915276527405: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.38it/s]
epoch 56 | loss 0.7816548943519592, f_iou 0.5663915276527405: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 56 | loss 1.1136555671691895, f_iou 0.5709706544876099: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.38it/s]
epoch 56 | loss 1.1136555671691895, f_iou 0.5709706544876099: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 56 | loss 3.427572727203369, f_iou 0.5713435411453247: 69%|█████████████████████████▌ | 51/74 [00:45<00:16, 1.38it/s]
epoch 56 | loss 3.427572727203369, f_iou 0.5713435411453247: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.39it/s]
epoch 56 | loss 1.4646488428115845, f_iou 0.5627668499946594: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 56 | loss 1.4646488428115845, f_iou 0.5627668499946594: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 56 | loss 1.208956003189087, f_iou 0.5690109729766846: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.39it/s]
epoch 56 | loss 1.208956003189087, f_iou 0.5690109729766846: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 56 | loss 0.8853906393051147, f_iou 0.5599439144134521: 73%|██████████████████████████▎ | 54/74 [00:47<00:14, 1.38it/s]
epoch 56 | loss 0.8853906393051147, f_iou 0.5599439144134521: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.38it/s]
epoch 56 | loss 0.0, f_iou 0.5672023892402649: 74%|█████████████████████████████████████▉ | 55/74 [00:48<00:13, 1.38it/s]
epoch 56 | loss 0.0, f_iou 0.5672023892402649: 76%|██████████████████████████████████████▌ | 56/74 [00:48<00:13, 1.38it/s]
epoch 56 | loss 0.6847751140594482, f_iou 0.5596702694892883: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.38it/s]
epoch 56 | loss 0.6847751140594482, f_iou 0.5596702694892883: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 56 | loss 0.6768985986709595, f_iou 0.556520402431488: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.38it/s]
epoch 56 | loss 0.6768985986709595, f_iou 0.556520402431488: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.38it/s]
epoch 56 | loss 1.8549741506576538, f_iou 0.5574610233306885: 78%|████████████████████████████▏ | 58/74 [00:50<00:11, 1.38it/s]
epoch 56 | loss 1.8549741506576538, f_iou 0.5574610233306885: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.38it/s]
epoch 56 | loss 0.5005277991294861, f_iou 0.5643087029457092: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.38it/s]
epoch 56 | loss 0.5005277991294861, f_iou 0.5643087029457092: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 56 | loss 2.2781834602355957, f_iou 0.5641174912452698: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.39it/s]
epoch 56 | loss 2.2781834602355957, f_iou 0.5641174912452698: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.37it/s]
epoch 56 | loss 1.2532927989959717, f_iou 0.5652948021888733: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.37it/s]
epoch 56 | loss 1.2532927989959717, f_iou 0.5652948021888733: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.37it/s]
epoch 56 | loss 0.9276934266090393, f_iou 0.556321918964386: 84%|███████████████████████████████ | 62/74 [00:53<00:08, 1.37it/s]
epoch 56 | loss 0.9276934266090393, f_iou 0.556321918964386: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.38it/s]
epoch 56 | loss 3.5812506675720215, f_iou 0.5623037219047546: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 56 | loss 3.5812506675720215, f_iou 0.5623037219047546: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 56 | loss 0.979117751121521, f_iou 0.5537117719650269: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.38it/s]
epoch 56 | loss 0.979117751121521, f_iou 0.5537117719650269: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 56 | loss 0.7947024703025818, f_iou 0.5590167045593262: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.39it/s]
epoch 56 | loss 0.7947024703025818, f_iou 0.5590167045593262: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 56 | loss 3.6296463012695312, f_iou 0.5634401440620422: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 56 | loss 3.6296463012695312, f_iou 0.5634401440620422: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 56 | loss 0.4359999895095825, f_iou 0.5679019689559937: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 56 | loss 0.4359999895095825, f_iou 0.5679019689559937: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 56 | loss 2.82419490814209, f_iou 0.5717165470123291: 92%|██████████████████████████████████▉ | 68/74 [00:57<00:04, 1.39it/s]
epoch 56 | loss 2.82419490814209, f_iou 0.5717165470123291: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.40it/s]
epoch 56 | loss 0.4219605326652527, f_iou 0.575029730796814: 93%|██████████████████████████████████▌ | 69/74 [00:58<00:03, 1.40it/s]
epoch 56 | loss 0.4219605326652527, f_iou 0.575029730796814: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 56 | loss 0.920694887638092, f_iou 0.5783358216285706: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 56 | loss 0.920694887638092, f_iou 0.5783358216285706: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 56 | loss 0.4608485996723175, f_iou 0.5825343132019043: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 56 | loss 0.4608485996723175, f_iou 0.5825343132019043: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 56 | loss 1.3682332038879395, f_iou 0.5828728079795837: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.40it/s]
epoch 56 | loss 1.3682332038879395, f_iou 0.5828728079795837: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 56 | loss 2.5460638999938965, f_iou 0.5842140316963196: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 56 | loss 2.5460638999938965, f_iou 0.5842140316963196: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 56 | loss 2.5460638999938965, f_iou 0.5842140316963196: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 56 | valid.f_iou 0.7181000113487244, valid.f_f-score 0.86908: 0%| | 0/16 [00:05, ?it/s]
epoch 56 | valid.f_iou 0.7181000113487244, valid.f_f-score 0.86908: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 56 | valid.f_iou 0.5911300182342529, valid.f_f-score 0.77402: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 56 | valid.f_iou 0.5911300182342529, valid.f_f-score 0.77402: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 56 | valid.f_iou 0.49088001251220703, valid.f_f-score 0.7231: 12%|███▉ | 2/16 [00:06<00:35, 2.53s/it]
epoch 56 | valid.f_iou 0.49088001251220703, valid.f_f-score 0.7231: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 56 | valid.f_iou 0.553059995174408, valid.f_f-score 0.74429: 19%|██████ | 3/16 [00:06<00:20, 1.58s/it]
epoch 56 | valid.f_iou 0.553059995174408, valid.f_f-score 0.74429: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 56 | valid.f_iou 0.5277500152587891, valid.f_f-score 0.73281: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 56 | valid.f_iou 0.5277500152587891, valid.f_f-score 0.73281: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 56 | valid.f_iou 0.5029199719429016, valid.f_f-score 0.6967: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 56 | valid.f_iou 0.5029199719429016, valid.f_f-score 0.6967: 38%|████████████ | 6/16 [00:07<00:07, 1.35it/s]
epoch 56 | valid.f_iou 0.5313400030136108, valid.f_f-score 0.72033: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 56 | valid.f_iou 0.5313400030136108, valid.f_f-score 0.72033: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 56 | valid.f_iou 0.5136500000953674, valid.f_f-score 0.70991: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 56 | valid.f_iou 0.5136500000953674, valid.f_f-score 0.70991: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 56 | valid.f_iou 0.510200023651123, valid.f_f-score 0.6932: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 56 | valid.f_iou 0.510200023651123, valid.f_f-score 0.6932: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.96it/s]
epoch 56 | valid.f_iou 0.5054399967193604, valid.f_f-score 0.69623: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 56 | valid.f_iou 0.5054399967193604, valid.f_f-score 0.69623: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 56 | valid.f_iou 0.5059599876403809, valid.f_f-score 0.6951: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.14it/s]
epoch 56 | valid.f_iou 0.5059599876403809, valid.f_f-score 0.6951: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.29it/s]
epoch 56 | valid.f_iou 0.5293899774551392, valid.f_f-score 0.71407: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.29it/s]
epoch 56 | valid.f_iou 0.5293899774551392, valid.f_f-score 0.71407: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 56 | valid.f_iou 0.5369200110435486, valid.f_f-score 0.72585: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 56 | valid.f_iou 0.5369200110435486, valid.f_f-score 0.72585: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 56 | valid.f_iou 0.5194100141525269, valid.f_f-score 0.70947: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 56 | valid.f_iou 0.5194100141525269, valid.f_f-score 0.70947: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 56 | valid.f_iou 0.5242400169372559, valid.f_f-score 0.71012: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 56 | valid.f_iou 0.5242400169372559, valid.f_f-score 0.71012: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 56 | valid.f_iou 0.5308399796485901, valid.f_f-score 0.70892: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 56 | valid.f_iou 0.5308399796485901, valid.f_f-score 0.70892: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 56 | valid.f_iou 0.5308399796485901, valid.f_f-score 0.70892: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 56 | valid.f_iou 0.7465299963951111, valid.f_f-score 0.80268: 0%| | 0/16 [00:04, ?it/s]
epoch 56 | valid.f_iou 0.7465299963951111, valid.f_f-score 0.80268: 6%|█▉ | 1/16 [00:04<01:14, 4.98s/it]
epoch 56 | valid.f_iou 0.7946199774742126, valid.f_f-score 0.87285: 6%|█▉ | 1/16 [00:05<01:14, 4.98s/it]
epoch 56 | valid.f_iou 0.7946199774742126, valid.f_f-score 0.87285: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 56 | valid.f_iou 0.7382100224494934, valid.f_f-score 0.83738: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 56 | valid.f_iou 0.7382100224494934, valid.f_f-score 0.83738: 19%|█████▊ | 3/16 [00:05<00:18, 1.45s/it]
epoch 56 | valid.f_iou 0.7136200070381165, valid.f_f-score 0.82121: 19%|█████▊ | 3/16 [00:06<00:18, 1.45s/it]
epoch 56 | valid.f_iou 0.7136200070381165, valid.f_f-score 0.82121: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 56 | valid.f_iou 0.6827099919319153, valid.f_f-score 0.79845: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 56 | valid.f_iou 0.6827099919319153, valid.f_f-score 0.79845: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 56 | valid.f_iou 0.6589099764823914, valid.f_f-score 0.76202: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 56 | valid.f_iou 0.6589099764823914, valid.f_f-score 0.76202: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 56 | valid.f_iou 0.6821799874305725, valid.f_f-score 0.78698: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 56 | valid.f_iou 0.6821799874305725, valid.f_f-score 0.78698: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 56 | valid.f_iou 0.6651800274848938, valid.f_f-score 0.7698: 44%|██████████████ | 7/16 [00:08<00:05, 1.64it/s]
epoch 56 | valid.f_iou 0.6651800274848938, valid.f_f-score 0.7698: 50%|████████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 56 | valid.f_iou 0.6810500025749207, valid.f_f-score 0.78035: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 56 | valid.f_iou 0.6810500025749207, valid.f_f-score 0.78035: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 56 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.79466: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 56 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.79466: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.14it/s]
epoch 56 | valid.f_iou 0.6881999969482422, valid.f_f-score 0.77875: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 56 | valid.f_iou 0.6881999969482422, valid.f_f-score 0.77875: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 56 | valid.f_iou 0.7031300067901611, valid.f_f-score 0.79159: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 56 | valid.f_iou 0.7031300067901611, valid.f_f-score 0.79159: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 56 | valid.f_iou 0.7091299891471863, valid.f_f-score 0.80012: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 56 | valid.f_iou 0.7091299891471863, valid.f_f-score 0.80012: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.46it/s]
epoch 56 | valid.f_iou 0.701740026473999, valid.f_f-score 0.7947: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.46it/s]
epoch 56 | valid.f_iou 0.701740026473999, valid.f_f-score 0.7947: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.53it/s]
epoch 56 | valid.f_iou 0.7131900191307068, valid.f_f-score 0.80535: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 56 | valid.f_iou 0.7131900191307068, valid.f_f-score 0.80535: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 56 | valid.f_iou 0.7135999798774719, valid.f_f-score 0.80623: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 56 | valid.f_iou 0.7135999798774719, valid.f_f-score 0.80623: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 56 | valid.f_iou 0.7135999798774719, valid.f_f-score 0.80623: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 56 | valid.f_iou 0.7465299963951111, valid.f_f-score 0.80268: 0%| | 0/16 [00:04, ?it/s]
epoch 56 | valid.f_iou 0.7465299963951111, valid.f_f-score 0.80268: 6%|█▉ | 1/16 [00:04<01:13, 4.90s/it]
epoch 56 | valid.f_iou 0.7946199774742126, valid.f_f-score 0.87285: 6%|█▉ | 1/16 [00:05<01:13, 4.90s/it]
epoch 56 | valid.f_iou 0.7946199774742126, valid.f_f-score 0.87285: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 56 | valid.f_iou 0.7382100224494934, valid.f_f-score 0.83738: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 56 | valid.f_iou 0.7382100224494934, valid.f_f-score 0.83738: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 56 | valid.f_iou 0.7138800024986267, valid.f_f-score 0.82121: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 56 | valid.f_iou 0.7138800024986267, valid.f_f-score 0.82121: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 56 | valid.f_iou 0.688319981098175, valid.f_f-score 0.79845: 25%|████████ | 4/16 [00:06<00:12, 1.05s/it]
epoch 56 | valid.f_iou 0.688319981098175, valid.f_f-score 0.79845: 31%|██████████ | 5/16 [00:06<00:09, 1.19it/s]
epoch 56 | valid.f_iou 0.6635800004005432, valid.f_f-score 0.76202: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 56 | valid.f_iou 0.6635800004005432, valid.f_f-score 0.76202: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 56 | valid.f_iou 0.6880499720573425, valid.f_f-score 0.78698: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 56 | valid.f_iou 0.6880499720573425, valid.f_f-score 0.78698: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 56 | valid.f_iou 0.6703199744224548, valid.f_f-score 0.7698: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 56 | valid.f_iou 0.6703199744224548, valid.f_f-score 0.7698: 50%|████████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 56 | valid.f_iou 0.6899200081825256, valid.f_f-score 0.78035: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 56 | valid.f_iou 0.6899200081825256, valid.f_f-score 0.78035: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 56 | valid.f_iou 0.7027199864387512, valid.f_f-score 0.79106: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 56 | valid.f_iou 0.7027199864387512, valid.f_f-score 0.79106: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.21it/s]
epoch 56 | valid.f_iou 0.691540002822876, valid.f_f-score 0.77549: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.21it/s]
epoch 56 | valid.f_iou 0.691540002822876, valid.f_f-score 0.77549: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.35it/s]
epoch 56 | valid.f_iou 0.7061799764633179, valid.f_f-score 0.7886: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.35it/s]
epoch 56 | valid.f_iou 0.7061799764633179, valid.f_f-score 0.7886: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.45it/s]
epoch 56 | valid.f_iou 0.7082300186157227, valid.f_f-score 0.79416: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.45it/s]
epoch 56 | valid.f_iou 0.7082300186157227, valid.f_f-score 0.79416: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.54it/s]
epoch 56 | valid.f_iou 0.7009000182151794, valid.f_f-score 0.78915: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 56 | valid.f_iou 0.7009000182151794, valid.f_f-score 0.78915: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 56 | valid.f_iou 0.7124099731445312, valid.f_f-score 0.80018: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 56 | valid.f_iou 0.7124099731445312, valid.f_f-score 0.80018: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 56 | valid.f_iou 0.7138299942016602, valid.f_f-score 0.80138: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 56 | valid.f_iou 0.7138299942016602, valid.f_f-score 0.80138: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 56 | valid.f_iou 0.7138299942016602, valid.f_f-score 0.80138: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 57 | loss 0.8337531089782715, f_iou 0.007940152660012245: 0%| | 0/74 [00:05, ?it/s]
epoch 57 | loss 0.8337531089782715, f_iou 0.007940152660012245: 1%|▍ | 1/74 [00:05<06:53, 5.66s/it]
epoch 57 | loss 1.2340893745422363, f_iou 0.37584444880485535: 1%|▍ | 1/74 [00:06<06:53, 5.66s/it]
epoch 57 | loss 1.2340893745422363, f_iou 0.37584444880485535: 3%|▉ | 2/74 [00:06<03:20, 2.78s/it]
epoch 57 | loss 1.2722240686416626, f_iou 0.2596677243709564: 3%|█ | 2/74 [00:07<03:20, 2.78s/it]
epoch 57 | loss 1.2722240686416626, f_iou 0.2596677243709564: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 57 | loss 1.1710498332977295, f_iou 0.22345441579818726: 4%|█▍ | 3/74 [00:07<02:12, 1.86s/it]
epoch 57 | loss 1.1710498332977295, f_iou 0.22345441579818726: 5%|█▉ | 4/74 [00:07<01:40, 1.43s/it]
epoch 57 | loss 1.0666595697402954, f_iou 0.35860106348991394: 5%|█▉ | 4/74 [00:08<01:40, 1.43s/it]
epoch 57 | loss 1.0666595697402954, f_iou 0.35860106348991394: 7%|██▍ | 5/74 [00:08<01:22, 1.19s/it]
epoch 57 | loss 2.1758270263671875, f_iou 0.4312458634376526: 7%|██▌ | 5/74 [00:09<01:22, 1.19s/it]
epoch 57 | loss 2.1758270263671875, f_iou 0.4312458634376526: 8%|███ | 6/74 [00:09<01:11, 1.05s/it]
epoch 57 | loss 1.5065484046936035, f_iou 0.47167813777923584: 8%|██▉ | 6/74 [00:10<01:11, 1.05s/it]
epoch 57 | loss 1.5065484046936035, f_iou 0.47167813777923584: 9%|███▍ | 7/74 [00:10<01:02, 1.07it/s]
epoch 57 | loss 0.4191085696220398, f_iou 0.5121397972106934: 9%|███▌ | 7/74 [00:10<01:02, 1.07it/s]
epoch 57 | loss 0.4191085696220398, f_iou 0.5121397972106934: 11%|████ | 8/74 [00:10<00:57, 1.15it/s]
epoch 57 | loss 2.891136884689331, f_iou 0.5141989588737488: 11%|████ | 8/74 [00:11<00:57, 1.15it/s]
epoch 57 | loss 2.891136884689331, f_iou 0.5141989588737488: 12%|████▌ | 9/74 [00:11<00:53, 1.22it/s]
epoch 57 | loss 0.9687496423721313, f_iou 0.5332316756248474: 12%|████▌ | 9/74 [00:12<00:53, 1.22it/s]
epoch 57 | loss 0.9687496423721313, f_iou 0.5332316756248474: 14%|████▊ | 10/74 [00:12<00:50, 1.26it/s]
epoch 57 | loss 0.6823177337646484, f_iou 0.5244016647338867: 14%|████▊ | 10/74 [00:13<00:50, 1.26it/s]
epoch 57 | loss 0.6823177337646484, f_iou 0.5244016647338867: 15%|█████▎ | 11/74 [00:13<00:49, 1.27it/s]
epoch 57 | loss 1.2559363842010498, f_iou 0.5368554592132568: 15%|█████▎ | 11/74 [00:13<00:49, 1.27it/s]
epoch 57 | loss 1.2559363842010498, f_iou 0.5368554592132568: 16%|█████▊ | 12/74 [00:13<00:48, 1.28it/s]
epoch 57 | loss 1.612494707107544, f_iou 0.5682771801948547: 16%|██████ | 12/74 [00:14<00:48, 1.28it/s]
epoch 57 | loss 1.612494707107544, f_iou 0.5682771801948547: 18%|██████▌ | 13/74 [00:14<00:47, 1.28it/s]
epoch 57 | loss 3.8343238830566406, f_iou 0.5689202547073364: 18%|██████▎ | 13/74 [00:15<00:47, 1.28it/s]
epoch 57 | loss 3.8343238830566406, f_iou 0.5689202547073364: 19%|██████▊ | 14/74 [00:15<00:46, 1.30it/s]
epoch 57 | loss 0.9960806369781494, f_iou 0.5938063263893127: 19%|██████▊ | 14/74 [00:16<00:46, 1.30it/s]
epoch 57 | loss 0.9960806369781494, f_iou 0.5938063263893127: 20%|███████▎ | 15/74 [00:16<00:45, 1.31it/s]
epoch 57 | loss 0.9144653081893921, f_iou 0.6162706017494202: 20%|███████▎ | 15/74 [00:16<00:45, 1.31it/s]
epoch 57 | loss 0.9144653081893921, f_iou 0.6162706017494202: 22%|███████▊ | 16/74 [00:16<00:44, 1.29it/s]
epoch 57 | loss 0.9615854024887085, f_iou 0.6169065833091736: 22%|███████▊ | 16/74 [00:17<00:44, 1.29it/s]
epoch 57 | loss 0.9615854024887085, f_iou 0.6169065833091736: 23%|████████▎ | 17/74 [00:17<00:44, 1.28it/s]
epoch 57 | loss 1.2818942070007324, f_iou 0.6131600141525269: 23%|████████▎ | 17/74 [00:18<00:44, 1.28it/s]
epoch 57 | loss 1.2818942070007324, f_iou 0.6131600141525269: 24%|████████▊ | 18/74 [00:18<00:43, 1.28it/s]
epoch 57 | loss 2.473721504211426, f_iou 0.6052163243293762: 24%|█████████ | 18/74 [00:19<00:43, 1.28it/s]
epoch 57 | loss 2.473721504211426, f_iou 0.6052163243293762: 26%|█████████▌ | 19/74 [00:19<00:43, 1.28it/s]
epoch 57 | loss 1.3188382387161255, f_iou 0.6120977997779846: 26%|█████████▏ | 19/74 [00:20<00:43, 1.28it/s]
epoch 57 | loss 1.3188382387161255, f_iou 0.6120977997779846: 27%|█████████▋ | 20/74 [00:20<00:41, 1.31it/s]
epoch 57 | loss 1.165351390838623, f_iou 0.6244983673095703: 27%|██████████ | 20/74 [00:20<00:41, 1.31it/s]
epoch 57 | loss 1.165351390838623, f_iou 0.6244983673095703: 28%|██████████▌ | 21/74 [00:20<00:39, 1.34it/s]
epoch 57 | loss 1.4857420921325684, f_iou 0.6049813628196716: 28%|██████████▏ | 21/74 [00:21<00:39, 1.34it/s]
epoch 57 | loss 1.4857420921325684, f_iou 0.6049813628196716: 30%|██████████▋ | 22/74 [00:21<00:38, 1.36it/s]
epoch 57 | loss 1.1283422708511353, f_iou 0.5815756916999817: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 57 | loss 1.1283422708511353, f_iou 0.5815756916999817: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 57 | loss 2.915463447570801, f_iou 0.5773035883903503: 31%|███████████▌ | 23/74 [00:23<00:37, 1.37it/s]
epoch 57 | loss 2.915463447570801, f_iou 0.5773035883903503: 32%|████████████ | 24/74 [00:23<00:38, 1.31it/s]
epoch 57 | loss 1.2183934450149536, f_iou 0.5860275030136108: 32%|███████████▋ | 24/74 [00:23<00:38, 1.31it/s]
epoch 57 | loss 1.2183934450149536, f_iou 0.5860275030136108: 34%|████████████▏ | 25/74 [00:23<00:36, 1.33it/s]
epoch 57 | loss 2.1774227619171143, f_iou 0.5900874137878418: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 57 | loss 2.1774227619171143, f_iou 0.5900874137878418: 35%|████████████▋ | 26/74 [00:24<00:35, 1.35it/s]
epoch 57 | loss 0.4952623248100281, f_iou 0.5715107917785645: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 57 | loss 0.4952623248100281, f_iou 0.5715107917785645: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.36it/s]
epoch 57 | loss 1.5729632377624512, f_iou 0.5697683095932007: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.36it/s]
epoch 57 | loss 1.5729632377624512, f_iou 0.5697683095932007: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.37it/s]
epoch 57 | loss 3.5625243186950684, f_iou 0.5559706687927246: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 57 | loss 3.5625243186950684, f_iou 0.5559706687927246: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 57 | loss 1.62675142288208, f_iou 0.5461293458938599: 39%|██████████████▉ | 29/74 [00:27<00:32, 1.39it/s]
epoch 57 | loss 1.62675142288208, f_iou 0.5461293458938599: 41%|███████████████▍ | 30/74 [00:27<00:31, 1.39it/s]
epoch 57 | loss 1.079382061958313, f_iou 0.5565868616104126: 41%|███████████████ | 30/74 [00:28<00:31, 1.39it/s]
epoch 57 | loss 1.079382061958313, f_iou 0.5565868616104126: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.39it/s]
epoch 57 | loss 1.0886523723602295, f_iou 0.5651654005050659: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 57 | loss 1.0886523723602295, f_iou 0.5651654005050659: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.39it/s]
epoch 57 | loss 0.9679768085479736, f_iou 0.5711297392845154: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 57 | loss 0.9679768085479736, f_iou 0.5711297392845154: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 57 | loss 1.0281355381011963, f_iou 0.572406530380249: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 57 | loss 1.0281355381011963, f_iou 0.572406530380249: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 57 | loss 0.7658903002738953, f_iou 0.5705738067626953: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 57 | loss 0.7658903002738953, f_iou 0.5705738067626953: 47%|█████████████████ | 35/74 [00:30<00:27, 1.39it/s]
epoch 57 | loss 1.2437598705291748, f_iou 0.5676873922348022: 47%|█████████████████ | 35/74 [00:31<00:27, 1.39it/s]
epoch 57 | loss 1.2437598705291748, f_iou 0.5676873922348022: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.40it/s]
epoch 57 | loss 0.8272016644477844, f_iou 0.5764448046684265: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.40it/s]
epoch 57 | loss 0.8272016644477844, f_iou 0.5764448046684265: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 57 | loss 2.1385610103607178, f_iou 0.5663761496543884: 50%|██████████████████ | 37/74 [00:33<00:26, 1.40it/s]
epoch 57 | loss 2.1385610103607178, f_iou 0.5663761496543884: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 57 | loss 1.248046636581421, f_iou 0.5739519000053406: 51%|███████████████████ | 38/74 [00:33<00:25, 1.39it/s]
epoch 57 | loss 1.248046636581421, f_iou 0.5739519000053406: 53%|███████████████████▍ | 39/74 [00:33<00:25, 1.39it/s]
epoch 57 | loss 1.71817147731781, f_iou 0.5821041464805603: 53%|████████████████████ | 39/74 [00:34<00:25, 1.39it/s]
epoch 57 | loss 1.71817147731781, f_iou 0.5821041464805603: 54%|████████████████████▌ | 40/74 [00:34<00:24, 1.39it/s]
epoch 57 | loss 1.1007437705993652, f_iou 0.5870077013969421: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 57 | loss 1.1007437705993652, f_iou 0.5870077013969421: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 57 | loss 1.5838291645050049, f_iou 0.588907778263092: 55%|████████████████████▌ | 41/74 [00:35<00:23, 1.39it/s]
epoch 57 | loss 1.5838291645050049, f_iou 0.588907778263092: 57%|█████████████████████ | 42/74 [00:35<00:23, 1.38it/s]
epoch 57 | loss 4.08522367477417, f_iou 0.5887206196784973: 57%|█████████████████████▌ | 42/74 [00:36<00:23, 1.38it/s]
epoch 57 | loss 4.08522367477417, f_iou 0.5887206196784973: 58%|██████████████████████ | 43/74 [00:36<00:22, 1.40it/s]
epoch 57 | loss 2.185802936553955, f_iou 0.5889192819595337: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.40it/s]
epoch 57 | loss 2.185802936553955, f_iou 0.5889192819595337: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.38it/s]
epoch 57 | loss 1.9598281383514404, f_iou 0.575832188129425: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.38it/s]
epoch 57 | loss 1.9598281383514404, f_iou 0.575832188129425: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.34it/s]
epoch 57 | loss 1.707594871520996, f_iou 0.5785033106803894: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.34it/s]
epoch 57 | loss 1.707594871520996, f_iou 0.5785033106803894: 62%|███████████████████████ | 46/74 [00:39<00:21, 1.32it/s]
epoch 57 | loss 2.9194862842559814, f_iou 0.5678006410598755: 62%|██████████████████████▍ | 46/74 [00:39<00:21, 1.32it/s]
epoch 57 | loss 2.9194862842559814, f_iou 0.5678006410598755: 64%|██████████████████████▊ | 47/74 [00:39<00:20, 1.30it/s]
epoch 57 | loss 0.5372897386550903, f_iou 0.5708791017532349: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.30it/s]
epoch 57 | loss 0.5372897386550903, f_iou 0.5708791017532349: 65%|███████████████████████▎ | 48/74 [00:40<00:20, 1.30it/s]
epoch 57 | loss 1.7834587097167969, f_iou 0.5765436887741089: 65%|███████████████████████▎ | 48/74 [00:41<00:20, 1.30it/s]
epoch 57 | loss 1.7834587097167969, f_iou 0.5765436887741089: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.32it/s]
epoch 57 | loss 0.4704505205154419, f_iou 0.5738070011138916: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.32it/s]
epoch 57 | loss 0.4704505205154419, f_iou 0.5738070011138916: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.34it/s]
epoch 57 | loss 0.0, f_iou 0.5794307589530945: 68%|██████████████████████████████████▍ | 50/74 [00:42<00:17, 1.34it/s]
epoch 57 | loss 0.0, f_iou 0.5794307589530945: 69%|███████████████████████████████████▏ | 51/74 [00:42<00:17, 1.35it/s]
epoch 57 | loss 1.0597057342529297, f_iou 0.5774655342102051: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.35it/s]
epoch 57 | loss 1.0597057342529297, f_iou 0.5774655342102051: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.36it/s]
epoch 57 | loss 2.036613941192627, f_iou 0.576906144618988: 70%|██████████████████████████▋ | 52/74 [00:44<00:16, 1.36it/s]
epoch 57 | loss 2.036613941192627, f_iou 0.576906144618988: 72%|███████████████████████████▏ | 53/74 [00:44<00:15, 1.37it/s]
epoch 57 | loss 0.9198117852210999, f_iou 0.5828949809074402: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.37it/s]
epoch 57 | loss 0.9198117852210999, f_iou 0.5828949809074402: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.34it/s]
epoch 57 | loss 0.8541194200515747, f_iou 0.5831508040428162: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.34it/s]
epoch 57 | loss 0.8541194200515747, f_iou 0.5831508040428162: 74%|██████████████████████████▊ | 55/74 [00:45<00:14, 1.32it/s]
epoch 57 | loss 0.8066195845603943, f_iou 0.5858796834945679: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.32it/s]
epoch 57 | loss 0.8066195845603943, f_iou 0.5858796834945679: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.31it/s]
epoch 57 | loss 1.465502381324768, f_iou 0.5825714468955994: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.31it/s]
epoch 57 | loss 1.465502381324768, f_iou 0.5825714468955994: 77%|████████████████████████████▌ | 57/74 [00:47<00:13, 1.30it/s]
epoch 57 | loss 4.082455635070801, f_iou 0.5726403594017029: 77%|████████████████████████████▌ | 57/74 [00:48<00:13, 1.30it/s]
epoch 57 | loss 4.082455635070801, f_iou 0.5726403594017029: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.31it/s]
epoch 57 | loss 1.2144017219543457, f_iou 0.5752847194671631: 78%|████████████████████████████▏ | 58/74 [00:48<00:12, 1.31it/s]
epoch 57 | loss 1.2144017219543457, f_iou 0.5752847194671631: 80%|████████████████████████████▋ | 59/74 [00:48<00:11, 1.34it/s]
epoch 57 | loss 2.578346014022827, f_iou 0.5740610361099243: 80%|█████████████████████████████▌ | 59/74 [00:49<00:11, 1.34it/s]
epoch 57 | loss 2.578346014022827, f_iou 0.5740610361099243: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.35it/s]
epoch 57 | loss 0.9495284557342529, f_iou 0.579303503036499: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.35it/s]
epoch 57 | loss 0.9495284557342529, f_iou 0.579303503036499: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.36it/s]
epoch 57 | loss 1.90440833568573, f_iou 0.5764367580413818: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.36it/s]
epoch 57 | loss 1.90440833568573, f_iou 0.5764367580413818: 84%|███████████████████████████████▊ | 62/74 [00:50<00:08, 1.36it/s]
epoch 57 | loss 1.4284409284591675, f_iou 0.5761111974716187: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.36it/s]
epoch 57 | loss 1.4284409284591675, f_iou 0.5761111974716187: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.37it/s]
epoch 57 | loss 2.296560287475586, f_iou 0.5770506262779236: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.37it/s]
epoch 57 | loss 2.296560287475586, f_iou 0.5770506262779236: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 57 | loss 0.6292206048965454, f_iou 0.5778685808181763: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 57 | loss 0.6292206048965454, f_iou 0.5778685808181763: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 57 | loss 1.4283785820007324, f_iou 0.5796177387237549: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 57 | loss 1.4283785820007324, f_iou 0.5796177387237549: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 57 | loss 0.7677657604217529, f_iou 0.5852519273757935: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 57 | loss 0.7677657604217529, f_iou 0.5852519273757935: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 57 | loss 1.8360772132873535, f_iou 0.5856207609176636: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 57 | loss 1.8360772132873535, f_iou 0.5856207609176636: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 57 | loss 2.111356019973755, f_iou 0.5849349498748779: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 57 | loss 2.111356019973755, f_iou 0.5849349498748779: 93%|██████████████████████████████████▌ | 69/74 [00:55<00:03, 1.39it/s]
epoch 57 | loss 1.857309341430664, f_iou 0.5874277949333191: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 57 | loss 1.857309341430664, f_iou 0.5874277949333191: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 57 | loss 2.6270151138305664, f_iou 0.5850193500518799: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 57 | loss 2.6270151138305664, f_iou 0.5850193500518799: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 57 | loss 1.083932638168335, f_iou 0.5869912505149841: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 57 | loss 1.083932638168335, f_iou 0.5869912505149841: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 57 | loss 1.7178889513015747, f_iou 0.5844922661781311: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 57 | loss 1.7178889513015747, f_iou 0.5844922661781311: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 57 | loss 1.972650408744812, f_iou 0.5881673097610474: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 57 | loss 1.972650408744812, f_iou 0.5881673097610474: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 57 | loss 1.972650408744812, f_iou 0.5881673097610474: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 57 | valid.f_iou 0.6867600083351135, valid.f_f-score 0.81745: 0%| | 0/16 [00:05, ?it/s]
epoch 57 | valid.f_iou 0.6867600083351135, valid.f_f-score 0.81745: 6%|█▉ | 1/16 [00:05<01:23, 5.59s/it]
epoch 57 | valid.f_iou 0.631630003452301, valid.f_f-score 0.84601: 6%|██ | 1/16 [00:06<01:23, 5.59s/it]
epoch 57 | valid.f_iou 0.631630003452301, valid.f_f-score 0.84601: 12%|████ | 2/16 [00:06<00:36, 2.58s/it]
epoch 57 | valid.f_iou 0.5152000188827515, valid.f_f-score 0.76469: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 57 | valid.f_iou 0.5152000188827515, valid.f_f-score 0.76469: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 57 | valid.f_iou 0.5707299709320068, valid.f_f-score 0.77528: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 57 | valid.f_iou 0.5707299709320068, valid.f_f-score 0.77528: 25%|███████▊ | 4/16 [00:06<00:13, 1.16s/it]
epoch 57 | valid.f_iou 0.5266500115394592, valid.f_f-score 0.74608: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 57 | valid.f_iou 0.5266500115394592, valid.f_f-score 0.74608: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 57 | valid.f_iou 0.500760018825531, valid.f_f-score 0.72218: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 57 | valid.f_iou 0.500760018825531, valid.f_f-score 0.72218: 38%|████████████ | 6/16 [00:07<00:07, 1.31it/s]
epoch 57 | valid.f_iou 0.525189995765686, valid.f_f-score 0.74186: 38%|████████████ | 6/16 [00:08<00:07, 1.31it/s]
epoch 57 | valid.f_iou 0.525189995765686, valid.f_f-score 0.74186: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 57 | valid.f_iou 0.5028700232505798, valid.f_f-score 0.72504: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 57 | valid.f_iou 0.5028700232505798, valid.f_f-score 0.72504: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 57 | valid.f_iou 0.5044400095939636, valid.f_f-score 0.70483: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 57 | valid.f_iou 0.5044400095939636, valid.f_f-score 0.70483: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 57 | valid.f_iou 0.4913400113582611, valid.f_f-score 0.7056: 56%|██████████████████ | 9/16 [00:09<00:03, 1.95it/s]
epoch 57 | valid.f_iou 0.4913400113582611, valid.f_f-score 0.7056: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.14it/s]
epoch 57 | valid.f_iou 0.49584999680519104, valid.f_f-score 0.70902: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.14it/s]
epoch 57 | valid.f_iou 0.49584999680519104, valid.f_f-score 0.70902: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 57 | valid.f_iou 0.5188199877738953, valid.f_f-score 0.72652: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.29it/s]
epoch 57 | valid.f_iou 0.5188199877738953, valid.f_f-score 0.72652: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 57 | valid.f_iou 0.5228000283241272, valid.f_f-score 0.73355: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 57 | valid.f_iou 0.5228000283241272, valid.f_f-score 0.73355: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 57 | valid.f_iou 0.5143499970436096, valid.f_f-score 0.72169: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 57 | valid.f_iou 0.5143499970436096, valid.f_f-score 0.72169: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 57 | valid.f_iou 0.5228099822998047, valid.f_f-score 0.72275: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.57it/s]
epoch 57 | valid.f_iou 0.5228099822998047, valid.f_f-score 0.72275: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 57 | valid.f_iou 0.5307000279426575, valid.f_f-score 0.72105: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 57 | valid.f_iou 0.5307000279426575, valid.f_f-score 0.72105: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 57 | valid.f_iou 0.5307000279426575, valid.f_f-score 0.72105: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 57 | valid.f_iou 0.7993599772453308, valid.f_f-score 0.78654: 0%| | 0/16 [00:04, ?it/s]
epoch 57 | valid.f_iou 0.7993599772453308, valid.f_f-score 0.78654: 6%|█▉ | 1/16 [00:04<01:13, 4.91s/it]
epoch 57 | valid.f_iou 0.8260400295257568, valid.f_f-score 0.86436: 6%|█▉ | 1/16 [00:05<01:13, 4.91s/it]
epoch 57 | valid.f_iou 0.8260400295257568, valid.f_f-score 0.86436: 12%|███▉ | 2/16 [00:05<00:31, 2.29s/it]
epoch 57 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81617: 12%|███▉ | 2/16 [00:05<00:31, 2.29s/it]
epoch 57 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81617: 19%|█████▊ | 3/16 [00:05<00:18, 1.45s/it]
epoch 57 | valid.f_iou 0.7132899761199951, valid.f_f-score 0.80879: 19%|█████▊ | 3/16 [00:06<00:18, 1.45s/it]
epoch 57 | valid.f_iou 0.7132899761199951, valid.f_f-score 0.80879: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 57 | valid.f_iou 0.7032899856567383, valid.f_f-score 0.8084: 25%|████████ | 4/16 [00:06<00:12, 1.06s/it]
epoch 57 | valid.f_iou 0.7032899856567383, valid.f_f-score 0.8084: 31%|██████████ | 5/16 [00:06<00:09, 1.20it/s]
epoch 57 | valid.f_iou 0.6855700016021729, valid.f_f-score 0.78817: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 57 | valid.f_iou 0.6855700016021729, valid.f_f-score 0.78817: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 57 | valid.f_iou 0.7066599726676941, valid.f_f-score 0.81212: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 57 | valid.f_iou 0.7066599726676941, valid.f_f-score 0.81212: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 57 | valid.f_iou 0.6942999958992004, valid.f_f-score 0.80262: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 57 | valid.f_iou 0.6942999958992004, valid.f_f-score 0.80262: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 57 | valid.f_iou 0.7087100148200989, valid.f_f-score 0.80944: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 57 | valid.f_iou 0.7087100148200989, valid.f_f-score 0.80944: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 57 | valid.f_iou 0.7189800143241882, valid.f_f-score 0.82035: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 57 | valid.f_iou 0.7189800143241882, valid.f_f-score 0.82035: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 57 | valid.f_iou 0.7113699913024902, valid.f_f-score 0.80487: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 57 | valid.f_iou 0.7113699913024902, valid.f_f-score 0.80487: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 57 | valid.f_iou 0.7238699793815613, valid.f_f-score 0.8155: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.25it/s]
epoch 57 | valid.f_iou 0.7238699793815613, valid.f_f-score 0.8155: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.38it/s]
epoch 57 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.82289: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 57 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.82289: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.47it/s]
epoch 57 | valid.f_iou 0.7174199819564819, valid.f_f-score 0.81235: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 57 | valid.f_iou 0.7174199819564819, valid.f_f-score 0.81235: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 57 | valid.f_iou 0.7259200215339661, valid.f_f-score 0.82161: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 57 | valid.f_iou 0.7259200215339661, valid.f_f-score 0.82161: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 57 | valid.f_iou 0.7248200178146362, valid.f_f-score 0.82024: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 57 | valid.f_iou 0.7248200178146362, valid.f_f-score 0.82024: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 57 | valid.f_iou 0.7248200178146362, valid.f_f-score 0.82024: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 57 | valid.f_iou 0.7993599772453308, valid.f_f-score 0.78654: 0%| | 0/16 [00:05, ?it/s]
epoch 57 | valid.f_iou 0.7993599772453308, valid.f_f-score 0.78654: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 57 | valid.f_iou 0.8260400295257568, valid.f_f-score 0.86436: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 57 | valid.f_iou 0.8260400295257568, valid.f_f-score 0.86436: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 57 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81617: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 57 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81617: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 57 | valid.f_iou 0.7132899761199951, valid.f_f-score 0.80879: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 57 | valid.f_iou 0.7132899761199951, valid.f_f-score 0.80879: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 57 | valid.f_iou 0.707040011882782, valid.f_f-score 0.8084: 25%|████████▎ | 4/16 [00:07<00:13, 1.10s/it]
epoch 57 | valid.f_iou 0.707040011882782, valid.f_f-score 0.8084: 31%|██████████▎ | 5/16 [00:07<00:09, 1.16it/s]
epoch 57 | valid.f_iou 0.6886900067329407, valid.f_f-score 0.78817: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 57 | valid.f_iou 0.6886900067329407, valid.f_f-score 0.78817: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 57 | valid.f_iou 0.7111200094223022, valid.f_f-score 0.81212: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 57 | valid.f_iou 0.7111200094223022, valid.f_f-score 0.81212: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 57 | valid.f_iou 0.6982100009918213, valid.f_f-score 0.80262: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 57 | valid.f_iou 0.6982100009918213, valid.f_f-score 0.80262: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 57 | valid.f_iou 0.7132400274276733, valid.f_f-score 0.80944: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 57 | valid.f_iou 0.7132400274276733, valid.f_f-score 0.80944: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 57 | valid.f_iou 0.7189800143241882, valid.f_f-score 0.81681: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 57 | valid.f_iou 0.7189800143241882, valid.f_f-score 0.81681: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 57 | valid.f_iou 0.711359977722168, valid.f_f-score 0.80165: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.13it/s]
epoch 57 | valid.f_iou 0.711359977722168, valid.f_f-score 0.80165: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.27it/s]
epoch 57 | valid.f_iou 0.7238600254058838, valid.f_f-score 0.81255: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 57 | valid.f_iou 0.7238600254058838, valid.f_f-score 0.81255: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 57 | valid.f_iou 0.7297499775886536, valid.f_f-score 0.82016: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.39it/s]
epoch 57 | valid.f_iou 0.7297499775886536, valid.f_f-score 0.82016: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 57 | valid.f_iou 0.7174199819564819, valid.f_f-score 0.80982: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 57 | valid.f_iou 0.7174199819564819, valid.f_f-score 0.80982: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 57 | valid.f_iou 0.7259100079536438, valid.f_f-score 0.81925: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 57 | valid.f_iou 0.7259100079536438, valid.f_f-score 0.81925: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 57 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.81803: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 57 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.81803: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 57 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.81803: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 58 | loss 2.0570991039276123, f_iou 0.46679773926734924: 0%| | 0/74 [00:06, ?it/s]
epoch 58 | loss 2.0570991039276123, f_iou 0.46679773926734924: 1%|▍ | 1/74 [00:06<08:05, 6.65s/it]
epoch 58 | loss 0.1418904811143875, f_iou 0.707173764705658: 1%|▌ | 1/74 [00:07<08:05, 6.65s/it]
epoch 58 | loss 0.1418904811143875, f_iou 0.707173764705658: 3%|█ | 2/74 [00:07<03:51, 3.22s/it]
epoch 58 | loss 0.8743701577186584, f_iou 0.6935474872589111: 3%|█ | 2/74 [00:08<03:51, 3.22s/it]
epoch 58 | loss 0.8743701577186584, f_iou 0.6935474872589111: 4%|█▌ | 3/74 [00:08<02:31, 2.13s/it]
epoch 58 | loss 0.9459651708602905, f_iou 0.6255531907081604: 4%|█▌ | 3/74 [00:09<02:31, 2.13s/it]
epoch 58 | loss 0.9459651708602905, f_iou 0.6255531907081604: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 58 | loss 1.3532593250274658, f_iou 0.6510378122329712: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 58 | loss 1.3532593250274658, f_iou 0.6510378122329712: 7%|██▌ | 5/74 [00:09<01:31, 1.32s/it]
epoch 58 | loss 1.7760298252105713, f_iou 0.5975780487060547: 7%|██▌ | 5/74 [00:10<01:31, 1.32s/it]
epoch 58 | loss 1.7760298252105713, f_iou 0.5975780487060547: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 58 | loss 0.8886817097663879, f_iou 0.5906842350959778: 8%|███ | 6/74 [00:11<01:18, 1.15s/it]
epoch 58 | loss 0.8886817097663879, f_iou 0.5906842350959778: 9%|███▌ | 7/74 [00:11<01:09, 1.04s/it]
epoch 58 | loss 3.84291934967041, f_iou 0.5715110301971436: 9%|███▋ | 7/74 [00:12<01:09, 1.04s/it]
epoch 58 | loss 3.84291934967041, f_iou 0.5715110301971436: 11%|████▏ | 8/74 [00:12<01:01, 1.07it/s]
epoch 58 | loss 1.4486619234085083, f_iou 0.59339839220047: 11%|████▏ | 8/74 [00:13<01:01, 1.07it/s]
epoch 58 | loss 1.4486619234085083, f_iou 0.59339839220047: 12%|████▋ | 9/74 [00:13<00:56, 1.15it/s]
epoch 58 | loss 1.1595265865325928, f_iou 0.6186524629592896: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 58 | loss 1.1595265865325928, f_iou 0.6186524629592896: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 58 | loss 2.6164560317993164, f_iou 0.5869488716125488: 14%|████▊ | 10/74 [00:14<00:53, 1.19it/s]
epoch 58 | loss 2.6164560317993164, f_iou 0.5869488716125488: 15%|█████▎ | 11/74 [00:14<00:51, 1.21it/s]
epoch 58 | loss 1.0557128190994263, f_iou 0.589413583278656: 15%|█████▌ | 11/74 [00:15<00:51, 1.21it/s]
epoch 58 | loss 1.0557128190994263, f_iou 0.589413583278656: 16%|██████ | 12/74 [00:15<00:49, 1.24it/s]
epoch 58 | loss 2.0513033866882324, f_iou 0.5882531404495239: 16%|█████▊ | 12/74 [00:16<00:49, 1.24it/s]
epoch 58 | loss 2.0513033866882324, f_iou 0.5882531404495239: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 58 | loss 0.8103396892547607, f_iou 0.6009479761123657: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 58 | loss 0.8103396892547607, f_iou 0.6009479761123657: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 58 | loss 0.5234411358833313, f_iou 0.5815367102622986: 19%|██████▊ | 14/74 [00:17<00:45, 1.33it/s]
epoch 58 | loss 0.5234411358833313, f_iou 0.5815367102622986: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 58 | loss 0.6438379883766174, f_iou 0.6050712466239929: 20%|███████▎ | 15/74 [00:18<00:43, 1.35it/s]
epoch 58 | loss 0.6438379883766174, f_iou 0.6050712466239929: 22%|███████▊ | 16/74 [00:18<00:43, 1.35it/s]
epoch 58 | loss 0.8008118867874146, f_iou 0.6015320420265198: 22%|███████▊ | 16/74 [00:18<00:43, 1.35it/s]
epoch 58 | loss 0.8008118867874146, f_iou 0.6015320420265198: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 58 | loss 2.9969067573547363, f_iou 0.6084633469581604: 23%|████████▎ | 17/74 [00:19<00:42, 1.33it/s]
epoch 58 | loss 2.9969067573547363, f_iou 0.6084633469581604: 24%|████████▊ | 18/74 [00:19<00:42, 1.33it/s]
epoch 58 | loss 1.4349186420440674, f_iou 0.6225019097328186: 24%|████████▊ | 18/74 [00:20<00:42, 1.33it/s]
epoch 58 | loss 1.4349186420440674, f_iou 0.6225019097328186: 26%|█████████▏ | 19/74 [00:20<00:40, 1.34it/s]
epoch 58 | loss 1.5163935422897339, f_iou 0.6236953139305115: 26%|█████████▏ | 19/74 [00:21<00:40, 1.34it/s]
epoch 58 | loss 1.5163935422897339, f_iou 0.6236953139305115: 27%|█████████▋ | 20/74 [00:21<00:39, 1.35it/s]
epoch 58 | loss 2.81516695022583, f_iou 0.6336129307746887: 27%|██████████▎ | 20/74 [00:21<00:39, 1.35it/s]
epoch 58 | loss 2.81516695022583, f_iou 0.6336129307746887: 28%|██████████▊ | 21/74 [00:21<00:38, 1.36it/s]
epoch 58 | loss 0.8288623094558716, f_iou 0.6441041827201843: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 58 | loss 0.8288623094558716, f_iou 0.6441041827201843: 30%|██████████▋ | 22/74 [00:22<00:38, 1.37it/s]
epoch 58 | loss 2.248112201690674, f_iou 0.6378291249275208: 30%|███████████ | 22/74 [00:23<00:38, 1.37it/s]
epoch 58 | loss 2.248112201690674, f_iou 0.6378291249275208: 31%|███████████▌ | 23/74 [00:23<00:37, 1.37it/s]
epoch 58 | loss 0.8253968954086304, f_iou 0.6492589712142944: 31%|███████████▏ | 23/74 [00:24<00:37, 1.37it/s]
epoch 58 | loss 0.8253968954086304, f_iou 0.6492589712142944: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 58 | loss 1.0097724199295044, f_iou 0.6615579128265381: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 58 | loss 1.0097724199295044, f_iou 0.6615579128265381: 34%|████████████▏ | 25/74 [00:24<00:35, 1.37it/s]
epoch 58 | loss 2.0369725227355957, f_iou 0.660179615020752: 34%|████████████▌ | 25/74 [00:25<00:35, 1.37it/s]
epoch 58 | loss 2.0369725227355957, f_iou 0.660179615020752: 35%|█████████████ | 26/74 [00:25<00:35, 1.36it/s]
epoch 58 | loss 0.8466904759407043, f_iou 0.6718297004699707: 35%|████████████▋ | 26/74 [00:26<00:35, 1.36it/s]
epoch 58 | loss 0.8466904759407043, f_iou 0.6718297004699707: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.37it/s]
epoch 58 | loss 0.4133574664592743, f_iou 0.682258665561676: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.37it/s]
epoch 58 | loss 0.4133574664592743, f_iou 0.682258665561676: 38%|██████████████ | 28/74 [00:26<00:33, 1.37it/s]
epoch 58 | loss 0.7009782791137695, f_iou 0.6905059218406677: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 58 | loss 0.7009782791137695, f_iou 0.6905059218406677: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 58 | loss 1.0949231386184692, f_iou 0.6937037706375122: 39%|██████████████ | 29/74 [00:28<00:32, 1.38it/s]
epoch 58 | loss 1.0949231386184692, f_iou 0.6937037706375122: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.38it/s]
epoch 58 | loss 1.1023684740066528, f_iou 0.6916394829750061: 41%|██████████████▌ | 30/74 [00:29<00:31, 1.38it/s]
epoch 58 | loss 1.1023684740066528, f_iou 0.6916394829750061: 42%|███████████████ | 31/74 [00:29<00:31, 1.39it/s]
epoch 58 | loss 2.329960823059082, f_iou 0.6809871792793274: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.39it/s]
epoch 58 | loss 2.329960823059082, f_iou 0.6809871792793274: 43%|████████████████ | 32/74 [00:29<00:31, 1.34it/s]
epoch 58 | loss 1.0226655006408691, f_iou 0.6632301807403564: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.34it/s]
epoch 58 | loss 1.0226655006408691, f_iou 0.6632301807403564: 45%|████████████████ | 33/74 [00:30<00:31, 1.32it/s]
epoch 58 | loss 3.071826219558716, f_iou 0.666316568851471: 45%|████████████████▉ | 33/74 [00:31<00:31, 1.32it/s]
epoch 58 | loss 3.071826219558716, f_iou 0.666316568851471: 46%|█████████████████▍ | 34/74 [00:31<00:30, 1.32it/s]
epoch 58 | loss 2.114964723587036, f_iou 0.6650940775871277: 46%|█████████████████ | 34/74 [00:32<00:30, 1.32it/s]
epoch 58 | loss 2.114964723587036, f_iou 0.6650940775871277: 47%|█████████████████▌ | 35/74 [00:32<00:29, 1.34it/s]
epoch 58 | loss 2.516145944595337, f_iou 0.6612327098846436: 47%|█████████████████▌ | 35/74 [00:32<00:29, 1.34it/s]
epoch 58 | loss 2.516145944595337, f_iou 0.6612327098846436: 49%|██████████████████ | 36/74 [00:32<00:27, 1.36it/s]
epoch 58 | loss 2.271514415740967, f_iou 0.6584194302558899: 49%|██████████████████ | 36/74 [00:33<00:27, 1.36it/s]
epoch 58 | loss 2.271514415740967, f_iou 0.6584194302558899: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.36it/s]
epoch 58 | loss 1.0379717350006104, f_iou 0.6607794761657715: 50%|██████████████████ | 37/74 [00:34<00:27, 1.36it/s]
epoch 58 | loss 1.0379717350006104, f_iou 0.6607794761657715: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.37it/s]
epoch 58 | loss 0.4265940487384796, f_iou 0.6541185975074768: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.37it/s]
epoch 58 | loss 0.4265940487384796, f_iou 0.6541185975074768: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 58 | loss 0.6798655986785889, f_iou 0.660429835319519: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 58 | loss 0.6798655986785889, f_iou 0.660429835319519: 54%|████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 58 | loss 0.9296907782554626, f_iou 0.6659079790115356: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.39it/s]
epoch 58 | loss 0.9296907782554626, f_iou 0.6659079790115356: 55%|███████████████████▉ | 41/74 [00:36<00:26, 1.23it/s]
epoch 58 | loss 1.426326036453247, f_iou 0.6706985235214233: 55%|████████████████████▌ | 41/74 [00:37<00:26, 1.23it/s]
epoch 58 | loss 1.426326036453247, f_iou 0.6706985235214233: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.28it/s]
epoch 58 | loss 0.6519758701324463, f_iou 0.6756447553634644: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.28it/s]
epoch 58 | loss 0.6519758701324463, f_iou 0.6756447553634644: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.31it/s]
epoch 58 | loss 1.9158806800842285, f_iou 0.66664057970047: 58%|██████████████████████ | 43/74 [00:38<00:23, 1.31it/s]
epoch 58 | loss 1.9158806800842285, f_iou 0.66664057970047: 59%|██████████████████████▌ | 44/74 [00:38<00:22, 1.33it/s]
epoch 58 | loss 1.3320283889770508, f_iou 0.6683821678161621: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.33it/s]
epoch 58 | loss 1.3320283889770508, f_iou 0.6683821678161621: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.35it/s]
epoch 58 | loss 1.4698954820632935, f_iou 0.6724294424057007: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.35it/s]
epoch 58 | loss 1.4698954820632935, f_iou 0.6724294424057007: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 58 | loss 0.9915336966514587, f_iou 0.6582902073860168: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.36it/s]
epoch 58 | loss 0.9915336966514587, f_iou 0.6582902073860168: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 58 | loss 1.4539517164230347, f_iou 0.6597952246665955: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 58 | loss 1.4539517164230347, f_iou 0.6597952246665955: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 58 | loss 0.6725457906723022, f_iou 0.6479448676109314: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.38it/s]
epoch 58 | loss 0.6725457906723022, f_iou 0.6479448676109314: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 58 | loss 0.8954715132713318, f_iou 0.653546154499054: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.38it/s]
epoch 58 | loss 0.8954715132713318, f_iou 0.653546154499054: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.38it/s]
epoch 58 | loss 0.7050168514251709, f_iou 0.6497331857681274: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.38it/s]
epoch 58 | loss 0.7050168514251709, f_iou 0.6497331857681274: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 58 | loss 1.0920757055282593, f_iou 0.6502970457077026: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 58 | loss 1.0920757055282593, f_iou 0.6502970457077026: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 58 | loss 1.1580538749694824, f_iou 0.6516091823577881: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 58 | loss 1.1580538749694824, f_iou 0.6516091823577881: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 58 | loss 0.45855778455734253, f_iou 0.6570549011230469: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.39it/s]
epoch 58 | loss 0.45855778455734253, f_iou 0.6570549011230469: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.39it/s]
epoch 58 | loss 4.035379409790039, f_iou 0.6511247158050537: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.39it/s]
epoch 58 | loss 4.035379409790039, f_iou 0.6511247158050537: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.40it/s]
epoch 58 | loss 1.6626818180084229, f_iou 0.6519383192062378: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.40it/s]
epoch 58 | loss 1.6626818180084229, f_iou 0.6519383192062378: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 58 | loss 0.6700555086135864, f_iou 0.6555026769638062: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 58 | loss 0.6700555086135864, f_iou 0.6555026769638062: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 58 | loss 0.9778897762298584, f_iou 0.6444111466407776: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.39it/s]
epoch 58 | loss 0.9778897762298584, f_iou 0.6444111466407776: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 58 | loss 1.8089948892593384, f_iou 0.6429833173751831: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 58 | loss 1.8089948892593384, f_iou 0.6429833173751831: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 58 | loss 2.70194149017334, f_iou 0.645801842212677: 80%|███████████████████████████████ | 59/74 [00:50<00:10, 1.39it/s]
epoch 58 | loss 2.70194149017334, f_iou 0.645801842212677: 81%|███████████████████████████████▌ | 60/74 [00:50<00:10, 1.40it/s]
epoch 58 | loss 2.7967259883880615, f_iou 0.6427406668663025: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.40it/s]
epoch 58 | loss 2.7967259883880615, f_iou 0.6427406668663025: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.40it/s]
epoch 58 | loss 1.2110211849212646, f_iou 0.6360955238342285: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.40it/s]
epoch 58 | loss 1.2110211849212646, f_iou 0.6360955238342285: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.40it/s]
epoch 58 | loss 2.1261701583862305, f_iou 0.6259989142417908: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.40it/s]
epoch 58 | loss 2.1261701583862305, f_iou 0.6259989142417908: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.40it/s]
epoch 58 | loss 1.5109374523162842, f_iou 0.6235335469245911: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.40it/s]
epoch 58 | loss 1.5109374523162842, f_iou 0.6235335469245911: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.40it/s]
epoch 58 | loss 2.6269822120666504, f_iou 0.6258254051208496: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.40it/s]
epoch 58 | loss 2.6269822120666504, f_iou 0.6258254051208496: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 58 | loss 1.4527555704116821, f_iou 0.6306545734405518: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 58 | loss 1.4527555704116821, f_iou 0.6306545734405518: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 58 | loss 1.8047356605529785, f_iou 0.6356240510940552: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 58 | loss 1.8047356605529785, f_iou 0.6356240510940552: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 58 | loss 1.0066746473312378, f_iou 0.6351991891860962: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 58 | loss 1.0066746473312378, f_iou 0.6351991891860962: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 58 | loss 2.044780731201172, f_iou 0.6330718398094177: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 58 | loss 2.044780731201172, f_iou 0.6330718398094177: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 58 | loss 2.24737286567688, f_iou 0.6254587769508362: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.40it/s]
epoch 58 | loss 2.24737286567688, f_iou 0.6254587769508362: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:02, 1.40it/s]
epoch 58 | loss 1.0539429187774658, f_iou 0.6291464567184448: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 58 | loss 1.0539429187774658, f_iou 0.6291464567184448: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 58 | loss 0.749297559261322, f_iou 0.6231297850608826: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 58 | loss 0.749297559261322, f_iou 0.6231297850608826: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 58 | loss 1.7935739755630493, f_iou 0.6244498491287231: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 58 | loss 1.7935739755630493, f_iou 0.6244498491287231: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 58 | loss 1.6394473314285278, f_iou 0.6168261766433716: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 58 | loss 1.6394473314285278, f_iou 0.6168261766433716: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 58 | loss 1.6394473314285278, f_iou 0.6168261766433716: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 58 | valid.f_iou 0.6710399985313416, valid.f_f-score 0.87854: 0%| | 0/16 [00:05, ?it/s]
epoch 58 | valid.f_iou 0.6710399985313416, valid.f_f-score 0.87854: 6%|█▉ | 1/16 [00:05<01:17, 5.17s/it]
epoch 58 | valid.f_iou 0.654670000076294, valid.f_f-score 0.89147: 6%|██ | 1/16 [00:05<01:17, 5.17s/it]
epoch 58 | valid.f_iou 0.654670000076294, valid.f_f-score 0.89147: 12%|████ | 2/16 [00:05<00:33, 2.41s/it]
epoch 58 | valid.f_iou 0.5270299911499023, valid.f_f-score 0.78528: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 58 | valid.f_iou 0.5270299911499023, valid.f_f-score 0.78528: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 58 | valid.f_iou 0.577180027961731, valid.f_f-score 0.79116: 19%|██████ | 3/16 [00:06<00:19, 1.51s/it]
epoch 58 | valid.f_iou 0.577180027961731, valid.f_f-score 0.79116: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 58 | valid.f_iou 0.545740008354187, valid.f_f-score 0.76981: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 58 | valid.f_iou 0.545740008354187, valid.f_f-score 0.76981: 31%|██████████ | 5/16 [00:06<00:09, 1.16it/s]
epoch 58 | valid.f_iou 0.5235000252723694, valid.f_f-score 0.74301: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 58 | valid.f_iou 0.5235000252723694, valid.f_f-score 0.74301: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 58 | valid.f_iou 0.5454999804496765, valid.f_f-score 0.76011: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 58 | valid.f_iou 0.5454999804496765, valid.f_f-score 0.76011: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.56it/s]
epoch 58 | valid.f_iou 0.5356199741363525, valid.f_f-score 0.75052: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 58 | valid.f_iou 0.5356199741363525, valid.f_f-score 0.75052: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 58 | valid.f_iou 0.5460900068283081, valid.f_f-score 0.73834: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 58 | valid.f_iou 0.5460900068283081, valid.f_f-score 0.73834: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.88it/s]
epoch 58 | valid.f_iou 0.5336999893188477, valid.f_f-score 0.7374: 56%|██████████████████ | 9/16 [00:09<00:03, 1.88it/s]
epoch 58 | valid.f_iou 0.5336999893188477, valid.f_f-score 0.7374: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.08it/s]
epoch 58 | valid.f_iou 0.5339599847793579, valid.f_f-score 0.73734: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 58 | valid.f_iou 0.5339599847793579, valid.f_f-score 0.73734: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 58 | valid.f_iou 0.5535200238227844, valid.f_f-score 0.75218: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 58 | valid.f_iou 0.5535200238227844, valid.f_f-score 0.75218: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.36it/s]
epoch 58 | valid.f_iou 0.559719979763031, valid.f_f-score 0.7586: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.36it/s]
epoch 58 | valid.f_iou 0.559719979763031, valid.f_f-score 0.7586: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.48it/s]
epoch 58 | valid.f_iou 0.5516899824142456, valid.f_f-score 0.74887: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 58 | valid.f_iou 0.5516899824142456, valid.f_f-score 0.74887: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 58 | valid.f_iou 0.5579800009727478, valid.f_f-score 0.74908: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 58 | valid.f_iou 0.5579800009727478, valid.f_f-score 0.74908: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 58 | valid.f_iou 0.5650200247764587, valid.f_f-score 0.74789: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 58 | valid.f_iou 0.5650200247764587, valid.f_f-score 0.74789: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 58 | valid.f_iou 0.5650200247764587, valid.f_f-score 0.74789: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 58 | valid.f_iou 0.7754499912261963, valid.f_f-score 0.75736: 0%| | 0/16 [00:04, ?it/s]
epoch 58 | valid.f_iou 0.7754499912261963, valid.f_f-score 0.75736: 6%|█▉ | 1/16 [00:04<01:10, 4.71s/it]
epoch 58 | valid.f_iou 0.8015000224113464, valid.f_f-score 0.84316: 6%|█▉ | 1/16 [00:05<01:10, 4.71s/it]
epoch 58 | valid.f_iou 0.8015000224113464, valid.f_f-score 0.84316: 12%|███▉ | 2/16 [00:05<00:30, 2.20s/it]
epoch 58 | valid.f_iou 0.6636499762535095, valid.f_f-score 0.77378: 12%|███▉ | 2/16 [00:05<00:30, 2.20s/it]
epoch 58 | valid.f_iou 0.6636499762535095, valid.f_f-score 0.77378: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 58 | valid.f_iou 0.6488199830055237, valid.f_f-score 0.76139: 19%|█████▊ | 3/16 [00:06<00:18, 1.40s/it]
epoch 58 | valid.f_iou 0.6488199830055237, valid.f_f-score 0.76139: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 58 | valid.f_iou 0.6234300136566162, valid.f_f-score 0.73753: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 58 | valid.f_iou 0.6234300136566162, valid.f_f-score 0.73753: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 58 | valid.f_iou 0.6277899742126465, valid.f_f-score 0.7434: 31%|██████████ | 5/16 [00:06<00:08, 1.24it/s]
epoch 58 | valid.f_iou 0.6277899742126465, valid.f_f-score 0.7434: 38%|████████████ | 6/16 [00:06<00:06, 1.46it/s]
epoch 58 | valid.f_iou 0.6582199931144714, valid.f_f-score 0.7747: 38%|████████████ | 6/16 [00:07<00:06, 1.46it/s]
epoch 58 | valid.f_iou 0.6582199931144714, valid.f_f-score 0.7747: 44%|██████████████ | 7/16 [00:07<00:05, 1.74it/s]
epoch 58 | valid.f_iou 0.6617199778556824, valid.f_f-score 0.78173: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.74it/s]
epoch 58 | valid.f_iou 0.6617199778556824, valid.f_f-score 0.78173: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.88it/s]
epoch 58 | valid.f_iou 0.6780499815940857, valid.f_f-score 0.78959: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.88it/s]
epoch 58 | valid.f_iou 0.6780499815940857, valid.f_f-score 0.78959: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.11it/s]
epoch 58 | valid.f_iou 0.6823599934577942, valid.f_f-score 0.80245: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.11it/s]
epoch 58 | valid.f_iou 0.6823599934577942, valid.f_f-score 0.80245: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.27it/s]
epoch 58 | valid.f_iou 0.6736599802970886, valid.f_f-score 0.78611: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.27it/s]
epoch 58 | valid.f_iou 0.6736599802970886, valid.f_f-score 0.78611: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.39it/s]
epoch 58 | valid.f_iou 0.6883599758148193, valid.f_f-score 0.79786: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 58 | valid.f_iou 0.6883599758148193, valid.f_f-score 0.79786: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 58 | valid.f_iou 0.6985700130462646, valid.f_f-score 0.80671: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 58 | valid.f_iou 0.6985700130462646, valid.f_f-score 0.80671: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 58 | valid.f_iou 0.6898699998855591, valid.f_f-score 0.79902: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 58 | valid.f_iou 0.6898699998855591, valid.f_f-score 0.79902: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.62it/s]
epoch 58 | valid.f_iou 0.6955900192260742, valid.f_f-score 0.8074: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 58 | valid.f_iou 0.6955900192260742, valid.f_f-score 0.8074: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.66it/s]
epoch 58 | valid.f_iou 0.6918900012969971, valid.f_f-score 0.79843: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 58 | valid.f_iou 0.6918900012969971, valid.f_f-score 0.79843: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 58 | valid.f_iou 0.6918900012969971, valid.f_f-score 0.79843: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 58 | valid.f_iou 0.7328400015830994, valid.f_f-score 0.72945: 0%| | 0/16 [00:05, ?it/s]
epoch 58 | valid.f_iou 0.7328400015830994, valid.f_f-score 0.72945: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 58 | valid.f_iou 0.7802000045776367, valid.f_f-score 0.8292: 6%|██ | 1/16 [00:05<01:18, 5.21s/it]
epoch 58 | valid.f_iou 0.7802000045776367, valid.f_f-score 0.8292: 12%|████ | 2/16 [00:05<00:33, 2.41s/it]
epoch 58 | valid.f_iou 0.6494500041007996, valid.f_f-score 0.76447: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 58 | valid.f_iou 0.6494500041007996, valid.f_f-score 0.76447: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 58 | valid.f_iou 0.6381700038909912, valid.f_f-score 0.75441: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 58 | valid.f_iou 0.6381700038909912, valid.f_f-score 0.75441: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 58 | valid.f_iou 0.6213799715042114, valid.f_f-score 0.73194: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 58 | valid.f_iou 0.6213799715042114, valid.f_f-score 0.73194: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 58 | valid.f_iou 0.6260700225830078, valid.f_f-score 0.73874: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 58 | valid.f_iou 0.6260700225830078, valid.f_f-score 0.73874: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 58 | valid.f_iou 0.6588000059127808, valid.f_f-score 0.77071: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 58 | valid.f_iou 0.6588000059127808, valid.f_f-score 0.77071: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 58 | valid.f_iou 0.6622300148010254, valid.f_f-score 0.77824: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 58 | valid.f_iou 0.6622300148010254, valid.f_f-score 0.77824: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 58 | valid.f_iou 0.6811299920082092, valid.f_f-score 0.78649: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 58 | valid.f_iou 0.6811299920082092, valid.f_f-score 0.78649: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 58 | valid.f_iou 0.682420015335083, valid.f_f-score 0.79609: 56%|██████████████████ | 9/16 [00:09<00:03, 1.90it/s]
epoch 58 | valid.f_iou 0.682420015335083, valid.f_f-score 0.79609: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.09it/s]
epoch 58 | valid.f_iou 0.6737099885940552, valid.f_f-score 0.78033: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 58 | valid.f_iou 0.6737099885940552, valid.f_f-score 0.78033: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 58 | valid.f_iou 0.6884099841117859, valid.f_f-score 0.79256: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 58 | valid.f_iou 0.6884099841117859, valid.f_f-score 0.79256: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 58 | valid.f_iou 0.6986100077629089, valid.f_f-score 0.80236: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 58 | valid.f_iou 0.6986100077629089, valid.f_f-score 0.80236: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 58 | valid.f_iou 0.6899099946022034, valid.f_f-score 0.79498: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 58 | valid.f_iou 0.6899099946022034, valid.f_f-score 0.79498: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 58 | valid.f_iou 0.6956200003623962, valid.f_f-score 0.80363: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 58 | valid.f_iou 0.6956200003623962, valid.f_f-score 0.80363: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 58 | valid.f_iou 0.6928600072860718, valid.f_f-score 0.79489: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 58 | valid.f_iou 0.6928600072860718, valid.f_f-score 0.79489: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 58 | valid.f_iou 0.6928600072860718, valid.f_f-score 0.79489: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 59 | loss 0.7969174981117249, f_iou 0.8847989439964294: 0%| | 0/74 [00:06, ?it/s]
epoch 59 | loss 0.7969174981117249, f_iou 0.8847989439964294: 1%|▌ | 1/74 [00:06<07:33, 6.22s/it]
epoch 59 | loss 2.476006031036377, f_iou 0.6794924139976501: 1%|▌ | 1/74 [00:07<07:33, 6.22s/it]
epoch 59 | loss 2.476006031036377, f_iou 0.6794924139976501: 3%|█ | 2/74 [00:07<03:40, 3.06s/it]
epoch 59 | loss 0.0, f_iou 0.7830791473388672: 3%|█▍ | 2/74 [00:07<03:40, 3.06s/it]
epoch 59 | loss 0.0, f_iou 0.7830791473388672: 4%|██ | 3/74 [00:07<02:26, 2.06s/it]
epoch 59 | loss 1.5294240713119507, f_iou 0.8030058741569519: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 59 | loss 1.5294240713119507, f_iou 0.8030058741569519: 5%|██ | 4/74 [00:08<01:51, 1.59s/it]
epoch 59 | loss 3.1385116577148438, f_iou 0.7618325352668762: 5%|██ | 4/74 [00:09<01:51, 1.59s/it]
epoch 59 | loss 3.1385116577148438, f_iou 0.7618325352668762: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 59 | loss 2.151824951171875, f_iou 0.7659308910369873: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 59 | loss 2.151824951171875, f_iou 0.7659308910369873: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 59 | loss 5.007028102874756, f_iou 0.7175949811935425: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 59 | loss 5.007028102874756, f_iou 0.7175949811935425: 9%|███▌ | 7/74 [00:11<01:08, 1.03s/it]
epoch 59 | loss 0.9390966296195984, f_iou 0.7192766070365906: 9%|███▌ | 7/74 [00:11<01:08, 1.03s/it]
epoch 59 | loss 0.9390966296195984, f_iou 0.7192766070365906: 11%|████ | 8/74 [00:11<01:02, 1.05it/s]
epoch 59 | loss 1.5622705221176147, f_iou 0.7039138674736023: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 59 | loss 1.5622705221176147, f_iou 0.7039138674736023: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 59 | loss 1.7021974325180054, f_iou 0.675639808177948: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 59 | loss 1.7021974325180054, f_iou 0.675639808177948: 14%|█████ | 10/74 [00:13<00:54, 1.17it/s]
epoch 59 | loss 0.7865607738494873, f_iou 0.7032497525215149: 14%|████▊ | 10/74 [00:14<00:54, 1.17it/s]
epoch 59 | loss 0.7865607738494873, f_iou 0.7032497525215149: 15%|█████▎ | 11/74 [00:14<00:51, 1.22it/s]
epoch 59 | loss 2.591240882873535, f_iou 0.6574306488037109: 15%|█████▌ | 11/74 [00:14<00:51, 1.22it/s]
epoch 59 | loss 2.591240882873535, f_iou 0.6574306488037109: 16%|██████ | 12/74 [00:14<00:48, 1.27it/s]
epoch 59 | loss 1.2761187553405762, f_iou 0.667985200881958: 16%|██████ | 12/74 [00:15<00:48, 1.27it/s]
epoch 59 | loss 1.2761187553405762, f_iou 0.667985200881958: 18%|██████▌ | 13/74 [00:15<00:47, 1.29it/s]
epoch 59 | loss 0.8324871063232422, f_iou 0.6202719807624817: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 59 | loss 0.8324871063232422, f_iou 0.6202719807624817: 19%|██████▊ | 14/74 [00:16<00:45, 1.32it/s]
epoch 59 | loss 1.5979341268539429, f_iou 0.6249472498893738: 19%|██████▊ | 14/74 [00:17<00:45, 1.32it/s]
epoch 59 | loss 1.5979341268539429, f_iou 0.6249472498893738: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 59 | loss 2.178806781768799, f_iou 0.614952564239502: 20%|███████▋ | 15/74 [00:17<00:44, 1.34it/s]
epoch 59 | loss 2.178806781768799, f_iou 0.614952564239502: 22%|████████▏ | 16/74 [00:17<00:43, 1.35it/s]
epoch 59 | loss 1.7651417255401611, f_iou 0.6182399392127991: 22%|███████▊ | 16/74 [00:18<00:43, 1.35it/s]
epoch 59 | loss 1.7651417255401611, f_iou 0.6182399392127991: 23%|████████▎ | 17/74 [00:18<00:42, 1.36it/s]
epoch 59 | loss 1.1894381046295166, f_iou 0.5896663665771484: 23%|████████▎ | 17/74 [00:19<00:42, 1.36it/s]
epoch 59 | loss 1.1894381046295166, f_iou 0.5896663665771484: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 59 | loss 1.8792873620986938, f_iou 0.5725787281990051: 24%|████████▊ | 18/74 [00:20<00:40, 1.37it/s]
epoch 59 | loss 1.8792873620986938, f_iou 0.5725787281990051: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 59 | loss 0.5541545152664185, f_iou 0.5481855273246765: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 59 | loss 0.5541545152664185, f_iou 0.5481855273246765: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 59 | loss 1.1358463764190674, f_iou 0.5567451119422913: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 59 | loss 1.1358463764190674, f_iou 0.5567451119422913: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 59 | loss 1.5408539772033691, f_iou 0.5532806515693665: 28%|██████████▏ | 21/74 [00:22<00:38, 1.38it/s]
epoch 59 | loss 1.5408539772033691, f_iou 0.5532806515693665: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 59 | loss 0.6302112340927124, f_iou 0.5458945035934448: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 59 | loss 0.6302112340927124, f_iou 0.5458945035934448: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 59 | loss 3.734485626220703, f_iou 0.5354300737380981: 31%|███████████▌ | 23/74 [00:23<00:37, 1.37it/s]
epoch 59 | loss 3.734485626220703, f_iou 0.5354300737380981: 32%|████████████ | 24/74 [00:23<00:36, 1.36it/s]
epoch 59 | loss 1.4307947158813477, f_iou 0.5300002694129944: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 59 | loss 1.4307947158813477, f_iou 0.5300002694129944: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 59 | loss 1.8966225385665894, f_iou 0.5288522243499756: 34%|████████████▏ | 25/74 [00:25<00:36, 1.33it/s]
epoch 59 | loss 1.8966225385665894, f_iou 0.5288522243499756: 35%|████████████▋ | 26/74 [00:25<00:36, 1.32it/s]
epoch 59 | loss 1.5856959819793701, f_iou 0.5403874516487122: 35%|████████████▋ | 26/74 [00:26<00:36, 1.32it/s]
epoch 59 | loss 1.5856959819793701, f_iou 0.5403874516487122: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.29it/s]
epoch 59 | loss 3.0962777137756348, f_iou 0.5454614162445068: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.29it/s]
epoch 59 | loss 3.0962777137756348, f_iou 0.5454614162445068: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.28it/s]
epoch 59 | loss 0.9597751498222351, f_iou 0.5347715616226196: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.28it/s]
epoch 59 | loss 0.9597751498222351, f_iou 0.5347715616226196: 39%|██████████████ | 29/74 [00:27<00:34, 1.30it/s]
epoch 59 | loss 3.1294827461242676, f_iou 0.5378057360649109: 39%|██████████████ | 29/74 [00:28<00:34, 1.30it/s]
epoch 59 | loss 3.1294827461242676, f_iou 0.5378057360649109: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.32it/s]
epoch 59 | loss 5.3003387451171875, f_iou 0.5304200649261475: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.32it/s]
epoch 59 | loss 5.3003387451171875, f_iou 0.5304200649261475: 42%|███████████████ | 31/74 [00:29<00:31, 1.34it/s]
epoch 59 | loss 0.7530938386917114, f_iou 0.5161643028259277: 42%|███████████████ | 31/74 [00:29<00:31, 1.34it/s]
epoch 59 | loss 0.7530938386917114, f_iou 0.5161643028259277: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 59 | loss 1.3802984952926636, f_iou 0.5114985108375549: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.36it/s]
epoch 59 | loss 1.3802984952926636, f_iou 0.5114985108375549: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 59 | loss 1.032014012336731, f_iou 0.524113655090332: 45%|████████████████▉ | 33/74 [00:31<00:30, 1.36it/s]
epoch 59 | loss 1.032014012336731, f_iou 0.524113655090332: 46%|█████████████████▍ | 34/74 [00:31<00:29, 1.37it/s]
epoch 59 | loss 1.8244597911834717, f_iou 0.5297389030456543: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 59 | loss 1.8244597911834717, f_iou 0.5297389030456543: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 59 | loss 0.7734524607658386, f_iou 0.5193763971328735: 47%|█████████████████ | 35/74 [00:32<00:28, 1.37it/s]
epoch 59 | loss 0.7734524607658386, f_iou 0.5193763971328735: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 59 | loss 1.9982874393463135, f_iou 0.5243271589279175: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 59 | loss 1.9982874393463135, f_iou 0.5243271589279175: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 59 | loss 1.3575026988983154, f_iou 0.5339950323104858: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 59 | loss 1.3575026988983154, f_iou 0.5339950323104858: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.36it/s]
epoch 59 | loss 0.6393683552742004, f_iou 0.5277250409126282: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.36it/s]
epoch 59 | loss 0.6393683552742004, f_iou 0.5277250409126282: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.37it/s]
epoch 59 | loss 1.6575528383255005, f_iou 0.5223731994628906: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.37it/s]
epoch 59 | loss 1.6575528383255005, f_iou 0.5223731994628906: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 59 | loss 0.9758971929550171, f_iou 0.5122385621070862: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 59 | loss 0.9758971929550171, f_iou 0.5122385621070862: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 59 | loss 4.078355312347412, f_iou 0.5108992457389832: 55%|████████████████████▌ | 41/74 [00:37<00:23, 1.38it/s]
epoch 59 | loss 4.078355312347412, f_iou 0.5108992457389832: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.38it/s]
epoch 59 | loss 2.447265863418579, f_iou 0.5153306722640991: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.38it/s]
epoch 59 | loss 2.447265863418579, f_iou 0.5153306722640991: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.38it/s]
epoch 59 | loss 0.9279870986938477, f_iou 0.5036218762397766: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 59 | loss 0.9279870986938477, f_iou 0.5036218762397766: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 59 | loss 1.3987077474594116, f_iou 0.5123550891876221: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.38it/s]
epoch 59 | loss 1.3987077474594116, f_iou 0.5123550891876221: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.38it/s]
epoch 59 | loss 1.18301522731781, f_iou 0.512294352054596: 61%|███████████████████████▋ | 45/74 [00:39<00:20, 1.38it/s]
epoch 59 | loss 1.18301522731781, f_iou 0.512294352054596: 62%|████████████████████████▏ | 46/74 [00:39<00:20, 1.39it/s]
epoch 59 | loss 1.0637842416763306, f_iou 0.5159847736358643: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 59 | loss 1.0637842416763306, f_iou 0.5159847736358643: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 59 | loss 0.9067733883857727, f_iou 0.5255509614944458: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 59 | loss 0.9067733883857727, f_iou 0.5255509614944458: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 59 | loss 1.185928225517273, f_iou 0.527063250541687: 65%|████████████████████████▋ | 48/74 [00:42<00:18, 1.39it/s]
epoch 59 | loss 1.185928225517273, f_iou 0.527063250541687: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 59 | loss 2.81091046333313, f_iou 0.5310516953468323: 66%|█████████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 59 | loss 2.81091046333313, f_iou 0.5310516953468323: 68%|█████████████████████████▋ | 50/74 [00:42<00:17, 1.38it/s]
epoch 59 | loss 1.9806104898452759, f_iou 0.5363940596580505: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 59 | loss 1.9806104898452759, f_iou 0.5363940596580505: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 59 | loss 0.9551264047622681, f_iou 0.5354608297348022: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 59 | loss 0.9551264047622681, f_iou 0.5354608297348022: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 59 | loss 0.0, f_iou 0.544183075428009: 70%|████████████████████████████████████▌ | 52/74 [00:45<00:15, 1.39it/s]
epoch 59 | loss 0.0, f_iou 0.544183075428009: 72%|█████████████████████████████████████▏ | 53/74 [00:45<00:15, 1.39it/s]
epoch 59 | loss 1.5439060926437378, f_iou 0.550827145576477: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.39it/s]
epoch 59 | loss 1.5439060926437378, f_iou 0.550827145576477: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 59 | loss 0.8628482818603516, f_iou 0.5571174025535583: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 59 | loss 0.8628482818603516, f_iou 0.5571174025535583: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 59 | loss 2.603012800216675, f_iou 0.5581054091453552: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 59 | loss 2.603012800216675, f_iou 0.5581054091453552: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.38it/s]
epoch 59 | loss 0.7938175201416016, f_iou 0.5630804896354675: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 59 | loss 0.7938175201416016, f_iou 0.5630804896354675: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.37it/s]
epoch 59 | loss 1.4754443168640137, f_iou 0.5553696751594543: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.37it/s]
epoch 59 | loss 1.4754443168640137, f_iou 0.5553696751594543: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.33it/s]
epoch 59 | loss 1.6802566051483154, f_iou 0.5605827569961548: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.33it/s]
epoch 59 | loss 1.6802566051483154, f_iou 0.5605827569961548: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.31it/s]
epoch 59 | loss 0.8145265579223633, f_iou 0.5617222785949707: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.31it/s]
epoch 59 | loss 0.8145265579223633, f_iou 0.5617222785949707: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.33it/s]
epoch 59 | loss 1.232139229774475, f_iou 0.556242823600769: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.33it/s]
epoch 59 | loss 1.232139229774475, f_iou 0.556242823600769: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.35it/s]
epoch 59 | loss 2.206838369369507, f_iou 0.5557430982589722: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.35it/s]
epoch 59 | loss 2.206838369369507, f_iou 0.5557430982589722: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.36it/s]
epoch 59 | loss 1.1513088941574097, f_iou 0.5533838868141174: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.36it/s]
epoch 59 | loss 1.1513088941574097, f_iou 0.5533838868141174: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.37it/s]
epoch 59 | loss 1.0186086893081665, f_iou 0.5594667196273804: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 59 | loss 1.0186086893081665, f_iou 0.5594667196273804: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.37it/s]
epoch 59 | loss 1.1916241645812988, f_iou 0.5582847595214844: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.37it/s]
epoch 59 | loss 1.1916241645812988, f_iou 0.5582847595214844: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 59 | loss 1.4830880165100098, f_iou 0.5600612759590149: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.37it/s]
epoch 59 | loss 1.4830880165100098, f_iou 0.5600612759590149: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 59 | loss 2.3061113357543945, f_iou 0.5603093504905701: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 59 | loss 2.3061113357543945, f_iou 0.5603093504905701: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 59 | loss 2.093278646469116, f_iou 0.5573906302452087: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 59 | loss 2.093278646469116, f_iou 0.5573906302452087: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 59 | loss 1.5678553581237793, f_iou 0.5592584013938904: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 59 | loss 1.5678553581237793, f_iou 0.5592584013938904: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 59 | loss 1.444984793663025, f_iou 0.5629603266716003: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 59 | loss 1.444984793663025, f_iou 0.5629603266716003: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 59 | loss 1.3027479648590088, f_iou 0.561007022857666: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 59 | loss 1.3027479648590088, f_iou 0.561007022857666: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 59 | loss 0.7919206619262695, f_iou 0.5593036413192749: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 59 | loss 0.7919206619262695, f_iou 0.5593036413192749: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 59 | loss 1.4877359867095947, f_iou 0.5603384971618652: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 59 | loss 1.4877359867095947, f_iou 0.5603384971618652: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 59 | loss 0.7824609279632568, f_iou 0.5605892539024353: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 59 | loss 0.7824609279632568, f_iou 0.5605892539024353: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 59 | loss 0.7824609279632568, f_iou 0.5605892539024353: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 59 | valid.f_iou 0.7627800107002258, valid.f_f-score 0.8817: 0%| | 0/16 [00:05, ?it/s]
epoch 59 | valid.f_iou 0.7627800107002258, valid.f_f-score 0.8817: 6%|██ | 1/16 [00:05<01:23, 5.53s/it]
epoch 59 | valid.f_iou 0.6378700137138367, valid.f_f-score 0.81196: 6%|█▉ | 1/16 [00:05<01:23, 5.53s/it]
epoch 59 | valid.f_iou 0.6378700137138367, valid.f_f-score 0.81196: 12%|███▉ | 2/16 [00:05<00:35, 2.54s/it]
epoch 59 | valid.f_iou 0.5295400023460388, valid.f_f-score 0.73853: 12%|███▉ | 2/16 [00:06<00:35, 2.54s/it]
epoch 59 | valid.f_iou 0.5295400023460388, valid.f_f-score 0.73853: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 59 | valid.f_iou 0.5787699818611145, valid.f_f-score 0.75531: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 59 | valid.f_iou 0.5787699818611145, valid.f_f-score 0.75531: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 59 | valid.f_iou 0.554419994354248, valid.f_f-score 0.74123: 25%|████████ | 4/16 [00:07<00:13, 1.14s/it]
epoch 59 | valid.f_iou 0.554419994354248, valid.f_f-score 0.74123: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 59 | valid.f_iou 0.5295600295066833, valid.f_f-score 0.7128: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 59 | valid.f_iou 0.5295600295066833, valid.f_f-score 0.7128: 38%|████████████ | 6/16 [00:07<00:07, 1.34it/s]
epoch 59 | valid.f_iou 0.5534200072288513, valid.f_f-score 0.73255: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 59 | valid.f_iou 0.5534200072288513, valid.f_f-score 0.73255: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 59 | valid.f_iou 0.5350599884986877, valid.f_f-score 0.71715: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 59 | valid.f_iou 0.5350599884986877, valid.f_f-score 0.71715: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 59 | valid.f_iou 0.5352100133895874, valid.f_f-score 0.70271: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 59 | valid.f_iou 0.5352100133895874, valid.f_f-score 0.70271: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 59 | valid.f_iou 0.5239700078964233, valid.f_f-score 0.70445: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.01it/s]
epoch 59 | valid.f_iou 0.5239700078964233, valid.f_f-score 0.70445: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 59 | valid.f_iou 0.5208899974822998, valid.f_f-score 0.70191: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 59 | valid.f_iou 0.5208899974822998, valid.f_f-score 0.70191: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.33it/s]
epoch 59 | valid.f_iou 0.5451300144195557, valid.f_f-score 0.72038: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.33it/s]
epoch 59 | valid.f_iou 0.5451300144195557, valid.f_f-score 0.72038: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 59 | valid.f_iou 0.5507000088691711, valid.f_f-score 0.72782: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 59 | valid.f_iou 0.5507000088691711, valid.f_f-score 0.72782: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 59 | valid.f_iou 0.535830020904541, valid.f_f-score 0.71276: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.49it/s]
epoch 59 | valid.f_iou 0.535830020904541, valid.f_f-score 0.71276: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.56it/s]
epoch 59 | valid.f_iou 0.541670024394989, valid.f_f-score 0.7132: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.56it/s]
epoch 59 | valid.f_iou 0.541670024394989, valid.f_f-score 0.7132: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.61it/s]
epoch 59 | valid.f_iou 0.546239972114563, valid.f_f-score 0.71144: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.61it/s]
epoch 59 | valid.f_iou 0.546239972114563, valid.f_f-score 0.71144: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 59 | valid.f_iou 0.546239972114563, valid.f_f-score 0.71144: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 59 | valid.f_iou 0.8330900073051453, valid.f_f-score 0.89414: 0%| | 0/16 [00:05, ?it/s]
epoch 59 | valid.f_iou 0.8330900073051453, valid.f_f-score 0.89414: 6%|█▉ | 1/16 [00:05<01:19, 5.33s/it]
epoch 59 | valid.f_iou 0.8314999938011169, valid.f_f-score 0.91711: 6%|█▉ | 1/16 [00:05<01:19, 5.33s/it]
epoch 59 | valid.f_iou 0.8314999938011169, valid.f_f-score 0.91711: 12%|███▉ | 2/16 [00:05<00:34, 2.47s/it]
epoch 59 | valid.f_iou 0.7100399732589722, valid.f_f-score 0.8351: 12%|████ | 2/16 [00:06<00:34, 2.47s/it]
epoch 59 | valid.f_iou 0.7100399732589722, valid.f_f-score 0.8351: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 59 | valid.f_iou 0.6803799867630005, valid.f_f-score 0.78472: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 59 | valid.f_iou 0.6803799867630005, valid.f_f-score 0.78472: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 59 | valid.f_iou 0.6852999925613403, valid.f_f-score 0.79276: 25%|███████▊ | 4/16 [00:07<00:13, 1.09s/it]
epoch 59 | valid.f_iou 0.6852999925613403, valid.f_f-score 0.79276: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 59 | valid.f_iou 0.6531800031661987, valid.f_f-score 0.75743: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 59 | valid.f_iou 0.6531800031661987, valid.f_f-score 0.75743: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 59 | valid.f_iou 0.6712499856948853, valid.f_f-score 0.77605: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 59 | valid.f_iou 0.6712499856948853, valid.f_f-score 0.77605: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 59 | valid.f_iou 0.669700026512146, valid.f_f-score 0.7786: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.67it/s]
epoch 59 | valid.f_iou 0.669700026512146, valid.f_f-score 0.7786: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 59 | valid.f_iou 0.6898400187492371, valid.f_f-score 0.79639: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 59 | valid.f_iou 0.6898400187492371, valid.f_f-score 0.79639: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.13it/s]
epoch 59 | valid.f_iou 0.6883299946784973, valid.f_f-score 0.8046: 56%|██████████████████ | 9/16 [00:08<00:03, 2.13it/s]
epoch 59 | valid.f_iou 0.6883299946784973, valid.f_f-score 0.8046: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.28it/s]
epoch 59 | valid.f_iou 0.684660017490387, valid.f_f-score 0.80409: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.28it/s]
epoch 59 | valid.f_iou 0.684660017490387, valid.f_f-score 0.80409: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.40it/s]
epoch 59 | valid.f_iou 0.6984500288963318, valid.f_f-score 0.8145: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.40it/s]
epoch 59 | valid.f_iou 0.6984500288963318, valid.f_f-score 0.8145: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.49it/s]
epoch 59 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.8215: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.49it/s]
epoch 59 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.8215: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.56it/s]
epoch 59 | valid.f_iou 0.697950005531311, valid.f_f-score 0.81294: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.56it/s]
epoch 59 | valid.f_iou 0.697950005531311, valid.f_f-score 0.81294: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.61it/s]
epoch 59 | valid.f_iou 0.6949300169944763, valid.f_f-score 0.80823: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 59 | valid.f_iou 0.6949300169944763, valid.f_f-score 0.80823: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 59 | valid.f_iou 0.6946799755096436, valid.f_f-score 0.80637: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 59 | valid.f_iou 0.6946799755096436, valid.f_f-score 0.80637: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 59 | valid.f_iou 0.6946799755096436, valid.f_f-score 0.80637: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 59 | valid.f_iou 0.7381899952888489, valid.f_f-score 0.83448: 0%| | 0/16 [00:05, ?it/s]
epoch 59 | valid.f_iou 0.7381899952888489, valid.f_f-score 0.83448: 6%|█▉ | 1/16 [00:05<01:18, 5.26s/it]
epoch 59 | valid.f_iou 0.7840499877929688, valid.f_f-score 0.88728: 6%|█▉ | 1/16 [00:05<01:18, 5.26s/it]
epoch 59 | valid.f_iou 0.7840499877929688, valid.f_f-score 0.88728: 12%|███▉ | 2/16 [00:05<00:34, 2.43s/it]
epoch 59 | valid.f_iou 0.6783999800682068, valid.f_f-score 0.81521: 12%|███▉ | 2/16 [00:06<00:34, 2.43s/it]
epoch 59 | valid.f_iou 0.6783999800682068, valid.f_f-score 0.81521: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 59 | valid.f_iou 0.6568400263786316, valid.f_f-score 0.76416: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 59 | valid.f_iou 0.6568400263786316, valid.f_f-score 0.76416: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 59 | valid.f_iou 0.6664599776268005, valid.f_f-score 0.77631: 25%|███████▊ | 4/16 [00:07<00:13, 1.09s/it]
epoch 59 | valid.f_iou 0.6664599776268005, valid.f_f-score 0.77631: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 59 | valid.f_iou 0.6374800205230713, valid.f_f-score 0.74373: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 59 | valid.f_iou 0.6374800205230713, valid.f_f-score 0.74373: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 59 | valid.f_iou 0.6594700217247009, valid.f_f-score 0.7643: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 59 | valid.f_iou 0.6594700217247009, valid.f_f-score 0.7643: 44%|██████████████ | 7/16 [00:07<00:05, 1.59it/s]
epoch 59 | valid.f_iou 0.6593899726867676, valid.f_f-score 0.76833: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 59 | valid.f_iou 0.6593899726867676, valid.f_f-score 0.76833: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 59 | valid.f_iou 0.6831700205802917, valid.f_f-score 0.78725: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 59 | valid.f_iou 0.6831700205802917, valid.f_f-score 0.78725: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 59 | valid.f_iou 0.6798700094223022, valid.f_f-score 0.79282: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 59 | valid.f_iou 0.6798700094223022, valid.f_f-score 0.79282: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 59 | valid.f_iou 0.6694599986076355, valid.f_f-score 0.78739: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 59 | valid.f_iou 0.6694599986076355, valid.f_f-score 0.78739: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 59 | valid.f_iou 0.6845200061798096, valid.f_f-score 0.7992: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.12it/s]
epoch 59 | valid.f_iou 0.6845200061798096, valid.f_f-score 0.7992: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.25it/s]
epoch 59 | valid.f_iou 0.6914200186729431, valid.f_f-score 0.80851: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.25it/s]
epoch 59 | valid.f_iou 0.6914200186729431, valid.f_f-score 0.80851: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.36it/s]
epoch 59 | valid.f_iou 0.6795200109481812, valid.f_f-score 0.7948: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.36it/s]
epoch 59 | valid.f_iou 0.6795200109481812, valid.f_f-score 0.7948: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.45it/s]
epoch 59 | valid.f_iou 0.6777200102806091, valid.f_f-score 0.79129: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.45it/s]
epoch 59 | valid.f_iou 0.6777200102806091, valid.f_f-score 0.79129: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 59 | valid.f_iou 0.6793599724769592, valid.f_f-score 0.79049: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 59 | valid.f_iou 0.6793599724769592, valid.f_f-score 0.79049: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 59 | valid.f_iou 0.6793599724769592, valid.f_f-score 0.79049: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 60 | loss 1.4678598642349243, f_iou 0.6464802622795105: 0%| | 0/74 [00:05, ?it/s]
epoch 60 | loss 1.4678598642349243, f_iou 0.6464802622795105: 1%|▌ | 1/74 [00:05<07:01, 5.78s/it]
epoch 60 | loss 1.613831877708435, f_iou 0.7674950957298279: 1%|▌ | 1/74 [00:06<07:01, 5.78s/it]
epoch 60 | loss 1.613831877708435, f_iou 0.7674950957298279: 3%|█ | 2/74 [00:06<03:25, 2.85s/it]
epoch 60 | loss 0.17767155170440674, f_iou 0.816258430480957: 3%|█ | 2/74 [00:07<03:25, 2.85s/it]
epoch 60 | loss 0.17767155170440674, f_iou 0.816258430480957: 4%|█▌ | 3/74 [00:07<02:15, 1.91s/it]
epoch 60 | loss 2.705591917037964, f_iou 0.7166604399681091: 4%|█▌ | 3/74 [00:08<02:15, 1.91s/it]
epoch 60 | loss 2.705591917037964, f_iou 0.7166604399681091: 5%|██ | 4/74 [00:08<01:43, 1.47s/it]
epoch 60 | loss 0.9224247932434082, f_iou 0.7627599239349365: 5%|██ | 4/74 [00:08<01:43, 1.47s/it]
epoch 60 | loss 0.9224247932434082, f_iou 0.7627599239349365: 7%|██▌ | 5/74 [00:08<01:25, 1.24s/it]
epoch 60 | loss 1.1658748388290405, f_iou 0.6356445550918579: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 60 | loss 1.1658748388290405, f_iou 0.6356445550918579: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 60 | loss 1.5296087265014648, f_iou 0.6251689791679382: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 60 | loss 1.5296087265014648, f_iou 0.6251689791679382: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 60 | loss 0.5090152025222778, f_iou 0.633753776550293: 9%|███▌ | 7/74 [00:11<01:05, 1.02it/s]
epoch 60 | loss 0.5090152025222778, f_iou 0.633753776550293: 11%|████ | 8/74 [00:11<00:59, 1.11it/s]
epoch 60 | loss 0.6564050912857056, f_iou 0.6059061884880066: 11%|████ | 8/74 [00:11<00:59, 1.11it/s]
epoch 60 | loss 0.6564050912857056, f_iou 0.6059061884880066: 12%|████▌ | 9/74 [00:11<00:54, 1.18it/s]
epoch 60 | loss 0.6570225358009338, f_iou 0.6329334378242493: 12%|████▌ | 9/74 [00:12<00:54, 1.18it/s]
epoch 60 | loss 0.6570225358009338, f_iou 0.6329334378242493: 14%|████▊ | 10/74 [00:12<00:51, 1.24it/s]
epoch 60 | loss 1.345312237739563, f_iou 0.6362802386283875: 14%|█████ | 10/74 [00:13<00:51, 1.24it/s]
epoch 60 | loss 1.345312237739563, f_iou 0.6362802386283875: 15%|█████▌ | 11/74 [00:13<00:49, 1.28it/s]
epoch 60 | loss 1.1607098579406738, f_iou 0.6513562798500061: 15%|█████▎ | 11/74 [00:14<00:49, 1.28it/s]
epoch 60 | loss 1.1607098579406738, f_iou 0.6513562798500061: 16%|█████▊ | 12/74 [00:14<00:47, 1.32it/s]
epoch 60 | loss 1.5337268114089966, f_iou 0.65798419713974: 16%|██████▏ | 12/74 [00:14<00:47, 1.32it/s]
epoch 60 | loss 1.5337268114089966, f_iou 0.65798419713974: 18%|██████▋ | 13/74 [00:14<00:45, 1.34it/s]
epoch 60 | loss 0.7699980735778809, f_iou 0.6668116450309753: 18%|██████▎ | 13/74 [00:15<00:45, 1.34it/s]
epoch 60 | loss 0.7699980735778809, f_iou 0.6668116450309753: 19%|██████▊ | 14/74 [00:15<00:44, 1.34it/s]
epoch 60 | loss 1.1284775733947754, f_iou 0.6655413508415222: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 60 | loss 1.1284775733947754, f_iou 0.6655413508415222: 20%|███████▎ | 15/74 [00:16<00:44, 1.31it/s]
epoch 60 | loss 0.7430938482284546, f_iou 0.6650500297546387: 20%|███████▎ | 15/74 [00:17<00:44, 1.31it/s]
epoch 60 | loss 0.7430938482284546, f_iou 0.6650500297546387: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 60 | loss 2.9196290969848633, f_iou 0.6529505252838135: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 60 | loss 2.9196290969848633, f_iou 0.6529505252838135: 23%|████████▎ | 17/74 [00:17<00:43, 1.30it/s]
epoch 60 | loss 0.3533741235733032, f_iou 0.6167137026786804: 23%|████████▎ | 17/74 [00:18<00:43, 1.30it/s]
epoch 60 | loss 0.3533741235733032, f_iou 0.6167137026786804: 24%|████████▊ | 18/74 [00:18<00:43, 1.29it/s]
epoch 60 | loss 0.5110045671463013, f_iou 0.6324279308319092: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 60 | loss 0.5110045671463013, f_iou 0.6324279308319092: 26%|█████████▏ | 19/74 [00:19<00:42, 1.29it/s]
epoch 60 | loss 1.2004072666168213, f_iou 0.6360461115837097: 26%|█████████▏ | 19/74 [00:20<00:42, 1.29it/s]
epoch 60 | loss 1.2004072666168213, f_iou 0.6360461115837097: 27%|█████████▋ | 20/74 [00:20<00:41, 1.32it/s]
epoch 60 | loss 0.7778565287590027, f_iou 0.6422911286354065: 27%|█████████▋ | 20/74 [00:20<00:41, 1.32it/s]
epoch 60 | loss 0.7778565287590027, f_iou 0.6422911286354065: 28%|██████████▏ | 21/74 [00:20<00:39, 1.34it/s]
epoch 60 | loss 1.4592546224594116, f_iou 0.6457711458206177: 28%|██████████▏ | 21/74 [00:21<00:39, 1.34it/s]
epoch 60 | loss 1.4592546224594116, f_iou 0.6457711458206177: 30%|██████████▋ | 22/74 [00:21<00:38, 1.35it/s]
epoch 60 | loss 0.6967328786849976, f_iou 0.6327670812606812: 30%|██████████▋ | 22/74 [00:22<00:38, 1.35it/s]
epoch 60 | loss 0.6967328786849976, f_iou 0.6327670812606812: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 60 | loss 1.1471498012542725, f_iou 0.6296032667160034: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 60 | loss 1.1471498012542725, f_iou 0.6296032667160034: 32%|███████████▋ | 24/74 [00:23<00:37, 1.34it/s]
epoch 60 | loss 4.057051658630371, f_iou 0.6286662220954895: 32%|████████████ | 24/74 [00:23<00:37, 1.34it/s]
epoch 60 | loss 4.057051658630371, f_iou 0.6286662220954895: 34%|████████████▌ | 25/74 [00:23<00:36, 1.33it/s]
epoch 60 | loss 1.3663067817687988, f_iou 0.611380398273468: 34%|████████████▌ | 25/74 [00:24<00:36, 1.33it/s]
epoch 60 | loss 1.3663067817687988, f_iou 0.611380398273468: 35%|█████████████ | 26/74 [00:24<00:35, 1.35it/s]
epoch 60 | loss 0.6859936714172363, f_iou 0.6227946877479553: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 60 | loss 0.6859936714172363, f_iou 0.6227946877479553: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.36it/s]
epoch 60 | loss 0.9707708358764648, f_iou 0.6284114718437195: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.36it/s]
epoch 60 | loss 0.9707708358764648, f_iou 0.6284114718437195: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 60 | loss 1.0176424980163574, f_iou 0.6372562646865845: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 60 | loss 1.0176424980163574, f_iou 0.6372562646865845: 39%|██████████████ | 29/74 [00:26<00:33, 1.35it/s]
epoch 60 | loss 2.1198322772979736, f_iou 0.6234099864959717: 39%|██████████████ | 29/74 [00:27<00:33, 1.35it/s]
epoch 60 | loss 2.1198322772979736, f_iou 0.6234099864959717: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.35it/s]
epoch 60 | loss 1.4791347980499268, f_iou 0.6261448860168457: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.35it/s]
epoch 60 | loss 1.4791347980499268, f_iou 0.6261448860168457: 42%|███████████████ | 31/74 [00:28<00:31, 1.36it/s]
epoch 60 | loss 0.5668259263038635, f_iou 0.6171721816062927: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 60 | loss 0.5668259263038635, f_iou 0.6171721816062927: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 60 | loss 0.0, f_iou 0.6263985633850098: 43%|██████████████████████ | 32/74 [00:29<00:30, 1.37it/s]
epoch 60 | loss 0.0, f_iou 0.6263985633850098: 45%|██████████████████████▋ | 33/74 [00:29<00:29, 1.38it/s]
epoch 60 | loss 1.60194730758667, f_iou 0.6262200474739075: 45%|████████████████▉ | 33/74 [00:30<00:29, 1.38it/s]
epoch 60 | loss 1.60194730758667, f_iou 0.6262200474739075: 46%|█████████████████▍ | 34/74 [00:30<00:28, 1.38it/s]
epoch 60 | loss 2.3489160537719727, f_iou 0.6282002329826355: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.38it/s]
epoch 60 | loss 2.3489160537719727, f_iou 0.6282002329826355: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 60 | loss 1.431394338607788, f_iou 0.6266344785690308: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.38it/s]
epoch 60 | loss 1.431394338607788, f_iou 0.6266344785690308: 49%|██████████████████ | 36/74 [00:31<00:27, 1.38it/s]
epoch 60 | loss 1.2138779163360596, f_iou 0.6323294639587402: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 60 | loss 1.2138779163360596, f_iou 0.6323294639587402: 50%|██████████████████ | 37/74 [00:32<00:26, 1.37it/s]
epoch 60 | loss 1.820352554321289, f_iou 0.6309479475021362: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.37it/s]
epoch 60 | loss 1.820352554321289, f_iou 0.6309479475021362: 51%|███████████████████ | 38/74 [00:33<00:26, 1.38it/s]
epoch 60 | loss 2.144606828689575, f_iou 0.629946231842041: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.38it/s]
epoch 60 | loss 2.144606828689575, f_iou 0.629946231842041: 53%|████████████████████ | 39/74 [00:34<00:25, 1.39it/s]
epoch 60 | loss 2.6274542808532715, f_iou 0.622931718826294: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 60 | loss 2.6274542808532715, f_iou 0.622931718826294: 54%|████████████████████ | 40/74 [00:34<00:24, 1.39it/s]
epoch 60 | loss 0.7049808502197266, f_iou 0.6085862517356873: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 60 | loss 0.7049808502197266, f_iou 0.6085862517356873: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 60 | loss 3.3941497802734375, f_iou 0.6043474078178406: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 60 | loss 3.3941497802734375, f_iou 0.6043474078178406: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 60 | loss 1.993429183959961, f_iou 0.6003225445747375: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.37it/s]
epoch 60 | loss 1.993429183959961, f_iou 0.6003225445747375: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.34it/s]
epoch 60 | loss 2.442188262939453, f_iou 0.6043916344642639: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.34it/s]
epoch 60 | loss 2.442188262939453, f_iou 0.6043916344642639: 59%|██████████████████████ | 44/74 [00:37<00:22, 1.33it/s]
epoch 60 | loss 0.5141779780387878, f_iou 0.5929070115089417: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.33it/s]
epoch 60 | loss 0.5141779780387878, f_iou 0.5929070115089417: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.32it/s]
epoch 60 | loss 3.7533323764801025, f_iou 0.5913315415382385: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.32it/s]
epoch 60 | loss 3.7533323764801025, f_iou 0.5913315415382385: 62%|██████████████████████▍ | 46/74 [00:39<00:21, 1.32it/s]
epoch 60 | loss 2.6283318996429443, f_iou 0.5859581828117371: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.32it/s]
epoch 60 | loss 2.6283318996429443, f_iou 0.5859581828117371: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.31it/s]
epoch 60 | loss 0.7671093344688416, f_iou 0.5896836519241333: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.31it/s]
epoch 60 | loss 0.7671093344688416, f_iou 0.5896836519241333: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.33it/s]
epoch 60 | loss 1.24612295627594, f_iou 0.5794177651405334: 65%|████████████████████████▋ | 48/74 [00:41<00:19, 1.33it/s]
epoch 60 | loss 1.24612295627594, f_iou 0.5794177651405334: 66%|█████████████████████████▏ | 49/74 [00:41<00:18, 1.35it/s]
epoch 60 | loss 2.069753646850586, f_iou 0.5737190246582031: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.35it/s]
epoch 60 | loss 2.069753646850586, f_iou 0.5737190246582031: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.36it/s]
epoch 60 | loss 2.2419142723083496, f_iou 0.5762141346931458: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.36it/s]
epoch 60 | loss 2.2419142723083496, f_iou 0.5762141346931458: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.37it/s]
epoch 60 | loss 2.5875244140625, f_iou 0.5764982104301453: 69%|██████████████████████████▉ | 51/74 [00:43<00:16, 1.37it/s]
epoch 60 | loss 2.5875244140625, f_iou 0.5764982104301453: 70%|███████████████████████████▍ | 52/74 [00:43<00:15, 1.38it/s]
epoch 60 | loss 0.5492101311683655, f_iou 0.5728126168251038: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 60 | loss 0.5492101311683655, f_iou 0.5728126168251038: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 60 | loss 1.2939643859863281, f_iou 0.5769644975662231: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 60 | loss 1.2939643859863281, f_iou 0.5769644975662231: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 60 | loss 3.7916345596313477, f_iou 0.5785636305809021: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 60 | loss 3.7916345596313477, f_iou 0.5785636305809021: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 60 | loss 0.7428667545318604, f_iou 0.5753724575042725: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 60 | loss 0.7428667545318604, f_iou 0.5753724575042725: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 60 | loss 2.4333677291870117, f_iou 0.5760776400566101: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 60 | loss 2.4333677291870117, f_iou 0.5760776400566101: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 60 | loss 0.6991090774536133, f_iou 0.5830236077308655: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 60 | loss 0.6991090774536133, f_iou 0.5830236077308655: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 60 | loss 1.5272860527038574, f_iou 0.5752260684967041: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 60 | loss 1.5272860527038574, f_iou 0.5752260684967041: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 60 | loss 1.4463855028152466, f_iou 0.5804408192634583: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 60 | loss 1.4463855028152466, f_iou 0.5804408192634583: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 60 | loss 4.394660949707031, f_iou 0.5845905542373657: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 60 | loss 4.394660949707031, f_iou 0.5845905542373657: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 60 | loss 0.48619890213012695, f_iou 0.5898512601852417: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.39it/s]
epoch 60 | loss 0.48619890213012695, f_iou 0.5898512601852417: 84%|█████████████████████████████▎ | 62/74 [00:50<00:08, 1.39it/s]
epoch 60 | loss 2.73624849319458, f_iou 0.5889081358909607: 84%|███████████████████████████████▊ | 62/74 [00:51<00:08, 1.39it/s]
epoch 60 | loss 2.73624849319458, f_iou 0.5889081358909607: 85%|████████████████████████████████▎ | 63/74 [00:51<00:07, 1.40it/s]
epoch 60 | loss 2.246769905090332, f_iou 0.584884762763977: 85%|████████████████████████████████▎ | 63/74 [00:52<00:07, 1.40it/s]
epoch 60 | loss 2.246769905090332, f_iou 0.584884762763977: 86%|████████████████████████████████▊ | 64/74 [00:52<00:07, 1.39it/s]
epoch 60 | loss 1.3242443799972534, f_iou 0.5815324187278748: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 60 | loss 1.3242443799972534, f_iou 0.5815324187278748: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 60 | loss 0.5138249397277832, f_iou 0.5867688059806824: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 60 | loss 0.5138249397277832, f_iou 0.5867688059806824: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 60 | loss 0.8514724969863892, f_iou 0.5915088653564453: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.40it/s]
epoch 60 | loss 0.8514724969863892, f_iou 0.5915088653564453: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.40it/s]
epoch 60 | loss 0.7309607267379761, f_iou 0.5828114748001099: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.40it/s]
epoch 60 | loss 0.7309607267379761, f_iou 0.5828114748001099: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 60 | loss 1.6535519361495972, f_iou 0.5854050517082214: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 60 | loss 1.6535519361495972, f_iou 0.5854050517082214: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 60 | loss 0.39279669523239136, f_iou 0.5770421624183655: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.40it/s]
epoch 60 | loss 0.39279669523239136, f_iou 0.5770421624183655: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 60 | loss 0.7515449523925781, f_iou 0.5797894597053528: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 60 | loss 0.7515449523925781, f_iou 0.5797894597053528: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 60 | loss 1.0829428434371948, f_iou 0.5769205689430237: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 60 | loss 1.0829428434371948, f_iou 0.5769205689430237: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 60 | loss 1.6521217823028564, f_iou 0.5690175890922546: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 60 | loss 1.6521217823028564, f_iou 0.5690175890922546: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.42it/s]
epoch 60 | loss 2.2777042388916016, f_iou 0.5720438361167908: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.42it/s]
epoch 60 | loss 2.2777042388916016, f_iou 0.5720438361167908: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 60 | loss 2.2777042388916016, f_iou 0.5720438361167908: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 60 | valid.f_iou 0.7151200175285339, valid.f_f-score 0.87369: 0%| | 0/16 [00:05, ?it/s]
epoch 60 | valid.f_iou 0.7151200175285339, valid.f_f-score 0.87369: 6%|█▉ | 1/16 [00:05<01:21, 5.41s/it]
epoch 60 | valid.f_iou 0.6505500078201294, valid.f_f-score 0.84905: 6%|█▉ | 1/16 [00:05<01:21, 5.41s/it]
epoch 60 | valid.f_iou 0.6505500078201294, valid.f_f-score 0.84905: 12%|███▉ | 2/16 [00:05<00:34, 2.50s/it]
epoch 60 | valid.f_iou 0.5280699729919434, valid.f_f-score 0.75469: 12%|███▉ | 2/16 [00:06<00:34, 2.50s/it]
epoch 60 | valid.f_iou 0.5280699729919434, valid.f_f-score 0.75469: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 60 | valid.f_iou 0.5894299745559692, valid.f_f-score 0.7663: 19%|██████ | 3/16 [00:06<00:20, 1.57s/it]
epoch 60 | valid.f_iou 0.5894299745559692, valid.f_f-score 0.7663: 25%|████████ | 4/16 [00:06<00:13, 1.14s/it]
epoch 60 | valid.f_iou 0.54339998960495, valid.f_f-score 0.73566: 25%|████████▎ | 4/16 [00:07<00:13, 1.14s/it]
epoch 60 | valid.f_iou 0.54339998960495, valid.f_f-score 0.73566: 31%|██████████▎ | 5/16 [00:07<00:09, 1.11it/s]
epoch 60 | valid.f_iou 0.5193300247192383, valid.f_f-score 0.70865: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 60 | valid.f_iou 0.5193300247192383, valid.f_f-score 0.70865: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 60 | valid.f_iou 0.5426300168037415, valid.f_f-score 0.73041: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 60 | valid.f_iou 0.5426300168037415, valid.f_f-score 0.73041: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 60 | valid.f_iou 0.5216900110244751, valid.f_f-score 0.71578: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 60 | valid.f_iou 0.5216900110244751, valid.f_f-score 0.71578: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 60 | valid.f_iou 0.5231299996376038, valid.f_f-score 0.70566: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 60 | valid.f_iou 0.5231299996376038, valid.f_f-score 0.70566: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.07it/s]
epoch 60 | valid.f_iou 0.510860025882721, valid.f_f-score 0.70626: 56%|██████████████████ | 9/16 [00:09<00:03, 2.07it/s]
epoch 60 | valid.f_iou 0.510860025882721, valid.f_f-score 0.70626: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.24it/s]
epoch 60 | valid.f_iou 0.5117800235748291, valid.f_f-score 0.70652: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.24it/s]
epoch 60 | valid.f_iou 0.5117800235748291, valid.f_f-score 0.70652: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 60 | valid.f_iou 0.5353699922561646, valid.f_f-score 0.72448: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 60 | valid.f_iou 0.5353699922561646, valid.f_f-score 0.72448: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 60 | valid.f_iou 0.5402699708938599, valid.f_f-score 0.73094: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.47it/s]
epoch 60 | valid.f_iou 0.5402699708938599, valid.f_f-score 0.73094: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 60 | valid.f_iou 0.5321599841117859, valid.f_f-score 0.72118: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 60 | valid.f_iou 0.5321599841117859, valid.f_f-score 0.72118: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 60 | valid.f_iou 0.5400099754333496, valid.f_f-score 0.72277: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.60it/s]
epoch 60 | valid.f_iou 0.5400099754333496, valid.f_f-score 0.72277: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 60 | valid.f_iou 0.5460299849510193, valid.f_f-score 0.72129: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 60 | valid.f_iou 0.5460299849510193, valid.f_f-score 0.72129: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 60 | valid.f_iou 0.5460299849510193, valid.f_f-score 0.72129: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 60 | valid.f_iou 0.795769989490509, valid.f_f-score 0.78568: 0%| | 0/16 [00:04, ?it/s]
epoch 60 | valid.f_iou 0.795769989490509, valid.f_f-score 0.78568: 6%|██ | 1/16 [00:04<01:11, 4.75s/it]
epoch 60 | valid.f_iou 0.8253300189971924, valid.f_f-score 0.86321: 6%|█▉ | 1/16 [00:05<01:11, 4.75s/it]
epoch 60 | valid.f_iou 0.8253300189971924, valid.f_f-score 0.86321: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 60 | valid.f_iou 0.7162299752235413, valid.f_f-score 0.80569: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 60 | valid.f_iou 0.7162299752235413, valid.f_f-score 0.80569: 19%|█████▊ | 3/16 [00:05<00:18, 1.42s/it]
epoch 60 | valid.f_iou 0.7209200263023376, valid.f_f-score 0.801: 19%|██████▏ | 3/16 [00:06<00:18, 1.42s/it]
epoch 60 | valid.f_iou 0.7209200263023376, valid.f_f-score 0.801: 25%|████████▎ | 4/16 [00:06<00:12, 1.03s/it]
epoch 60 | valid.f_iou 0.7141199707984924, valid.f_f-score 0.80277: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 60 | valid.f_iou 0.7141199707984924, valid.f_f-score 0.80277: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 60 | valid.f_iou 0.6885700225830078, valid.f_f-score 0.77163: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 60 | valid.f_iou 0.6885700225830078, valid.f_f-score 0.77163: 38%|███████████▋ | 6/16 [00:06<00:06, 1.47it/s]
epoch 60 | valid.f_iou 0.7088099718093872, valid.f_f-score 0.79551: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 60 | valid.f_iou 0.7088099718093872, valid.f_f-score 0.79551: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 60 | valid.f_iou 0.7018899917602539, valid.f_f-score 0.79638: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 60 | valid.f_iou 0.7018899917602539, valid.f_f-score 0.79638: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.90it/s]
epoch 60 | valid.f_iou 0.7139899730682373, valid.f_f-score 0.80445: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 60 | valid.f_iou 0.7139899730682373, valid.f_f-score 0.80445: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 60 | valid.f_iou 0.7288200259208679, valid.f_f-score 0.81579: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 60 | valid.f_iou 0.7288200259208679, valid.f_f-score 0.81579: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.27it/s]
epoch 60 | valid.f_iou 0.7198899984359741, valid.f_f-score 0.8038: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.27it/s]
epoch 60 | valid.f_iou 0.7198899984359741, valid.f_f-score 0.8038: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.39it/s]
epoch 60 | valid.f_iou 0.7314599752426147, valid.f_f-score 0.81446: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 60 | valid.f_iou 0.7314599752426147, valid.f_f-score 0.81446: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.30it/s]
epoch 60 | valid.f_iou 0.7373300194740295, valid.f_f-score 0.82185: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.30it/s]
epoch 60 | valid.f_iou 0.7373300194740295, valid.f_f-score 0.82185: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.42it/s]
epoch 60 | valid.f_iou 0.7282299995422363, valid.f_f-score 0.81322: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 60 | valid.f_iou 0.7282299995422363, valid.f_f-score 0.81322: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 60 | valid.f_iou 0.734790027141571, valid.f_f-score 0.82073: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.50it/s]
epoch 60 | valid.f_iou 0.734790027141571, valid.f_f-score 0.82073: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.56it/s]
epoch 60 | valid.f_iou 0.73403000831604, valid.f_f-score 0.81881: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.56it/s]
epoch 60 | valid.f_iou 0.73403000831604, valid.f_f-score 0.81881: 100%|████████████████████████████████| 16/16 [00:10<00:00, 2.60it/s]
epoch 60 | valid.f_iou 0.73403000831604, valid.f_f-score 0.81881: 100%|████████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 60 | valid.f_iou 0.795769989490509, valid.f_f-score 0.78568: 0%| | 0/16 [00:05, ?it/s]
epoch 60 | valid.f_iou 0.795769989490509, valid.f_f-score 0.78568: 6%|██ | 1/16 [00:05<01:18, 5.24s/it]
epoch 60 | valid.f_iou 0.8253300189971924, valid.f_f-score 0.86321: 6%|█▉ | 1/16 [00:05<01:18, 5.24s/it]
epoch 60 | valid.f_iou 0.8253300189971924, valid.f_f-score 0.86321: 12%|███▉ | 2/16 [00:05<00:34, 2.43s/it]
epoch 60 | valid.f_iou 0.7162299752235413, valid.f_f-score 0.80569: 12%|███▉ | 2/16 [00:06<00:34, 2.43s/it]
epoch 60 | valid.f_iou 0.7162299752235413, valid.f_f-score 0.80569: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 60 | valid.f_iou 0.7209200263023376, valid.f_f-score 0.801: 19%|██████▏ | 3/16 [00:06<00:19, 1.53s/it]
epoch 60 | valid.f_iou 0.7209200263023376, valid.f_f-score 0.801: 25%|████████▎ | 4/16 [00:06<00:13, 1.10s/it]
epoch 60 | valid.f_iou 0.714139997959137, valid.f_f-score 0.80277: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 60 | valid.f_iou 0.714139997959137, valid.f_f-score 0.80277: 31%|██████████ | 5/16 [00:07<00:09, 1.16it/s]
epoch 60 | valid.f_iou 0.6885899901390076, valid.f_f-score 0.77163: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 60 | valid.f_iou 0.6885899901390076, valid.f_f-score 0.77163: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 60 | valid.f_iou 0.7105000019073486, valid.f_f-score 0.79551: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 60 | valid.f_iou 0.7105000019073486, valid.f_f-score 0.79551: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.58it/s]
epoch 60 | valid.f_iou 0.7033799886703491, valid.f_f-score 0.79638: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 60 | valid.f_iou 0.7033799886703491, valid.f_f-score 0.79638: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 60 | valid.f_iou 0.717490017414093, valid.f_f-score 0.80445: 50%|████████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 60 | valid.f_iou 0.717490017414093, valid.f_f-score 0.80445: 56%|██████████████████ | 9/16 [00:08<00:03, 1.90it/s]
epoch 60 | valid.f_iou 0.7274600267410278, valid.f_f-score 0.81218: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 60 | valid.f_iou 0.7274600267410278, valid.f_f-score 0.81218: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 60 | valid.f_iou 0.7186599969863892, valid.f_f-score 0.80052: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 60 | valid.f_iou 0.7186599969863892, valid.f_f-score 0.80052: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 60 | valid.f_iou 0.7303299903869629, valid.f_f-score 0.81145: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 60 | valid.f_iou 0.7303299903869629, valid.f_f-score 0.81145: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.37it/s]
epoch 60 | valid.f_iou 0.7362800240516663, valid.f_f-score 0.82036: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 60 | valid.f_iou 0.7362800240516663, valid.f_f-score 0.82036: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 60 | valid.f_iou 0.7272599935531616, valid.f_f-score 0.81184: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 60 | valid.f_iou 0.7272599935531616, valid.f_f-score 0.81184: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 60 | valid.f_iou 0.7338799834251404, valid.f_f-score 0.81944: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 60 | valid.f_iou 0.7338799834251404, valid.f_f-score 0.81944: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 60 | valid.f_iou 0.7336500287055969, valid.f_f-score 0.8176: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.58it/s]
epoch 60 | valid.f_iou 0.7336500287055969, valid.f_f-score 0.8176: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 60 | valid.f_iou 0.7336500287055969, valid.f_f-score 0.8176: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 61 | loss 1.2258579730987549, f_iou 0.6625891923904419: 0%| | 0/74 [00:06, ?it/s]
epoch 61 | loss 1.2258579730987549, f_iou 0.6625891923904419: 1%|▌ | 1/74 [00:06<07:51, 6.45s/it]
epoch 61 | loss 3.0876388549804688, f_iou 0.6153203248977661: 1%|▌ | 1/74 [00:07<07:51, 6.45s/it]
epoch 61 | loss 3.0876388549804688, f_iou 0.6153203248977661: 3%|█ | 2/74 [00:07<03:49, 3.19s/it]
epoch 61 | loss 1.6498781442642212, f_iou 0.488555371761322: 3%|█ | 2/74 [00:08<03:49, 3.19s/it]
epoch 61 | loss 1.6498781442642212, f_iou 0.488555371761322: 4%|█▌ | 3/74 [00:08<02:33, 2.16s/it]
epoch 61 | loss 0.5390551090240479, f_iou 0.3679627478122711: 4%|█▌ | 3/74 [00:09<02:33, 2.16s/it]
epoch 61 | loss 0.5390551090240479, f_iou 0.3679627478122711: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 61 | loss 0.7909560799598694, f_iou 0.48116230964660645: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 61 | loss 0.7909560799598694, f_iou 0.48116230964660645: 7%|██▍ | 5/74 [00:09<01:31, 1.32s/it]
epoch 61 | loss 4.0282063484191895, f_iou 0.4335291385650635: 7%|██▌ | 5/74 [00:10<01:31, 1.32s/it]
epoch 61 | loss 4.0282063484191895, f_iou 0.4335291385650635: 8%|███ | 6/74 [00:10<01:17, 1.14s/it]
epoch 61 | loss 1.6367404460906982, f_iou 0.44575658440589905: 8%|██▉ | 6/74 [00:11<01:17, 1.14s/it]
epoch 61 | loss 1.6367404460906982, f_iou 0.44575658440589905: 9%|███▍ | 7/74 [00:11<01:08, 1.03s/it]
epoch 61 | loss 0.89994877576828, f_iou 0.49867889285087585: 9%|███▌ | 7/74 [00:12<01:08, 1.03s/it]
epoch 61 | loss 0.89994877576828, f_iou 0.49867889285087585: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 61 | loss 3.0772242546081543, f_iou 0.5105000734329224: 11%|████ | 8/74 [00:13<01:02, 1.05it/s]
epoch 61 | loss 3.0772242546081543, f_iou 0.5105000734329224: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 61 | loss 2.3995256423950195, f_iou 0.510508120059967: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 61 | loss 2.3995256423950195, f_iou 0.510508120059967: 14%|█████ | 10/74 [00:13<00:55, 1.15it/s]
epoch 61 | loss 0.639985203742981, f_iou 0.551613450050354: 14%|█████▏ | 10/74 [00:14<00:55, 1.15it/s]
epoch 61 | loss 0.639985203742981, f_iou 0.551613450050354: 15%|█████▋ | 11/74 [00:14<00:52, 1.19it/s]
epoch 61 | loss 1.264721393585205, f_iou 0.5761481523513794: 15%|█████▌ | 11/74 [00:15<00:52, 1.19it/s]
epoch 61 | loss 1.264721393585205, f_iou 0.5761481523513794: 16%|██████ | 12/74 [00:15<00:49, 1.24it/s]
epoch 61 | loss 1.1864839792251587, f_iou 0.5972023010253906: 16%|█████▊ | 12/74 [00:16<00:49, 1.24it/s]
epoch 61 | loss 1.1864839792251587, f_iou 0.5972023010253906: 18%|██████▎ | 13/74 [00:16<00:47, 1.28it/s]
epoch 61 | loss 1.096912145614624, f_iou 0.592582106590271: 18%|██████▋ | 13/74 [00:16<00:47, 1.28it/s]
epoch 61 | loss 1.096912145614624, f_iou 0.592582106590271: 19%|███████▏ | 14/74 [00:16<00:45, 1.31it/s]
epoch 61 | loss 0.48785334825515747, f_iou 0.6145058870315552: 19%|██████▌ | 14/74 [00:17<00:45, 1.31it/s]
epoch 61 | loss 0.48785334825515747, f_iou 0.6145058870315552: 20%|███████ | 15/74 [00:17<00:45, 1.30it/s]
epoch 61 | loss 1.0857245922088623, f_iou 0.6025186777114868: 20%|███████▎ | 15/74 [00:18<00:45, 1.30it/s]
epoch 61 | loss 1.0857245922088623, f_iou 0.6025186777114868: 22%|███████▊ | 16/74 [00:18<00:45, 1.28it/s]
epoch 61 | loss 0.7246398329734802, f_iou 0.5692971348762512: 22%|███████▊ | 16/74 [00:19<00:45, 1.28it/s]
epoch 61 | loss 0.7246398329734802, f_iou 0.5692971348762512: 23%|████████▎ | 17/74 [00:19<00:44, 1.29it/s]
epoch 61 | loss 2.8050537109375, f_iou 0.5626025795936584: 23%|████████▉ | 17/74 [00:19<00:44, 1.29it/s]
epoch 61 | loss 2.8050537109375, f_iou 0.5626025795936584: 24%|█████████▍ | 18/74 [00:19<00:43, 1.29it/s]
epoch 61 | loss 1.1258647441864014, f_iou 0.579349935054779: 24%|█████████ | 18/74 [00:20<00:43, 1.29it/s]
epoch 61 | loss 1.1258647441864014, f_iou 0.579349935054779: 26%|█████████▌ | 19/74 [00:20<00:42, 1.30it/s]
epoch 61 | loss 2.685472249984741, f_iou 0.567430317401886: 26%|█████████▊ | 19/74 [00:21<00:42, 1.30it/s]
epoch 61 | loss 2.685472249984741, f_iou 0.567430317401886: 27%|██████████▎ | 20/74 [00:21<00:41, 1.30it/s]
epoch 61 | loss 1.438633680343628, f_iou 0.5771380662918091: 27%|██████████ | 20/74 [00:22<00:41, 1.30it/s]
epoch 61 | loss 1.438633680343628, f_iou 0.5771380662918091: 28%|██████████▌ | 21/74 [00:22<00:40, 1.30it/s]
epoch 61 | loss 1.780471920967102, f_iou 0.5751153230667114: 28%|██████████▌ | 21/74 [00:22<00:40, 1.30it/s]
epoch 61 | loss 1.780471920967102, f_iou 0.5751153230667114: 30%|███████████ | 22/74 [00:22<00:39, 1.31it/s]
epoch 61 | loss 1.667191743850708, f_iou 0.5582873225212097: 30%|███████████ | 22/74 [00:23<00:39, 1.31it/s]
epoch 61 | loss 1.667191743850708, f_iou 0.5582873225212097: 31%|███████████▌ | 23/74 [00:23<00:38, 1.31it/s]
epoch 61 | loss 2.3693442344665527, f_iou 0.5676429867744446: 31%|███████████▏ | 23/74 [00:24<00:38, 1.31it/s]
epoch 61 | loss 2.3693442344665527, f_iou 0.5676429867744446: 32%|███████████▋ | 24/74 [00:24<00:38, 1.31it/s]
epoch 61 | loss 0.8623439073562622, f_iou 0.5792516469955444: 32%|███████████▋ | 24/74 [00:25<00:38, 1.31it/s]
epoch 61 | loss 0.8623439073562622, f_iou 0.5792516469955444: 34%|████████████▏ | 25/74 [00:25<00:37, 1.31it/s]
epoch 61 | loss 0.4279138445854187, f_iou 0.5916425585746765: 34%|████████████▏ | 25/74 [00:26<00:37, 1.31it/s]
epoch 61 | loss 0.4279138445854187, f_iou 0.5916425585746765: 35%|████████████▋ | 26/74 [00:26<00:36, 1.31it/s]
epoch 61 | loss 0.6148750185966492, f_iou 0.5767321586608887: 35%|████████████▋ | 26/74 [00:26<00:36, 1.31it/s]
epoch 61 | loss 0.6148750185966492, f_iou 0.5767321586608887: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.33it/s]
epoch 61 | loss 1.597437858581543, f_iou 0.5783489942550659: 36%|█████████████▌ | 27/74 [00:27<00:35, 1.33it/s]
epoch 61 | loss 1.597437858581543, f_iou 0.5783489942550659: 38%|██████████████ | 28/74 [00:27<00:34, 1.35it/s]
epoch 61 | loss 1.2605324983596802, f_iou 0.5834935903549194: 38%|█████████████▌ | 28/74 [00:28<00:34, 1.35it/s]
epoch 61 | loss 1.2605324983596802, f_iou 0.5834935903549194: 39%|██████████████ | 29/74 [00:28<00:33, 1.36it/s]
epoch 61 | loss 1.0483760833740234, f_iou 0.5894349813461304: 39%|██████████████ | 29/74 [00:28<00:33, 1.36it/s]
epoch 61 | loss 1.0483760833740234, f_iou 0.5894349813461304: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.37it/s]
epoch 61 | loss 0.512408971786499, f_iou 0.601209819316864: 41%|███████████████▍ | 30/74 [00:29<00:32, 1.37it/s]
epoch 61 | loss 0.512408971786499, f_iou 0.601209819316864: 42%|███████████████▉ | 31/74 [00:29<00:31, 1.38it/s]
epoch 61 | loss 1.0627895593643188, f_iou 0.5912269949913025: 42%|███████████████ | 31/74 [00:30<00:31, 1.38it/s]
epoch 61 | loss 1.0627895593643188, f_iou 0.5912269949913025: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.38it/s]
epoch 61 | loss 0.953966498374939, f_iou 0.5893355011940002: 43%|████████████████ | 32/74 [00:31<00:30, 1.38it/s]
epoch 61 | loss 0.953966498374939, f_iou 0.5893355011940002: 45%|████████████████▌ | 33/74 [00:31<00:29, 1.38it/s]
epoch 61 | loss 0.9382978677749634, f_iou 0.5997875928878784: 45%|████████████████ | 33/74 [00:31<00:29, 1.38it/s]
epoch 61 | loss 0.9382978677749634, f_iou 0.5997875928878784: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 61 | loss 1.4403791427612305, f_iou 0.6045216917991638: 46%|████████████████▌ | 34/74 [00:32<00:28, 1.39it/s]
epoch 61 | loss 1.4403791427612305, f_iou 0.6045216917991638: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 61 | loss 2.879429817199707, f_iou 0.5993760824203491: 47%|█████████████████▌ | 35/74 [00:33<00:28, 1.39it/s]
epoch 61 | loss 2.879429817199707, f_iou 0.5993760824203491: 49%|██████████████████ | 36/74 [00:33<00:27, 1.39it/s]
epoch 61 | loss 0.818473219871521, f_iou 0.6039313673973083: 49%|██████████████████ | 36/74 [00:33<00:27, 1.39it/s]
epoch 61 | loss 0.818473219871521, f_iou 0.6039313673973083: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 61 | loss 1.072688102722168, f_iou 0.6084819436073303: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.40it/s]
epoch 61 | loss 1.072688102722168, f_iou 0.6084819436073303: 51%|███████████████████ | 38/74 [00:34<00:25, 1.40it/s]
epoch 61 | loss 2.5291171073913574, f_iou 0.6076404452323914: 51%|██████████████████▍ | 38/74 [00:35<00:25, 1.40it/s]
epoch 61 | loss 2.5291171073913574, f_iou 0.6076404452323914: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.40it/s]
epoch 61 | loss 0.7071265578269958, f_iou 0.6108380556106567: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.40it/s]
epoch 61 | loss 0.7071265578269958, f_iou 0.6108380556106567: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.40it/s]
epoch 61 | loss 1.699709415435791, f_iou 0.6164900660514832: 54%|████████████████████ | 40/74 [00:36<00:24, 1.40it/s]
epoch 61 | loss 1.699709415435791, f_iou 0.6164900660514832: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.40it/s]
epoch 61 | loss 2.596919298171997, f_iou 0.6064237952232361: 55%|████████████████████▌ | 41/74 [00:37<00:23, 1.40it/s]
epoch 61 | loss 2.596919298171997, f_iou 0.6064237952232361: 57%|█████████████████████ | 42/74 [00:37<00:22, 1.39it/s]
epoch 61 | loss 1.4688961505889893, f_iou 0.6117931604385376: 57%|████████████████████▍ | 42/74 [00:38<00:22, 1.39it/s]
epoch 61 | loss 1.4688961505889893, f_iou 0.6117931604385376: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.40it/s]
epoch 61 | loss 1.7144728899002075, f_iou 0.6075286865234375: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.40it/s]
epoch 61 | loss 1.7144728899002075, f_iou 0.6075286865234375: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 61 | loss 0.8067513108253479, f_iou 0.6119410395622253: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 61 | loss 0.8067513108253479, f_iou 0.6119410395622253: 61%|█████████████████████▉ | 45/74 [00:39<00:22, 1.30it/s]
epoch 61 | loss 3.4598774909973145, f_iou 0.6136645674705505: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.30it/s]
epoch 61 | loss 3.4598774909973145, f_iou 0.6136645674705505: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.33it/s]
epoch 61 | loss 1.1153780221939087, f_iou 0.6197148561477661: 62%|██████████████████████▍ | 46/74 [00:41<00:21, 1.33it/s]
epoch 61 | loss 1.1153780221939087, f_iou 0.6197148561477661: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.35it/s]
epoch 61 | loss 1.939729928970337, f_iou 0.6257507801055908: 64%|███████████████████████▌ | 47/74 [00:41<00:20, 1.35it/s]
epoch 61 | loss 1.939729928970337, f_iou 0.6257507801055908: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.36it/s]
epoch 61 | loss 1.3059096336364746, f_iou 0.625116765499115: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.36it/s]
epoch 61 | loss 1.3059096336364746, f_iou 0.625116765499115: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 61 | loss 1.5075275897979736, f_iou 0.6254191994667053: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.37it/s]
epoch 61 | loss 1.5075275897979736, f_iou 0.6254191994667053: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.37it/s]
epoch 61 | loss 1.5038622617721558, f_iou 0.6233398914337158: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.37it/s]
epoch 61 | loss 1.5038622617721558, f_iou 0.6233398914337158: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 61 | loss 1.1260026693344116, f_iou 0.6253791451454163: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 61 | loss 1.1260026693344116, f_iou 0.6253791451454163: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 61 | loss 1.507580041885376, f_iou 0.6266698241233826: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.38it/s]
epoch 61 | loss 1.507580041885376, f_iou 0.6266698241233826: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.39it/s]
epoch 61 | loss 2.4159750938415527, f_iou 0.6221141815185547: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.39it/s]
epoch 61 | loss 2.4159750938415527, f_iou 0.6221141815185547: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 61 | loss 0.6523168087005615, f_iou 0.627530038356781: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.39it/s]
epoch 61 | loss 0.6523168087005615, f_iou 0.627530038356781: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 61 | loss 0.74593186378479, f_iou 0.63155597448349: 74%|█████████████████████████████▋ | 55/74 [00:47<00:13, 1.39it/s]
epoch 61 | loss 0.74593186378479, f_iou 0.63155597448349: 76%|██████████████████████████████▎ | 56/74 [00:47<00:12, 1.39it/s]
epoch 61 | loss 1.6288307905197144, f_iou 0.6327104568481445: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 61 | loss 1.6288307905197144, f_iou 0.6327104568481445: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 61 | loss 1.5967453718185425, f_iou 0.6354458332061768: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.38it/s]
epoch 61 | loss 1.5967453718185425, f_iou 0.6354458332061768: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 61 | loss 0.7757068276405334, f_iou 0.6289038062095642: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 61 | loss 0.7757068276405334, f_iou 0.6289038062095642: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 61 | loss 0.9156778454780579, f_iou 0.628625750541687: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.39it/s]
epoch 61 | loss 0.9156778454780579, f_iou 0.628625750541687: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.36it/s]
epoch 61 | loss 1.1478115320205688, f_iou 0.6264726519584656: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.36it/s]
epoch 61 | loss 1.1478115320205688, f_iou 0.6264726519584656: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.35it/s]
epoch 61 | loss 0.6730556488037109, f_iou 0.6317546963691711: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.35it/s]
epoch 61 | loss 0.6730556488037109, f_iou 0.6317546963691711: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.34it/s]
epoch 61 | loss 1.0785921812057495, f_iou 0.6217285394668579: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.34it/s]
epoch 61 | loss 1.0785921812057495, f_iou 0.6217285394668579: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.36it/s]
epoch 61 | loss 2.683560371398926, f_iou 0.6270322203636169: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.36it/s]
epoch 61 | loss 2.683560371398926, f_iou 0.6270322203636169: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.37it/s]
epoch 61 | loss 2.7311511039733887, f_iou 0.6287899613380432: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.37it/s]
epoch 61 | loss 2.7311511039733887, f_iou 0.6287899613380432: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.37it/s]
epoch 61 | loss 3.2837467193603516, f_iou 0.6258298754692078: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.37it/s]
epoch 61 | loss 3.2837467193603516, f_iou 0.6258298754692078: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 61 | loss 0.8988888263702393, f_iou 0.6299852132797241: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 61 | loss 0.8988888263702393, f_iou 0.6299852132797241: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 61 | loss 1.7307475805282593, f_iou 0.6289793252944946: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 61 | loss 1.7307475805282593, f_iou 0.6289793252944946: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 61 | loss 0.8330909013748169, f_iou 0.6266201138496399: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.38it/s]
epoch 61 | loss 0.8330909013748169, f_iou 0.6266201138496399: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 61 | loss 1.9771260023117065, f_iou 0.6300613880157471: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 61 | loss 1.9771260023117065, f_iou 0.6300613880157471: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 61 | loss 1.1642627716064453, f_iou 0.6301135420799255: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 61 | loss 1.1642627716064453, f_iou 0.6301135420799255: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 61 | loss 2.823647975921631, f_iou 0.6323918104171753: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 61 | loss 2.823647975921631, f_iou 0.6323918104171753: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 61 | loss 2.2863550186157227, f_iou 0.6289483308792114: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.40it/s]
epoch 61 | loss 2.2863550186157227, f_iou 0.6289483308792114: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 61 | loss 0.8025327324867249, f_iou 0.6331757307052612: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 61 | loss 0.8025327324867249, f_iou 0.6331757307052612: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 61 | loss 0.8025327324867249, f_iou 0.6331757307052612: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 61 | valid.f_iou 0.6980500221252441, valid.f_f-score 0.86582: 0%| | 0/16 [00:05, ?it/s]
epoch 61 | valid.f_iou 0.6980500221252441, valid.f_f-score 0.86582: 6%|█▉ | 1/16 [00:05<01:18, 5.27s/it]
epoch 61 | valid.f_iou 0.6381999850273132, valid.f_f-score 0.8426: 6%|██ | 1/16 [00:05<01:18, 5.27s/it]
epoch 61 | valid.f_iou 0.6381999850273132, valid.f_f-score 0.8426: 12%|████ | 2/16 [00:05<00:34, 2.44s/it]
epoch 61 | valid.f_iou 0.5188599824905396, valid.f_f-score 0.75091: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 61 | valid.f_iou 0.5188599824905396, valid.f_f-score 0.75091: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 61 | valid.f_iou 0.571399986743927, valid.f_f-score 0.7613: 19%|██████▏ | 3/16 [00:06<00:20, 1.54s/it]
epoch 61 | valid.f_iou 0.571399986743927, valid.f_f-score 0.7613: 25%|████████▎ | 4/16 [00:06<00:13, 1.13s/it]
epoch 61 | valid.f_iou 0.5631099939346313, valid.f_f-score 0.75332: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 61 | valid.f_iou 0.5631099939346313, valid.f_f-score 0.75332: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 61 | valid.f_iou 0.5396400094032288, valid.f_f-score 0.73177: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 61 | valid.f_iou 0.5396400094032288, valid.f_f-score 0.73177: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 61 | valid.f_iou 0.5659499764442444, valid.f_f-score 0.75095: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 61 | valid.f_iou 0.5659499764442444, valid.f_f-score 0.75095: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 61 | valid.f_iou 0.5539399981498718, valid.f_f-score 0.74245: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 61 | valid.f_iou 0.5539399981498718, valid.f_f-score 0.74245: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 61 | valid.f_iou 0.5609400272369385, valid.f_f-score 0.73026: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 61 | valid.f_iou 0.5609400272369385, valid.f_f-score 0.73026: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.89it/s]
epoch 61 | valid.f_iou 0.5488700270652771, valid.f_f-score 0.7293: 56%|██████████████████ | 9/16 [00:09<00:03, 1.89it/s]
epoch 61 | valid.f_iou 0.5488700270652771, valid.f_f-score 0.7293: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.01it/s]
epoch 61 | valid.f_iou 0.5462999939918518, valid.f_f-score 0.72614: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 61 | valid.f_iou 0.5462999939918518, valid.f_f-score 0.72614: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 61 | valid.f_iou 0.5676900148391724, valid.f_f-score 0.74238: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.18it/s]
epoch 61 | valid.f_iou 0.5676900148391724, valid.f_f-score 0.74238: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.32it/s]
epoch 61 | valid.f_iou 0.5696700215339661, valid.f_f-score 0.74936: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.32it/s]
epoch 61 | valid.f_iou 0.5696700215339661, valid.f_f-score 0.74936: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 61 | valid.f_iou 0.5602200031280518, valid.f_f-score 0.73978: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 61 | valid.f_iou 0.5602200031280518, valid.f_f-score 0.73978: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.32it/s]
epoch 61 | valid.f_iou 0.5666199922561646, valid.f_f-score 0.74028: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.32it/s]
epoch 61 | valid.f_iou 0.5666199922561646, valid.f_f-score 0.74028: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.28it/s]
epoch 61 | valid.f_iou 0.5740900039672852, valid.f_f-score 0.73981: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.28it/s]
epoch 61 | valid.f_iou 0.5740900039672852, valid.f_f-score 0.73981: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.24it/s]
epoch 61 | valid.f_iou 0.5740900039672852, valid.f_f-score 0.73981: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 61 | valid.f_iou 0.6538199782371521, valid.f_f-score 0.65296: 0%| | 0/16 [00:04, ?it/s]
epoch 61 | valid.f_iou 0.6538199782371521, valid.f_f-score 0.65296: 6%|█▉ | 1/16 [00:04<01:12, 4.83s/it]
epoch 61 | valid.f_iou 0.7634299993515015, valid.f_f-score 0.80157: 6%|█▉ | 1/16 [00:05<01:12, 4.83s/it]
epoch 61 | valid.f_iou 0.7634299993515015, valid.f_f-score 0.80157: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 61 | valid.f_iou 0.6635500192642212, valid.f_f-score 0.75783: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 61 | valid.f_iou 0.6635500192642212, valid.f_f-score 0.75783: 19%|█████▊ | 3/16 [00:05<00:18, 1.43s/it]
epoch 61 | valid.f_iou 0.6564000248908997, valid.f_f-score 0.7283: 19%|██████ | 3/16 [00:06<00:18, 1.43s/it]
epoch 61 | valid.f_iou 0.6564000248908997, valid.f_f-score 0.7283: 25%|████████ | 4/16 [00:06<00:12, 1.04s/it]
epoch 61 | valid.f_iou 0.6345999836921692, valid.f_f-score 0.70592: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 61 | valid.f_iou 0.6345999836921692, valid.f_f-score 0.70592: 31%|█████████▋ | 5/16 [00:06<00:09, 1.21it/s]
epoch 61 | valid.f_iou 0.6253600120544434, valid.f_f-score 0.70386: 31%|█████████▋ | 5/16 [00:07<00:09, 1.21it/s]
epoch 61 | valid.f_iou 0.6253600120544434, valid.f_f-score 0.70386: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 61 | valid.f_iou 0.6551899909973145, valid.f_f-score 0.73737: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 61 | valid.f_iou 0.6551899909973145, valid.f_f-score 0.73737: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 61 | valid.f_iou 0.6605299711227417, valid.f_f-score 0.74965: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 61 | valid.f_iou 0.6605299711227417, valid.f_f-score 0.74965: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.81it/s]
epoch 61 | valid.f_iou 0.6759499907493591, valid.f_f-score 0.75896: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 61 | valid.f_iou 0.6759499907493591, valid.f_f-score 0.75896: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 61 | valid.f_iou 0.688289999961853, valid.f_f-score 0.77473: 56%|██████████████████ | 9/16 [00:08<00:03, 1.93it/s]
epoch 61 | valid.f_iou 0.688289999961853, valid.f_f-score 0.77473: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.12it/s]
epoch 61 | valid.f_iou 0.6799100041389465, valid.f_f-score 0.76377: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 61 | valid.f_iou 0.6799100041389465, valid.f_f-score 0.76377: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 61 | valid.f_iou 0.6949499845504761, valid.f_f-score 0.7777: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.27it/s]
epoch 61 | valid.f_iou 0.6949499845504761, valid.f_f-score 0.7777: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.39it/s]
epoch 61 | valid.f_iou 0.7084299921989441, valid.f_f-score 0.78879: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 61 | valid.f_iou 0.7084299921989441, valid.f_f-score 0.78879: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.47it/s]
epoch 61 | valid.f_iou 0.7029600143432617, valid.f_f-score 0.78428: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 61 | valid.f_iou 0.7029600143432617, valid.f_f-score 0.78428: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 61 | valid.f_iou 0.71110999584198, valid.f_f-score 0.79335: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.56it/s]
epoch 61 | valid.f_iou 0.71110999584198, valid.f_f-score 0.79335: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 61 | valid.f_iou 0.7134299874305725, valid.f_f-score 0.79421: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 61 | valid.f_iou 0.7134299874305725, valid.f_f-score 0.79421: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 61 | valid.f_iou 0.7134299874305725, valid.f_f-score 0.79421: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 61 | valid.f_iou 0.6538199782371521, valid.f_f-score 0.65296: 0%| | 0/16 [00:04, ?it/s]
epoch 61 | valid.f_iou 0.6538199782371521, valid.f_f-score 0.65296: 6%|█▉ | 1/16 [00:04<01:06, 4.40s/it]
epoch 61 | valid.f_iou 0.7634299993515015, valid.f_f-score 0.80157: 6%|█▉ | 1/16 [00:04<01:06, 4.40s/it]
epoch 61 | valid.f_iou 0.7634299993515015, valid.f_f-score 0.80157: 12%|███▉ | 2/16 [00:04<00:29, 2.09s/it]
epoch 61 | valid.f_iou 0.6635500192642212, valid.f_f-score 0.75783: 12%|███▉ | 2/16 [00:05<00:29, 2.09s/it]
epoch 61 | valid.f_iou 0.6635500192642212, valid.f_f-score 0.75783: 19%|█████▊ | 3/16 [00:05<00:17, 1.34s/it]
epoch 61 | valid.f_iou 0.656440019607544, valid.f_f-score 0.72354: 19%|██████ | 3/16 [00:05<00:17, 1.34s/it]
epoch 61 | valid.f_iou 0.656440019607544, valid.f_f-score 0.72354: 25%|████████ | 4/16 [00:05<00:11, 1.00it/s]
epoch 61 | valid.f_iou 0.6346700191497803, valid.f_f-score 0.70211: 25%|███████▊ | 4/16 [00:06<00:11, 1.00it/s]
epoch 61 | valid.f_iou 0.6346700191497803, valid.f_f-score 0.70211: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 61 | valid.f_iou 0.6254199743270874, valid.f_f-score 0.70069: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 61 | valid.f_iou 0.6254199743270874, valid.f_f-score 0.70069: 38%|███████████▋ | 6/16 [00:06<00:06, 1.47it/s]
epoch 61 | valid.f_iou 0.6568899750709534, valid.f_f-score 0.73465: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 61 | valid.f_iou 0.6568899750709534, valid.f_f-score 0.73465: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 61 | valid.f_iou 0.6620200276374817, valid.f_f-score 0.74728: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 61 | valid.f_iou 0.6620200276374817, valid.f_f-score 0.74728: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.80it/s]
epoch 61 | valid.f_iou 0.6784499883651733, valid.f_f-score 0.75685: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 61 | valid.f_iou 0.6784499883651733, valid.f_f-score 0.75685: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 61 | valid.f_iou 0.6880499720573425, valid.f_f-score 0.76948: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 61 | valid.f_iou 0.6880499720573425, valid.f_f-score 0.76948: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.14it/s]
epoch 61 | valid.f_iou 0.6720600128173828, valid.f_f-score 0.75297: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.14it/s]
epoch 61 | valid.f_iou 0.6720600128173828, valid.f_f-score 0.75297: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.29it/s]
epoch 61 | valid.f_iou 0.6877599954605103, valid.f_f-score 0.7678: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.29it/s]
epoch 61 | valid.f_iou 0.6877599954605103, valid.f_f-score 0.7678: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.41it/s]
epoch 61 | valid.f_iou 0.7017899751663208, valid.f_f-score 0.78088: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 61 | valid.f_iou 0.7017899751663208, valid.f_f-score 0.78088: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 61 | valid.f_iou 0.6967899799346924, valid.f_f-score 0.77695: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 61 | valid.f_iou 0.6967899799346924, valid.f_f-score 0.77695: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.57it/s]
epoch 61 | valid.f_iou 0.7053499817848206, valid.f_f-score 0.7865: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.57it/s]
epoch 61 | valid.f_iou 0.7053499817848206, valid.f_f-score 0.7865: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.62it/s]
epoch 61 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.78779: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 61 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.78779: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 61 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.78779: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 62 | loss 0.9976564645767212, f_iou 0.8127832412719727: 0%| | 0/74 [00:05, ?it/s]
epoch 62 | loss 0.9976564645767212, f_iou 0.8127832412719727: 1%|▌ | 1/74 [00:05<06:57, 5.72s/it]
epoch 62 | loss 2.8750650882720947, f_iou 0.7581639885902405: 1%|▌ | 1/74 [00:06<06:57, 5.72s/it]
epoch 62 | loss 2.8750650882720947, f_iou 0.7581639885902405: 3%|█ | 2/74 [00:06<03:20, 2.79s/it]
epoch 62 | loss 0.0, f_iou 0.8368809223175049: 3%|█▍ | 2/74 [00:07<03:20, 2.79s/it]
epoch 62 | loss 0.0, f_iou 0.8368809223175049: 4%|██ | 3/74 [00:07<02:11, 1.86s/it]
epoch 62 | loss 1.3407607078552246, f_iou 0.825485348701477: 4%|█▌ | 3/74 [00:07<02:11, 1.86s/it]
epoch 62 | loss 1.3407607078552246, f_iou 0.825485348701477: 5%|██ | 4/74 [00:07<01:39, 1.43s/it]
epoch 62 | loss 0.9120374917984009, f_iou 0.8354447484016418: 5%|██ | 4/74 [00:08<01:39, 1.43s/it]
epoch 62 | loss 0.9120374917984009, f_iou 0.8354447484016418: 7%|██▌ | 5/74 [00:08<01:22, 1.19s/it]
epoch 62 | loss 2.731727361679077, f_iou 0.744846522808075: 7%|██▋ | 5/74 [00:09<01:22, 1.19s/it]
epoch 62 | loss 2.731727361679077, f_iou 0.744846522808075: 8%|███▏ | 6/74 [00:09<01:11, 1.05s/it]
epoch 62 | loss 1.7727266550064087, f_iou 0.7496761679649353: 8%|███ | 6/74 [00:10<01:11, 1.05s/it]
epoch 62 | loss 1.7727266550064087, f_iou 0.7496761679649353: 9%|███▌ | 7/74 [00:10<01:08, 1.02s/it]
epoch 62 | loss 0.7778818607330322, f_iou 0.7477738857269287: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 62 | loss 0.7778818607330322, f_iou 0.7477738857269287: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 62 | loss 1.0979948043823242, f_iou 0.756577730178833: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 62 | loss 1.0979948043823242, f_iou 0.756577730178833: 12%|████▌ | 9/74 [00:11<00:57, 1.14it/s]
epoch 62 | loss 1.193878412246704, f_iou 0.7477062344551086: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 62 | loss 1.193878412246704, f_iou 0.7477062344551086: 14%|█████ | 10/74 [00:12<00:53, 1.21it/s]
epoch 62 | loss 2.2966535091400146, f_iou 0.7254834175109863: 14%|████▊ | 10/74 [00:13<00:53, 1.21it/s]
epoch 62 | loss 2.2966535091400146, f_iou 0.7254834175109863: 15%|█████▎ | 11/74 [00:13<00:50, 1.26it/s]
epoch 62 | loss 1.024148941040039, f_iou 0.708641767501831: 15%|█████▋ | 11/74 [00:14<00:50, 1.26it/s]
epoch 62 | loss 1.024148941040039, f_iou 0.708641767501831: 16%|██████▏ | 12/74 [00:14<00:47, 1.30it/s]
epoch 62 | loss 0.7522960901260376, f_iou 0.663914144039154: 16%|██████ | 12/74 [00:14<00:47, 1.30it/s]
epoch 62 | loss 0.7522960901260376, f_iou 0.663914144039154: 18%|██████▌ | 13/74 [00:14<00:48, 1.26it/s]
epoch 62 | loss 1.4136145114898682, f_iou 0.6777952313423157: 18%|██████▎ | 13/74 [00:15<00:48, 1.26it/s]
epoch 62 | loss 1.4136145114898682, f_iou 0.6777952313423157: 19%|██████▊ | 14/74 [00:15<00:46, 1.30it/s]
epoch 62 | loss 1.4416162967681885, f_iou 0.689193069934845: 19%|███████ | 14/74 [00:16<00:46, 1.30it/s]
epoch 62 | loss 1.4416162967681885, f_iou 0.689193069934845: 20%|███████▌ | 15/74 [00:16<00:44, 1.34it/s]
epoch 62 | loss 1.2955269813537598, f_iou 0.6941337585449219: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 62 | loss 1.2955269813537598, f_iou 0.6941337585449219: 22%|███████▊ | 16/74 [00:17<00:42, 1.35it/s]
epoch 62 | loss 0.7770609259605408, f_iou 0.7019846439361572: 22%|███████▊ | 16/74 [00:17<00:42, 1.35it/s]
epoch 62 | loss 0.7770609259605408, f_iou 0.7019846439361572: 23%|████████▎ | 17/74 [00:17<00:41, 1.36it/s]
epoch 62 | loss 1.475433588027954, f_iou 0.6812846660614014: 23%|████████▌ | 17/74 [00:18<00:41, 1.36it/s]
epoch 62 | loss 1.475433588027954, f_iou 0.6812846660614014: 24%|█████████ | 18/74 [00:18<00:40, 1.37it/s]
epoch 62 | loss 0.551794171333313, f_iou 0.6633216142654419: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 62 | loss 0.551794171333313, f_iou 0.6633216142654419: 26%|█████████▌ | 19/74 [00:19<00:39, 1.38it/s]
epoch 62 | loss 2.3104140758514404, f_iou 0.653999388217926: 26%|█████████▌ | 19/74 [00:19<00:39, 1.38it/s]
epoch 62 | loss 2.3104140758514404, f_iou 0.653999388217926: 27%|██████████ | 20/74 [00:19<00:39, 1.38it/s]
epoch 62 | loss 0.6796847581863403, f_iou 0.666144073009491: 27%|██████████ | 20/74 [00:20<00:39, 1.38it/s]
epoch 62 | loss 0.6796847581863403, f_iou 0.666144073009491: 28%|██████████▌ | 21/74 [00:20<00:38, 1.38it/s]
epoch 62 | loss 0.8129438757896423, f_iou 0.6760432720184326: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 62 | loss 0.8129438757896423, f_iou 0.6760432720184326: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 62 | loss 1.6860419511795044, f_iou 0.672325849533081: 30%|███████████ | 22/74 [00:22<00:37, 1.38it/s]
epoch 62 | loss 1.6860419511795044, f_iou 0.672325849533081: 31%|███████████▌ | 23/74 [00:22<00:36, 1.39it/s]
epoch 62 | loss 0.8098831176757812, f_iou 0.674245297908783: 31%|███████████▌ | 23/74 [00:22<00:36, 1.39it/s]
epoch 62 | loss 0.8098831176757812, f_iou 0.674245297908783: 32%|████████████ | 24/74 [00:22<00:36, 1.39it/s]
epoch 62 | loss 0.25864046812057495, f_iou 0.6812431812286377: 32%|███████████▎ | 24/74 [00:23<00:36, 1.39it/s]
epoch 62 | loss 0.25864046812057495, f_iou 0.6812431812286377: 34%|███████████▊ | 25/74 [00:23<00:35, 1.39it/s]
epoch 62 | loss 1.026127815246582, f_iou 0.6867880821228027: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 62 | loss 1.026127815246582, f_iou 0.6867880821228027: 35%|█████████████ | 26/74 [00:24<00:34, 1.39it/s]
epoch 62 | loss 1.0818171501159668, f_iou 0.6897162199020386: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 62 | loss 1.0818171501159668, f_iou 0.6897162199020386: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 62 | loss 0.9304275512695312, f_iou 0.6893463730812073: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 62 | loss 0.9304275512695312, f_iou 0.6893463730812073: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.39it/s]
epoch 62 | loss 1.0626702308654785, f_iou 0.6775646805763245: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 62 | loss 1.0626702308654785, f_iou 0.6775646805763245: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 62 | loss 0.8195906281471252, f_iou 0.6710318326950073: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 62 | loss 0.8195906281471252, f_iou 0.6710318326950073: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 62 | loss 0.6476476788520813, f_iou 0.6773598194122314: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 62 | loss 0.6476476788520813, f_iou 0.6773598194122314: 42%|███████████████ | 31/74 [00:27<00:30, 1.39it/s]
epoch 62 | loss 1.975463628768921, f_iou 0.6675299406051636: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.39it/s]
epoch 62 | loss 1.975463628768921, f_iou 0.6675299406051636: 43%|████████████████ | 32/74 [00:28<00:30, 1.39it/s]
epoch 62 | loss 0.7945735454559326, f_iou 0.653294026851654: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 62 | loss 0.7945735454559326, f_iou 0.653294026851654: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.39it/s]
epoch 62 | loss 0.0, f_iou 0.6610413789749146: 45%|██████████████████████▋ | 33/74 [00:30<00:29, 1.39it/s]
epoch 62 | loss 0.0, f_iou 0.6610413789749146: 46%|███████████████████████▍ | 34/74 [00:30<00:28, 1.39it/s]
epoch 62 | loss 1.1330723762512207, f_iou 0.6668663024902344: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 62 | loss 1.1330723762512207, f_iou 0.6668663024902344: 47%|█████████████████ | 35/74 [00:30<00:28, 1.39it/s]
epoch 62 | loss 0.9794135689735413, f_iou 0.6662645936012268: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 62 | loss 0.9794135689735413, f_iou 0.6662645936012268: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 62 | loss 0.50972580909729, f_iou 0.6743307709693909: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.39it/s]
epoch 62 | loss 0.50972580909729, f_iou 0.6743307709693909: 50%|███████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 62 | loss 3.1820950508117676, f_iou 0.6709043979644775: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 62 | loss 3.1820950508117676, f_iou 0.6709043979644775: 51%|██████████████████▍ | 38/74 [00:32<00:25, 1.40it/s]
epoch 62 | loss 0.8817138075828552, f_iou 0.672652006149292: 51%|███████████████████ | 38/74 [00:33<00:25, 1.40it/s]
epoch 62 | loss 0.8817138075828552, f_iou 0.672652006149292: 53%|███████████████████▍ | 39/74 [00:33<00:25, 1.39it/s]
epoch 62 | loss 1.5363186597824097, f_iou 0.6762697100639343: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 62 | loss 1.5363186597824097, f_iou 0.6762697100639343: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.40it/s]
epoch 62 | loss 1.8116953372955322, f_iou 0.6804643869400024: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.40it/s]
epoch 62 | loss 1.8116953372955322, f_iou 0.6804643869400024: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.40it/s]
epoch 62 | loss 1.1217923164367676, f_iou 0.6856092810630798: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.40it/s]
epoch 62 | loss 1.1217923164367676, f_iou 0.6856092810630798: 57%|████████████████████▍ | 42/74 [00:35<00:23, 1.39it/s]
epoch 62 | loss 0.9342104196548462, f_iou 0.6719833016395569: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 62 | loss 0.9342104196548462, f_iou 0.6719833016395569: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.39it/s]
epoch 62 | loss 2.2563834190368652, f_iou 0.6691940426826477: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 62 | loss 2.2563834190368652, f_iou 0.6691940426826477: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 62 | loss 0.4905754625797272, f_iou 0.6743351817131042: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 62 | loss 0.4905754625797272, f_iou 0.6743351817131042: 61%|█████████████████████▉ | 45/74 [00:37<00:20, 1.40it/s]
epoch 62 | loss 0.608021080493927, f_iou 0.6778746843338013: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.40it/s]
epoch 62 | loss 0.608021080493927, f_iou 0.6778746843338013: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.40it/s]
epoch 62 | loss 1.167997121810913, f_iou 0.6823906898498535: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.40it/s]
epoch 62 | loss 1.167997121810913, f_iou 0.6823906898498535: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.40it/s]
epoch 62 | loss 1.1671462059020996, f_iou 0.6832230091094971: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.40it/s]
epoch 62 | loss 1.1671462059020996, f_iou 0.6832230091094971: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 62 | loss 2.57609486579895, f_iou 0.6801031827926636: 65%|████████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 62 | loss 2.57609486579895, f_iou 0.6801031827926636: 66%|█████████████████████████▏ | 49/74 [00:40<00:18, 1.37it/s]
epoch 62 | loss 1.4768202304840088, f_iou 0.6726082563400269: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 62 | loss 1.4768202304840088, f_iou 0.6726082563400269: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.34it/s]
epoch 62 | loss 2.707516670227051, f_iou 0.6703853607177734: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.34it/s]
epoch 62 | loss 2.707516670227051, f_iou 0.6703853607177734: 69%|█████████████████████████▌ | 51/74 [00:42<00:17, 1.33it/s]
epoch 62 | loss 0.9354000687599182, f_iou 0.6720954775810242: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.33it/s]
epoch 62 | loss 0.9354000687599182, f_iou 0.6720954775810242: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.33it/s]
epoch 62 | loss 1.1374359130859375, f_iou 0.6763095855712891: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.33it/s]
epoch 62 | loss 1.1374359130859375, f_iou 0.6763095855712891: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.34it/s]
epoch 62 | loss 0.6023771166801453, f_iou 0.6731981635093689: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.34it/s]
epoch 62 | loss 0.6023771166801453, f_iou 0.6731981635093689: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.35it/s]
epoch 62 | loss 0.9465978145599365, f_iou 0.6747363209724426: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.35it/s]
epoch 62 | loss 0.9465978145599365, f_iou 0.6747363209724426: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.37it/s]
epoch 62 | loss 0.58451908826828, f_iou 0.6626875400543213: 74%|████████████████████████████▏ | 55/74 [00:46<00:13, 1.37it/s]
epoch 62 | loss 0.58451908826828, f_iou 0.6626875400543213: 76%|████████████████████████████▊ | 56/74 [00:46<00:13, 1.37it/s]
epoch 62 | loss 1.838651180267334, f_iou 0.6580525040626526: 76%|████████████████████████████ | 56/74 [00:46<00:13, 1.37it/s]
epoch 62 | loss 1.838651180267334, f_iou 0.6580525040626526: 77%|████████████████████████████▌ | 57/74 [00:46<00:12, 1.38it/s]
epoch 62 | loss 4.097320556640625, f_iou 0.6630663275718689: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.38it/s]
epoch 62 | loss 4.097320556640625, f_iou 0.6630663275718689: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.38it/s]
epoch 62 | loss 0.7726015448570251, f_iou 0.6646605730056763: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 62 | loss 0.7726015448570251, f_iou 0.6646605730056763: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 62 | loss 0.7930991649627686, f_iou 0.6675429940223694: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 62 | loss 0.7930991649627686, f_iou 0.6675429940223694: 81%|█████████████████████████████▏ | 60/74 [00:48<00:10, 1.39it/s]
epoch 62 | loss 0.7929590940475464, f_iou 0.6720382571220398: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 62 | loss 0.7929590940475464, f_iou 0.6720382571220398: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.39it/s]
epoch 62 | loss 0.6165946125984192, f_iou 0.6685156226158142: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 62 | loss 0.6165946125984192, f_iou 0.6685156226158142: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 62 | loss 1.2273918390274048, f_iou 0.67171311378479: 84%|███████████████████████████████▊ | 62/74 [00:51<00:08, 1.39it/s]
epoch 62 | loss 1.2273918390274048, f_iou 0.67171311378479: 85%|████████████████████████████████▎ | 63/74 [00:51<00:07, 1.39it/s]
epoch 62 | loss 2.5916409492492676, f_iou 0.6702929735183716: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 62 | loss 2.5916409492492676, f_iou 0.6702929735183716: 86%|███████████████████████████████▏ | 64/74 [00:51<00:07, 1.40it/s]
epoch 62 | loss 0.9822914600372314, f_iou 0.6738874912261963: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.40it/s]
epoch 62 | loss 0.9822914600372314, f_iou 0.6738874912261963: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.40it/s]
epoch 62 | loss 0.9865069389343262, f_iou 0.6678777933120728: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 62 | loss 0.9865069389343262, f_iou 0.6678777933120728: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 62 | loss 0.9865348935127258, f_iou 0.6580367684364319: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 62 | loss 0.9865348935127258, f_iou 0.6580367684364319: 91%|████████████████████████████████▌ | 67/74 [00:53<00:04, 1.40it/s]
epoch 62 | loss 1.3816375732421875, f_iou 0.655742347240448: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:04, 1.40it/s]
epoch 62 | loss 1.3816375732421875, f_iou 0.655742347240448: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.41it/s]
epoch 62 | loss 1.19138765335083, f_iou 0.6519930362701416: 92%|██████████████████████████████████▉ | 68/74 [00:55<00:04, 1.41it/s]
epoch 62 | loss 1.19138765335083, f_iou 0.6519930362701416: 93%|███████████████████████████████████▍ | 69/74 [00:55<00:03, 1.41it/s]
epoch 62 | loss 0.5445723533630371, f_iou 0.6449766755104065: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 62 | loss 0.5445723533630371, f_iou 0.6449766755104065: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 62 | loss 0.8369901180267334, f_iou 0.6391763687133789: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 62 | loss 0.8369901180267334, f_iou 0.6391763687133789: 96%|██████████████████████████████████▌ | 71/74 [00:56<00:02, 1.41it/s]
epoch 62 | loss 2.659848690032959, f_iou 0.6376357078552246: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 62 | loss 2.659848690032959, f_iou 0.6376357078552246: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 62 | loss 2.282817840576172, f_iou 0.6351500749588013: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 62 | loss 2.282817840576172, f_iou 0.6351500749588013: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 62 | loss 1.7956888675689697, f_iou 0.6318909525871277: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 62 | loss 1.7956888675689697, f_iou 0.6318909525871277: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.41it/s]
epoch 62 | loss 1.7956888675689697, f_iou 0.6318909525871277: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 62 | valid.f_iou 0.7277799844741821, valid.f_f-score 0.87214: 0%| | 0/16 [00:05, ?it/s]
epoch 62 | valid.f_iou 0.7277799844741821, valid.f_f-score 0.87214: 6%|█▉ | 1/16 [00:05<01:25, 5.71s/it]
epoch 62 | valid.f_iou 0.6421099901199341, valid.f_f-score 0.82534: 6%|█▉ | 1/16 [00:06<01:25, 5.71s/it]
epoch 62 | valid.f_iou 0.6421099901199341, valid.f_f-score 0.82534: 12%|███▉ | 2/16 [00:06<00:36, 2.62s/it]
epoch 62 | valid.f_iou 0.5238999724388123, valid.f_f-score 0.74831: 12%|███▉ | 2/16 [00:06<00:36, 2.62s/it]
epoch 62 | valid.f_iou 0.5238999724388123, valid.f_f-score 0.74831: 19%|█████▊ | 3/16 [00:06<00:21, 1.63s/it]
epoch 62 | valid.f_iou 0.5822299718856812, valid.f_f-score 0.76242: 19%|█████▊ | 3/16 [00:07<00:21, 1.63s/it]
epoch 62 | valid.f_iou 0.5822299718856812, valid.f_f-score 0.76242: 25%|███████▊ | 4/16 [00:07<00:14, 1.18s/it]
epoch 62 | valid.f_iou 0.5428799986839294, valid.f_f-score 0.73703: 25%|███████▊ | 4/16 [00:07<00:14, 1.18s/it]
epoch 62 | valid.f_iou 0.5428799986839294, valid.f_f-score 0.73703: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 62 | valid.f_iou 0.5150600075721741, valid.f_f-score 0.71298: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 62 | valid.f_iou 0.5150600075721741, valid.f_f-score 0.71298: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 62 | valid.f_iou 0.5428799986839294, valid.f_f-score 0.73388: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 62 | valid.f_iou 0.5428799986839294, valid.f_f-score 0.73388: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 62 | valid.f_iou 0.5231800079345703, valid.f_f-score 0.72199: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 62 | valid.f_iou 0.5231800079345703, valid.f_f-score 0.72199: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 62 | valid.f_iou 0.5241699814796448, valid.f_f-score 0.70626: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 62 | valid.f_iou 0.5241699814796448, valid.f_f-score 0.70626: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 62 | valid.f_iou 0.5109000205993652, valid.f_f-score 0.70452: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 62 | valid.f_iou 0.5109000205993652, valid.f_f-score 0.70452: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 62 | valid.f_iou 0.5113000273704529, valid.f_f-score 0.7039: 62%|███████████████████▍ | 10/16 [00:10<00:02, 2.04it/s]
epoch 62 | valid.f_iou 0.5113000273704529, valid.f_f-score 0.7039: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.10it/s]
epoch 62 | valid.f_iou 0.5350099802017212, valid.f_f-score 0.7217: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.10it/s]
epoch 62 | valid.f_iou 0.5350099802017212, valid.f_f-score 0.7217: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.19it/s]
epoch 62 | valid.f_iou 0.5401399731636047, valid.f_f-score 0.72883: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.19it/s]
epoch 62 | valid.f_iou 0.5401399731636047, valid.f_f-score 0.72883: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.34it/s]
epoch 62 | valid.f_iou 0.5314199924468994, valid.f_f-score 0.72102: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.34it/s]
epoch 62 | valid.f_iou 0.5314199924468994, valid.f_f-score 0.72102: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.45it/s]
epoch 62 | valid.f_iou 0.5395900011062622, valid.f_f-score 0.72256: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.45it/s]
epoch 62 | valid.f_iou 0.5395900011062622, valid.f_f-score 0.72256: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 62 | valid.f_iou 0.5462599992752075, valid.f_f-score 0.72143: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 62 | valid.f_iou 0.5462599992752075, valid.f_f-score 0.72143: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 62 | valid.f_iou 0.5462599992752075, valid.f_f-score 0.72143: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 62 | valid.f_iou 0.7778900265693665, valid.f_f-score 0.83335: 0%| | 0/16 [00:05, ?it/s]
epoch 62 | valid.f_iou 0.7778900265693665, valid.f_f-score 0.83335: 6%|█▉ | 1/16 [00:05<01:16, 5.09s/it]
epoch 62 | valid.f_iou 0.8217099905014038, valid.f_f-score 0.89112: 6%|█▉ | 1/16 [00:05<01:16, 5.09s/it]
epoch 62 | valid.f_iou 0.8217099905014038, valid.f_f-score 0.89112: 12%|███▉ | 2/16 [00:05<00:33, 2.36s/it]
epoch 62 | valid.f_iou 0.7049599885940552, valid.f_f-score 0.81992: 12%|███▉ | 2/16 [00:05<00:33, 2.36s/it]
epoch 62 | valid.f_iou 0.7049599885940552, valid.f_f-score 0.81992: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 62 | valid.f_iou 0.6756299734115601, valid.f_f-score 0.75382: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 62 | valid.f_iou 0.6756299734115601, valid.f_f-score 0.75382: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 62 | valid.f_iou 0.6633700132369995, valid.f_f-score 0.75778: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 62 | valid.f_iou 0.6633700132369995, valid.f_f-score 0.75778: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 62 | valid.f_iou 0.6499000191688538, valid.f_f-score 0.74729: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 62 | valid.f_iou 0.6499000191688538, valid.f_f-score 0.74729: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 62 | valid.f_iou 0.6750699877738953, valid.f_f-score 0.77454: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 62 | valid.f_iou 0.6750699877738953, valid.f_f-score 0.77454: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.71it/s]
epoch 62 | valid.f_iou 0.6716700196266174, valid.f_f-score 0.77385: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.71it/s]
epoch 62 | valid.f_iou 0.6716700196266174, valid.f_f-score 0.77385: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.94it/s]
epoch 62 | valid.f_iou 0.6898499727249146, valid.f_f-score 0.78049: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.94it/s]
epoch 62 | valid.f_iou 0.6898499727249146, valid.f_f-score 0.78049: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.15it/s]
epoch 62 | valid.f_iou 0.6820099949836731, valid.f_f-score 0.78925: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.15it/s]
epoch 62 | valid.f_iou 0.6820099949836731, valid.f_f-score 0.78925: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.29it/s]
epoch 62 | valid.f_iou 0.6730700135231018, valid.f_f-score 0.7733: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.29it/s]
epoch 62 | valid.f_iou 0.6730700135231018, valid.f_f-score 0.7733: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.40it/s]
epoch 62 | valid.f_iou 0.688759982585907, valid.f_f-score 0.78654: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.40it/s]
epoch 62 | valid.f_iou 0.688759982585907, valid.f_f-score 0.78654: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.50it/s]
epoch 62 | valid.f_iou 0.7026100158691406, valid.f_f-score 0.79708: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 62 | valid.f_iou 0.7026100158691406, valid.f_f-score 0.79708: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 62 | valid.f_iou 0.6953799724578857, valid.f_f-score 0.79123: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 62 | valid.f_iou 0.6953799724578857, valid.f_f-score 0.79123: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 62 | valid.f_iou 0.7049700021743774, valid.f_f-score 0.79923: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 62 | valid.f_iou 0.7049700021743774, valid.f_f-score 0.79923: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 62 | valid.f_iou 0.704069972038269, valid.f_f-score 0.79423: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.64it/s]
epoch 62 | valid.f_iou 0.704069972038269, valid.f_f-score 0.79423: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 62 | valid.f_iou 0.704069972038269, valid.f_f-score 0.79423: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 62 | valid.f_iou 0.7778900265693665, valid.f_f-score 0.83335: 0%| | 0/16 [00:05, ?it/s]
epoch 62 | valid.f_iou 0.7778900265693665, valid.f_f-score 0.83335: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 62 | valid.f_iou 0.8217099905014038, valid.f_f-score 0.89112: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 62 | valid.f_iou 0.8217099905014038, valid.f_f-score 0.89112: 12%|███▉ | 2/16 [00:05<00:34, 2.47s/it]
epoch 62 | valid.f_iou 0.7049599885940552, valid.f_f-score 0.81992: 12%|███▉ | 2/16 [00:06<00:34, 2.47s/it]
epoch 62 | valid.f_iou 0.7049599885940552, valid.f_f-score 0.81992: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 62 | valid.f_iou 0.6756299734115601, valid.f_f-score 0.75382: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 62 | valid.f_iou 0.6756299734115601, valid.f_f-score 0.75382: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 62 | valid.f_iou 0.6685699820518494, valid.f_f-score 0.75778: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 62 | valid.f_iou 0.6685699820518494, valid.f_f-score 0.75778: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 62 | valid.f_iou 0.654229998588562, valid.f_f-score 0.74729: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 62 | valid.f_iou 0.654229998588562, valid.f_f-score 0.74729: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 62 | valid.f_iou 0.680429995059967, valid.f_f-score 0.77454: 38%|████████████ | 6/16 [00:08<00:07, 1.37it/s]
epoch 62 | valid.f_iou 0.680429995059967, valid.f_f-score 0.77454: 44%|██████████████ | 7/16 [00:08<00:05, 1.58it/s]
epoch 62 | valid.f_iou 0.6763700246810913, valid.f_f-score 0.77385: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 62 | valid.f_iou 0.6763700246810913, valid.f_f-score 0.77385: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 62 | valid.f_iou 0.6952999830245972, valid.f_f-score 0.78049: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 62 | valid.f_iou 0.6952999830245972, valid.f_f-score 0.78049: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 62 | valid.f_iou 0.6859999895095825, valid.f_f-score 0.78597: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.02it/s]
epoch 62 | valid.f_iou 0.6859999895095825, valid.f_f-score 0.78597: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 62 | valid.f_iou 0.6766999959945679, valid.f_f-score 0.77033: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.19it/s]
epoch 62 | valid.f_iou 0.6766999959945679, valid.f_f-score 0.77033: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 62 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.78381: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 62 | valid.f_iou 0.6920899748802185, valid.f_f-score 0.78381: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 62 | valid.f_iou 0.7056800127029419, valid.f_f-score 0.79591: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 62 | valid.f_iou 0.7056800127029419, valid.f_f-score 0.79591: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 62 | valid.f_iou 0.6982300281524658, valid.f_f-score 0.79015: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 62 | valid.f_iou 0.6982300281524658, valid.f_f-score 0.79015: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 62 | valid.f_iou 0.7076299786567688, valid.f_f-score 0.79823: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.55it/s]
epoch 62 | valid.f_iou 0.7076299786567688, valid.f_f-score 0.79823: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 62 | valid.f_iou 0.7073900103569031, valid.f_f-score 0.79329: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 62 | valid.f_iou 0.7073900103569031, valid.f_f-score 0.79329: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 62 | valid.f_iou 0.7073900103569031, valid.f_f-score 0.79329: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 63 | loss 1.6035181283950806, f_iou 0.5740388035774231: 0%| | 0/74 [00:05, ?it/s]
epoch 63 | loss 1.6035181283950806, f_iou 0.5740388035774231: 1%|▌ | 1/74 [00:05<06:40, 5.49s/it]
epoch 63 | loss 0.5578302145004272, f_iou 0.7355587482452393: 1%|▌ | 1/74 [00:06<06:40, 5.49s/it]
epoch 63 | loss 0.5578302145004272, f_iou 0.7355587482452393: 3%|█ | 2/74 [00:06<03:21, 2.79s/it]
epoch 63 | loss 1.6048648357391357, f_iou 0.6900546550750732: 3%|█ | 2/74 [00:07<03:21, 2.79s/it]
epoch 63 | loss 1.6048648357391357, f_iou 0.6900546550750732: 4%|█▌ | 3/74 [00:07<02:16, 1.93s/it]
epoch 63 | loss 0.5470994710922241, f_iou 0.5826178789138794: 4%|█▌ | 3/74 [00:08<02:16, 1.93s/it]
epoch 63 | loss 0.5470994710922241, f_iou 0.5826178789138794: 5%|██ | 4/74 [00:08<01:44, 1.49s/it]
epoch 63 | loss 0.3952772617340088, f_iou 0.6526769995689392: 5%|██ | 4/74 [00:08<01:44, 1.49s/it]
epoch 63 | loss 0.3952772617340088, f_iou 0.6526769995689392: 7%|██▌ | 5/74 [00:08<01:25, 1.24s/it]
epoch 63 | loss 0.7306169271469116, f_iou 0.6410549879074097: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 63 | loss 0.7306169271469116, f_iou 0.6410549879074097: 8%|███ | 6/74 [00:09<01:14, 1.09s/it]
epoch 63 | loss 1.2051273584365845, f_iou 0.5494756698608398: 8%|███ | 6/74 [00:10<01:14, 1.09s/it]
epoch 63 | loss 1.2051273584365845, f_iou 0.5494756698608398: 9%|███▌ | 7/74 [00:10<01:06, 1.01it/s]
epoch 63 | loss 1.4958677291870117, f_iou 0.564397931098938: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 63 | loss 1.4958677291870117, f_iou 0.564397931098938: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 63 | loss 1.102636456489563, f_iou 0.5909001231193542: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 63 | loss 1.102636456489563, f_iou 0.5909001231193542: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 63 | loss 1.058433175086975, f_iou 0.6133784651756287: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 63 | loss 1.058433175086975, f_iou 0.6133784651756287: 14%|█████ | 10/74 [00:12<00:53, 1.19it/s]
epoch 63 | loss 2.231572151184082, f_iou 0.6396656036376953: 14%|█████ | 10/74 [00:13<00:53, 1.19it/s]
epoch 63 | loss 2.231572151184082, f_iou 0.6396656036376953: 15%|█████▌ | 11/74 [00:13<00:50, 1.25it/s]
epoch 63 | loss 1.449985146522522, f_iou 0.646500825881958: 15%|█████▋ | 11/74 [00:14<00:50, 1.25it/s]
epoch 63 | loss 1.449985146522522, f_iou 0.646500825881958: 16%|██████▏ | 12/74 [00:14<00:48, 1.29it/s]
epoch 63 | loss 2.1420280933380127, f_iou 0.6233074069023132: 16%|█████▊ | 12/74 [00:14<00:48, 1.29it/s]
epoch 63 | loss 2.1420280933380127, f_iou 0.6233074069023132: 18%|██████▎ | 13/74 [00:14<00:46, 1.31it/s]
epoch 63 | loss 2.0593624114990234, f_iou 0.6264776587486267: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 63 | loss 2.0593624114990234, f_iou 0.6264776587486267: 19%|██████▊ | 14/74 [00:15<00:44, 1.33it/s]
epoch 63 | loss 1.3205389976501465, f_iou 0.5894712209701538: 19%|██████▊ | 14/74 [00:16<00:44, 1.33it/s]
epoch 63 | loss 1.3205389976501465, f_iou 0.5894712209701538: 20%|███████▎ | 15/74 [00:16<00:43, 1.34it/s]
epoch 63 | loss 0.9718738794326782, f_iou 0.6075484752655029: 20%|███████▎ | 15/74 [00:17<00:43, 1.34it/s]
epoch 63 | loss 0.9718738794326782, f_iou 0.6075484752655029: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 63 | loss 0.6908799409866333, f_iou 0.5947074294090271: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 63 | loss 0.6908799409866333, f_iou 0.5947074294090271: 23%|████████▎ | 17/74 [00:17<00:42, 1.36it/s]
epoch 63 | loss 1.2931649684906006, f_iou 0.6043895483016968: 23%|████████▎ | 17/74 [00:18<00:42, 1.36it/s]
epoch 63 | loss 1.2931649684906006, f_iou 0.6043895483016968: 24%|████████▊ | 18/74 [00:18<00:41, 1.36it/s]
epoch 63 | loss 1.6588060855865479, f_iou 0.6080397367477417: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 63 | loss 1.6588060855865479, f_iou 0.6080397367477417: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 63 | loss 3.0651614665985107, f_iou 0.6064960360527039: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 63 | loss 3.0651614665985107, f_iou 0.6064960360527039: 27%|█████████▋ | 20/74 [00:20<00:39, 1.37it/s]
epoch 63 | loss 0.6550512313842773, f_iou 0.6223089098930359: 27%|█████████▋ | 20/74 [00:20<00:39, 1.37it/s]
epoch 63 | loss 0.6550512313842773, f_iou 0.6223089098930359: 28%|██████████▏ | 21/74 [00:20<00:38, 1.37it/s]
epoch 63 | loss 1.336503505706787, f_iou 0.6301937103271484: 28%|██████████▌ | 21/74 [00:21<00:38, 1.37it/s]
epoch 63 | loss 1.336503505706787, f_iou 0.6301937103271484: 30%|███████████ | 22/74 [00:21<00:38, 1.36it/s]
epoch 63 | loss 0.9337139129638672, f_iou 0.6416290402412415: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 63 | loss 0.9337139129638672, f_iou 0.6416290402412415: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 63 | loss 0.9508099555969238, f_iou 0.650536060333252: 31%|███████████▌ | 23/74 [00:22<00:37, 1.37it/s]
epoch 63 | loss 0.9508099555969238, f_iou 0.650536060333252: 32%|████████████ | 24/74 [00:22<00:36, 1.37it/s]
epoch 63 | loss 2.3729825019836426, f_iou 0.6470867991447449: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 63 | loss 2.3729825019836426, f_iou 0.6470867991447449: 34%|████████████▏ | 25/74 [00:23<00:35, 1.38it/s]
epoch 63 | loss 1.7587862014770508, f_iou 0.6487576365470886: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 63 | loss 1.7587862014770508, f_iou 0.6487576365470886: 35%|████████████▋ | 26/74 [00:24<00:34, 1.38it/s]
epoch 63 | loss 1.2435111999511719, f_iou 0.652223527431488: 35%|█████████████ | 26/74 [00:25<00:34, 1.38it/s]
epoch 63 | loss 1.2435111999511719, f_iou 0.652223527431488: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.36it/s]
epoch 63 | loss 1.6193897724151611, f_iou 0.6546242833137512: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.36it/s]
epoch 63 | loss 1.6193897724151611, f_iou 0.6546242833137512: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.36it/s]
epoch 63 | loss 1.0906838178634644, f_iou 0.6622299551963806: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 63 | loss 1.0906838178634644, f_iou 0.6622299551963806: 39%|██████████████ | 29/74 [00:26<00:32, 1.37it/s]
epoch 63 | loss 1.6140027046203613, f_iou 0.6607716083526611: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 63 | loss 1.6140027046203613, f_iou 0.6607716083526611: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.34it/s]
epoch 63 | loss 1.2922110557556152, f_iou 0.6655497550964355: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.34it/s]
epoch 63 | loss 1.2922110557556152, f_iou 0.6655497550964355: 42%|███████████████ | 31/74 [00:28<00:32, 1.32it/s]
epoch 63 | loss 1.2302615642547607, f_iou 0.6643929481506348: 42%|███████████████ | 31/74 [00:28<00:32, 1.32it/s]
epoch 63 | loss 1.2302615642547607, f_iou 0.6643929481506348: 43%|███████████████▌ | 32/74 [00:28<00:32, 1.30it/s]
epoch 63 | loss 1.7120393514633179, f_iou 0.6701143383979797: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.30it/s]
epoch 63 | loss 1.7120393514633179, f_iou 0.6701143383979797: 45%|████████████████ | 33/74 [00:29<00:31, 1.31it/s]
epoch 63 | loss 1.4020289182662964, f_iou 0.6735402941703796: 45%|████████████████ | 33/74 [00:30<00:31, 1.31it/s]
epoch 63 | loss 1.4020289182662964, f_iou 0.6735402941703796: 46%|████████████████▌ | 34/74 [00:30<00:30, 1.33it/s]
epoch 63 | loss 1.1844711303710938, f_iou 0.6803807616233826: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.33it/s]
epoch 63 | loss 1.1844711303710938, f_iou 0.6803807616233826: 47%|█████████████████ | 35/74 [00:31<00:28, 1.35it/s]
epoch 63 | loss 0.7274106740951538, f_iou 0.6683862805366516: 47%|█████████████████ | 35/74 [00:31<00:28, 1.35it/s]
epoch 63 | loss 0.7274106740951538, f_iou 0.6683862805366516: 49%|█████████████████▌ | 36/74 [00:31<00:28, 1.36it/s]
epoch 63 | loss 2.2888846397399902, f_iou 0.657914936542511: 49%|██████████████████ | 36/74 [00:32<00:28, 1.36it/s]
epoch 63 | loss 2.2888846397399902, f_iou 0.657914936542511: 50%|██████████████████▌ | 37/74 [00:32<00:27, 1.37it/s]
epoch 63 | loss 1.0496234893798828, f_iou 0.6617156863212585: 50%|██████████████████ | 37/74 [00:33<00:27, 1.37it/s]
epoch 63 | loss 1.0496234893798828, f_iou 0.6617156863212585: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 63 | loss 2.197269916534424, f_iou 0.6605489253997803: 51%|███████████████████ | 38/74 [00:34<00:26, 1.36it/s]
epoch 63 | loss 2.197269916534424, f_iou 0.6605489253997803: 53%|███████████████████▍ | 39/74 [00:34<00:26, 1.33it/s]
epoch 63 | loss 0.3667273223400116, f_iou 0.6670085787773132: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.33it/s]
epoch 63 | loss 0.3667273223400116, f_iou 0.6670085787773132: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.32it/s]
epoch 63 | loss 3.839470624923706, f_iou 0.6509414911270142: 54%|████████████████████ | 40/74 [00:35<00:25, 1.32it/s]
epoch 63 | loss 3.839470624923706, f_iou 0.6509414911270142: 55%|████████████████████▌ | 41/74 [00:35<00:25, 1.30it/s]
epoch 63 | loss 0.46646177768707275, f_iou 0.6578820943832397: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.30it/s]
epoch 63 | loss 0.46646177768707275, f_iou 0.6578820943832397: 57%|███████████████████▊ | 42/74 [00:36<00:24, 1.30it/s]
epoch 63 | loss 2.158236026763916, f_iou 0.6619256734848022: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.30it/s]
epoch 63 | loss 2.158236026763916, f_iou 0.6619256734848022: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.32it/s]
epoch 63 | loss 1.6896425485610962, f_iou 0.6644620299339294: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.32it/s]
epoch 63 | loss 1.6896425485610962, f_iou 0.6644620299339294: 59%|█████████████████████▍ | 44/74 [00:37<00:22, 1.34it/s]
epoch 63 | loss 0.8950438499450684, f_iou 0.6689602732658386: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 63 | loss 0.8950438499450684, f_iou 0.6689602732658386: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.35it/s]
epoch 63 | loss 3.7601304054260254, f_iou 0.6657508611679077: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.35it/s]
epoch 63 | loss 3.7601304054260254, f_iou 0.6657508611679077: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.35it/s]
epoch 63 | loss 1.38710618019104, f_iou 0.6662684082984924: 62%|███████████████████████▌ | 46/74 [00:40<00:20, 1.35it/s]
epoch 63 | loss 1.38710618019104, f_iou 0.6662684082984924: 64%|████████████████████████▏ | 47/74 [00:40<00:20, 1.32it/s]
epoch 63 | loss 1.0085246562957764, f_iou 0.669376790523529: 64%|███████████████████████▌ | 47/74 [00:40<00:20, 1.32it/s]
epoch 63 | loss 1.0085246562957764, f_iou 0.669376790523529: 65%|████████████████████████ | 48/74 [00:40<00:19, 1.31it/s]
epoch 63 | loss 1.7278558015823364, f_iou 0.6726283431053162: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.31it/s]
epoch 63 | loss 1.7278558015823364, f_iou 0.6726283431053162: 66%|███████████████████████▊ | 49/74 [00:41<00:19, 1.30it/s]
epoch 63 | loss 1.0118703842163086, f_iou 0.6736536026000977: 66%|███████████████████████▊ | 49/74 [00:42<00:19, 1.30it/s]
epoch 63 | loss 1.0118703842163086, f_iou 0.6736536026000977: 68%|████████████████████████▎ | 50/74 [00:42<00:18, 1.29it/s]
epoch 63 | loss 1.226932168006897, f_iou 0.6749041676521301: 68%|█████████████████████████ | 50/74 [00:43<00:18, 1.29it/s]
epoch 63 | loss 1.226932168006897, f_iou 0.6749041676521301: 69%|█████████████████████████▌ | 51/74 [00:43<00:17, 1.30it/s]
epoch 63 | loss 0.8763779997825623, f_iou 0.67815101146698: 69%|██████████████████████████▏ | 51/74 [00:44<00:17, 1.30it/s]
epoch 63 | loss 0.8763779997825623, f_iou 0.67815101146698: 70%|██████████████████████████▋ | 52/74 [00:44<00:16, 1.32it/s]
epoch 63 | loss 2.024153709411621, f_iou 0.6752907633781433: 70%|██████████████████████████ | 52/74 [00:44<00:16, 1.32it/s]
epoch 63 | loss 2.024153709411621, f_iou 0.6752907633781433: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.34it/s]
epoch 63 | loss 2.539461612701416, f_iou 0.6730705499649048: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.34it/s]
epoch 63 | loss 2.539461612701416, f_iou 0.6730705499649048: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 63 | loss 1.6972955465316772, f_iou 0.6729462742805481: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.37it/s]
epoch 63 | loss 1.6972955465316772, f_iou 0.6729462742805481: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.37it/s]
epoch 63 | loss 2.1388487815856934, f_iou 0.6687186360359192: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.37it/s]
epoch 63 | loss 2.1388487815856934, f_iou 0.6687186360359192: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 63 | loss 1.7083135843276978, f_iou 0.672410786151886: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.38it/s]
epoch 63 | loss 1.7083135843276978, f_iou 0.672410786151886: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.38it/s]
epoch 63 | loss 2.233109951019287, f_iou 0.6699824929237366: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.38it/s]
epoch 63 | loss 2.233109951019287, f_iou 0.6699824929237366: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.38it/s]
epoch 63 | loss 1.016897201538086, f_iou 0.6740663647651672: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.38it/s]
epoch 63 | loss 1.016897201538086, f_iou 0.6740663647651672: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 63 | loss 0.9989148378372192, f_iou 0.6788336038589478: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 63 | loss 0.9989148378372192, f_iou 0.6788336038589478: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 63 | loss 0.6609253883361816, f_iou 0.6819851398468018: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 63 | loss 0.6609253883361816, f_iou 0.6819851398468018: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 63 | loss 1.252113699913025, f_iou 0.6804875135421753: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.38it/s]
epoch 63 | loss 1.252113699913025, f_iou 0.6804875135421753: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.38it/s]
epoch 63 | loss 1.0596562623977661, f_iou 0.6781331896781921: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 63 | loss 1.0596562623977661, f_iou 0.6781331896781921: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 63 | loss 0.509942889213562, f_iou 0.6797337532043457: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 63 | loss 0.509942889213562, f_iou 0.6797337532043457: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 63 | loss 1.0367579460144043, f_iou 0.6762663125991821: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 63 | loss 1.0367579460144043, f_iou 0.6762663125991821: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 63 | loss 1.6600370407104492, f_iou 0.667270839214325: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 63 | loss 1.6600370407104492, f_iou 0.667270839214325: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 63 | loss 0.5322341918945312, f_iou 0.6715098023414612: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 63 | loss 0.5322341918945312, f_iou 0.6715098023414612: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.40it/s]
epoch 63 | loss 3.5993971824645996, f_iou 0.6661487221717834: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.40it/s]
epoch 63 | loss 3.5993971824645996, f_iou 0.6661487221717834: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 63 | loss 0.9383594989776611, f_iou 0.6693239808082581: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 63 | loss 0.9383594989776611, f_iou 0.6693239808082581: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 63 | loss 0.5270020961761475, f_iou 0.6682497262954712: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 63 | loss 0.5270020961761475, f_iou 0.6682497262954712: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 63 | loss 0.798598051071167, f_iou 0.6685833930969238: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 63 | loss 0.798598051071167, f_iou 0.6685833930969238: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 63 | loss 2.4163198471069336, f_iou 0.6705812215805054: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 63 | loss 2.4163198471069336, f_iou 0.6705812215805054: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 63 | loss 0.7366073727607727, f_iou 0.6687074303627014: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 63 | loss 0.7366073727607727, f_iou 0.6687074303627014: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 63 | loss 1.2949681282043457, f_iou 0.6714635491371155: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 63 | loss 1.2949681282043457, f_iou 0.6714635491371155: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 63 | loss 1.2949681282043457, f_iou 0.6714635491371155: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 63 | valid.f_iou 0.7375100255012512, valid.f_f-score 0.83807: 0%| | 0/16 [00:05, ?it/s]
epoch 63 | valid.f_iou 0.7375100255012512, valid.f_f-score 0.83807: 6%|█▉ | 1/16 [00:05<01:19, 5.28s/it]
epoch 63 | valid.f_iou 0.6511899828910828, valid.f_f-score 0.81256: 6%|█▉ | 1/16 [00:05<01:19, 5.28s/it]
epoch 63 | valid.f_iou 0.6511899828910828, valid.f_f-score 0.81256: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 63 | valid.f_iou 0.5545899868011475, valid.f_f-score 0.7469: 12%|████ | 2/16 [00:06<00:34, 2.45s/it]
epoch 63 | valid.f_iou 0.5545899868011475, valid.f_f-score 0.7469: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 63 | valid.f_iou 0.5999799966812134, valid.f_f-score 0.7623: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 63 | valid.f_iou 0.5999799966812134, valid.f_f-score 0.7623: 25%|████████ | 4/16 [00:06<00:13, 1.10s/it]
epoch 63 | valid.f_iou 0.6034299731254578, valid.f_f-score 0.7716: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 63 | valid.f_iou 0.6034299731254578, valid.f_f-score 0.7716: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 63 | valid.f_iou 0.5703200101852417, valid.f_f-score 0.73374: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 63 | valid.f_iou 0.5703200101852417, valid.f_f-score 0.73374: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 63 | valid.f_iou 0.5949100255966187, valid.f_f-score 0.75262: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 63 | valid.f_iou 0.5949100255966187, valid.f_f-score 0.75262: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 63 | valid.f_iou 0.5726900100708008, valid.f_f-score 0.73648: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 63 | valid.f_iou 0.5726900100708008, valid.f_f-score 0.73648: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 63 | valid.f_iou 0.5762100219726562, valid.f_f-score 0.72194: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 63 | valid.f_iou 0.5762100219726562, valid.f_f-score 0.72194: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 63 | valid.f_iou 0.5628899931907654, valid.f_f-score 0.72177: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 63 | valid.f_iou 0.5628899931907654, valid.f_f-score 0.72177: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 63 | valid.f_iou 0.5611900091171265, valid.f_f-score 0.71951: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 63 | valid.f_iou 0.5611900091171265, valid.f_f-score 0.71951: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 63 | valid.f_iou 0.5840100049972534, valid.f_f-score 0.73658: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 63 | valid.f_iou 0.5840100049972534, valid.f_f-score 0.73658: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.34it/s]
epoch 63 | valid.f_iou 0.5862799882888794, valid.f_f-score 0.74154: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 63 | valid.f_iou 0.5862799882888794, valid.f_f-score 0.74154: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 63 | valid.f_iou 0.5763300061225891, valid.f_f-score 0.7327: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.45it/s]
epoch 63 | valid.f_iou 0.5763300061225891, valid.f_f-score 0.7327: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.53it/s]
epoch 63 | valid.f_iou 0.5797200202941895, valid.f_f-score 0.73253: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 63 | valid.f_iou 0.5797200202941895, valid.f_f-score 0.73253: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 63 | valid.f_iou 0.5832200050354004, valid.f_f-score 0.7305: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.56it/s]
epoch 63 | valid.f_iou 0.5832200050354004, valid.f_f-score 0.7305: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 63 | valid.f_iou 0.5832200050354004, valid.f_f-score 0.7305: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 63 | valid.f_iou 0.7681300044059753, valid.f_f-score 0.8573: 0%| | 0/16 [00:04, ?it/s]
epoch 63 | valid.f_iou 0.7681300044059753, valid.f_f-score 0.8573: 6%|██ | 1/16 [00:04<01:08, 4.58s/it]
epoch 63 | valid.f_iou 0.8186699748039246, valid.f_f-score 0.90287: 6%|█▉ | 1/16 [00:05<01:08, 4.58s/it]
epoch 63 | valid.f_iou 0.8186699748039246, valid.f_f-score 0.90287: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 63 | valid.f_iou 0.7454400062561035, valid.f_f-score 0.85065: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 63 | valid.f_iou 0.7454400062561035, valid.f_f-score 0.85065: 19%|█████▊ | 3/16 [00:05<00:17, 1.38s/it]
epoch 63 | valid.f_iou 0.7144399881362915, valid.f_f-score 0.80075: 19%|█████▊ | 3/16 [00:05<00:17, 1.38s/it]
epoch 63 | valid.f_iou 0.7144399881362915, valid.f_f-score 0.80075: 25%|███████▊ | 4/16 [00:05<00:11, 1.02it/s]
epoch 63 | valid.f_iou 0.6871799826622009, valid.f_f-score 0.78182: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 63 | valid.f_iou 0.6871799826622009, valid.f_f-score 0.78182: 31%|█████████▋ | 5/16 [00:06<00:08, 1.31it/s]
epoch 63 | valid.f_iou 0.6640700101852417, valid.f_f-score 0.75431: 31%|█████████▋ | 5/16 [00:06<00:08, 1.31it/s]
epoch 63 | valid.f_iou 0.6640700101852417, valid.f_f-score 0.75431: 38%|███████████▋ | 6/16 [00:06<00:06, 1.54it/s]
epoch 63 | valid.f_iou 0.6790800094604492, valid.f_f-score 0.77452: 38%|███████████▋ | 6/16 [00:07<00:06, 1.54it/s]
epoch 63 | valid.f_iou 0.6790800094604492, valid.f_f-score 0.77452: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.77it/s]
epoch 63 | valid.f_iou 0.680840015411377, valid.f_f-score 0.78011: 44%|██████████████ | 7/16 [00:07<00:05, 1.77it/s]
epoch 63 | valid.f_iou 0.680840015411377, valid.f_f-score 0.78011: 50%|████████████████ | 8/16 [00:07<00:04, 1.92it/s]
epoch 63 | valid.f_iou 0.6965299844741821, valid.f_f-score 0.78668: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.92it/s]
epoch 63 | valid.f_iou 0.6965299844741821, valid.f_f-score 0.78668: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.12it/s]
epoch 63 | valid.f_iou 0.7000600099563599, valid.f_f-score 0.79715: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.12it/s]
epoch 63 | valid.f_iou 0.7000600099563599, valid.f_f-score 0.79715: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.27it/s]
epoch 63 | valid.f_iou 0.6902700066566467, valid.f_f-score 0.78144: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.27it/s]
epoch 63 | valid.f_iou 0.6902700066566467, valid.f_f-score 0.78144: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.40it/s]
epoch 63 | valid.f_iou 0.6982100009918213, valid.f_f-score 0.78896: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.40it/s]
epoch 63 | valid.f_iou 0.6982100009918213, valid.f_f-score 0.78896: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.49it/s]
epoch 63 | valid.f_iou 0.7092300057411194, valid.f_f-score 0.79811: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 63 | valid.f_iou 0.7092300057411194, valid.f_f-score 0.79811: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.54it/s]
epoch 63 | valid.f_iou 0.7074000239372253, valid.f_f-score 0.79641: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.54it/s]
epoch 63 | valid.f_iou 0.7074000239372253, valid.f_f-score 0.79641: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.60it/s]
epoch 63 | valid.f_iou 0.7184100151062012, valid.f_f-score 0.80686: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 63 | valid.f_iou 0.7184100151062012, valid.f_f-score 0.80686: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 63 | valid.f_iou 0.7159000039100647, valid.f_f-score 0.80404: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 63 | valid.f_iou 0.7159000039100647, valid.f_f-score 0.80404: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 63 | valid.f_iou 0.7159000039100647, valid.f_f-score 0.80404: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.54it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 63 | valid.f_iou 0.7431700229644775, valid.f_f-score 0.82875: 0%| | 0/16 [00:04, ?it/s]
epoch 63 | valid.f_iou 0.7431700229644775, valid.f_f-score 0.82875: 6%|█▉ | 1/16 [00:04<01:03, 4.25s/it]
epoch 63 | valid.f_iou 0.806190013885498, valid.f_f-score 0.88859: 6%|██ | 1/16 [00:05<01:03, 4.25s/it]
epoch 63 | valid.f_iou 0.806190013885498, valid.f_f-score 0.88859: 12%|████ | 2/16 [00:05<00:33, 2.41s/it]
epoch 63 | valid.f_iou 0.7371199727058411, valid.f_f-score 0.84113: 12%|███▉ | 2/16 [00:05<00:33, 2.41s/it]
epoch 63 | valid.f_iou 0.7371199727058411, valid.f_f-score 0.84113: 19%|█████▊ | 3/16 [00:05<00:19, 1.51s/it]
epoch 63 | valid.f_iou 0.7082700133323669, valid.f_f-score 0.79361: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 63 | valid.f_iou 0.7082700133323669, valid.f_f-score 0.79361: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 63 | valid.f_iou 0.6850799918174744, valid.f_f-score 0.77611: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 63 | valid.f_iou 0.6850799918174744, valid.f_f-score 0.77611: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 63 | valid.f_iou 0.662310004234314, valid.f_f-score 0.74955: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 63 | valid.f_iou 0.662310004234314, valid.f_f-score 0.74955: 38%|████████████ | 6/16 [00:07<00:07, 1.41it/s]
epoch 63 | valid.f_iou 0.6792700290679932, valid.f_f-score 0.77044: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 63 | valid.f_iou 0.6792700290679932, valid.f_f-score 0.77044: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 63 | valid.f_iou 0.6809999942779541, valid.f_f-score 0.77654: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 63 | valid.f_iou 0.6809999942779541, valid.f_f-score 0.77654: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 63 | valid.f_iou 0.6988499760627747, valid.f_f-score 0.78351: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 63 | valid.f_iou 0.6988499760627747, valid.f_f-score 0.78351: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.06it/s]
epoch 63 | valid.f_iou 0.6988700032234192, valid.f_f-score 0.79067: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.06it/s]
epoch 63 | valid.f_iou 0.6988700032234192, valid.f_f-score 0.79067: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.23it/s]
epoch 63 | valid.f_iou 0.6813499927520752, valid.f_f-score 0.76951: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.23it/s]
epoch 63 | valid.f_iou 0.6813499927520752, valid.f_f-score 0.76951: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 63 | valid.f_iou 0.6900299787521362, valid.f_f-score 0.77803: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.35it/s]
epoch 63 | valid.f_iou 0.6900299787521362, valid.f_f-score 0.77803: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.45it/s]
epoch 63 | valid.f_iou 0.7016500234603882, valid.f_f-score 0.78811: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.45it/s]
epoch 63 | valid.f_iou 0.7016500234603882, valid.f_f-score 0.78811: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 63 | valid.f_iou 0.7003600001335144, valid.f_f-score 0.78714: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 63 | valid.f_iou 0.7003600001335144, valid.f_f-score 0.78714: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 63 | valid.f_iou 0.7118499875068665, valid.f_f-score 0.7982: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.58it/s]
epoch 63 | valid.f_iou 0.7118499875068665, valid.f_f-score 0.7982: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.62it/s]
epoch 63 | valid.f_iou 0.7105500102043152, valid.f_f-score 0.79592: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 63 | valid.f_iou 0.7105500102043152, valid.f_f-score 0.79592: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 63 | valid.f_iou 0.7105500102043152, valid.f_f-score 0.79592: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 64 | loss 2.613490343093872, f_iou 0.5400063395500183: 0%| | 0/74 [00:04, ?it/s]
epoch 64 | loss 2.613490343093872, f_iou 0.5400063395500183: 1%|▌ | 1/74 [00:04<06:01, 4.95s/it]
epoch 64 | loss 0.6482493281364441, f_iou 0.7466482520103455: 1%|▌ | 1/74 [00:05<06:01, 4.95s/it]
epoch 64 | loss 0.6482493281364441, f_iou 0.7466482520103455: 3%|█ | 2/74 [00:05<03:10, 2.65s/it]
epoch 64 | loss 2.4884085655212402, f_iou 0.7021507620811462: 3%|█ | 2/74 [00:06<03:10, 2.65s/it]
epoch 64 | loss 2.4884085655212402, f_iou 0.7021507620811462: 4%|█▌ | 3/74 [00:06<02:08, 1.81s/it]
epoch 64 | loss 0.5536825656890869, f_iou 0.7671370506286621: 4%|█▌ | 3/74 [00:07<02:08, 1.81s/it]
epoch 64 | loss 0.5536825656890869, f_iou 0.7671370506286621: 5%|██ | 4/74 [00:07<01:38, 1.40s/it]
epoch 64 | loss 2.2406985759735107, f_iou 0.7836596965789795: 5%|██ | 4/74 [00:08<01:38, 1.40s/it]
epoch 64 | loss 2.2406985759735107, f_iou 0.7836596965789795: 7%|██▌ | 5/74 [00:08<01:22, 1.20s/it]
epoch 64 | loss 3.12925124168396, f_iou 0.7069880366325378: 7%|██▋ | 5/74 [00:09<01:22, 1.20s/it]
epoch 64 | loss 3.12925124168396, f_iou 0.7069880366325378: 8%|███▏ | 6/74 [00:09<01:11, 1.05s/it]
epoch 64 | loss 1.4327648878097534, f_iou 0.6492647528648376: 8%|███ | 6/74 [00:09<01:11, 1.05s/it]
epoch 64 | loss 1.4327648878097534, f_iou 0.6492647528648376: 9%|███▌ | 7/74 [00:09<01:04, 1.04it/s]
epoch 64 | loss 2.542705535888672, f_iou 0.61998450756073: 9%|███▊ | 7/74 [00:10<01:04, 1.04it/s]
epoch 64 | loss 2.542705535888672, f_iou 0.61998450756073: 11%|████▎ | 8/74 [00:10<00:58, 1.13it/s]
epoch 64 | loss 0.7522252202033997, f_iou 0.6239376068115234: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 64 | loss 0.7522252202033997, f_iou 0.6239376068115234: 12%|████▌ | 9/74 [00:11<00:54, 1.20it/s]
epoch 64 | loss 0.3125666677951813, f_iou 0.6590515375137329: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 64 | loss 0.3125666677951813, f_iou 0.6590515375137329: 14%|████▊ | 10/74 [00:12<00:50, 1.25it/s]
epoch 64 | loss 1.5278687477111816, f_iou 0.6771953701972961: 14%|████▊ | 10/74 [00:12<00:50, 1.25it/s]
epoch 64 | loss 1.5278687477111816, f_iou 0.6771953701972961: 15%|█████▎ | 11/74 [00:12<00:50, 1.26it/s]
epoch 64 | loss 2.027766704559326, f_iou 0.6745632886886597: 15%|█████▌ | 11/74 [00:13<00:50, 1.26it/s]
epoch 64 | loss 2.027766704559326, f_iou 0.6745632886886597: 16%|██████ | 12/74 [00:13<00:48, 1.28it/s]
epoch 64 | loss 1.921970248222351, f_iou 0.6797035932540894: 16%|██████ | 12/74 [00:14<00:48, 1.28it/s]
epoch 64 | loss 1.921970248222351, f_iou 0.6797035932540894: 18%|██████▌ | 13/74 [00:14<00:46, 1.31it/s]
epoch 64 | loss 1.388852834701538, f_iou 0.6892630457878113: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 64 | loss 1.388852834701538, f_iou 0.6892630457878113: 19%|███████ | 14/74 [00:15<00:45, 1.33it/s]
epoch 64 | loss 2.534735918045044, f_iou 0.669895589351654: 19%|███████▏ | 14/74 [00:15<00:45, 1.33it/s]
epoch 64 | loss 2.534735918045044, f_iou 0.669895589351654: 20%|███████▋ | 15/74 [00:15<00:43, 1.35it/s]
epoch 64 | loss 1.3038909435272217, f_iou 0.6857188940048218: 20%|███████▎ | 15/74 [00:16<00:43, 1.35it/s]
epoch 64 | loss 1.3038909435272217, f_iou 0.6857188940048218: 22%|███████▊ | 16/74 [00:16<00:42, 1.36it/s]
epoch 64 | loss 1.5306518077850342, f_iou 0.6810979247093201: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 64 | loss 1.5306518077850342, f_iou 0.6810979247093201: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 64 | loss 1.6470264196395874, f_iou 0.6468903422355652: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 64 | loss 1.6470264196395874, f_iou 0.6468903422355652: 24%|████████▊ | 18/74 [00:17<00:40, 1.38it/s]
epoch 64 | loss 0.7178207635879517, f_iou 0.6368613839149475: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 64 | loss 0.7178207635879517, f_iou 0.6368613839149475: 26%|█████████▏ | 19/74 [00:18<00:39, 1.38it/s]
epoch 64 | loss 0.6193398237228394, f_iou 0.6477868556976318: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 64 | loss 0.6193398237228394, f_iou 0.6477868556976318: 27%|█████████▋ | 20/74 [00:19<00:39, 1.38it/s]
epoch 64 | loss 1.1217772960662842, f_iou 0.654168426990509: 27%|██████████ | 20/74 [00:20<00:39, 1.38it/s]
epoch 64 | loss 1.1217772960662842, f_iou 0.654168426990509: 28%|██████████▌ | 21/74 [00:20<00:38, 1.39it/s]
epoch 64 | loss 0.0, f_iou 0.669501781463623: 28%|██████████████▊ | 21/74 [00:20<00:38, 1.39it/s]
epoch 64 | loss 0.0, f_iou 0.669501781463623: 30%|███████████████▍ | 22/74 [00:20<00:37, 1.39it/s]
epoch 64 | loss 2.070620536804199, f_iou 0.645319402217865: 30%|███████████▎ | 22/74 [00:21<00:37, 1.39it/s]
epoch 64 | loss 2.070620536804199, f_iou 0.645319402217865: 31%|███████████▊ | 23/74 [00:21<00:36, 1.39it/s]
epoch 64 | loss 1.1028618812561035, f_iou 0.6450325846672058: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 64 | loss 1.1028618812561035, f_iou 0.6450325846672058: 32%|███████████▋ | 24/74 [00:22<00:36, 1.38it/s]
epoch 64 | loss 2.034050941467285, f_iou 0.6377704739570618: 32%|████████████ | 24/74 [00:23<00:36, 1.38it/s]
epoch 64 | loss 2.034050941467285, f_iou 0.6377704739570618: 34%|████████████▌ | 25/74 [00:23<00:35, 1.38it/s]
epoch 64 | loss 0.8920735120773315, f_iou 0.6420111656188965: 34%|████████████▏ | 25/74 [00:23<00:35, 1.38it/s]
epoch 64 | loss 0.8920735120773315, f_iou 0.6420111656188965: 35%|████████████▋ | 26/74 [00:23<00:34, 1.38it/s]
epoch 64 | loss 4.593635559082031, f_iou 0.6275448203086853: 35%|█████████████ | 26/74 [00:24<00:34, 1.38it/s]
epoch 64 | loss 4.593635559082031, f_iou 0.6275448203086853: 36%|█████████████▌ | 27/74 [00:24<00:33, 1.39it/s]
epoch 64 | loss 1.6008610725402832, f_iou 0.6356858611106873: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 64 | loss 1.6008610725402832, f_iou 0.6356858611106873: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.39it/s]
epoch 64 | loss 2.940168857574463, f_iou 0.6325297951698303: 38%|██████████████ | 28/74 [00:25<00:33, 1.39it/s]
epoch 64 | loss 2.940168857574463, f_iou 0.6325297951698303: 39%|██████████████▌ | 29/74 [00:25<00:32, 1.39it/s]
epoch 64 | loss 0.41450244188308716, f_iou 0.641717255115509: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 64 | loss 0.41450244188308716, f_iou 0.641717255115509: 41%|██████████████▌ | 30/74 [00:26<00:31, 1.39it/s]
epoch 64 | loss 0.9897195100784302, f_iou 0.6478879451751709: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 64 | loss 0.9897195100784302, f_iou 0.6478879451751709: 42%|███████████████ | 31/74 [00:27<00:30, 1.39it/s]
epoch 64 | loss 2.046980857849121, f_iou 0.6507208347320557: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.39it/s]
epoch 64 | loss 2.046980857849121, f_iou 0.6507208347320557: 43%|████████████████ | 32/74 [00:28<00:30, 1.40it/s]
epoch 64 | loss 1.339470624923706, f_iou 0.6449393033981323: 43%|████████████████ | 32/74 [00:28<00:30, 1.40it/s]
epoch 64 | loss 1.339470624923706, f_iou 0.6449393033981323: 45%|████████████████▌ | 33/74 [00:28<00:29, 1.40it/s]
epoch 64 | loss 1.032983422279358, f_iou 0.6519504189491272: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.40it/s]
epoch 64 | loss 1.032983422279358, f_iou 0.6519504189491272: 46%|█████████████████ | 34/74 [00:29<00:28, 1.39it/s]
epoch 64 | loss 1.0385119915008545, f_iou 0.650974452495575: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 64 | loss 1.0385119915008545, f_iou 0.650974452495575: 47%|█████████████████▌ | 35/74 [00:30<00:28, 1.39it/s]
epoch 64 | loss 0.6926058530807495, f_iou 0.6333635449409485: 47%|█████████████████ | 35/74 [00:30<00:28, 1.39it/s]
epoch 64 | loss 0.6926058530807495, f_iou 0.6333635449409485: 49%|█████████████████▌ | 36/74 [00:30<00:27, 1.39it/s]
epoch 64 | loss 4.0298967361450195, f_iou 0.6244221329689026: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 64 | loss 4.0298967361450195, f_iou 0.6244221329689026: 50%|██████████████████ | 37/74 [00:31<00:26, 1.38it/s]
epoch 64 | loss 1.4752264022827148, f_iou 0.6300736665725708: 50%|██████████████████ | 37/74 [00:32<00:26, 1.38it/s]
epoch 64 | loss 1.4752264022827148, f_iou 0.6300736665725708: 51%|██████████████████▍ | 38/74 [00:32<00:26, 1.36it/s]
epoch 64 | loss 0.9837985634803772, f_iou 0.6379702687263489: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 64 | loss 0.9837985634803772, f_iou 0.6379702687263489: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.37it/s]
epoch 64 | loss 3.3761115074157715, f_iou 0.6333983540534973: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.37it/s]
epoch 64 | loss 3.3761115074157715, f_iou 0.6333983540534973: 54%|███████████████████▍ | 40/74 [00:33<00:24, 1.38it/s]
epoch 64 | loss 4.0951008796691895, f_iou 0.6272146701812744: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.38it/s]
epoch 64 | loss 4.0951008796691895, f_iou 0.6272146701812744: 55%|███████████████████▉ | 41/74 [00:34<00:23, 1.38it/s]
epoch 64 | loss 1.6561694145202637, f_iou 0.6247997879981995: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 64 | loss 1.6561694145202637, f_iou 0.6247997879981995: 57%|████████████████████▍ | 42/74 [00:35<00:24, 1.30it/s]
epoch 64 | loss 1.9103610515594482, f_iou 0.6307879090309143: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.30it/s]
epoch 64 | loss 1.9103610515594482, f_iou 0.6307879090309143: 58%|████████████████████▉ | 43/74 [00:36<00:23, 1.32it/s]
epoch 64 | loss 0.6957449316978455, f_iou 0.6203765869140625: 58%|████████████████████▉ | 43/74 [00:36<00:23, 1.32it/s]
epoch 64 | loss 0.6957449316978455, f_iou 0.6203765869140625: 59%|█████████████████████▍ | 44/74 [00:36<00:22, 1.34it/s]
epoch 64 | loss 0.9811915159225464, f_iou 0.6256455779075623: 59%|█████████████████████▍ | 44/74 [00:37<00:22, 1.34it/s]
epoch 64 | loss 0.9811915159225464, f_iou 0.6256455779075623: 61%|█████████████████████▉ | 45/74 [00:37<00:21, 1.36it/s]
epoch 64 | loss 1.1685770750045776, f_iou 0.626171886920929: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.36it/s]
epoch 64 | loss 1.1685770750045776, f_iou 0.626171886920929: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.37it/s]
epoch 64 | loss 2.1287198066711426, f_iou 0.6266918778419495: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.37it/s]
epoch 64 | loss 2.1287198066711426, f_iou 0.6266918778419495: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.38it/s]
epoch 64 | loss 0.7001246809959412, f_iou 0.6222001314163208: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.38it/s]
epoch 64 | loss 0.7001246809959412, f_iou 0.6222001314163208: 65%|███████████████████████▎ | 48/74 [00:39<00:18, 1.38it/s]
epoch 64 | loss 1.6233534812927246, f_iou 0.6213521361351013: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 64 | loss 1.6233534812927246, f_iou 0.6213521361351013: 66%|███████████████████████▊ | 49/74 [00:40<00:18, 1.39it/s]
epoch 64 | loss 1.1808134317398071, f_iou 0.6249307990074158: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.39it/s]
epoch 64 | loss 1.1808134317398071, f_iou 0.6249307990074158: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.39it/s]
epoch 64 | loss 0.8989549875259399, f_iou 0.6189397573471069: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.39it/s]
epoch 64 | loss 0.8989549875259399, f_iou 0.6189397573471069: 69%|████████████████████████▊ | 51/74 [00:41<00:16, 1.39it/s]
epoch 64 | loss 1.1103118658065796, f_iou 0.6229584217071533: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 64 | loss 1.1103118658065796, f_iou 0.6229584217071533: 70%|█████████████████████████▎ | 52/74 [00:42<00:15, 1.39it/s]
epoch 64 | loss 1.221743106842041, f_iou 0.6263309717178345: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.39it/s]
epoch 64 | loss 1.221743106842041, f_iou 0.6263309717178345: 72%|██████████████████████████▌ | 53/74 [00:43<00:15, 1.40it/s]
epoch 64 | loss 0.9079173803329468, f_iou 0.6293929219245911: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.40it/s]
epoch 64 | loss 0.9079173803329468, f_iou 0.6293929219245911: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.40it/s]
epoch 64 | loss 0.8008382320404053, f_iou 0.630517303943634: 73%|███████████████████████████ | 54/74 [00:44<00:14, 1.40it/s]
epoch 64 | loss 0.8008382320404053, f_iou 0.630517303943634: 74%|███████████████████████████▌ | 55/74 [00:44<00:13, 1.39it/s]
epoch 64 | loss 0.4559142589569092, f_iou 0.636507511138916: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.39it/s]
epoch 64 | loss 0.4559142589569092, f_iou 0.636507511138916: 76%|████████████████████████████ | 56/74 [00:45<00:12, 1.39it/s]
epoch 64 | loss 3.126932144165039, f_iou 0.6290854811668396: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 64 | loss 3.126932144165039, f_iou 0.6290854811668396: 77%|████████████████████████████▌ | 57/74 [00:46<00:12, 1.39it/s]
epoch 64 | loss 0.41210049390792847, f_iou 0.634734034538269: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.39it/s]
epoch 64 | loss 0.41210049390792847, f_iou 0.634734034538269: 78%|████████████████████████████▏ | 58/74 [00:46<00:11, 1.39it/s]
epoch 64 | loss 1.01008939743042, f_iou 0.6356934309005737: 78%|█████████████████████████████▊ | 58/74 [00:47<00:11, 1.39it/s]
epoch 64 | loss 1.01008939743042, f_iou 0.6356934309005737: 80%|██████████████████████████████▎ | 59/74 [00:47<00:10, 1.39it/s]
epoch 64 | loss 1.055521011352539, f_iou 0.6380661725997925: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.39it/s]
epoch 64 | loss 1.055521011352539, f_iou 0.6380661725997925: 81%|██████████████████████████████ | 60/74 [00:48<00:10, 1.38it/s]
epoch 64 | loss 2.22092604637146, f_iou 0.6302462220191956: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.38it/s]
epoch 64 | loss 2.22092604637146, f_iou 0.6302462220191956: 82%|███████████████████████████████▎ | 61/74 [00:49<00:09, 1.38it/s]
epoch 64 | loss 1.0344187021255493, f_iou 0.6337140202522278: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.38it/s]
epoch 64 | loss 1.0344187021255493, f_iou 0.6337140202522278: 84%|██████████████████████████████▏ | 62/74 [00:49<00:08, 1.39it/s]
epoch 64 | loss 0.7967739701271057, f_iou 0.6381151676177979: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 64 | loss 0.7967739701271057, f_iou 0.6381151676177979: 85%|██████████████████████████████▋ | 63/74 [00:50<00:08, 1.37it/s]
epoch 64 | loss 1.5654971599578857, f_iou 0.6411833763122559: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.37it/s]
epoch 64 | loss 1.5654971599578857, f_iou 0.6411833763122559: 86%|███████████████████████████████▏ | 64/74 [00:51<00:07, 1.34it/s]
epoch 64 | loss 2.308065891265869, f_iou 0.6348771452903748: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.34it/s]
epoch 64 | loss 2.308065891265869, f_iou 0.6348771452903748: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.33it/s]
epoch 64 | loss 2.935018539428711, f_iou 0.6301752328872681: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.33it/s]
epoch 64 | loss 2.935018539428711, f_iou 0.6301752328872681: 89%|█████████████████████████████████ | 66/74 [00:52<00:06, 1.32it/s]
epoch 64 | loss 2.3131911754608154, f_iou 0.6293829679489136: 89%|████████████████████████████████ | 66/74 [00:53<00:06, 1.32it/s]
epoch 64 | loss 2.3131911754608154, f_iou 0.6293829679489136: 91%|████████████████████████████████▌ | 67/74 [00:53<00:05, 1.32it/s]
epoch 64 | loss 1.010166883468628, f_iou 0.6257436275482178: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.32it/s]
epoch 64 | loss 1.010166883468628, f_iou 0.6257436275482178: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.34it/s]
epoch 64 | loss 1.169518232345581, f_iou 0.6302226781845093: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.34it/s]
epoch 64 | loss 1.169518232345581, f_iou 0.6302226781845093: 93%|██████████████████████████████████▌ | 69/74 [00:55<00:03, 1.36it/s]
epoch 64 | loss 1.3869941234588623, f_iou 0.6334066987037659: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.36it/s]
epoch 64 | loss 1.3869941234588623, f_iou 0.6334066987037659: 95%|██████████████████████████████████ | 70/74 [00:55<00:02, 1.37it/s]
epoch 64 | loss 3.6174545288085938, f_iou 0.6271910071372986: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.37it/s]
epoch 64 | loss 3.6174545288085938, f_iou 0.6271910071372986: 96%|██████████████████████████████████▌ | 71/74 [00:56<00:02, 1.38it/s]
epoch 64 | loss 0.822562038898468, f_iou 0.631821870803833: 96%|████████████████████████████████████▍ | 71/74 [00:57<00:02, 1.38it/s]
epoch 64 | loss 0.822562038898468, f_iou 0.631821870803833: 97%|████████████████████████████████████▉ | 72/74 [00:57<00:01, 1.38it/s]
epoch 64 | loss 1.0004115104675293, f_iou 0.633322536945343: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.38it/s]
epoch 64 | loss 1.0004115104675293, f_iou 0.633322536945343: 99%|████████████████████████████████████▌| 73/74 [00:57<00:00, 1.39it/s]
epoch 64 | loss 1.0794994831085205, f_iou 0.6367732286453247: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 64 | loss 1.0794994831085205, f_iou 0.6367732286453247: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.38it/s]
epoch 64 | loss 1.0794994831085205, f_iou 0.6367732286453247: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 64 | valid.f_iou 0.7612400054931641, valid.f_f-score 0.88014: 0%| | 0/16 [00:05, ?it/s]
epoch 64 | valid.f_iou 0.7612400054931641, valid.f_f-score 0.88014: 6%|█▉ | 1/16 [00:05<01:25, 5.68s/it]
epoch 64 | valid.f_iou 0.6858699917793274, valid.f_f-score 0.84219: 6%|█▉ | 1/16 [00:06<01:25, 5.68s/it]
epoch 64 | valid.f_iou 0.6858699917793274, valid.f_f-score 0.84219: 12%|███▉ | 2/16 [00:06<00:36, 2.61s/it]
epoch 64 | valid.f_iou 0.5663599967956543, valid.f_f-score 0.75201: 12%|███▉ | 2/16 [00:06<00:36, 2.61s/it]
epoch 64 | valid.f_iou 0.5663599967956543, valid.f_f-score 0.75201: 19%|█████▊ | 3/16 [00:06<00:21, 1.63s/it]
epoch 64 | valid.f_iou 0.6138299703598022, valid.f_f-score 0.76331: 19%|█████▊ | 3/16 [00:07<00:21, 1.63s/it]
epoch 64 | valid.f_iou 0.6138299703598022, valid.f_f-score 0.76331: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 64 | valid.f_iou 0.6221699714660645, valid.f_f-score 0.76951: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 64 | valid.f_iou 0.6221699714660645, valid.f_f-score 0.76951: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 64 | valid.f_iou 0.5871800184249878, valid.f_f-score 0.74254: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 64 | valid.f_iou 0.5871800184249878, valid.f_f-score 0.74254: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 64 | valid.f_iou 0.6057500243186951, valid.f_f-score 0.76148: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 64 | valid.f_iou 0.6057500243186951, valid.f_f-score 0.76148: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 64 | valid.f_iou 0.581849992275238, valid.f_f-score 0.74458: 44%|██████████████ | 7/16 [00:08<00:05, 1.54it/s]
epoch 64 | valid.f_iou 0.581849992275238, valid.f_f-score 0.74458: 50%|████████████████ | 8/16 [00:08<00:04, 1.68it/s]
epoch 64 | valid.f_iou 0.5923100113868713, valid.f_f-score 0.74109: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.68it/s]
epoch 64 | valid.f_iou 0.5923100113868713, valid.f_f-score 0.74109: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.83it/s]
epoch 64 | valid.f_iou 0.5787100195884705, valid.f_f-score 0.73966: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.83it/s]
epoch 64 | valid.f_iou 0.5787100195884705, valid.f_f-score 0.73966: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.93it/s]
epoch 64 | valid.f_iou 0.575160026550293, valid.f_f-score 0.73776: 62%|███████████████████▍ | 10/16 [00:10<00:03, 1.93it/s]
epoch 64 | valid.f_iou 0.575160026550293, valid.f_f-score 0.73776: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.00it/s]
epoch 64 | valid.f_iou 0.5978800058364868, valid.f_f-score 0.75372: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.00it/s]
epoch 64 | valid.f_iou 0.5978800058364868, valid.f_f-score 0.75372: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.03it/s]
epoch 64 | valid.f_iou 0.5978999733924866, valid.f_f-score 0.76047: 75%|██████████████████████▌ | 12/16 [00:11<00:01, 2.03it/s]
epoch 64 | valid.f_iou 0.5978999733924866, valid.f_f-score 0.76047: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.08it/s]
epoch 64 | valid.f_iou 0.5943099856376648, valid.f_f-score 0.75628: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.08it/s]
epoch 64 | valid.f_iou 0.5943099856376648, valid.f_f-score 0.75628: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.12it/s]
epoch 64 | valid.f_iou 0.5988799929618835, valid.f_f-score 0.75589: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.12it/s]
epoch 64 | valid.f_iou 0.5988799929618835, valid.f_f-score 0.75589: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.26it/s]
epoch 64 | valid.f_iou 0.603410005569458, valid.f_f-score 0.75388: 94%|█████████████████████████████ | 15/16 [00:12<00:00, 2.26it/s]
epoch 64 | valid.f_iou 0.603410005569458, valid.f_f-score 0.75388: 100%|███████████████████████████████| 16/16 [00:12<00:00, 2.38it/s]
epoch 64 | valid.f_iou 0.603410005569458, valid.f_f-score 0.75388: 100%|███████████████████████████████| 16/16 [00:12<00:00, 1.29it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 64 | valid.f_iou 0.782069981098175, valid.f_f-score 0.87667: 0%| | 0/16 [00:05, ?it/s]
epoch 64 | valid.f_iou 0.782069981098175, valid.f_f-score 0.87667: 6%|██ | 1/16 [00:05<01:16, 5.12s/it]
epoch 64 | valid.f_iou 0.832830011844635, valid.f_f-score 0.91636: 6%|██ | 1/16 [00:05<01:16, 5.12s/it]
epoch 64 | valid.f_iou 0.832830011844635, valid.f_f-score 0.91636: 12%|████ | 2/16 [00:05<00:33, 2.41s/it]
epoch 64 | valid.f_iou 0.6954699754714966, valid.f_f-score 0.82435: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 64 | valid.f_iou 0.6954699754714966, valid.f_f-score 0.82435: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 64 | valid.f_iou 0.667900025844574, valid.f_f-score 0.77359: 19%|██████ | 3/16 [00:06<00:19, 1.52s/it]
epoch 64 | valid.f_iou 0.667900025844574, valid.f_f-score 0.77359: 25%|████████ | 4/16 [00:06<00:12, 1.08s/it]
epoch 64 | valid.f_iou 0.6664000153541565, valid.f_f-score 0.78084: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 64 | valid.f_iou 0.6664000153541565, valid.f_f-score 0.78084: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 64 | valid.f_iou 0.6514400243759155, valid.f_f-score 0.76647: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 64 | valid.f_iou 0.6514400243759155, valid.f_f-score 0.76647: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 64 | valid.f_iou 0.6759200096130371, valid.f_f-score 0.79072: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 64 | valid.f_iou 0.6759200096130371, valid.f_f-score 0.79072: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.58it/s]
epoch 64 | valid.f_iou 0.6687800288200378, valid.f_f-score 0.78728: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 64 | valid.f_iou 0.6687800288200378, valid.f_f-score 0.78728: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 64 | valid.f_iou 0.6842700242996216, valid.f_f-score 0.79384: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 64 | valid.f_iou 0.6842700242996216, valid.f_f-score 0.79384: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.89it/s]
epoch 64 | valid.f_iou 0.686710000038147, valid.f_f-score 0.80418: 56%|██████████████████ | 9/16 [00:09<00:03, 1.89it/s]
epoch 64 | valid.f_iou 0.686710000038147, valid.f_f-score 0.80418: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.04it/s]
epoch 64 | valid.f_iou 0.6767100095748901, valid.f_f-score 0.78431: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 64 | valid.f_iou 0.6767100095748901, valid.f_f-score 0.78431: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 64 | valid.f_iou 0.6904699802398682, valid.f_f-score 0.79623: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.21it/s]
epoch 64 | valid.f_iou 0.6904699802398682, valid.f_f-score 0.79623: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.34it/s]
epoch 64 | valid.f_iou 0.7040200233459473, valid.f_f-score 0.80573: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 64 | valid.f_iou 0.7040200233459473, valid.f_f-score 0.80573: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 64 | valid.f_iou 0.7001199722290039, valid.f_f-score 0.80077: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 64 | valid.f_iou 0.7001199722290039, valid.f_f-score 0.80077: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 64 | valid.f_iou 0.7094399929046631, valid.f_f-score 0.80921: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 64 | valid.f_iou 0.7094399929046631, valid.f_f-score 0.80921: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 64 | valid.f_iou 0.7107099890708923, valid.f_f-score 0.80783: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 64 | valid.f_iou 0.7107099890708923, valid.f_f-score 0.80783: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 64 | valid.f_iou 0.7107099890708923, valid.f_f-score 0.80783: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 64 | valid.f_iou 0.782069981098175, valid.f_f-score 0.87667: 0%| | 0/16 [00:04, ?it/s]
epoch 64 | valid.f_iou 0.782069981098175, valid.f_f-score 0.87667: 6%|██ | 1/16 [00:04<01:12, 4.86s/it]
epoch 64 | valid.f_iou 0.832830011844635, valid.f_f-score 0.91636: 6%|██ | 1/16 [00:05<01:12, 4.86s/it]
epoch 64 | valid.f_iou 0.832830011844635, valid.f_f-score 0.91636: 12%|████ | 2/16 [00:05<00:31, 2.27s/it]
epoch 64 | valid.f_iou 0.6954699754714966, valid.f_f-score 0.82435: 12%|███▉ | 2/16 [00:05<00:31, 2.27s/it]
epoch 64 | valid.f_iou 0.6954699754714966, valid.f_f-score 0.82435: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 64 | valid.f_iou 0.6680099964141846, valid.f_f-score 0.77359: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 64 | valid.f_iou 0.6680099964141846, valid.f_f-score 0.77359: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 64 | valid.f_iou 0.6679900288581848, valid.f_f-score 0.78084: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 64 | valid.f_iou 0.6679900288581848, valid.f_f-score 0.78084: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 64 | valid.f_iou 0.6527699828147888, valid.f_f-score 0.76647: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 64 | valid.f_iou 0.6527699828147888, valid.f_f-score 0.76647: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 64 | valid.f_iou 0.6788100004196167, valid.f_f-score 0.79072: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 64 | valid.f_iou 0.6788100004196167, valid.f_f-score 0.79072: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 64 | valid.f_iou 0.6713200211524963, valid.f_f-score 0.78728: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 64 | valid.f_iou 0.6713200211524963, valid.f_f-score 0.78728: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.79it/s]
epoch 64 | valid.f_iou 0.6901900172233582, valid.f_f-score 0.79384: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 64 | valid.f_iou 0.6901900172233582, valid.f_f-score 0.79384: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 64 | valid.f_iou 0.6906099915504456, valid.f_f-score 0.80075: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 64 | valid.f_iou 0.6906099915504456, valid.f_f-score 0.80075: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.09it/s]
epoch 64 | valid.f_iou 0.6726700067520142, valid.f_f-score 0.7752: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.09it/s]
epoch 64 | valid.f_iou 0.6726700067520142, valid.f_f-score 0.7752: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.20it/s]
epoch 64 | valid.f_iou 0.6867600083351135, valid.f_f-score 0.78787: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 64 | valid.f_iou 0.6867600083351135, valid.f_f-score 0.78787: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.34it/s]
epoch 64 | valid.f_iou 0.7005900144577026, valid.f_f-score 0.79936: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.34it/s]
epoch 64 | valid.f_iou 0.7005900144577026, valid.f_f-score 0.79936: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.44it/s]
epoch 64 | valid.f_iou 0.696940004825592, valid.f_f-score 0.79487: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.44it/s]
epoch 64 | valid.f_iou 0.696940004825592, valid.f_f-score 0.79487: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.51it/s]
epoch 64 | valid.f_iou 0.7064700126647949, valid.f_f-score 0.8037: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.51it/s]
epoch 64 | valid.f_iou 0.7064700126647949, valid.f_f-score 0.8037: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.58it/s]
epoch 64 | valid.f_iou 0.7083899974822998, valid.f_f-score 0.80346: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 64 | valid.f_iou 0.7083899974822998, valid.f_f-score 0.80346: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 64 | valid.f_iou 0.7083899974822998, valid.f_f-score 0.80346: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 65 | loss 2.678694009780884, f_iou 0.6124106645584106: 0%| | 0/74 [00:06, ?it/s]
epoch 65 | loss 2.678694009780884, f_iou 0.6124106645584106: 1%|▌ | 1/74 [00:06<08:14, 6.78s/it]
epoch 65 | loss 2.1279678344726562, f_iou 0.7087075710296631: 1%|▌ | 1/74 [00:07<08:14, 6.78s/it]
epoch 65 | loss 2.1279678344726562, f_iou 0.7087075710296631: 3%|█ | 2/74 [00:07<03:55, 3.27s/it]
epoch 65 | loss 1.072450876235962, f_iou 0.7698131799697876: 3%|█ | 2/74 [00:08<03:55, 3.27s/it]
epoch 65 | loss 1.072450876235962, f_iou 0.7698131799697876: 4%|█▌ | 3/74 [00:08<02:34, 2.18s/it]
epoch 65 | loss 0.4762687683105469, f_iou 0.8203973174095154: 4%|█▌ | 3/74 [00:09<02:34, 2.18s/it]
epoch 65 | loss 0.4762687683105469, f_iou 0.8203973174095154: 5%|██ | 4/74 [00:09<01:54, 1.63s/it]
epoch 65 | loss 0.6183836460113525, f_iou 0.8341066241264343: 5%|██ | 4/74 [00:10<01:54, 1.63s/it]
epoch 65 | loss 0.6183836460113525, f_iou 0.8341066241264343: 7%|██▌ | 5/74 [00:10<01:32, 1.33s/it]
epoch 65 | loss 0.6801853179931641, f_iou 0.7888767123222351: 7%|██▌ | 5/74 [00:10<01:32, 1.33s/it]
epoch 65 | loss 0.6801853179931641, f_iou 0.7888767123222351: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 65 | loss 0.0, f_iou 0.7961216568946838: 8%|████▏ | 6/74 [00:11<01:18, 1.15s/it]
epoch 65 | loss 0.0, f_iou 0.7961216568946838: 9%|████▉ | 7/74 [00:11<01:08, 1.03s/it]
epoch 65 | loss 1.176946997642517, f_iou 0.7519772052764893: 9%|███▌ | 7/74 [00:12<01:08, 1.03s/it]
epoch 65 | loss 1.176946997642517, f_iou 0.7519772052764893: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 65 | loss 0.8243451118469238, f_iou 0.7582575678825378: 11%|████ | 8/74 [00:13<01:02, 1.05it/s]
epoch 65 | loss 0.8243451118469238, f_iou 0.7582575678825378: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 65 | loss 1.9251967668533325, f_iou 0.7447871565818787: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 65 | loss 1.9251967668533325, f_iou 0.7447871565818787: 14%|████▊ | 10/74 [00:13<00:55, 1.16it/s]
epoch 65 | loss 2.3062081336975098, f_iou 0.710679829120636: 14%|█████ | 10/74 [00:14<00:55, 1.16it/s]
epoch 65 | loss 2.3062081336975098, f_iou 0.710679829120636: 15%|█████▌ | 11/74 [00:14<00:52, 1.21it/s]
epoch 65 | loss 1.0758780241012573, f_iou 0.6951519846916199: 15%|█████▎ | 11/74 [00:15<00:52, 1.21it/s]
epoch 65 | loss 1.0758780241012573, f_iou 0.6951519846916199: 16%|█████▊ | 12/74 [00:15<00:48, 1.27it/s]
epoch 65 | loss 1.1722054481506348, f_iou 0.6495547890663147: 16%|█████▊ | 12/74 [00:16<00:48, 1.27it/s]
epoch 65 | loss 1.1722054481506348, f_iou 0.6495547890663147: 18%|██████▎ | 13/74 [00:16<00:47, 1.30it/s]
epoch 65 | loss 1.0199639797210693, f_iou 0.6692227125167847: 18%|██████▎ | 13/74 [00:16<00:47, 1.30it/s]
epoch 65 | loss 1.0199639797210693, f_iou 0.6692227125167847: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 65 | loss 1.1510534286499023, f_iou 0.6811013221740723: 19%|██████▊ | 14/74 [00:17<00:45, 1.33it/s]
epoch 65 | loss 1.1510534286499023, f_iou 0.6811013221740723: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 65 | loss 3.4785118103027344, f_iou 0.6630274653434753: 20%|███████▎ | 15/74 [00:18<00:43, 1.35it/s]
epoch 65 | loss 3.4785118103027344, f_iou 0.6630274653434753: 22%|███████▊ | 16/74 [00:18<00:42, 1.35it/s]
epoch 65 | loss 0.5487208366394043, f_iou 0.6792663931846619: 22%|███████▊ | 16/74 [00:19<00:42, 1.35it/s]
epoch 65 | loss 0.5487208366394043, f_iou 0.6792663931846619: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 65 | loss 3.9593963623046875, f_iou 0.6586382985115051: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 65 | loss 3.9593963623046875, f_iou 0.6586382985115051: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 65 | loss 1.01772141456604, f_iou 0.6498233675956726: 24%|█████████▏ | 18/74 [00:20<00:41, 1.36it/s]
epoch 65 | loss 1.01772141456604, f_iou 0.6498233675956726: 26%|█████████▊ | 19/74 [00:20<00:41, 1.33it/s]
epoch 65 | loss 1.1085047721862793, f_iou 0.6547909379005432: 26%|█████████▏ | 19/74 [00:21<00:41, 1.33it/s]
epoch 65 | loss 1.1085047721862793, f_iou 0.6547909379005432: 27%|█████████▋ | 20/74 [00:21<00:41, 1.31it/s]
epoch 65 | loss 0.6996593475341797, f_iou 0.6350259780883789: 27%|█████████▋ | 20/74 [00:22<00:41, 1.31it/s]
epoch 65 | loss 0.6996593475341797, f_iou 0.6350259780883789: 28%|██████████▏ | 21/74 [00:22<00:40, 1.30it/s]
epoch 65 | loss 2.2184793949127197, f_iou 0.6374967694282532: 28%|██████████▏ | 21/74 [00:22<00:40, 1.30it/s]
epoch 65 | loss 2.2184793949127197, f_iou 0.6374967694282532: 30%|██████████▋ | 22/74 [00:22<00:40, 1.29it/s]
epoch 65 | loss 1.2525807619094849, f_iou 0.641048014163971: 30%|███████████ | 22/74 [00:23<00:40, 1.29it/s]
epoch 65 | loss 1.2525807619094849, f_iou 0.641048014163971: 31%|███████████▌ | 23/74 [00:23<00:39, 1.30it/s]
epoch 65 | loss 2.5550403594970703, f_iou 0.6215426921844482: 31%|███████████▏ | 23/74 [00:24<00:39, 1.30it/s]
epoch 65 | loss 2.5550403594970703, f_iou 0.6215426921844482: 32%|███████████▋ | 24/74 [00:24<00:37, 1.33it/s]
epoch 65 | loss 1.810725450515747, f_iou 0.6311981678009033: 32%|████████████ | 24/74 [00:25<00:37, 1.33it/s]
epoch 65 | loss 1.810725450515747, f_iou 0.6311981678009033: 34%|████████████▌ | 25/74 [00:25<00:36, 1.35it/s]
epoch 65 | loss 0.7680028676986694, f_iou 0.6343777775764465: 34%|████████████▏ | 25/74 [00:25<00:36, 1.35it/s]
epoch 65 | loss 0.7680028676986694, f_iou 0.6343777775764465: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 65 | loss 2.6369690895080566, f_iou 0.6223156452178955: 35%|████████████▋ | 26/74 [00:26<00:35, 1.35it/s]
epoch 65 | loss 2.6369690895080566, f_iou 0.6223156452178955: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.34it/s]
epoch 65 | loss 1.3207656145095825, f_iou 0.6250237822532654: 36%|█████████████▏ | 27/74 [00:27<00:35, 1.34it/s]
epoch 65 | loss 1.3207656145095825, f_iou 0.6250237822532654: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.33it/s]
epoch 65 | loss 1.1621320247650146, f_iou 0.6317442655563354: 38%|█████████████▌ | 28/74 [00:28<00:34, 1.33it/s]
epoch 65 | loss 1.1621320247650146, f_iou 0.6317442655563354: 39%|██████████████ | 29/74 [00:28<00:33, 1.33it/s]
epoch 65 | loss 1.33512544631958, f_iou 0.6262027025222778: 39%|██████████████▉ | 29/74 [00:28<00:33, 1.33it/s]
epoch 65 | loss 1.33512544631958, f_iou 0.6262027025222778: 41%|███████████████▍ | 30/74 [00:28<00:33, 1.31it/s]
epoch 65 | loss 0.6353768110275269, f_iou 0.6357821822166443: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.31it/s]
epoch 65 | loss 0.6353768110275269, f_iou 0.6357821822166443: 42%|███████████████ | 31/74 [00:29<00:32, 1.34it/s]
epoch 65 | loss 0.6249500513076782, f_iou 0.6448679566383362: 42%|███████████████ | 31/74 [00:30<00:32, 1.34it/s]
epoch 65 | loss 0.6249500513076782, f_iou 0.6448679566383362: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.36it/s]
epoch 65 | loss 2.0115551948547363, f_iou 0.6462520956993103: 43%|███████████████▌ | 32/74 [00:31<00:30, 1.36it/s]
epoch 65 | loss 2.0115551948547363, f_iou 0.6462520956993103: 45%|████████████████ | 33/74 [00:31<00:30, 1.37it/s]
epoch 65 | loss 0.704542338848114, f_iou 0.6555554270744324: 45%|████████████████▌ | 33/74 [00:31<00:30, 1.37it/s]
epoch 65 | loss 0.704542338848114, f_iou 0.6555554270744324: 46%|█████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 65 | loss 0.8455028533935547, f_iou 0.6512500047683716: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.37it/s]
epoch 65 | loss 0.8455028533935547, f_iou 0.6512500047683716: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 65 | loss 2.532647132873535, f_iou 0.6463932394981384: 47%|█████████████████▌ | 35/74 [00:33<00:28, 1.38it/s]
epoch 65 | loss 2.532647132873535, f_iou 0.6463932394981384: 49%|██████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 65 | loss 1.735792636871338, f_iou 0.6418783068656921: 49%|██████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 65 | loss 1.735792636871338, f_iou 0.6418783068656921: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.38it/s]
epoch 65 | loss 3.897740125656128, f_iou 0.638990044593811: 50%|███████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 65 | loss 3.897740125656128, f_iou 0.638990044593811: 51%|███████████████████▌ | 38/74 [00:34<00:25, 1.39it/s]
epoch 65 | loss 1.520456075668335, f_iou 0.6423513889312744: 51%|███████████████████ | 38/74 [00:35<00:25, 1.39it/s]
epoch 65 | loss 1.520456075668335, f_iou 0.6423513889312744: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 65 | loss 1.7048306465148926, f_iou 0.6388580203056335: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.39it/s]
epoch 65 | loss 1.7048306465148926, f_iou 0.6388580203056335: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.35it/s]
epoch 65 | loss 1.2040836811065674, f_iou 0.6325358748435974: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.35it/s]
epoch 65 | loss 1.2040836811065674, f_iou 0.6325358748435974: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.33it/s]
epoch 65 | loss 1.533663034439087, f_iou 0.6381881237030029: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.33it/s]
epoch 65 | loss 1.533663034439087, f_iou 0.6381881237030029: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.32it/s]
epoch 65 | loss 1.1289571523666382, f_iou 0.6429638862609863: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.32it/s]
epoch 65 | loss 1.1289571523666382, f_iou 0.6429638862609863: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.30it/s]
epoch 65 | loss 2.924126148223877, f_iou 0.631629467010498: 58%|██████████████████████ | 43/74 [00:39<00:23, 1.30it/s]
epoch 65 | loss 2.924126148223877, f_iou 0.631629467010498: 59%|██████████████████████▌ | 44/74 [00:39<00:23, 1.30it/s]
epoch 65 | loss 2.547483444213867, f_iou 0.6342023611068726: 59%|██████████████████████ | 44/74 [00:40<00:23, 1.30it/s]
epoch 65 | loss 2.547483444213867, f_iou 0.6342023611068726: 61%|██████████████████████▌ | 45/74 [00:40<00:22, 1.30it/s]
epoch 65 | loss 1.2508801221847534, f_iou 0.6337088942527771: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.30it/s]
epoch 65 | loss 1.2508801221847534, f_iou 0.6337088942527771: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.29it/s]
epoch 65 | loss 2.7604706287384033, f_iou 0.6308777928352356: 62%|██████████████████████▍ | 46/74 [00:41<00:21, 1.29it/s]
epoch 65 | loss 2.7604706287384033, f_iou 0.6308777928352356: 64%|██████████████████████▊ | 47/74 [00:41<00:21, 1.29it/s]
epoch 65 | loss 0.7743836641311646, f_iou 0.6262951493263245: 64%|██████████████████████▊ | 47/74 [00:42<00:21, 1.29it/s]
epoch 65 | loss 0.7743836641311646, f_iou 0.6262951493263245: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.30it/s]
epoch 65 | loss 1.5904802083969116, f_iou 0.6270236372947693: 65%|███████████████████████▎ | 48/74 [00:43<00:19, 1.30it/s]
epoch 65 | loss 1.5904802083969116, f_iou 0.6270236372947693: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.33it/s]
epoch 65 | loss 2.488027572631836, f_iou 0.6203423738479614: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.33it/s]
epoch 65 | loss 2.488027572631836, f_iou 0.6203423738479614: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.34it/s]
epoch 65 | loss 1.2436847686767578, f_iou 0.6177979111671448: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.34it/s]
epoch 65 | loss 1.2436847686767578, f_iou 0.6177979111671448: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.36it/s]
epoch 65 | loss 2.561460018157959, f_iou 0.621307373046875: 69%|██████████████████████████▏ | 51/74 [00:45<00:16, 1.36it/s]
epoch 65 | loss 2.561460018157959, f_iou 0.621307373046875: 70%|██████████████████████████▋ | 52/74 [00:45<00:16, 1.36it/s]
epoch 65 | loss 0.4438503682613373, f_iou 0.6264776587486267: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.36it/s]
epoch 65 | loss 0.4438503682613373, f_iou 0.6264776587486267: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.37it/s]
epoch 65 | loss 2.686732769012451, f_iou 0.6259586811065674: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.37it/s]
epoch 65 | loss 2.686732769012451, f_iou 0.6259586811065674: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 65 | loss 1.591564655303955, f_iou 0.626737117767334: 73%|███████████████████████████▋ | 54/74 [00:47<00:14, 1.38it/s]
epoch 65 | loss 1.591564655303955, f_iou 0.626737117767334: 74%|████████████████████████████▏ | 55/74 [00:47<00:13, 1.39it/s]
epoch 65 | loss 0.9981014728546143, f_iou 0.6317800283432007: 74%|██████████████████████████▊ | 55/74 [00:48<00:13, 1.39it/s]
epoch 65 | loss 0.9981014728546143, f_iou 0.6317800283432007: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.38it/s]
epoch 65 | loss 3.0216426849365234, f_iou 0.6323090195655823: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.38it/s]
epoch 65 | loss 3.0216426849365234, f_iou 0.6323090195655823: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 65 | loss 0.966347336769104, f_iou 0.6347383260726929: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.38it/s]
epoch 65 | loss 0.966347336769104, f_iou 0.6347383260726929: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.38it/s]
epoch 65 | loss 1.5508954524993896, f_iou 0.6350489258766174: 78%|████████████████████████████▏ | 58/74 [00:50<00:11, 1.38it/s]
epoch 65 | loss 1.5508954524993896, f_iou 0.6350489258766174: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 65 | loss 1.3188347816467285, f_iou 0.636056125164032: 80%|█████████████████████████████▌ | 59/74 [00:51<00:10, 1.39it/s]
epoch 65 | loss 1.3188347816467285, f_iou 0.636056125164032: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.39it/s]
epoch 65 | loss 0.9861863255500793, f_iou 0.638721227645874: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.39it/s]
epoch 65 | loss 0.9861863255500793, f_iou 0.638721227645874: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.39it/s]
epoch 65 | loss 1.2922776937484741, f_iou 0.6435665488243103: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.39it/s]
epoch 65 | loss 1.2922776937484741, f_iou 0.6435665488243103: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 65 | loss 0.8386942148208618, f_iou 0.6472263336181641: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.39it/s]
epoch 65 | loss 0.8386942148208618, f_iou 0.6472263336181641: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 65 | loss 3.0997984409332275, f_iou 0.6439497470855713: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 65 | loss 3.0997984409332275, f_iou 0.6439497470855713: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.40it/s]
epoch 65 | loss 0.5611320734024048, f_iou 0.6485066413879395: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.40it/s]
epoch 65 | loss 0.5611320734024048, f_iou 0.6485066413879395: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 65 | loss 1.5551676750183105, f_iou 0.6489505171775818: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.39it/s]
epoch 65 | loss 1.5551676750183105, f_iou 0.6489505171775818: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.36it/s]
epoch 65 | loss 0.89894700050354, f_iou 0.6524417996406555: 89%|█████████████████████████████████▉ | 66/74 [00:56<00:05, 1.36it/s]
epoch 65 | loss 0.89894700050354, f_iou 0.6524417996406555: 91%|██████████████████████████████████▍ | 67/74 [00:56<00:05, 1.36it/s]
epoch 65 | loss 2.801360607147217, f_iou 0.6518463492393494: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.36it/s]
epoch 65 | loss 2.801360607147217, f_iou 0.6518463492393494: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.37it/s]
epoch 65 | loss 1.7127739191055298, f_iou 0.65153568983078: 92%|██████████████████████████████████▉ | 68/74 [00:57<00:04, 1.37it/s]
epoch 65 | loss 1.7127739191055298, f_iou 0.65153568983078: 93%|███████████████████████████████████▍ | 69/74 [00:57<00:03, 1.38it/s]
epoch 65 | loss 1.0197052955627441, f_iou 0.6423502564430237: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.38it/s]
epoch 65 | loss 1.0197052955627441, f_iou 0.6423502564430237: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 65 | loss 3.514655113220215, f_iou 0.6433315873146057: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 65 | loss 3.514655113220215, f_iou 0.6433315873146057: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 65 | loss 0.6827028393745422, f_iou 0.6468925476074219: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 65 | loss 0.6827028393745422, f_iou 0.6468925476074219: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 65 | loss 1.0156762599945068, f_iou 0.6504409909248352: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 65 | loss 1.0156762599945068, f_iou 0.6504409909248352: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 65 | loss 0.0, f_iou 0.6550810933113098: 99%|██████████████████████████████████████████████████▎| 73/74 [01:01<00:00, 1.39it/s]
epoch 65 | loss 0.0, f_iou 0.6550810933113098: 100%|███████████████████████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 65 | loss 0.0, f_iou 0.6550810933113098: 100%|███████████████████████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 65 | valid.f_iou 0.7424299716949463, valid.f_f-score 0.90105: 0%| | 0/16 [00:05, ?it/s]
epoch 65 | valid.f_iou 0.7424299716949463, valid.f_f-score 0.90105: 6%|█▉ | 1/16 [00:05<01:23, 5.58s/it]
epoch 65 | valid.f_iou 0.6329900026321411, valid.f_f-score 0.84189: 6%|█▉ | 1/16 [00:06<01:23, 5.58s/it]
epoch 65 | valid.f_iou 0.6329900026321411, valid.f_f-score 0.84189: 12%|███▉ | 2/16 [00:06<00:36, 2.57s/it]
epoch 65 | valid.f_iou 0.517490029335022, valid.f_f-score 0.75844: 12%|████ | 2/16 [00:06<00:36, 2.57s/it]
epoch 65 | valid.f_iou 0.517490029335022, valid.f_f-score 0.75844: 19%|██████ | 3/16 [00:06<00:20, 1.60s/it]
epoch 65 | valid.f_iou 0.582260012626648, valid.f_f-score 0.76739: 19%|██████ | 3/16 [00:06<00:20, 1.60s/it]
epoch 65 | valid.f_iou 0.582260012626648, valid.f_f-score 0.76739: 25%|████████ | 4/16 [00:06<00:13, 1.16s/it]
epoch 65 | valid.f_iou 0.5825200080871582, valid.f_f-score 0.76923: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 65 | valid.f_iou 0.5825200080871582, valid.f_f-score 0.76923: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 65 | valid.f_iou 0.5559300184249878, valid.f_f-score 0.74064: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 65 | valid.f_iou 0.5559300184249878, valid.f_f-score 0.74064: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 65 | valid.f_iou 0.5627300143241882, valid.f_f-score 0.75676: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 65 | valid.f_iou 0.5627300143241882, valid.f_f-score 0.75676: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 65 | valid.f_iou 0.5344399809837341, valid.f_f-score 0.73517: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 65 | valid.f_iou 0.5344399809837341, valid.f_f-score 0.73517: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 65 | valid.f_iou 0.5460399985313416, valid.f_f-score 0.72928: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.80it/s]
epoch 65 | valid.f_iou 0.5460399985313416, valid.f_f-score 0.72928: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 65 | valid.f_iou 0.5324400067329407, valid.f_f-score 0.72813: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 65 | valid.f_iou 0.5324400067329407, valid.f_f-score 0.72813: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 65 | valid.f_iou 0.5327000021934509, valid.f_f-score 0.72569: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 65 | valid.f_iou 0.5327000021934509, valid.f_f-score 0.72569: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 65 | valid.f_iou 0.5539900064468384, valid.f_f-score 0.74212: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.18it/s]
epoch 65 | valid.f_iou 0.5539900064468384, valid.f_f-score 0.74212: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 65 | valid.f_iou 0.5578600168228149, valid.f_f-score 0.74939: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 65 | valid.f_iou 0.5578600168228149, valid.f_f-score 0.74939: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 65 | valid.f_iou 0.5491999983787537, valid.f_f-score 0.73921: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 65 | valid.f_iou 0.5491999983787537, valid.f_f-score 0.73921: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 65 | valid.f_iou 0.5539100170135498, valid.f_f-score 0.73767: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 65 | valid.f_iou 0.5539100170135498, valid.f_f-score 0.73767: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 65 | valid.f_iou 0.5603200197219849, valid.f_f-score 0.73681: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 65 | valid.f_iou 0.5603200197219849, valid.f_f-score 0.73681: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 65 | valid.f_iou 0.5603200197219849, valid.f_f-score 0.73681: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 65 | valid.f_iou 0.7956799864768982, valid.f_f-score 0.89312: 0%| | 0/16 [00:05, ?it/s]
epoch 65 | valid.f_iou 0.7956799864768982, valid.f_f-score 0.89312: 6%|█▉ | 1/16 [00:05<01:17, 5.14s/it]
epoch 65 | valid.f_iou 0.8155900239944458, valid.f_f-score 0.90894: 6%|█▉ | 1/16 [00:05<01:17, 5.14s/it]
epoch 65 | valid.f_iou 0.8155900239944458, valid.f_f-score 0.90894: 12%|███▉ | 2/16 [00:05<00:33, 2.39s/it]
epoch 65 | valid.f_iou 0.7023699879646301, valid.f_f-score 0.8307: 12%|████ | 2/16 [00:06<00:33, 2.39s/it]
epoch 65 | valid.f_iou 0.7023699879646301, valid.f_f-score 0.8307: 19%|██████ | 3/16 [00:06<00:19, 1.51s/it]
epoch 65 | valid.f_iou 0.6910600066184998, valid.f_f-score 0.79817: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 65 | valid.f_iou 0.6910600066184998, valid.f_f-score 0.79817: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 65 | valid.f_iou 0.689329981803894, valid.f_f-score 0.8003: 25%|████████▎ | 4/16 [00:06<00:13, 1.10s/it]
epoch 65 | valid.f_iou 0.689329981803894, valid.f_f-score 0.8003: 31%|██████████▎ | 5/16 [00:07<00:09, 1.15it/s]
epoch 65 | valid.f_iou 0.6761000156402588, valid.f_f-score 0.79694: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 65 | valid.f_iou 0.6761000156402588, valid.f_f-score 0.79694: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 65 | valid.f_iou 0.6863200068473816, valid.f_f-score 0.81179: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 65 | valid.f_iou 0.6863200068473816, valid.f_f-score 0.81179: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.62it/s]
epoch 65 | valid.f_iou 0.6812099814414978, valid.f_f-score 0.80974: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 65 | valid.f_iou 0.6812099814414978, valid.f_f-score 0.80974: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 65 | valid.f_iou 0.6973000168800354, valid.f_f-score 0.81684: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 65 | valid.f_iou 0.6973000168800354, valid.f_f-score 0.81684: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.00it/s]
epoch 65 | valid.f_iou 0.7022200226783752, valid.f_f-score 0.82563: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.00it/s]
epoch 65 | valid.f_iou 0.7022200226783752, valid.f_f-score 0.82563: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 65 | valid.f_iou 0.6912000179290771, valid.f_f-score 0.80628: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 65 | valid.f_iou 0.6912000179290771, valid.f_f-score 0.80628: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 65 | valid.f_iou 0.7049800157546997, valid.f_f-score 0.81651: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 65 | valid.f_iou 0.7049800157546997, valid.f_f-score 0.81651: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.37it/s]
epoch 65 | valid.f_iou 0.7137399911880493, valid.f_f-score 0.82425: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 65 | valid.f_iou 0.7137399911880493, valid.f_f-score 0.82425: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 65 | valid.f_iou 0.7077000141143799, valid.f_f-score 0.81662: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 65 | valid.f_iou 0.7077000141143799, valid.f_f-score 0.81662: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 65 | valid.f_iou 0.7185900211334229, valid.f_f-score 0.82566: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 65 | valid.f_iou 0.7185900211334229, valid.f_f-score 0.82566: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.58it/s]
epoch 65 | valid.f_iou 0.7166799902915955, valid.f_f-score 0.82189: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 65 | valid.f_iou 0.7166799902915955, valid.f_f-score 0.82189: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 65 | valid.f_iou 0.7166799902915955, valid.f_f-score 0.82189: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 65 | valid.f_iou 0.7956799864768982, valid.f_f-score 0.89312: 0%| | 0/16 [00:04, ?it/s]
epoch 65 | valid.f_iou 0.7956799864768982, valid.f_f-score 0.89312: 6%|█▉ | 1/16 [00:04<01:09, 4.63s/it]
epoch 65 | valid.f_iou 0.8155900239944458, valid.f_f-score 0.90894: 6%|█▉ | 1/16 [00:05<01:09, 4.63s/it]
epoch 65 | valid.f_iou 0.8155900239944458, valid.f_f-score 0.90894: 12%|███▉ | 2/16 [00:05<00:30, 2.19s/it]
epoch 65 | valid.f_iou 0.7023699879646301, valid.f_f-score 0.8307: 12%|████ | 2/16 [00:05<00:30, 2.19s/it]
epoch 65 | valid.f_iou 0.7023699879646301, valid.f_f-score 0.8307: 19%|██████ | 3/16 [00:05<00:18, 1.40s/it]
epoch 65 | valid.f_iou 0.6912199854850769, valid.f_f-score 0.79817: 19%|█████▊ | 3/16 [00:06<00:18, 1.40s/it]
epoch 65 | valid.f_iou 0.6912199854850769, valid.f_f-score 0.79817: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 65 | valid.f_iou 0.6894500255584717, valid.f_f-score 0.8003: 25%|████████ | 4/16 [00:06<00:12, 1.03s/it]
epoch 65 | valid.f_iou 0.6894500255584717, valid.f_f-score 0.8003: 31%|██████████ | 5/16 [00:06<00:09, 1.22it/s]
epoch 65 | valid.f_iou 0.6761999726295471, valid.f_f-score 0.79694: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 65 | valid.f_iou 0.6761999726295471, valid.f_f-score 0.79694: 38%|███████████▋ | 6/16 [00:06<00:07, 1.42it/s]
epoch 65 | valid.f_iou 0.6881300210952759, valid.f_f-score 0.81179: 38%|███████████▋ | 6/16 [00:07<00:07, 1.42it/s]
epoch 65 | valid.f_iou 0.6881300210952759, valid.f_f-score 0.81179: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 65 | valid.f_iou 0.6827899813652039, valid.f_f-score 0.80974: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 65 | valid.f_iou 0.6827899813652039, valid.f_f-score 0.80974: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.81it/s]
epoch 65 | valid.f_iou 0.7017599940299988, valid.f_f-score 0.81684: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 65 | valid.f_iou 0.7017599940299988, valid.f_f-score 0.81684: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 65 | valid.f_iou 0.70455002784729, valid.f_f-score 0.82217: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.99it/s]
epoch 65 | valid.f_iou 0.70455002784729, valid.f_f-score 0.82217: 62%|████████████████████ | 10/16 [00:08<00:02, 2.17it/s]
epoch 65 | valid.f_iou 0.6899200081825256, valid.f_f-score 0.79906: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 65 | valid.f_iou 0.6899200081825256, valid.f_f-score 0.79906: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.32it/s]
epoch 65 | valid.f_iou 0.7038099765777588, valid.f_f-score 0.80989: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 65 | valid.f_iou 0.7038099765777588, valid.f_f-score 0.80989: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.44it/s]
epoch 65 | valid.f_iou 0.7126500010490417, valid.f_f-score 0.8192: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.44it/s]
epoch 65 | valid.f_iou 0.7126500010490417, valid.f_f-score 0.8192: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.53it/s]
epoch 65 | valid.f_iou 0.7067000269889832, valid.f_f-score 0.81194: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.53it/s]
epoch 65 | valid.f_iou 0.7067000269889832, valid.f_f-score 0.81194: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 65 | valid.f_iou 0.7176499962806702, valid.f_f-score 0.82129: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 65 | valid.f_iou 0.7176499962806702, valid.f_f-score 0.82129: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 65 | valid.f_iou 0.7162700295448303, valid.f_f-score 0.81779: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 65 | valid.f_iou 0.7162700295448303, valid.f_f-score 0.81779: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 65 | valid.f_iou 0.7162700295448303, valid.f_f-score 0.81779: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 66 | loss 1.737870454788208, f_iou 0.7650205492973328: 0%| | 0/74 [00:05, ?it/s]
epoch 66 | loss 1.737870454788208, f_iou 0.7650205492973328: 1%|▌ | 1/74 [00:05<06:22, 5.24s/it]
epoch 66 | loss 0.6846362948417664, f_iou 0.3825102746486664: 1%|▌ | 1/74 [00:06<06:22, 5.24s/it]
epoch 66 | loss 0.6846362948417664, f_iou 0.3825102746486664: 3%|█ | 2/74 [00:06<03:09, 2.63s/it]
epoch 66 | loss 1.3848516941070557, f_iou 0.27420052886009216: 3%|▉ | 2/74 [00:06<03:09, 2.63s/it]
epoch 66 | loss 1.3848516941070557, f_iou 0.27420052886009216: 4%|█▍ | 3/74 [00:06<02:06, 1.78s/it]
epoch 66 | loss 0.8510584831237793, f_iou 0.2883338928222656: 4%|█▌ | 3/74 [00:07<02:06, 1.78s/it]
epoch 66 | loss 0.8510584831237793, f_iou 0.2883338928222656: 5%|██ | 4/74 [00:07<01:38, 1.40s/it]
epoch 66 | loss 2.031176805496216, f_iou 0.32964345812797546: 5%|██ | 4/74 [00:08<01:38, 1.40s/it]
epoch 66 | loss 2.031176805496216, f_iou 0.32964345812797546: 7%|██▌ | 5/74 [00:08<01:22, 1.19s/it]
epoch 66 | loss 2.4846062660217285, f_iou 0.35371464490890503: 7%|██▍ | 5/74 [00:09<01:22, 1.19s/it]
epoch 66 | loss 2.4846062660217285, f_iou 0.35371464490890503: 8%|██▉ | 6/74 [00:09<01:10, 1.04s/it]
epoch 66 | loss 2.55401349067688, f_iou 0.36384204030036926: 8%|███ | 6/74 [00:09<01:10, 1.04s/it]
epoch 66 | loss 2.55401349067688, f_iou 0.36384204030036926: 9%|███▌ | 7/74 [00:09<01:02, 1.07it/s]
epoch 66 | loss 1.4013291597366333, f_iou 0.3576938509941101: 9%|███▌ | 7/74 [00:10<01:02, 1.07it/s]
epoch 66 | loss 1.4013291597366333, f_iou 0.3576938509941101: 11%|████ | 8/74 [00:10<00:57, 1.15it/s]
epoch 66 | loss 2.152618885040283, f_iou 0.4165225327014923: 11%|████ | 8/74 [00:11<00:57, 1.15it/s]
epoch 66 | loss 2.152618885040283, f_iou 0.4165225327014923: 12%|████▌ | 9/74 [00:11<00:53, 1.21it/s]
epoch 66 | loss 0.9418395757675171, f_iou 0.4687241017818451: 12%|████▌ | 9/74 [00:12<00:53, 1.21it/s]
epoch 66 | loss 0.9418395757675171, f_iou 0.4687241017818451: 14%|████▊ | 10/74 [00:12<00:51, 1.25it/s]
epoch 66 | loss 1.16475510597229, f_iou 0.4934746325016022: 14%|█████▏ | 10/74 [00:12<00:51, 1.25it/s]
epoch 66 | loss 1.16475510597229, f_iou 0.4934746325016022: 15%|█████▋ | 11/74 [00:12<00:50, 1.25it/s]
epoch 66 | loss 3.1483185291290283, f_iou 0.4877434968948364: 15%|█████▎ | 11/74 [00:13<00:50, 1.25it/s]
epoch 66 | loss 3.1483185291290283, f_iou 0.4877434968948364: 16%|█████▊ | 12/74 [00:13<00:48, 1.27it/s]
epoch 66 | loss 0.6853021383285522, f_iou 0.5227665901184082: 16%|█████▊ | 12/74 [00:14<00:48, 1.27it/s]
epoch 66 | loss 0.6853021383285522, f_iou 0.5227665901184082: 18%|██████▎ | 13/74 [00:14<00:46, 1.31it/s]
epoch 66 | loss 1.405937671661377, f_iou 0.5062258243560791: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 66 | loss 1.405937671661377, f_iou 0.5062258243560791: 19%|███████ | 14/74 [00:15<00:45, 1.32it/s]
epoch 66 | loss 0.9991025924682617, f_iou 0.4917755126953125: 19%|██████▊ | 14/74 [00:15<00:45, 1.32it/s]
epoch 66 | loss 0.9991025924682617, f_iou 0.4917755126953125: 20%|███████▎ | 15/74 [00:15<00:44, 1.33it/s]
epoch 66 | loss 0.34818384051322937, f_iou 0.5206928849220276: 20%|███████ | 15/74 [00:16<00:44, 1.33it/s]
epoch 66 | loss 0.34818384051322937, f_iou 0.5206928849220276: 22%|███████▌ | 16/74 [00:16<00:43, 1.34it/s]
epoch 66 | loss 1.8933026790618896, f_iou 0.5420116186141968: 22%|███████▊ | 16/74 [00:17<00:43, 1.34it/s]
epoch 66 | loss 1.8933026790618896, f_iou 0.5420116186141968: 23%|████████▎ | 17/74 [00:17<00:42, 1.35it/s]
epoch 66 | loss 0.611085057258606, f_iou 0.5287705063819885: 23%|████████▌ | 17/74 [00:18<00:42, 1.35it/s]
epoch 66 | loss 0.611085057258606, f_iou 0.5287705063819885: 24%|█████████ | 18/74 [00:18<00:41, 1.35it/s]
epoch 66 | loss 1.0106749534606934, f_iou 0.5444480776786804: 24%|████████▊ | 18/74 [00:18<00:41, 1.35it/s]
epoch 66 | loss 1.0106749534606934, f_iou 0.5444480776786804: 26%|█████████▏ | 19/74 [00:18<00:40, 1.36it/s]
epoch 66 | loss 1.0702989101409912, f_iou 0.5598559379577637: 26%|█████████▏ | 19/74 [00:19<00:40, 1.36it/s]
epoch 66 | loss 1.0702989101409912, f_iou 0.5598559379577637: 27%|█████████▋ | 20/74 [00:19<00:40, 1.33it/s]
epoch 66 | loss 1.8759160041809082, f_iou 0.5604331493377686: 27%|█████████▋ | 20/74 [00:20<00:40, 1.33it/s]
epoch 66 | loss 1.8759160041809082, f_iou 0.5604331493377686: 28%|██████████▏ | 21/74 [00:20<00:40, 1.31it/s]
epoch 66 | loss 0.333889365196228, f_iou 0.5771912932395935: 28%|██████████▌ | 21/74 [00:21<00:40, 1.31it/s]
epoch 66 | loss 0.333889365196228, f_iou 0.5771912932395935: 30%|███████████ | 22/74 [00:21<00:40, 1.30it/s]
epoch 66 | loss 1.5169652700424194, f_iou 0.5882035493850708: 30%|██████████▋ | 22/74 [00:21<00:40, 1.30it/s]
epoch 66 | loss 1.5169652700424194, f_iou 0.5882035493850708: 31%|███████████▏ | 23/74 [00:21<00:38, 1.31it/s]
epoch 66 | loss 1.3594988584518433, f_iou 0.58946692943573: 31%|███████████▊ | 23/74 [00:22<00:38, 1.31it/s]
epoch 66 | loss 1.3594988584518433, f_iou 0.58946692943573: 32%|████████████▎ | 24/74 [00:22<00:37, 1.33it/s]
epoch 66 | loss 3.012894630432129, f_iou 0.5776966214179993: 32%|████████████ | 24/74 [00:23<00:37, 1.33it/s]
epoch 66 | loss 3.012894630432129, f_iou 0.5776966214179993: 34%|████████████▌ | 25/74 [00:23<00:36, 1.35it/s]
epoch 66 | loss 0.777093768119812, f_iou 0.591552197933197: 34%|████████████▊ | 25/74 [00:24<00:36, 1.35it/s]
epoch 66 | loss 0.777093768119812, f_iou 0.591552197933197: 35%|█████████████▎ | 26/74 [00:24<00:35, 1.36it/s]
epoch 66 | loss 1.3830652236938477, f_iou 0.5982974767684937: 35%|████████████▋ | 26/74 [00:24<00:35, 1.36it/s]
epoch 66 | loss 1.3830652236938477, f_iou 0.5982974767684937: 36%|█████████████▏ | 27/74 [00:24<00:34, 1.37it/s]
epoch 66 | loss 1.3477694988250732, f_iou 0.6076422929763794: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.37it/s]
epoch 66 | loss 1.3477694988250732, f_iou 0.6076422929763794: 38%|█████████████▌ | 28/74 [00:25<00:35, 1.28it/s]
epoch 66 | loss 1.4842764139175415, f_iou 0.612470269203186: 38%|██████████████ | 28/74 [00:26<00:35, 1.28it/s]
epoch 66 | loss 1.4842764139175415, f_iou 0.612470269203186: 39%|██████████████▌ | 29/74 [00:26<00:34, 1.31it/s]
epoch 66 | loss 1.1214752197265625, f_iou 0.6198647618293762: 39%|██████████████ | 29/74 [00:27<00:34, 1.31it/s]
epoch 66 | loss 1.1214752197265625, f_iou 0.6198647618293762: 41%|██████████████▌ | 30/74 [00:27<00:33, 1.33it/s]
epoch 66 | loss 0.0, f_iou 0.6321066617965698: 41%|████████████████████▋ | 30/74 [00:27<00:33, 1.33it/s]
epoch 66 | loss 0.0, f_iou 0.6321066617965698: 42%|█████████████████████▎ | 31/74 [00:27<00:32, 1.31it/s]
epoch 66 | loss 1.5328693389892578, f_iou 0.634759247303009: 42%|███████████████▌ | 31/74 [00:28<00:32, 1.31it/s]
epoch 66 | loss 1.5328693389892578, f_iou 0.634759247303009: 43%|████████████████ | 32/74 [00:28<00:32, 1.30it/s]
epoch 66 | loss 1.2343785762786865, f_iou 0.6415170431137085: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.30it/s]
epoch 66 | loss 1.2343785762786865, f_iou 0.6415170431137085: 45%|████████████████ | 33/74 [00:29<00:31, 1.29it/s]
epoch 66 | loss 4.629348278045654, f_iou 0.63738614320755: 45%|█████████████████▍ | 33/74 [00:30<00:31, 1.29it/s]
epoch 66 | loss 4.629348278045654, f_iou 0.63738614320755: 46%|█████████████████▉ | 34/74 [00:30<00:31, 1.28it/s]
epoch 66 | loss 1.215006947517395, f_iou 0.6439641118049622: 46%|█████████████████ | 34/74 [00:31<00:31, 1.28it/s]
epoch 66 | loss 1.215006947517395, f_iou 0.6439641118049622: 47%|█████████████████▌ | 35/74 [00:31<00:29, 1.30it/s]
epoch 66 | loss 1.9923734664916992, f_iou 0.6309374570846558: 47%|█████████████████ | 35/74 [00:31<00:29, 1.30it/s]
epoch 66 | loss 1.9923734664916992, f_iou 0.6309374570846558: 49%|█████████████████▌ | 36/74 [00:31<00:28, 1.32it/s]
epoch 66 | loss 0.5927500128746033, f_iou 0.6402342319488525: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.32it/s]
epoch 66 | loss 0.5927500128746033, f_iou 0.6402342319488525: 50%|██████████████████ | 37/74 [00:32<00:27, 1.34it/s]
epoch 66 | loss 0.6253608465194702, f_iou 0.6478472352027893: 50%|██████████████████ | 37/74 [00:33<00:27, 1.34it/s]
epoch 66 | loss 0.6253608465194702, f_iou 0.6478472352027893: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 66 | loss 0.5209134817123413, f_iou 0.6552352905273438: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 66 | loss 0.5209134817123413, f_iou 0.6552352905273438: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.37it/s]
epoch 66 | loss 3.2324202060699463, f_iou 0.6574248671531677: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.37it/s]
epoch 66 | loss 3.2324202060699463, f_iou 0.6574248671531677: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.36it/s]
epoch 66 | loss 0.6398810148239136, f_iou 0.6634650826454163: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.36it/s]
epoch 66 | loss 0.6398810148239136, f_iou 0.6634650826454163: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.36it/s]
epoch 66 | loss 1.408268928527832, f_iou 0.6598621010780334: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.36it/s]
epoch 66 | loss 1.408268928527832, f_iou 0.6598621010780334: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.36it/s]
epoch 66 | loss 0.8232472538948059, f_iou 0.663396954536438: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.36it/s]
epoch 66 | loss 0.8232472538948059, f_iou 0.663396954536438: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.37it/s]
epoch 66 | loss 2.695547103881836, f_iou 0.6628977656364441: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.37it/s]
epoch 66 | loss 2.695547103881836, f_iou 0.6628977656364441: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.37it/s]
epoch 66 | loss 1.380536675453186, f_iou 0.6654230952262878: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.37it/s]
epoch 66 | loss 1.380536675453186, f_iou 0.6654230952262878: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.38it/s]
epoch 66 | loss 2.2898800373077393, f_iou 0.6624525785446167: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 66 | loss 2.2898800373077393, f_iou 0.6624525785446167: 62%|██████████████████████▍ | 46/74 [00:38<00:20, 1.39it/s]
epoch 66 | loss 2.455411911010742, f_iou 0.6667190790176392: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 66 | loss 2.455411911010742, f_iou 0.6667190790176392: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.38it/s]
epoch 66 | loss 0.8270457983016968, f_iou 0.672585129737854: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.38it/s]
epoch 66 | loss 0.8270457983016968, f_iou 0.672585129737854: 65%|████████████████████████ | 48/74 [00:40<00:18, 1.38it/s]
epoch 66 | loss 2.9687986373901367, f_iou 0.6663716435432434: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 66 | loss 2.9687986373901367, f_iou 0.6663716435432434: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 66 | loss 1.2075791358947754, f_iou 0.6690596342086792: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 66 | loss 1.2075791358947754, f_iou 0.6690596342086792: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.38it/s]
epoch 66 | loss 4.1283464431762695, f_iou 0.6603938937187195: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 66 | loss 4.1283464431762695, f_iou 0.6603938937187195: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.38it/s]
epoch 66 | loss 1.7649962902069092, f_iou 0.6638145446777344: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 66 | loss 1.7649962902069092, f_iou 0.6638145446777344: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.38it/s]
epoch 66 | loss 0.8444072008132935, f_iou 0.6594088077545166: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 66 | loss 0.8444072008132935, f_iou 0.6594088077545166: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 66 | loss 2.0623323917388916, f_iou 0.6618414521217346: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 66 | loss 2.0623323917388916, f_iou 0.6618414521217346: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.38it/s]
epoch 66 | loss 1.697721004486084, f_iou 0.6588414907455444: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.38it/s]
epoch 66 | loss 1.697721004486084, f_iou 0.6588414907455444: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 66 | loss 1.0979945659637451, f_iou 0.6489498615264893: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 66 | loss 1.0979945659637451, f_iou 0.6489498615264893: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 66 | loss 1.1076947450637817, f_iou 0.6520652174949646: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 66 | loss 1.1076947450637817, f_iou 0.6520652174949646: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.39it/s]
epoch 66 | loss 1.017089605331421, f_iou 0.6494875550270081: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 66 | loss 1.017089605331421, f_iou 0.6494875550270081: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.38it/s]
epoch 66 | loss 1.2979063987731934, f_iou 0.6526505351066589: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 66 | loss 1.2979063987731934, f_iou 0.6526505351066589: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 66 | loss 0.7730005383491516, f_iou 0.6574647426605225: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 66 | loss 0.7730005383491516, f_iou 0.6574647426605225: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.37it/s]
epoch 66 | loss 0.6509600281715393, f_iou 0.661543071269989: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.37it/s]
epoch 66 | loss 0.6509600281715393, f_iou 0.661543071269989: 82%|██████████████████████████████▌ | 61/74 [00:49<00:09, 1.38it/s]
epoch 66 | loss 0.6216662526130676, f_iou 0.6657717823982239: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 66 | loss 0.6216662526130676, f_iou 0.6657717823982239: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.37it/s]
epoch 66 | loss 1.031200647354126, f_iou 0.6637473702430725: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.37it/s]
epoch 66 | loss 1.031200647354126, f_iou 0.6637473702430725: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.38it/s]
epoch 66 | loss 0.0, f_iou 0.6688223481178284: 85%|███████████████████████████████████████████▍ | 63/74 [00:52<00:07, 1.38it/s]
epoch 66 | loss 0.0, f_iou 0.6688223481178284: 86%|████████████████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 66 | loss 2.021986961364746, f_iou 0.6664559245109558: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 66 | loss 2.021986961364746, f_iou 0.6664559245109558: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.38it/s]
epoch 66 | loss 2.2921159267425537, f_iou 0.6685258150100708: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 66 | loss 2.2921159267425537, f_iou 0.6685258150100708: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 66 | loss 0.1339491456747055, f_iou 0.6721308827400208: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 66 | loss 0.1339491456747055, f_iou 0.6721308827400208: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 66 | loss 0.864371657371521, f_iou 0.6731296181678772: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 66 | loss 0.864371657371521, f_iou 0.6731296181678772: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.39it/s]
epoch 66 | loss 0.47913858294487, f_iou 0.663508951663971: 92%|███████████████████████████████████▊ | 68/74 [00:55<00:04, 1.39it/s]
epoch 66 | loss 0.47913858294487, f_iou 0.663508951663971: 93%|████████████████████████████████████▎ | 69/74 [00:55<00:03, 1.39it/s]
epoch 66 | loss 0.8229361176490784, f_iou 0.6591771245002747: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 66 | loss 0.8229361176490784, f_iou 0.6591771245002747: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 66 | loss 1.6627411842346191, f_iou 0.6597250699996948: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 66 | loss 1.6627411842346191, f_iou 0.6597250699996948: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 66 | loss 1.020902156829834, f_iou 0.6633722186088562: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 66 | loss 1.020902156829834, f_iou 0.6633722186088562: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 66 | loss 1.1715495586395264, f_iou 0.6652034521102905: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 66 | loss 1.1715495586395264, f_iou 0.6652034521102905: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 66 | loss 0.5657740831375122, f_iou 0.6690826416015625: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 66 | loss 0.5657740831375122, f_iou 0.6690826416015625: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 66 | loss 0.5657740831375122, f_iou 0.6690826416015625: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 66 | valid.f_iou 0.7562400102615356, valid.f_f-score 0.87704: 0%| | 0/16 [00:05, ?it/s]
epoch 66 | valid.f_iou 0.7562400102615356, valid.f_f-score 0.87704: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 66 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.87302: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 66 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.87302: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 66 | valid.f_iou 0.5852500200271606, valid.f_f-score 0.78713: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 66 | valid.f_iou 0.5852500200271606, valid.f_f-score 0.78713: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 66 | valid.f_iou 0.6228299736976624, valid.f_f-score 0.79681: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 66 | valid.f_iou 0.6228299736976624, valid.f_f-score 0.79681: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 66 | valid.f_iou 0.6193400025367737, valid.f_f-score 0.79782: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 66 | valid.f_iou 0.6193400025367737, valid.f_f-score 0.79782: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 66 | valid.f_iou 0.5850300192832947, valid.f_f-score 0.76382: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 66 | valid.f_iou 0.5850300192832947, valid.f_f-score 0.76382: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 66 | valid.f_iou 0.6035400032997131, valid.f_f-score 0.7799: 38%|████████████ | 6/16 [00:08<00:07, 1.33it/s]
epoch 66 | valid.f_iou 0.6035400032997131, valid.f_f-score 0.7799: 44%|██████████████ | 7/16 [00:08<00:05, 1.53it/s]
epoch 66 | valid.f_iou 0.5775099992752075, valid.f_f-score 0.76216: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 66 | valid.f_iou 0.5775099992752075, valid.f_f-score 0.76216: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 66 | valid.f_iou 0.5933899879455566, valid.f_f-score 0.76401: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 66 | valid.f_iou 0.5933899879455566, valid.f_f-score 0.76401: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 66 | valid.f_iou 0.5792800188064575, valid.f_f-score 0.76159: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 66 | valid.f_iou 0.5792800188064575, valid.f_f-score 0.76159: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 66 | valid.f_iou 0.5784100294113159, valid.f_f-score 0.75718: 62%|██████████████████▊ | 10/16 [00:10<00:03, 1.96it/s]
epoch 66 | valid.f_iou 0.5784100294113159, valid.f_f-score 0.75718: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.04it/s]
epoch 66 | valid.f_iou 0.5990399718284607, valid.f_f-score 0.77151: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.04it/s]
epoch 66 | valid.f_iou 0.5990399718284607, valid.f_f-score 0.77151: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 66 | valid.f_iou 0.604960024356842, valid.f_f-score 0.77471: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.10it/s]
epoch 66 | valid.f_iou 0.604960024356842, valid.f_f-score 0.77471: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.14it/s]
epoch 66 | valid.f_iou 0.5991299748420715, valid.f_f-score 0.768: 81%|██████████████████████████ | 13/16 [00:11<00:01, 2.14it/s]
epoch 66 | valid.f_iou 0.5991299748420715, valid.f_f-score 0.768: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.17it/s]
epoch 66 | valid.f_iou 0.6019200086593628, valid.f_f-score 0.76628: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.17it/s]
epoch 66 | valid.f_iou 0.6019200086593628, valid.f_f-score 0.76628: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.19it/s]
epoch 66 | valid.f_iou 0.6043099761009216, valid.f_f-score 0.76282: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.19it/s]
epoch 66 | valid.f_iou 0.6043099761009216, valid.f_f-score 0.76282: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.32it/s]
epoch 66 | valid.f_iou 0.6043099761009216, valid.f_f-score 0.76282: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.31it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 66 | valid.f_iou 0.6960399746894836, valid.f_f-score 0.74087: 0%| | 0/16 [00:04, ?it/s]
epoch 66 | valid.f_iou 0.6960399746894836, valid.f_f-score 0.74087: 6%|█▉ | 1/16 [00:04<01:12, 4.81s/it]
epoch 66 | valid.f_iou 0.7801200151443481, valid.f_f-score 0.84424: 6%|█▉ | 1/16 [00:05<01:12, 4.81s/it]
epoch 66 | valid.f_iou 0.7801200151443481, valid.f_f-score 0.84424: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 66 | valid.f_iou 0.6919199824333191, valid.f_f-score 0.7943: 12%|████ | 2/16 [00:05<00:31, 2.25s/it]
epoch 66 | valid.f_iou 0.6919199824333191, valid.f_f-score 0.7943: 19%|██████ | 3/16 [00:05<00:18, 1.43s/it]
epoch 66 | valid.f_iou 0.6832699775695801, valid.f_f-score 0.77434: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 66 | valid.f_iou 0.6832699775695801, valid.f_f-score 0.77434: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 66 | valid.f_iou 0.674239993095398, valid.f_f-score 0.77542: 25%|████████ | 4/16 [00:06<00:12, 1.02s/it]
epoch 66 | valid.f_iou 0.674239993095398, valid.f_f-score 0.77542: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 66 | valid.f_iou 0.6551300287246704, valid.f_f-score 0.7654: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 66 | valid.f_iou 0.6551300287246704, valid.f_f-score 0.7654: 38%|████████████ | 6/16 [00:06<00:06, 1.54it/s]
epoch 66 | valid.f_iou 0.6793699860572815, valid.f_f-score 0.79024: 38%|███████████▋ | 6/16 [00:07<00:06, 1.54it/s]
epoch 66 | valid.f_iou 0.6793699860572815, valid.f_f-score 0.79024: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.80it/s]
epoch 66 | valid.f_iou 0.6778799891471863, valid.f_f-score 0.79287: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.80it/s]
epoch 66 | valid.f_iou 0.6778799891471863, valid.f_f-score 0.79287: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.96it/s]
epoch 66 | valid.f_iou 0.6932799816131592, valid.f_f-score 0.80088: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.96it/s]
epoch 66 | valid.f_iou 0.6932799816131592, valid.f_f-score 0.80088: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.17it/s]
epoch 66 | valid.f_iou 0.6955599784851074, valid.f_f-score 0.81113: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.17it/s]
epoch 66 | valid.f_iou 0.6955599784851074, valid.f_f-score 0.81113: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 66 | valid.f_iou 0.6919100284576416, valid.f_f-score 0.80241: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 66 | valid.f_iou 0.6919100284576416, valid.f_f-score 0.80241: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.42it/s]
epoch 66 | valid.f_iou 0.7061499953269958, valid.f_f-score 0.81321: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 66 | valid.f_iou 0.7061499953269958, valid.f_f-score 0.81321: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.51it/s]
epoch 66 | valid.f_iou 0.7186999917030334, valid.f_f-score 0.8214: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.51it/s]
epoch 66 | valid.f_iou 0.7186999917030334, valid.f_f-score 0.8214: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.57it/s]
epoch 66 | valid.f_iou 0.7115700244903564, valid.f_f-score 0.81466: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 66 | valid.f_iou 0.7115700244903564, valid.f_f-score 0.81466: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.61it/s]
epoch 66 | valid.f_iou 0.7067999839782715, valid.f_f-score 0.80925: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 66 | valid.f_iou 0.7067999839782715, valid.f_f-score 0.80925: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 66 | valid.f_iou 0.7059699892997742, valid.f_f-score 0.80541: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 66 | valid.f_iou 0.7059699892997742, valid.f_f-score 0.80541: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 66 | valid.f_iou 0.7059699892997742, valid.f_f-score 0.80541: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 66 | valid.f_iou 0.6959699988365173, valid.f_f-score 0.77949: 0%| | 0/16 [00:05, ?it/s]
epoch 66 | valid.f_iou 0.6959699988365173, valid.f_f-score 0.77949: 6%|█▉ | 1/16 [00:05<01:17, 5.17s/it]
epoch 66 | valid.f_iou 0.7594699859619141, valid.f_f-score 0.84088: 6%|█▉ | 1/16 [00:05<01:17, 5.17s/it]
epoch 66 | valid.f_iou 0.7594699859619141, valid.f_f-score 0.84088: 12%|███▉ | 2/16 [00:05<00:33, 2.39s/it]
epoch 66 | valid.f_iou 0.6781499981880188, valid.f_f-score 0.79205: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 66 | valid.f_iou 0.6781499981880188, valid.f_f-score 0.79205: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 66 | valid.f_iou 0.6697499752044678, valid.f_f-score 0.75906: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 66 | valid.f_iou 0.6697499752044678, valid.f_f-score 0.75906: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 66 | valid.f_iou 0.6634299755096436, valid.f_f-score 0.76319: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 66 | valid.f_iou 0.6634299755096436, valid.f_f-score 0.76319: 31%|█████████▋ | 5/16 [00:06<00:09, 1.16it/s]
epoch 66 | valid.f_iou 0.6461099982261658, valid.f_f-score 0.75521: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 66 | valid.f_iou 0.6461099982261658, valid.f_f-score 0.75521: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 66 | valid.f_iou 0.6733800172805786, valid.f_f-score 0.78151: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 66 | valid.f_iou 0.6733800172805786, valid.f_f-score 0.78151: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 66 | valid.f_iou 0.6726300120353699, valid.f_f-score 0.78523: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 66 | valid.f_iou 0.6726300120353699, valid.f_f-score 0.78523: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 66 | valid.f_iou 0.6914299726486206, valid.f_f-score 0.79409: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 66 | valid.f_iou 0.6914299726486206, valid.f_f-score 0.79409: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 66 | valid.f_iou 0.6919000148773193, valid.f_f-score 0.80156: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 66 | valid.f_iou 0.6919000148773193, valid.f_f-score 0.80156: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 66 | valid.f_iou 0.6726499795913696, valid.f_f-score 0.78259: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 66 | valid.f_iou 0.6726499795913696, valid.f_f-score 0.78259: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 66 | valid.f_iou 0.6884899735450745, valid.f_f-score 0.79504: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 66 | valid.f_iou 0.6884899735450745, valid.f_f-score 0.79504: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 66 | valid.f_iou 0.7023900151252747, valid.f_f-score 0.80555: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 66 | valid.f_iou 0.7023900151252747, valid.f_f-score 0.80555: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 66 | valid.f_iou 0.6900399923324585, valid.f_f-score 0.79387: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 66 | valid.f_iou 0.6900399923324585, valid.f_f-score 0.79387: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 66 | valid.f_iou 0.686710000038147, valid.f_f-score 0.78985: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 66 | valid.f_iou 0.686710000038147, valid.f_f-score 0.78985: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.59it/s]
epoch 66 | valid.f_iou 0.6861500144004822, valid.f_f-score 0.78485: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 66 | valid.f_iou 0.6861500144004822, valid.f_f-score 0.78485: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 66 | valid.f_iou 0.6861500144004822, valid.f_f-score 0.78485: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 67 | loss 1.9453060626983643, f_iou 0.8207956552505493: 0%| | 0/74 [00:06, ?it/s]
epoch 67 | loss 1.9453060626983643, f_iou 0.8207956552505493: 1%|▌ | 1/74 [00:06<07:40, 6.31s/it]
epoch 67 | loss 1.2906372547149658, f_iou 0.7810232639312744: 1%|▌ | 1/74 [00:07<07:40, 6.31s/it]
epoch 67 | loss 1.2906372547149658, f_iou 0.7810232639312744: 3%|█ | 2/74 [00:07<03:46, 3.14s/it]
epoch 67 | loss 1.2732568979263306, f_iou 0.8040825724601746: 3%|█ | 2/74 [00:08<03:46, 3.14s/it]
epoch 67 | loss 1.2732568979263306, f_iou 0.8040825724601746: 4%|█▌ | 3/74 [00:08<02:29, 2.11s/it]
epoch 67 | loss 0.9998118877410889, f_iou 0.8186530470848083: 4%|█▌ | 3/74 [00:08<02:29, 2.11s/it]
epoch 67 | loss 0.9998118877410889, f_iou 0.8186530470848083: 5%|██ | 4/74 [00:08<01:50, 1.58s/it]
epoch 67 | loss 1.304424524307251, f_iou 0.7878905534744263: 5%|██ | 4/74 [00:09<01:50, 1.58s/it]
epoch 67 | loss 1.304424524307251, f_iou 0.7878905534744263: 7%|██▌ | 5/74 [00:09<01:29, 1.30s/it]
epoch 67 | loss 3.1085126399993896, f_iou 0.7663654088973999: 7%|██▌ | 5/74 [00:10<01:29, 1.30s/it]
epoch 67 | loss 3.1085126399993896, f_iou 0.7663654088973999: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 67 | loss 1.8798332214355469, f_iou 0.764164388179779: 8%|███ | 6/74 [00:11<01:16, 1.12s/it]
epoch 67 | loss 1.8798332214355469, f_iou 0.764164388179779: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 67 | loss 0.6835737228393555, f_iou 0.7656506299972534: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 67 | loss 0.6835737228393555, f_iou 0.7656506299972534: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 67 | loss 4.036215782165527, f_iou 0.7425978779792786: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 67 | loss 4.036215782165527, f_iou 0.7425978779792786: 12%|████▌ | 9/74 [00:12<00:56, 1.14it/s]
epoch 67 | loss 2.6247804164886475, f_iou 0.7225844264030457: 12%|████▌ | 9/74 [00:13<00:56, 1.14it/s]
epoch 67 | loss 2.6247804164886475, f_iou 0.7225844264030457: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 67 | loss 0.6553653478622437, f_iou 0.7372884154319763: 14%|████▊ | 10/74 [00:14<00:52, 1.21it/s]
epoch 67 | loss 0.6553653478622437, f_iou 0.7372884154319763: 15%|█████▎ | 11/74 [00:14<00:50, 1.26it/s]
epoch 67 | loss 0.49683213233947754, f_iou 0.6779671907424927: 15%|█████▏ | 11/74 [00:14<00:50, 1.26it/s]
epoch 67 | loss 0.49683213233947754, f_iou 0.6779671907424927: 16%|█████▋ | 12/74 [00:14<00:47, 1.30it/s]
epoch 67 | loss 1.186884880065918, f_iou 0.6462817788124084: 16%|██████ | 12/74 [00:15<00:47, 1.30it/s]
epoch 67 | loss 1.186884880065918, f_iou 0.6462817788124084: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 67 | loss 1.0025743246078491, f_iou 0.6419445872306824: 18%|██████▎ | 13/74 [00:16<00:46, 1.32it/s]
epoch 67 | loss 1.0025743246078491, f_iou 0.6419445872306824: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 67 | loss 0.5633571743965149, f_iou 0.6616340279579163: 19%|██████▊ | 14/74 [00:17<00:44, 1.34it/s]
epoch 67 | loss 0.5633571743965149, f_iou 0.6616340279579163: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 67 | loss 0.744704008102417, f_iou 0.6486573219299316: 20%|███████▌ | 15/74 [00:17<00:43, 1.36it/s]
epoch 67 | loss 0.744704008102417, f_iou 0.6486573219299316: 22%|████████ | 16/74 [00:17<00:42, 1.37it/s]
epoch 67 | loss 0.8513500094413757, f_iou 0.6661495566368103: 22%|███████▊ | 16/74 [00:18<00:42, 1.37it/s]
epoch 67 | loss 0.8513500094413757, f_iou 0.6661495566368103: 23%|████████▎ | 17/74 [00:18<00:41, 1.38it/s]
epoch 67 | loss 1.1819933652877808, f_iou 0.6790652871131897: 23%|████████▎ | 17/74 [00:19<00:41, 1.38it/s]
epoch 67 | loss 1.1819933652877808, f_iou 0.6790652871131897: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 67 | loss 0.6413557529449463, f_iou 0.6906301379203796: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 67 | loss 0.6413557529449463, f_iou 0.6906301379203796: 26%|█████████▏ | 19/74 [00:19<00:39, 1.39it/s]
epoch 67 | loss 1.3422123193740845, f_iou 0.6922048926353455: 26%|█████████▏ | 19/74 [00:20<00:39, 1.39it/s]
epoch 67 | loss 1.3422123193740845, f_iou 0.6922048926353455: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 67 | loss 1.3164361715316772, f_iou 0.6990601420402527: 27%|█████████▋ | 20/74 [00:21<00:38, 1.39it/s]
epoch 67 | loss 1.3164361715316772, f_iou 0.6990601420402527: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 67 | loss 1.1175568103790283, f_iou 0.7039327621459961: 28%|██████████▏ | 21/74 [00:22<00:38, 1.39it/s]
epoch 67 | loss 1.1175568103790283, f_iou 0.7039327621459961: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 67 | loss 1.250694990158081, f_iou 0.7136125564575195: 30%|███████████ | 22/74 [00:22<00:37, 1.39it/s]
epoch 67 | loss 1.250694990158081, f_iou 0.7136125564575195: 31%|███████████▌ | 23/74 [00:22<00:36, 1.39it/s]
epoch 67 | loss 0.6232706308364868, f_iou 0.7129978537559509: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 67 | loss 0.6232706308364868, f_iou 0.7129978537559509: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 67 | loss 0.7327779531478882, f_iou 0.719860315322876: 32%|████████████ | 24/74 [00:24<00:35, 1.39it/s]
epoch 67 | loss 0.7327779531478882, f_iou 0.719860315322876: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 67 | loss 0.9724747538566589, f_iou 0.7139114737510681: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 67 | loss 0.9724747538566589, f_iou 0.7139114737510681: 35%|████████████▋ | 26/74 [00:24<00:34, 1.40it/s]
epoch 67 | loss 0.6630535125732422, f_iou 0.7165958881378174: 35%|████████████▋ | 26/74 [00:25<00:34, 1.40it/s]
epoch 67 | loss 0.6630535125732422, f_iou 0.7165958881378174: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 67 | loss 2.6349833011627197, f_iou 0.7029468417167664: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 67 | loss 2.6349833011627197, f_iou 0.7029468417167664: 38%|█████████████▌ | 28/74 [00:26<00:32, 1.39it/s]
epoch 67 | loss 1.226236343383789, f_iou 0.7051976323127747: 38%|██████████████ | 28/74 [00:27<00:32, 1.39it/s]
epoch 67 | loss 1.226236343383789, f_iou 0.7051976323127747: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.39it/s]
epoch 67 | loss 0.7767435312271118, f_iou 0.7135249376296997: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 67 | loss 0.7767435312271118, f_iou 0.7135249376296997: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 67 | loss 0.10632495582103729, f_iou 0.7199729681015015: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.39it/s]
epoch 67 | loss 0.10632495582103729, f_iou 0.7199729681015015: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.39it/s]
epoch 67 | loss 1.134347677230835, f_iou 0.7134474515914917: 42%|███████████████▌ | 31/74 [00:29<00:30, 1.39it/s]
epoch 67 | loss 1.134347677230835, f_iou 0.7134474515914917: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 67 | loss 0.7603380084037781, f_iou 0.7167271375656128: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 67 | loss 0.7603380084037781, f_iou 0.7167271375656128: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 67 | loss 3.814756393432617, f_iou 0.7017116546630859: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 67 | loss 3.814756393432617, f_iou 0.7017116546630859: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 67 | loss 1.6758222579956055, f_iou 0.6995511651039124: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 67 | loss 1.6758222579956055, f_iou 0.6995511651039124: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 67 | loss 1.1984487771987915, f_iou 0.7018697261810303: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 67 | loss 1.1984487771987915, f_iou 0.7018697261810303: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 67 | loss 2.338193893432617, f_iou 0.6867350339889526: 49%|██████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 67 | loss 2.338193893432617, f_iou 0.6867350339889526: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 67 | loss 1.8291364908218384, f_iou 0.678098201751709: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 67 | loss 1.8291364908218384, f_iou 0.678098201751709: 51%|███████████████████ | 38/74 [00:33<00:25, 1.40it/s]
epoch 67 | loss 1.648532748222351, f_iou 0.6746380925178528: 51%|███████████████████ | 38/74 [00:34<00:25, 1.40it/s]
epoch 67 | loss 1.648532748222351, f_iou 0.6746380925178528: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 67 | loss 0.9549999237060547, f_iou 0.6743133664131165: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 67 | loss 0.9549999237060547, f_iou 0.6743133664131165: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 67 | loss 0.8416370749473572, f_iou 0.6773316264152527: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 67 | loss 0.8416370749473572, f_iou 0.6773316264152527: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 67 | loss 1.8841149806976318, f_iou 0.6822595596313477: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 67 | loss 1.8841149806976318, f_iou 0.6822595596313477: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 67 | loss 1.0510029792785645, f_iou 0.6841033101081848: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 67 | loss 1.0510029792785645, f_iou 0.6841033101081848: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 67 | loss 1.7107107639312744, f_iou 0.6831023097038269: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 67 | loss 1.7107107639312744, f_iou 0.6831023097038269: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 67 | loss 1.104052186012268, f_iou 0.6795526742935181: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.39it/s]
epoch 67 | loss 1.104052186012268, f_iou 0.6795526742935181: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 67 | loss 2.249073028564453, f_iou 0.6784287691116333: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.39it/s]
epoch 67 | loss 2.249073028564453, f_iou 0.6784287691116333: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.37it/s]
epoch 67 | loss 1.2705655097961426, f_iou 0.6801366209983826: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.37it/s]
epoch 67 | loss 1.2705655097961426, f_iou 0.6801366209983826: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 67 | loss 0.889074444770813, f_iou 0.6853915452957153: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.38it/s]
epoch 67 | loss 0.889074444770813, f_iou 0.6853915452957153: 65%|████████████████████████ | 48/74 [00:40<00:18, 1.38it/s]
epoch 67 | loss 1.0594213008880615, f_iou 0.6849342584609985: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 67 | loss 1.0594213008880615, f_iou 0.6849342584609985: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 67 | loss 0.6285247802734375, f_iou 0.686786413192749: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 67 | loss 0.6285247802734375, f_iou 0.686786413192749: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 67 | loss 0.9754617214202881, f_iou 0.6917749047279358: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 67 | loss 0.9754617214202881, f_iou 0.6917749047279358: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.38it/s]
epoch 67 | loss 0.8231931328773499, f_iou 0.6958772540092468: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 67 | loss 0.8231931328773499, f_iou 0.6958772540092468: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 67 | loss 0.7060562372207642, f_iou 0.698388397693634: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 67 | loss 0.7060562372207642, f_iou 0.698388397693634: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 67 | loss 2.3050971031188965, f_iou 0.6935602426528931: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 67 | loss 2.3050971031188965, f_iou 0.6935602426528931: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 67 | loss 0.8105923533439636, f_iou 0.695604681968689: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 67 | loss 0.8105923533439636, f_iou 0.695604681968689: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.39it/s]
epoch 67 | loss 0.3869900405406952, f_iou 0.6996504068374634: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 67 | loss 0.3869900405406952, f_iou 0.6996504068374634: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 67 | loss 1.834254503250122, f_iou 0.702255129814148: 76%|████████████████████████████▊ | 56/74 [00:47<00:12, 1.39it/s]
epoch 67 | loss 1.834254503250122, f_iou 0.702255129814148: 77%|█████████████████████████████▎ | 57/74 [00:47<00:12, 1.39it/s]
epoch 67 | loss 0.454281747341156, f_iou 0.7058143019676208: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 67 | loss 0.454281747341156, f_iou 0.7058143019676208: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.40it/s]
epoch 67 | loss 0.6194349527359009, f_iou 0.7066401839256287: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.40it/s]
epoch 67 | loss 0.6194349527359009, f_iou 0.7066401839256287: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.40it/s]
epoch 67 | loss 2.510640859603882, f_iou 0.7049387693405151: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.40it/s]
epoch 67 | loss 2.510640859603882, f_iou 0.7049387693405151: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.40it/s]
epoch 67 | loss 1.0448651313781738, f_iou 0.7058795690536499: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.40it/s]
epoch 67 | loss 1.0448651313781738, f_iou 0.7058795690536499: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 67 | loss 0.5182965993881226, f_iou 0.7043688297271729: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 67 | loss 0.5182965993881226, f_iou 0.7043688297271729: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 67 | loss 1.2198758125305176, f_iou 0.6987650394439697: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 67 | loss 1.2198758125305176, f_iou 0.6987650394439697: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 67 | loss 3.2154035568237305, f_iou 0.6931524276733398: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 67 | loss 3.2154035568237305, f_iou 0.6931524276733398: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 67 | loss 0.8639652729034424, f_iou 0.6959561109542847: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 67 | loss 0.8639652729034424, f_iou 0.6959561109542847: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 67 | loss 0.9669701457023621, f_iou 0.694099485874176: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 67 | loss 0.9669701457023621, f_iou 0.694099485874176: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 67 | loss 2.058279037475586, f_iou 0.6925768852233887: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 67 | loss 2.058279037475586, f_iou 0.6925768852233887: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:04, 1.40it/s]
epoch 67 | loss 2.2519073486328125, f_iou 0.6917415261268616: 91%|████████████████████████████████▌ | 67/74 [00:55<00:04, 1.40it/s]
epoch 67 | loss 2.2519073486328125, f_iou 0.6917415261268616: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.41it/s]
epoch 67 | loss 0.6556313037872314, f_iou 0.6955781579017639: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.41it/s]
epoch 67 | loss 0.6556313037872314, f_iou 0.6955781579017639: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 67 | loss 1.063110113143921, f_iou 0.6983839869499207: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 67 | loss 1.063110113143921, f_iou 0.6983839869499207: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 67 | loss 1.0604064464569092, f_iou 0.699424684047699: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 67 | loss 1.0604064464569092, f_iou 0.699424684047699: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 67 | loss 0.7514854073524475, f_iou 0.6966183185577393: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 67 | loss 0.7514854073524475, f_iou 0.6966183185577393: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 67 | loss 1.5656845569610596, f_iou 0.690977931022644: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 67 | loss 1.5656845569610596, f_iou 0.690977931022644: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 67 | loss 1.4325320720672607, f_iou 0.6897792220115662: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 67 | loss 1.4325320720672607, f_iou 0.6897792220115662: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 67 | loss 1.4325320720672607, f_iou 0.6897792220115662: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 67 | valid.f_iou 0.7537199854850769, valid.f_f-score 0.85235: 0%| | 0/16 [00:05, ?it/s]
epoch 67 | valid.f_iou 0.7537199854850769, valid.f_f-score 0.85235: 6%|█▉ | 1/16 [00:05<01:25, 5.70s/it]
epoch 67 | valid.f_iou 0.6932299733161926, valid.f_f-score 0.84906: 6%|█▉ | 1/16 [00:06<01:25, 5.70s/it]
epoch 67 | valid.f_iou 0.6932299733161926, valid.f_f-score 0.84906: 12%|███▉ | 2/16 [00:06<00:36, 2.61s/it]
epoch 67 | valid.f_iou 0.5800099968910217, valid.f_f-score 0.77157: 12%|███▉ | 2/16 [00:06<00:36, 2.61s/it]
epoch 67 | valid.f_iou 0.5800099968910217, valid.f_f-score 0.77157: 19%|█████▊ | 3/16 [00:06<00:21, 1.63s/it]
epoch 67 | valid.f_iou 0.6277700066566467, valid.f_f-score 0.78088: 19%|█████▊ | 3/16 [00:07<00:21, 1.63s/it]
epoch 67 | valid.f_iou 0.6277700066566467, valid.f_f-score 0.78088: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 67 | valid.f_iou 0.6201099753379822, valid.f_f-score 0.77692: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 67 | valid.f_iou 0.6201099753379822, valid.f_f-score 0.77692: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 67 | valid.f_iou 0.5870500206947327, valid.f_f-score 0.74474: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 67 | valid.f_iou 0.5870500206947327, valid.f_f-score 0.74474: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 67 | valid.f_iou 0.5986599922180176, valid.f_f-score 0.76104: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 67 | valid.f_iou 0.5986599922180176, valid.f_f-score 0.76104: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 67 | valid.f_iou 0.582040011882782, valid.f_f-score 0.74755: 44%|██████████████ | 7/16 [00:08<00:05, 1.53it/s]
epoch 67 | valid.f_iou 0.582040011882782, valid.f_f-score 0.74755: 50%|████████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 67 | valid.f_iou 0.5939000248908997, valid.f_f-score 0.74575: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 67 | valid.f_iou 0.5939000248908997, valid.f_f-score 0.74575: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 67 | valid.f_iou 0.5789200067520142, valid.f_f-score 0.74234: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 67 | valid.f_iou 0.5789200067520142, valid.f_f-score 0.74234: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 67 | valid.f_iou 0.5778399705886841, valid.f_f-score 0.74102: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 67 | valid.f_iou 0.5778399705886841, valid.f_f-score 0.74102: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 67 | valid.f_iou 0.5996900200843811, valid.f_f-score 0.75688: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.29it/s]
epoch 67 | valid.f_iou 0.5996900200843811, valid.f_f-score 0.75688: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 67 | valid.f_iou 0.6165400147438049, valid.f_f-score 0.76691: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 67 | valid.f_iou 0.6165400147438049, valid.f_f-score 0.76691: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 67 | valid.f_iou 0.6116999983787537, valid.f_f-score 0.76169: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.51it/s]
epoch 67 | valid.f_iou 0.6116999983787537, valid.f_f-score 0.76169: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 67 | valid.f_iou 0.6141700148582458, valid.f_f-score 0.76035: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 67 | valid.f_iou 0.6141700148582458, valid.f_f-score 0.76035: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 67 | valid.f_iou 0.616569995880127, valid.f_f-score 0.75799: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.64it/s]
epoch 67 | valid.f_iou 0.616569995880127, valid.f_f-score 0.75799: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 67 | valid.f_iou 0.616569995880127, valid.f_f-score 0.75799: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 67 | valid.f_iou 0.8216400146484375, valid.f_f-score 0.8431: 0%| | 0/16 [00:04, ?it/s]
epoch 67 | valid.f_iou 0.8216400146484375, valid.f_f-score 0.8431: 6%|██ | 1/16 [00:04<01:07, 4.51s/it]
epoch 67 | valid.f_iou 0.8374900221824646, valid.f_f-score 0.89115: 6%|█▉ | 1/16 [00:04<01:07, 4.51s/it]
epoch 67 | valid.f_iou 0.8374900221824646, valid.f_f-score 0.89115: 12%|███▉ | 2/16 [00:04<00:29, 2.13s/it]
epoch 67 | valid.f_iou 0.7356600165367126, valid.f_f-score 0.83754: 12%|███▉ | 2/16 [00:05<00:29, 2.13s/it]
epoch 67 | valid.f_iou 0.7356600165367126, valid.f_f-score 0.83754: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 67 | valid.f_iou 0.7441200017929077, valid.f_f-score 0.83218: 19%|█████▊ | 3/16 [00:05<00:17, 1.36s/it]
epoch 67 | valid.f_iou 0.7441200017929077, valid.f_f-score 0.83218: 25%|███████▊ | 4/16 [00:05<00:12, 1.01s/it]
epoch 67 | valid.f_iou 0.7123799920082092, valid.f_f-score 0.81616: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 67 | valid.f_iou 0.7123799920082092, valid.f_f-score 0.81616: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 67 | valid.f_iou 0.6919400095939636, valid.f_f-score 0.80562: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 67 | valid.f_iou 0.6919400095939636, valid.f_f-score 0.80562: 38%|███████████▋ | 6/16 [00:06<00:06, 1.45it/s]
epoch 67 | valid.f_iou 0.7117099761962891, valid.f_f-score 0.82469: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 67 | valid.f_iou 0.7117099761962891, valid.f_f-score 0.82469: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 67 | valid.f_iou 0.7064499855041504, valid.f_f-score 0.82233: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 67 | valid.f_iou 0.7064499855041504, valid.f_f-score 0.82233: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.92it/s]
epoch 67 | valid.f_iou 0.718720018863678, valid.f_f-score 0.82663: 50%|████████████████ | 8/16 [00:07<00:04, 1.92it/s]
epoch 67 | valid.f_iou 0.718720018863678, valid.f_f-score 0.82663: 56%|██████████████████ | 9/16 [00:07<00:03, 2.14it/s]
epoch 67 | valid.f_iou 0.7140899896621704, valid.f_f-score 0.83212: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 67 | valid.f_iou 0.7140899896621704, valid.f_f-score 0.83212: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 67 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.80795: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 67 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.80795: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.44it/s]
epoch 67 | valid.f_iou 0.7123900055885315, valid.f_f-score 0.81836: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.44it/s]
epoch 67 | valid.f_iou 0.7123900055885315, valid.f_f-score 0.81836: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.54it/s]
epoch 67 | valid.f_iou 0.7214400172233582, valid.f_f-score 0.8253: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.54it/s]
epoch 67 | valid.f_iou 0.7214400172233582, valid.f_f-score 0.8253: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.61it/s]
epoch 67 | valid.f_iou 0.7162600159645081, valid.f_f-score 0.81798: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 67 | valid.f_iou 0.7162600159645081, valid.f_f-score 0.81798: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.66it/s]
epoch 67 | valid.f_iou 0.7245100140571594, valid.f_f-score 0.8264: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.66it/s]
epoch 67 | valid.f_iou 0.7245100140571594, valid.f_f-score 0.8264: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.70it/s]
epoch 67 | valid.f_iou 0.7231400012969971, valid.f_f-score 0.82352: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.70it/s]
epoch 67 | valid.f_iou 0.7231400012969971, valid.f_f-score 0.82352: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.72it/s]
epoch 67 | valid.f_iou 0.7231400012969971, valid.f_f-score 0.82352: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.53it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 67 | valid.f_iou 0.8216400146484375, valid.f_f-score 0.8431: 0%| | 0/16 [00:04, ?it/s]
epoch 67 | valid.f_iou 0.8216400146484375, valid.f_f-score 0.8431: 6%|██ | 1/16 [00:04<01:08, 4.57s/it]
epoch 67 | valid.f_iou 0.8374900221824646, valid.f_f-score 0.89115: 6%|█▉ | 1/16 [00:04<01:08, 4.57s/it]
epoch 67 | valid.f_iou 0.8374900221824646, valid.f_f-score 0.89115: 12%|███▉ | 2/16 [00:05<00:29, 2.14s/it]
epoch 67 | valid.f_iou 0.7356600165367126, valid.f_f-score 0.83754: 12%|███▉ | 2/16 [00:05<00:29, 2.14s/it]
epoch 67 | valid.f_iou 0.7356600165367126, valid.f_f-score 0.83754: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 67 | valid.f_iou 0.7436599731445312, valid.f_f-score 0.8225: 19%|██████ | 3/16 [00:05<00:17, 1.37s/it]
epoch 67 | valid.f_iou 0.7436599731445312, valid.f_f-score 0.8225: 25%|████████ | 4/16 [00:05<00:11, 1.01it/s]
epoch 67 | valid.f_iou 0.7161700129508972, valid.f_f-score 0.80841: 25%|███████▊ | 4/16 [00:06<00:11, 1.01it/s]
epoch 67 | valid.f_iou 0.7161700129508972, valid.f_f-score 0.80841: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 67 | valid.f_iou 0.6951000094413757, valid.f_f-score 0.79916: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 67 | valid.f_iou 0.6951000094413757, valid.f_f-score 0.79916: 38%|███████████▋ | 6/16 [00:06<00:06, 1.47it/s]
epoch 67 | valid.f_iou 0.7161999940872192, valid.f_f-score 0.81916: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 67 | valid.f_iou 0.7161999940872192, valid.f_f-score 0.81916: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 67 | valid.f_iou 0.7103800177574158, valid.f_f-score 0.81749: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 67 | valid.f_iou 0.7103800177574158, valid.f_f-score 0.81749: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.84it/s]
epoch 67 | valid.f_iou 0.7235999703407288, valid.f_f-score 0.82232: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.84it/s]
epoch 67 | valid.f_iou 0.7235999703407288, valid.f_f-score 0.82232: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 67 | valid.f_iou 0.7173699736595154, valid.f_f-score 0.82521: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 67 | valid.f_iou 0.7173699736595154, valid.f_f-score 0.82521: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.04it/s]
epoch 67 | valid.f_iou 0.6940699815750122, valid.f_f-score 0.79561: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.04it/s]
epoch 67 | valid.f_iou 0.6940699815750122, valid.f_f-score 0.79561: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.20it/s]
epoch 67 | valid.f_iou 0.7078199982643127, valid.f_f-score 0.80704: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 67 | valid.f_iou 0.7078199982643127, valid.f_f-score 0.80704: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 67 | valid.f_iou 0.717170000076294, valid.f_f-score 0.81529: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.35it/s]
epoch 67 | valid.f_iou 0.717170000076294, valid.f_f-score 0.81529: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.46it/s]
epoch 67 | valid.f_iou 0.7123000025749207, valid.f_f-score 0.80869: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.46it/s]
epoch 67 | valid.f_iou 0.7123000025749207, valid.f_f-score 0.80869: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.53it/s]
epoch 67 | valid.f_iou 0.7208099961280823, valid.f_f-score 0.81773: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 67 | valid.f_iou 0.7208099961280823, valid.f_f-score 0.81773: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 67 | valid.f_iou 0.7185900211334229, valid.f_f-score 0.81248: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 67 | valid.f_iou 0.7185900211334229, valid.f_f-score 0.81248: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 67 | valid.f_iou 0.7185900211334229, valid.f_f-score 0.81248: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 68 | loss 0.502195417881012, f_iou 0.9726161360740662: 0%| | 0/74 [00:06, ?it/s]
epoch 68 | loss 0.502195417881012, f_iou 0.9726161360740662: 1%|▌ | 1/74 [00:06<07:52, 6.48s/it]
epoch 68 | loss 0.5882378816604614, f_iou 0.961442232131958: 1%|▌ | 1/74 [00:07<07:52, 6.48s/it]
epoch 68 | loss 0.5882378816604614, f_iou 0.961442232131958: 3%|█ | 2/74 [00:07<03:47, 3.16s/it]
epoch 68 | loss 1.1488138437271118, f_iou 0.7995731234550476: 3%|█ | 2/74 [00:08<03:47, 3.16s/it]
epoch 68 | loss 1.1488138437271118, f_iou 0.7995731234550476: 4%|█▌ | 3/74 [00:08<02:28, 2.10s/it]
epoch 68 | loss 1.170270562171936, f_iou 0.6843545436859131: 4%|█▌ | 3/74 [00:08<02:28, 2.10s/it]
epoch 68 | loss 1.170270562171936, f_iou 0.6843545436859131: 5%|██ | 4/74 [00:08<01:51, 1.59s/it]
epoch 68 | loss 2.103839159011841, f_iou 0.6561240553855896: 5%|██ | 4/74 [00:09<01:51, 1.59s/it]
epoch 68 | loss 2.103839159011841, f_iou 0.6561240553855896: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 68 | loss 1.5268163681030273, f_iou 0.6706055998802185: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 68 | loss 1.5268163681030273, f_iou 0.6706055998802185: 8%|███ | 6/74 [00:10<01:17, 1.14s/it]
epoch 68 | loss 2.1769402027130127, f_iou 0.6498034596443176: 8%|███ | 6/74 [00:11<01:17, 1.14s/it]
epoch 68 | loss 2.1769402027130127, f_iou 0.6498034596443176: 9%|███▌ | 7/74 [00:11<01:09, 1.03s/it]
epoch 68 | loss 0.0, f_iou 0.6720352172851562: 9%|████▉ | 7/74 [00:12<01:09, 1.03s/it]
epoch 68 | loss 0.0, f_iou 0.6720352172851562: 11%|█████▌ | 8/74 [00:12<01:03, 1.05it/s]
epoch 68 | loss 0.0, f_iou 0.7073174118995667: 11%|█████▌ | 8/74 [00:12<01:03, 1.05it/s]
epoch 68 | loss 0.0, f_iou 0.7073174118995667: 12%|██████▎ | 9/74 [00:12<00:57, 1.12it/s]
epoch 68 | loss 1.2166862487792969, f_iou 0.7119897603988647: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 68 | loss 1.2166862487792969, f_iou 0.7119897603988647: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 68 | loss 0.8397884964942932, f_iou 0.7204737663269043: 14%|████▊ | 10/74 [00:14<00:54, 1.17it/s]
epoch 68 | loss 0.8397884964942932, f_iou 0.7204737663269043: 15%|█████▎ | 11/74 [00:14<00:51, 1.22it/s]
epoch 68 | loss 1.4070149660110474, f_iou 0.7225475311279297: 15%|█████▎ | 11/74 [00:15<00:51, 1.22it/s]
epoch 68 | loss 1.4070149660110474, f_iou 0.7225475311279297: 16%|█████▊ | 12/74 [00:15<00:48, 1.27it/s]
epoch 68 | loss 2.108320713043213, f_iou 0.7062269449234009: 16%|██████ | 12/74 [00:15<00:48, 1.27it/s]
epoch 68 | loss 2.108320713043213, f_iou 0.7062269449234009: 18%|██████▌ | 13/74 [00:15<00:46, 1.30it/s]
epoch 68 | loss 3.473396062850952, f_iou 0.6799445748329163: 18%|██████▌ | 13/74 [00:16<00:46, 1.30it/s]
epoch 68 | loss 3.473396062850952, f_iou 0.6799445748329163: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 68 | loss 0.8851909637451172, f_iou 0.6830222010612488: 19%|██████▊ | 14/74 [00:17<00:45, 1.32it/s]
epoch 68 | loss 0.8851909637451172, f_iou 0.6830222010612488: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 68 | loss 1.007083535194397, f_iou 0.6915759444236755: 20%|███████▌ | 15/74 [00:18<00:44, 1.34it/s]
epoch 68 | loss 1.007083535194397, f_iou 0.6915759444236755: 22%|████████ | 16/74 [00:18<00:42, 1.35it/s]
epoch 68 | loss 1.0499978065490723, f_iou 0.6508949995040894: 22%|███████▊ | 16/74 [00:18<00:42, 1.35it/s]
epoch 68 | loss 1.0499978065490723, f_iou 0.6508949995040894: 23%|████████▎ | 17/74 [00:18<00:41, 1.36it/s]
epoch 68 | loss 2.4773950576782227, f_iou 0.6378158926963806: 23%|████████▎ | 17/74 [00:19<00:41, 1.36it/s]
epoch 68 | loss 2.4773950576782227, f_iou 0.6378158926963806: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 68 | loss 1.137473225593567, f_iou 0.6458579897880554: 24%|█████████ | 18/74 [00:20<00:40, 1.37it/s]
epoch 68 | loss 1.137473225593567, f_iou 0.6458579897880554: 26%|█████████▌ | 19/74 [00:20<00:39, 1.38it/s]
epoch 68 | loss 1.5531549453735352, f_iou 0.6498477458953857: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 68 | loss 1.5531549453735352, f_iou 0.6498477458953857: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 68 | loss 1.808056354522705, f_iou 0.6507922410964966: 27%|██████████ | 20/74 [00:21<00:39, 1.38it/s]
epoch 68 | loss 1.808056354522705, f_iou 0.6507922410964966: 28%|██████████▌ | 21/74 [00:21<00:38, 1.38it/s]
epoch 68 | loss 0.715516209602356, f_iou 0.661583423614502: 28%|██████████▊ | 21/74 [00:22<00:38, 1.38it/s]
epoch 68 | loss 0.715516209602356, f_iou 0.661583423614502: 30%|███████████▎ | 22/74 [00:22<00:37, 1.38it/s]
epoch 68 | loss 3.20806622505188, f_iou 0.6472904682159424: 30%|███████████▎ | 22/74 [00:23<00:37, 1.38it/s]
epoch 68 | loss 3.20806622505188, f_iou 0.6472904682159424: 31%|███████████▊ | 23/74 [00:23<00:36, 1.38it/s]
epoch 68 | loss 1.1972395181655884, f_iou 0.6587880849838257: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 68 | loss 1.1972395181655884, f_iou 0.6587880849838257: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 68 | loss 0.891400933265686, f_iou 0.6619322299957275: 32%|████████████ | 24/74 [00:24<00:35, 1.39it/s]
epoch 68 | loss 0.891400933265686, f_iou 0.6619322299957275: 34%|████████████▌ | 25/74 [00:24<00:35, 1.38it/s]
epoch 68 | loss 0.4339926838874817, f_iou 0.6719349026679993: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 68 | loss 0.4339926838874817, f_iou 0.6719349026679993: 35%|████████████▋ | 26/74 [00:25<00:35, 1.36it/s]
epoch 68 | loss 2.035356283187866, f_iou 0.6687843799591064: 35%|█████████████ | 26/74 [00:26<00:35, 1.36it/s]
epoch 68 | loss 2.035356283187866, f_iou 0.6687843799591064: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.35it/s]
epoch 68 | loss 1.1609933376312256, f_iou 0.6773814558982849: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.35it/s]
epoch 68 | loss 1.1609933376312256, f_iou 0.6773814558982849: 38%|█████████████▌ | 28/74 [00:26<00:34, 1.34it/s]
epoch 68 | loss 1.1020586490631104, f_iou 0.6795284748077393: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.34it/s]
epoch 68 | loss 1.1020586490631104, f_iou 0.6795284748077393: 39%|██████████████ | 29/74 [00:27<00:33, 1.33it/s]
epoch 68 | loss 0.5004368424415588, f_iou 0.6812965869903564: 39%|██████████████ | 29/74 [00:28<00:33, 1.33it/s]
epoch 68 | loss 0.5004368424415588, f_iou 0.6812965869903564: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.32it/s]
epoch 68 | loss 0.8800199627876282, f_iou 0.6878268122673035: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.32it/s]
epoch 68 | loss 0.8800199627876282, f_iou 0.6878268122673035: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 68 | loss 0.9314322471618652, f_iou 0.6911091804504395: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 68 | loss 0.9314322471618652, f_iou 0.6911091804504395: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.35it/s]
epoch 68 | loss 0.9109786152839661, f_iou 0.6701664924621582: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.35it/s]
epoch 68 | loss 0.9109786152839661, f_iou 0.6701664924621582: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 68 | loss 1.6064016819000244, f_iou 0.6705102324485779: 45%|████████████████ | 33/74 [00:31<00:30, 1.36it/s]
epoch 68 | loss 1.6064016819000244, f_iou 0.6705102324485779: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 68 | loss 1.4193167686462402, f_iou 0.6732650995254517: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 68 | loss 1.4193167686462402, f_iou 0.6732650995254517: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 68 | loss 0.9465941190719604, f_iou 0.6799095869064331: 47%|█████████████████ | 35/74 [00:32<00:28, 1.37it/s]
epoch 68 | loss 0.9465941190719604, f_iou 0.6799095869064331: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 68 | loss 0.4466356635093689, f_iou 0.6875752806663513: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 68 | loss 0.4466356635093689, f_iou 0.6875752806663513: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 68 | loss 1.6518566608428955, f_iou 0.6750549674034119: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 68 | loss 1.6518566608428955, f_iou 0.6750549674034119: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 68 | loss 0.37611711025238037, f_iou 0.682104229927063: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 68 | loss 0.37611711025238037, f_iou 0.682104229927063: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 68 | loss 0.7632111310958862, f_iou 0.6887645721435547: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 68 | loss 0.7632111310958862, f_iou 0.6887645721435547: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.36it/s]
epoch 68 | loss 1.3838040828704834, f_iou 0.6723785400390625: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.36it/s]
epoch 68 | loss 1.3838040828704834, f_iou 0.6723785400390625: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.34it/s]
epoch 68 | loss 2.6824798583984375, f_iou 0.6684110164642334: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.34it/s]
epoch 68 | loss 2.6824798583984375, f_iou 0.6684110164642334: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.33it/s]
epoch 68 | loss 2.004551410675049, f_iou 0.6683731079101562: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.33it/s]
epoch 68 | loss 2.004551410675049, f_iou 0.6683731079101562: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.32it/s]
epoch 68 | loss 2.129457473754883, f_iou 0.6646044850349426: 58%|█████████████████████▍ | 43/74 [00:38<00:23, 1.32it/s]
epoch 68 | loss 2.129457473754883, f_iou 0.6646044850349426: 59%|██████████████████████ | 44/74 [00:38<00:22, 1.31it/s]
epoch 68 | loss 0.6084433794021606, f_iou 0.6710692644119263: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.31it/s]
epoch 68 | loss 0.6084433794021606, f_iou 0.6710692644119263: 61%|█████████████████████▉ | 45/74 [00:39<00:22, 1.31it/s]
epoch 68 | loss 0.39667820930480957, f_iou 0.6776730418205261: 61%|█████████████████████▎ | 45/74 [00:40<00:22, 1.31it/s]
epoch 68 | loss 0.39667820930480957, f_iou 0.6776730418205261: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.30it/s]
epoch 68 | loss 1.1026818752288818, f_iou 0.6825871467590332: 62%|██████████████████████▍ | 46/74 [00:41<00:21, 1.30it/s]
epoch 68 | loss 1.1026818752288818, f_iou 0.6825871467590332: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.30it/s]
epoch 68 | loss 0.730799674987793, f_iou 0.6862415075302124: 64%|███████████████████████▌ | 47/74 [00:41<00:20, 1.30it/s]
epoch 68 | loss 0.730799674987793, f_iou 0.6862415075302124: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.30it/s]
epoch 68 | loss 1.3646836280822754, f_iou 0.6882489919662476: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.30it/s]
epoch 68 | loss 1.3646836280822754, f_iou 0.6882489919662476: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.32it/s]
epoch 68 | loss 0.17865191400051117, f_iou 0.693389356136322: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.32it/s]
epoch 68 | loss 0.17865191400051117, f_iou 0.693389356136322: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.34it/s]
epoch 68 | loss 0.0, f_iou 0.6993248462677002: 68%|██████████████████████████████████▍ | 50/74 [00:43<00:17, 1.34it/s]
epoch 68 | loss 0.0, f_iou 0.6993248462677002: 69%|███████████████████████████████████▏ | 51/74 [00:43<00:17, 1.35it/s]
epoch 68 | loss 2.2075648307800293, f_iou 0.6958679556846619: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.35it/s]
epoch 68 | loss 2.2075648307800293, f_iou 0.6958679556846619: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.35it/s]
epoch 68 | loss 0.7066208124160767, f_iou 0.6992734670639038: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.35it/s]
epoch 68 | loss 0.7066208124160767, f_iou 0.6992734670639038: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.35it/s]
epoch 68 | loss 0.5319960117340088, f_iou 0.6881305575370789: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.35it/s]
epoch 68 | loss 0.5319960117340088, f_iou 0.6881305575370789: 73%|██████████████████████████▎ | 54/74 [00:46<00:15, 1.32it/s]
epoch 68 | loss 0.9772201776504517, f_iou 0.6829504370689392: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.32it/s]
epoch 68 | loss 0.9772201776504517, f_iou 0.6829504370689392: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.31it/s]
epoch 68 | loss 2.188931465148926, f_iou 0.6828746199607849: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.31it/s]
epoch 68 | loss 2.188931465148926, f_iou 0.6828746199607849: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.30it/s]
epoch 68 | loss 0.9230661392211914, f_iou 0.6865185499191284: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.30it/s]
epoch 68 | loss 0.9230661392211914, f_iou 0.6865185499191284: 77%|███████████████████████████▋ | 57/74 [00:48<00:13, 1.29it/s]
epoch 68 | loss 0.44931843876838684, f_iou 0.6908091902732849: 77%|██████████████████████████▉ | 57/74 [00:49<00:13, 1.29it/s]
epoch 68 | loss 0.44931843876838684, f_iou 0.6908091902732849: 78%|███████████████████████████▍ | 58/74 [00:49<00:12, 1.28it/s]
epoch 68 | loss 1.7000508308410645, f_iou 0.6930855512619019: 78%|████████████████████████████▏ | 58/74 [00:50<00:12, 1.28it/s]
epoch 68 | loss 1.7000508308410645, f_iou 0.6930855512619019: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.29it/s]
epoch 68 | loss 0.49404317140579224, f_iou 0.6975239515304565: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.29it/s]
epoch 68 | loss 0.49404317140579224, f_iou 0.6975239515304565: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.32it/s]
epoch 68 | loss 2.065769672393799, f_iou 0.6979728937149048: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.32it/s]
epoch 68 | loss 2.065769672393799, f_iou 0.6979728937149048: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.33it/s]
epoch 68 | loss 2.510251998901367, f_iou 0.6956856846809387: 82%|██████████████████████████████▌ | 61/74 [00:52<00:09, 1.33it/s]
epoch 68 | loss 2.510251998901367, f_iou 0.6956856846809387: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.35it/s]
epoch 68 | loss 1.3401278257369995, f_iou 0.6959754228591919: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.35it/s]
epoch 68 | loss 1.3401278257369995, f_iou 0.6959754228591919: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 68 | loss 2.032727003097534, f_iou 0.6934359073638916: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.37it/s]
epoch 68 | loss 2.032727003097534, f_iou 0.6934359073638916: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 68 | loss 1.7663772106170654, f_iou 0.6971990466117859: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.38it/s]
epoch 68 | loss 1.7663772106170654, f_iou 0.6971990466117859: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.36it/s]
epoch 68 | loss 0.337582528591156, f_iou 0.6888035535812378: 88%|████████████████████████████████▌ | 65/74 [00:55<00:06, 1.36it/s]
epoch 68 | loss 0.337582528591156, f_iou 0.6888035535812378: 89%|█████████████████████████████████ | 66/74 [00:55<00:05, 1.34it/s]
epoch 68 | loss 1.3483741283416748, f_iou 0.6870008111000061: 89%|████████████████████████████████ | 66/74 [00:56<00:05, 1.34it/s]
epoch 68 | loss 1.3483741283416748, f_iou 0.6870008111000061: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.33it/s]
epoch 68 | loss 2.4841909408569336, f_iou 0.6836729645729065: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.33it/s]
epoch 68 | loss 2.4841909408569336, f_iou 0.6836729645729065: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.32it/s]
epoch 68 | loss 1.8088386058807373, f_iou 0.6831350326538086: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.32it/s]
epoch 68 | loss 1.8088386058807373, f_iou 0.6831350326538086: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.32it/s]
epoch 68 | loss 0.5223910808563232, f_iou 0.6869438290596008: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.32it/s]
epoch 68 | loss 0.5223910808563232, f_iou 0.6869438290596008: 95%|██████████████████████████████████ | 70/74 [00:58<00:03, 1.32it/s]
epoch 68 | loss 1.3118712902069092, f_iou 0.6864810585975647: 95%|██████████████████████████████████ | 70/74 [00:59<00:03, 1.32it/s]
epoch 68 | loss 1.3118712902069092, f_iou 0.6864810585975647: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.32it/s]
epoch 68 | loss 0.9668152332305908, f_iou 0.689032256603241: 96%|███████████████████████████████████▌ | 71/74 [00:59<00:02, 1.32it/s]
epoch 68 | loss 0.9668152332305908, f_iou 0.689032256603241: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.32it/s]
epoch 68 | loss 3.528585433959961, f_iou 0.6892544627189636: 97%|████████████████████████████████████ | 72/74 [01:00<00:01, 1.32it/s]
epoch 68 | loss 3.528585433959961, f_iou 0.6892544627189636: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.32it/s]
epoch 68 | loss 3.1089797019958496, f_iou 0.6848674416542053: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.32it/s]
epoch 68 | loss 3.1089797019958496, f_iou 0.6848674416542053: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.31it/s]
epoch 68 | loss 3.1089797019958496, f_iou 0.6848674416542053: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 68 | valid.f_iou 0.7664499878883362, valid.f_f-score 0.87256: 0%| | 0/16 [00:05, ?it/s]
epoch 68 | valid.f_iou 0.7664499878883362, valid.f_f-score 0.87256: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 68 | valid.f_iou 0.6885600090026855, valid.f_f-score 0.86269: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 68 | valid.f_iou 0.6885600090026855, valid.f_f-score 0.86269: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 68 | valid.f_iou 0.5665799975395203, valid.f_f-score 0.78077: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 68 | valid.f_iou 0.5665799975395203, valid.f_f-score 0.78077: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 68 | valid.f_iou 0.6049500107765198, valid.f_f-score 0.78265: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 68 | valid.f_iou 0.6049500107765198, valid.f_f-score 0.78265: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 68 | valid.f_iou 0.6075000166893005, valid.f_f-score 0.78265: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 68 | valid.f_iou 0.6075000166893005, valid.f_f-score 0.78265: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 68 | valid.f_iou 0.5705199837684631, valid.f_f-score 0.74134: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 68 | valid.f_iou 0.5705199837684631, valid.f_f-score 0.74134: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 68 | valid.f_iou 0.5927799940109253, valid.f_f-score 0.7591: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 68 | valid.f_iou 0.5927799940109253, valid.f_f-score 0.7591: 44%|██████████████ | 7/16 [00:08<00:05, 1.54it/s]
epoch 68 | valid.f_iou 0.562470018863678, valid.f_f-score 0.73825: 44%|██████████████ | 7/16 [00:08<00:05, 1.54it/s]
epoch 68 | valid.f_iou 0.562470018863678, valid.f_f-score 0.73825: 50%|████████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 68 | valid.f_iou 0.5743499994277954, valid.f_f-score 0.73894: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 68 | valid.f_iou 0.5743499994277954, valid.f_f-score 0.73894: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 68 | valid.f_iou 0.5616099834442139, valid.f_f-score 0.73617: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 68 | valid.f_iou 0.5616099834442139, valid.f_f-score 0.73617: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 68 | valid.f_iou 0.562969982624054, valid.f_f-score 0.73421: 62%|███████████████████▍ | 10/16 [00:09<00:03, 1.96it/s]
epoch 68 | valid.f_iou 0.562969982624054, valid.f_f-score 0.73421: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.04it/s]
epoch 68 | valid.f_iou 0.5856099724769592, valid.f_f-score 0.75049: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.04it/s]
epoch 68 | valid.f_iou 0.5856099724769592, valid.f_f-score 0.75049: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.09it/s]
epoch 68 | valid.f_iou 0.5884400010108948, valid.f_f-score 0.75637: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.09it/s]
epoch 68 | valid.f_iou 0.5884400010108948, valid.f_f-score 0.75637: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.14it/s]
epoch 68 | valid.f_iou 0.580839991569519, valid.f_f-score 0.75073: 81%|█████████████████████████▏ | 13/16 [00:11<00:01, 2.14it/s]
epoch 68 | valid.f_iou 0.580839991569519, valid.f_f-score 0.75073: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.30it/s]
epoch 68 | valid.f_iou 0.5843300223350525, valid.f_f-score 0.74983: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.30it/s]
epoch 68 | valid.f_iou 0.5843300223350525, valid.f_f-score 0.74983: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 68 | valid.f_iou 0.5901299715042114, valid.f_f-score 0.74893: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 68 | valid.f_iou 0.5901299715042114, valid.f_f-score 0.74893: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.50it/s]
epoch 68 | valid.f_iou 0.5901299715042114, valid.f_f-score 0.74893: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 68 | valid.f_iou 0.7860299944877625, valid.f_f-score 0.84944: 0%| | 0/16 [00:05, ?it/s]
epoch 68 | valid.f_iou 0.7860299944877625, valid.f_f-score 0.84944: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 68 | valid.f_iou 0.8212699890136719, valid.f_f-score 0.8984: 6%|██ | 1/16 [00:05<01:19, 5.31s/it]
epoch 68 | valid.f_iou 0.8212699890136719, valid.f_f-score 0.8984: 12%|████ | 2/16 [00:05<00:34, 2.46s/it]
epoch 68 | valid.f_iou 0.6820099949836731, valid.f_f-score 0.80804: 12%|███▉ | 2/16 [00:06<00:34, 2.46s/it]
epoch 68 | valid.f_iou 0.6820099949836731, valid.f_f-score 0.80804: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 68 | valid.f_iou 0.6499199867248535, valid.f_f-score 0.74424: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 68 | valid.f_iou 0.6499199867248535, valid.f_f-score 0.74424: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 68 | valid.f_iou 0.6460000276565552, valid.f_f-score 0.75633: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 68 | valid.f_iou 0.6460000276565552, valid.f_f-score 0.75633: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 68 | valid.f_iou 0.6421399712562561, valid.f_f-score 0.75465: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 68 | valid.f_iou 0.6421399712562561, valid.f_f-score 0.75465: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 68 | valid.f_iou 0.6694599986076355, valid.f_f-score 0.7808: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 68 | valid.f_iou 0.6694599986076355, valid.f_f-score 0.7808: 44%|██████████████ | 7/16 [00:07<00:05, 1.66it/s]
epoch 68 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.78559: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.66it/s]
epoch 68 | valid.f_iou 0.6700299978256226, valid.f_f-score 0.78559: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 68 | valid.f_iou 0.678849995136261, valid.f_f-score 0.78997: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 68 | valid.f_iou 0.678849995136261, valid.f_f-score 0.78997: 56%|██████████████████ | 9/16 [00:08<00:03, 2.01it/s]
epoch 68 | valid.f_iou 0.6976199746131897, valid.f_f-score 0.80216: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.01it/s]
epoch 68 | valid.f_iou 0.6976199746131897, valid.f_f-score 0.80216: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 68 | valid.f_iou 0.6882200241088867, valid.f_f-score 0.78601: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 68 | valid.f_iou 0.6882200241088867, valid.f_f-score 0.78601: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 68 | valid.f_iou 0.7021700143814087, valid.f_f-score 0.79814: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 68 | valid.f_iou 0.7021700143814087, valid.f_f-score 0.79814: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.36it/s]
epoch 68 | valid.f_iou 0.7145799994468689, valid.f_f-score 0.8076: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.36it/s]
epoch 68 | valid.f_iou 0.7145799994468689, valid.f_f-score 0.8076: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 68 | valid.f_iou 0.711430013179779, valid.f_f-score 0.80626: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 68 | valid.f_iou 0.711430013179779, valid.f_f-score 0.80626: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.55it/s]
epoch 68 | valid.f_iou 0.7214900255203247, valid.f_f-score 0.81583: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.55it/s]
epoch 68 | valid.f_iou 0.7214900255203247, valid.f_f-score 0.81583: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 68 | valid.f_iou 0.7218300104141235, valid.f_f-score 0.81697: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 68 | valid.f_iou 0.7218300104141235, valid.f_f-score 0.81697: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 68 | valid.f_iou 0.7218300104141235, valid.f_f-score 0.81697: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 68 | valid.f_iou 0.7860299944877625, valid.f_f-score 0.84944: 0%| | 0/16 [00:05, ?it/s]
epoch 68 | valid.f_iou 0.7860299944877625, valid.f_f-score 0.84944: 6%|█▉ | 1/16 [00:05<01:21, 5.41s/it]
epoch 68 | valid.f_iou 0.8212699890136719, valid.f_f-score 0.8984: 6%|██ | 1/16 [00:05<01:21, 5.41s/it]
epoch 68 | valid.f_iou 0.8212699890136719, valid.f_f-score 0.8984: 12%|████ | 2/16 [00:05<00:34, 2.49s/it]
epoch 68 | valid.f_iou 0.6820099949836731, valid.f_f-score 0.80804: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 68 | valid.f_iou 0.6820099949836731, valid.f_f-score 0.80804: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 68 | valid.f_iou 0.6457700133323669, valid.f_f-score 0.73171: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 68 | valid.f_iou 0.6457700133323669, valid.f_f-score 0.73171: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 68 | valid.f_iou 0.6466100215911865, valid.f_f-score 0.74631: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 68 | valid.f_iou 0.6466100215911865, valid.f_f-score 0.74631: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 68 | valid.f_iou 0.6426399946212769, valid.f_f-score 0.7463: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 68 | valid.f_iou 0.6426399946212769, valid.f_f-score 0.7463: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 68 | valid.f_iou 0.6716300249099731, valid.f_f-score 0.77364: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 68 | valid.f_iou 0.6716300249099731, valid.f_f-score 0.77364: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 68 | valid.f_iou 0.6719300150871277, valid.f_f-score 0.77933: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 68 | valid.f_iou 0.6719300150871277, valid.f_f-score 0.77933: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 68 | valid.f_iou 0.6820700168609619, valid.f_f-score 0.78441: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 68 | valid.f_iou 0.6820700168609619, valid.f_f-score 0.78441: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.01it/s]
epoch 68 | valid.f_iou 0.6962599754333496, valid.f_f-score 0.79362: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.01it/s]
epoch 68 | valid.f_iou 0.6962599754333496, valid.f_f-score 0.79362: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 68 | valid.f_iou 0.6827300190925598, valid.f_f-score 0.77624: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 68 | valid.f_iou 0.6827300190925598, valid.f_f-score 0.77624: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 68 | valid.f_iou 0.697130024433136, valid.f_f-score 0.78919: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.29it/s]
epoch 68 | valid.f_iou 0.697130024433136, valid.f_f-score 0.78919: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.42it/s]
epoch 68 | valid.f_iou 0.7099400162696838, valid.f_f-score 0.80012: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 68 | valid.f_iou 0.7099400162696838, valid.f_f-score 0.80012: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 68 | valid.f_iou 0.7071099877357483, valid.f_f-score 0.79933: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 68 | valid.f_iou 0.7071099877357483, valid.f_f-score 0.79933: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 68 | valid.f_iou 0.7174699902534485, valid.f_f-score 0.80936: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 68 | valid.f_iou 0.7174699902534485, valid.f_f-score 0.80936: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 68 | valid.f_iou 0.7185199856758118, valid.f_f-score 0.8104: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.63it/s]
epoch 68 | valid.f_iou 0.7185199856758118, valid.f_f-score 0.8104: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 68 | valid.f_iou 0.7185199856758118, valid.f_f-score 0.8104: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 69 | loss 0.617594301700592, f_iou 0.28438135981559753: 0%| | 0/74 [00:05, ?it/s]
epoch 69 | loss 0.617594301700592, f_iou 0.28438135981559753: 1%|▌ | 1/74 [00:05<06:34, 5.41s/it]
epoch 69 | loss 0.0, f_iou 0.49950242042541504: 1%|▋ | 1/74 [00:06<06:34, 5.41s/it]
epoch 69 | loss 0.0, f_iou 0.49950242042541504: 3%|█▍ | 2/74 [00:06<03:16, 2.73s/it]
epoch 69 | loss 0.4370102882385254, f_iou 0.6419260501861572: 3%|█ | 2/74 [00:07<03:16, 2.73s/it]
epoch 69 | loss 0.4370102882385254, f_iou 0.6419260501861572: 4%|█▌ | 3/74 [00:07<02:11, 1.85s/it]
epoch 69 | loss 1.2799592018127441, f_iou 0.6880308389663696: 4%|█▌ | 3/74 [00:08<02:11, 1.85s/it]
epoch 69 | loss 1.2799592018127441, f_iou 0.6880308389663696: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 69 | loss 0.5097917914390564, f_iou 0.7355474233627319: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 69 | loss 0.5097917914390564, f_iou 0.7355474233627319: 7%|██▌ | 5/74 [00:08<01:28, 1.28s/it]
epoch 69 | loss 1.0780513286590576, f_iou 0.757134199142456: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 69 | loss 1.0780513286590576, f_iou 0.757134199142456: 8%|███ | 6/74 [00:09<01:15, 1.11s/it]
epoch 69 | loss 1.639398217201233, f_iou 0.7471804022789001: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 69 | loss 1.639398217201233, f_iou 0.7471804022789001: 9%|███▌ | 7/74 [00:10<01:07, 1.00s/it]
epoch 69 | loss 1.9374449253082275, f_iou 0.7300231456756592: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 69 | loss 1.9374449253082275, f_iou 0.7300231456756592: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 69 | loss 1.3452856540679932, f_iou 0.6982736587524414: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 69 | loss 1.3452856540679932, f_iou 0.6982736587524414: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 69 | loss 1.698529839515686, f_iou 0.7002435326576233: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 69 | loss 1.698529839515686, f_iou 0.7002435326576233: 14%|█████ | 10/74 [00:12<00:54, 1.18it/s]
epoch 69 | loss 0.3047994375228882, f_iou 0.7243960499763489: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 69 | loss 0.3047994375228882, f_iou 0.7243960499763489: 15%|█████▎ | 11/74 [00:13<00:51, 1.23it/s]
epoch 69 | loss 2.089555025100708, f_iou 0.7230613231658936: 15%|█████▌ | 11/74 [00:14<00:51, 1.23it/s]
epoch 69 | loss 2.089555025100708, f_iou 0.7230613231658936: 16%|██████ | 12/74 [00:14<00:48, 1.27it/s]
epoch 69 | loss 1.142196774482727, f_iou 0.6948463916778564: 16%|██████ | 12/74 [00:15<00:48, 1.27it/s]
epoch 69 | loss 1.142196774482727, f_iou 0.6948463916778564: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 69 | loss 1.5996683835983276, f_iou 0.7054639458656311: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 69 | loss 1.5996683835983276, f_iou 0.7054639458656311: 19%|██████▊ | 14/74 [00:15<00:45, 1.33it/s]
epoch 69 | loss 0.43233513832092285, f_iou 0.723447859287262: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 69 | loss 0.43233513832092285, f_iou 0.723447859287262: 20%|███████▎ | 15/74 [00:16<00:43, 1.35it/s]
epoch 69 | loss 2.8330066204071045, f_iou 0.7067150473594666: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 69 | loss 2.8330066204071045, f_iou 0.7067150473594666: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 69 | loss 0.1967095136642456, f_iou 0.7159502506256104: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 69 | loss 0.1967095136642456, f_iou 0.7159502506256104: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 69 | loss 1.8761000633239746, f_iou 0.7160338759422302: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 69 | loss 1.8761000633239746, f_iou 0.7160338759422302: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 69 | loss 0.7098897099494934, f_iou 0.7162457704544067: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 69 | loss 0.7098897099494934, f_iou 0.7162457704544067: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 69 | loss 1.010055422782898, f_iou 0.699434220790863: 26%|█████████▊ | 19/74 [00:20<00:39, 1.38it/s]
epoch 69 | loss 1.010055422782898, f_iou 0.699434220790863: 27%|██████████▎ | 20/74 [00:20<00:39, 1.38it/s]
epoch 69 | loss 1.1079479455947876, f_iou 0.7091209292411804: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 69 | loss 1.1079479455947876, f_iou 0.7091209292411804: 28%|██████████▏ | 21/74 [00:20<00:38, 1.38it/s]
epoch 69 | loss 2.5515213012695312, f_iou 0.7033485770225525: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 69 | loss 2.5515213012695312, f_iou 0.7033485770225525: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 69 | loss 1.0167341232299805, f_iou 0.7102554440498352: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 69 | loss 1.0167341232299805, f_iou 0.7102554440498352: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 69 | loss 1.1018354892730713, f_iou 0.7118815183639526: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 69 | loss 1.1018354892730713, f_iou 0.7118815183639526: 32%|███████████▋ | 24/74 [00:22<00:35, 1.39it/s]
epoch 69 | loss 1.0935750007629395, f_iou 0.7160494327545166: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 69 | loss 1.0935750007629395, f_iou 0.7160494327545166: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 69 | loss 0.6957212090492249, f_iou 0.7209951281547546: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 69 | loss 0.6957212090492249, f_iou 0.7209951281547546: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 69 | loss 1.0250333547592163, f_iou 0.7278164625167847: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 69 | loss 1.0250333547592163, f_iou 0.7278164625167847: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 69 | loss 1.9272258281707764, f_iou 0.7082008719444275: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 69 | loss 1.9272258281707764, f_iou 0.7082008719444275: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.39it/s]
epoch 69 | loss 1.874586582183838, f_iou 0.7122290134429932: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 69 | loss 1.874586582183838, f_iou 0.7122290134429932: 39%|██████████████▌ | 29/74 [00:26<00:32, 1.39it/s]
epoch 69 | loss 2.326425790786743, f_iou 0.704145610332489: 39%|██████████████▉ | 29/74 [00:27<00:32, 1.39it/s]
epoch 69 | loss 2.326425790786743, f_iou 0.704145610332489: 41%|███████████████▍ | 30/74 [00:27<00:31, 1.39it/s]
epoch 69 | loss 1.0473816394805908, f_iou 0.7099198698997498: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 69 | loss 1.0473816394805908, f_iou 0.7099198698997498: 42%|███████████████ | 31/74 [00:27<00:30, 1.39it/s]
epoch 69 | loss 1.0360417366027832, f_iou 0.7149312496185303: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 69 | loss 1.0360417366027832, f_iou 0.7149312496185303: 43%|███████████████▌ | 32/74 [00:28<00:31, 1.35it/s]
epoch 69 | loss 1.1342228651046753, f_iou 0.7190276980400085: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.35it/s]
epoch 69 | loss 1.1342228651046753, f_iou 0.7190276980400085: 45%|████████████████ | 33/74 [00:29<00:30, 1.35it/s]
epoch 69 | loss 1.3886690139770508, f_iou 0.7135912179946899: 45%|████████████████ | 33/74 [00:30<00:30, 1.35it/s]
epoch 69 | loss 1.3886690139770508, f_iou 0.7135912179946899: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.34it/s]
epoch 69 | loss 1.0693705081939697, f_iou 0.7183328866958618: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.34it/s]
epoch 69 | loss 1.0693705081939697, f_iou 0.7183328866958618: 47%|█████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 69 | loss 3.352689266204834, f_iou 0.7120797634124756: 47%|█████████████████▌ | 35/74 [00:31<00:29, 1.32it/s]
epoch 69 | loss 3.352689266204834, f_iou 0.7120797634124756: 49%|██████████████████ | 36/74 [00:31<00:29, 1.30it/s]
epoch 69 | loss 1.0301291942596436, f_iou 0.7176879644393921: 49%|█████████████████▌ | 36/74 [00:32<00:29, 1.30it/s]
epoch 69 | loss 1.0301291942596436, f_iou 0.7176879644393921: 50%|██████████████████ | 37/74 [00:32<00:28, 1.29it/s]
epoch 69 | loss 2.730041027069092, f_iou 0.7088215947151184: 50%|██████████████████▌ | 37/74 [00:33<00:28, 1.29it/s]
epoch 69 | loss 2.730041027069092, f_iou 0.7088215947151184: 51%|███████████████████ | 38/74 [00:33<00:27, 1.29it/s]
epoch 69 | loss 0.5222342610359192, f_iou 0.7154964804649353: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.29it/s]
epoch 69 | loss 0.5222342610359192, f_iou 0.7154964804649353: 53%|██████████████████▉ | 39/74 [00:34<00:27, 1.28it/s]
epoch 69 | loss 1.0821313858032227, f_iou 0.7203114628791809: 53%|██████████████████▉ | 39/74 [00:34<00:27, 1.28it/s]
epoch 69 | loss 1.0821313858032227, f_iou 0.7203114628791809: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.31it/s]
epoch 69 | loss 3.8596582412719727, f_iou 0.7108555436134338: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.31it/s]
epoch 69 | loss 3.8596582412719727, f_iou 0.7108555436134338: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.33it/s]
epoch 69 | loss 2.783716917037964, f_iou 0.713575541973114: 55%|█████████████████████ | 41/74 [00:36<00:24, 1.33it/s]
epoch 69 | loss 2.783716917037964, f_iou 0.713575541973114: 57%|█████████████████████▌ | 42/74 [00:36<00:23, 1.35it/s]
epoch 69 | loss 1.3663798570632935, f_iou 0.7121806740760803: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.35it/s]
epoch 69 | loss 1.3663798570632935, f_iou 0.7121806740760803: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 69 | loss 2.0087385177612305, f_iou 0.7138121724128723: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 69 | loss 2.0087385177612305, f_iou 0.7138121724128723: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.37it/s]
epoch 69 | loss 1.8378407955169678, f_iou 0.7161263823509216: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 69 | loss 1.8378407955169678, f_iou 0.7161263823509216: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 69 | loss 0.14183196425437927, f_iou 0.7172011733055115: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.38it/s]
epoch 69 | loss 0.14183196425437927, f_iou 0.7172011733055115: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.38it/s]
epoch 69 | loss 1.0115251541137695, f_iou 0.7134617567062378: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 69 | loss 1.0115251541137695, f_iou 0.7134617567062378: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.38it/s]
epoch 69 | loss 0.5539317727088928, f_iou 0.6990277171134949: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 69 | loss 0.5539317727088928, f_iou 0.6990277171134949: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 69 | loss 3.950561046600342, f_iou 0.6935371160507202: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 69 | loss 3.950561046600342, f_iou 0.6935371160507202: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.40it/s]
epoch 69 | loss 0.9056140184402466, f_iou 0.6991305947303772: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.40it/s]
epoch 69 | loss 0.9056140184402466, f_iou 0.6991305947303772: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 69 | loss 1.6207358837127686, f_iou 0.6994925141334534: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 69 | loss 1.6207358837127686, f_iou 0.6994925141334534: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.40it/s]
epoch 69 | loss 1.0698617696762085, f_iou 0.7027087807655334: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.40it/s]
epoch 69 | loss 1.0698617696762085, f_iou 0.7027087807655334: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.40it/s]
epoch 69 | loss 0.8180031180381775, f_iou 0.7068484425544739: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.40it/s]
epoch 69 | loss 0.8180031180381775, f_iou 0.7068484425544739: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.36it/s]
epoch 69 | loss 2.2888526916503906, f_iou 0.7034012079238892: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.36it/s]
epoch 69 | loss 2.2888526916503906, f_iou 0.7034012079238892: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.34it/s]
epoch 69 | loss 0.7729440927505493, f_iou 0.7019459009170532: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.34it/s]
epoch 69 | loss 0.7729440927505493, f_iou 0.7019459009170532: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.36it/s]
epoch 69 | loss 1.4452565908432007, f_iou 0.6989218592643738: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.36it/s]
epoch 69 | loss 1.4452565908432007, f_iou 0.6989218592643738: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.37it/s]
epoch 69 | loss 0.5943273901939392, f_iou 0.7000250220298767: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.37it/s]
epoch 69 | loss 0.5943273901939392, f_iou 0.7000250220298767: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.37it/s]
epoch 69 | loss 0.4918408989906311, f_iou 0.7042458653450012: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.37it/s]
epoch 69 | loss 0.4918408989906311, f_iou 0.7042458653450012: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.38it/s]
epoch 69 | loss 1.2648108005523682, f_iou 0.7065195441246033: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 69 | loss 1.2648108005523682, f_iou 0.7065195441246033: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 69 | loss 2.929871082305908, f_iou 0.6947994828224182: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.38it/s]
epoch 69 | loss 2.929871082305908, f_iou 0.6947994828224182: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.30it/s]
epoch 69 | loss 0.40930813550949097, f_iou 0.6993501782417297: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.30it/s]
epoch 69 | loss 0.40930813550949097, f_iou 0.6993501782417297: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.33it/s]
epoch 69 | loss 0.81097012758255, f_iou 0.6978448629379272: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.33it/s]
epoch 69 | loss 0.81097012758255, f_iou 0.6978448629379272: 84%|███████████████████████████████▊ | 62/74 [00:50<00:08, 1.35it/s]
epoch 69 | loss 1.092750072479248, f_iou 0.6911830306053162: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.35it/s]
epoch 69 | loss 1.092750072479248, f_iou 0.6911830306053162: 85%|███████████████████████████████▌ | 63/74 [00:51<00:08, 1.36it/s]
epoch 69 | loss 1.9876556396484375, f_iou 0.6923977136611938: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.36it/s]
epoch 69 | loss 1.9876556396484375, f_iou 0.6923977136611938: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.37it/s]
epoch 69 | loss 3.2365972995758057, f_iou 0.6899461150169373: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.37it/s]
epoch 69 | loss 3.2365972995758057, f_iou 0.6899461150169373: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 69 | loss 1.6835860013961792, f_iou 0.6874076724052429: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 69 | loss 1.6835860013961792, f_iou 0.6874076724052429: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 69 | loss 0.9446582198143005, f_iou 0.6899674534797668: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 69 | loss 0.9446582198143005, f_iou 0.6899674534797668: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.38it/s]
epoch 69 | loss 3.060199499130249, f_iou 0.6890910267829895: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 69 | loss 3.060199499130249, f_iou 0.6890910267829895: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 69 | loss 1.946777582168579, f_iou 0.6872449517250061: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 69 | loss 1.946777582168579, f_iou 0.6872449517250061: 93%|██████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 69 | loss 1.386374592781067, f_iou 0.6880093812942505: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 69 | loss 1.386374592781067, f_iou 0.6880093812942505: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 69 | loss 3.041928768157959, f_iou 0.6823568940162659: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 69 | loss 3.041928768157959, f_iou 0.6823568940162659: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 69 | loss 3.37587308883667, f_iou 0.6778113842010498: 96%|████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.41it/s]
epoch 69 | loss 3.37587308883667, f_iou 0.6778113842010498: 97%|████████████████████████████████████▉ | 72/74 [00:58<00:01, 1.40it/s]
epoch 69 | loss 3.877265453338623, f_iou 0.6724742650985718: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 69 | loss 3.877265453338623, f_iou 0.6724742650985718: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 69 | loss 1.287198543548584, f_iou 0.6707833409309387: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 69 | loss 1.287198543548584, f_iou 0.6707833409309387: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 69 | loss 1.287198543548584, f_iou 0.6707833409309387: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 69 | valid.f_iou 0.7239900231361389, valid.f_f-score 0.78296: 0%| | 0/16 [00:05, ?it/s]
epoch 69 | valid.f_iou 0.7239900231361389, valid.f_f-score 0.78296: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 69 | valid.f_iou 0.6810799837112427, valid.f_f-score 0.83248: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 69 | valid.f_iou 0.6810799837112427, valid.f_f-score 0.83248: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 69 | valid.f_iou 0.5846700072288513, valid.f_f-score 0.76806: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 69 | valid.f_iou 0.5846700072288513, valid.f_f-score 0.76806: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 69 | valid.f_iou 0.6216400265693665, valid.f_f-score 0.7683: 19%|██████ | 3/16 [00:06<00:20, 1.61s/it]
epoch 69 | valid.f_iou 0.6216400265693665, valid.f_f-score 0.7683: 25%|████████ | 4/16 [00:06<00:14, 1.17s/it]
epoch 69 | valid.f_iou 0.6267300248146057, valid.f_f-score 0.77744: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 69 | valid.f_iou 0.6267300248146057, valid.f_f-score 0.77744: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 69 | valid.f_iou 0.5926300287246704, valid.f_f-score 0.74881: 31%|█████████▋ | 5/16 [00:07<00:10, 1.09it/s]
epoch 69 | valid.f_iou 0.5926300287246704, valid.f_f-score 0.74881: 38%|███████████▋ | 6/16 [00:07<00:07, 1.31it/s]
epoch 69 | valid.f_iou 0.6044600009918213, valid.f_f-score 0.7584: 38%|████████████ | 6/16 [00:08<00:07, 1.31it/s]
epoch 69 | valid.f_iou 0.6044600009918213, valid.f_f-score 0.7584: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 69 | valid.f_iou 0.5756700038909912, valid.f_f-score 0.7409: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 69 | valid.f_iou 0.5756700038909912, valid.f_f-score 0.7409: 50%|████████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 69 | valid.f_iou 0.58228999376297, valid.f_f-score 0.73639: 50%|████████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 69 | valid.f_iou 0.58228999376297, valid.f_f-score 0.73639: 56%|██████████████████▌ | 9/16 [00:09<00:03, 1.95it/s]
epoch 69 | valid.f_iou 0.5676800012588501, valid.f_f-score 0.73671: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 69 | valid.f_iou 0.5676800012588501, valid.f_f-score 0.73671: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 69 | valid.f_iou 0.5680400133132935, valid.f_f-score 0.73239: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 69 | valid.f_iou 0.5680400133132935, valid.f_f-score 0.73239: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 69 | valid.f_iou 0.5891900062561035, valid.f_f-score 0.74893: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.29it/s]
epoch 69 | valid.f_iou 0.5891900062561035, valid.f_f-score 0.74893: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 69 | valid.f_iou 0.5932599902153015, valid.f_f-score 0.75493: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.42it/s]
epoch 69 | valid.f_iou 0.5932599902153015, valid.f_f-score 0.75493: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 69 | valid.f_iou 0.5897499918937683, valid.f_f-score 0.75086: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 69 | valid.f_iou 0.5897499918937683, valid.f_f-score 0.75086: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 69 | valid.f_iou 0.5941799879074097, valid.f_f-score 0.75065: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 69 | valid.f_iou 0.5941799879074097, valid.f_f-score 0.75065: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 69 | valid.f_iou 0.5997099876403809, valid.f_f-score 0.75058: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 69 | valid.f_iou 0.5997099876403809, valid.f_f-score 0.75058: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 69 | valid.f_iou 0.5997099876403809, valid.f_f-score 0.75058: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 69 | valid.f_iou 0.6814299821853638, valid.f_f-score 0.71541: 0%| | 0/16 [00:04, ?it/s]
epoch 69 | valid.f_iou 0.6814299821853638, valid.f_f-score 0.71541: 6%|█▉ | 1/16 [00:04<01:13, 4.93s/it]
epoch 69 | valid.f_iou 0.766539990901947, valid.f_f-score 0.82136: 6%|██ | 1/16 [00:05<01:13, 4.93s/it]
epoch 69 | valid.f_iou 0.766539990901947, valid.f_f-score 0.82136: 12%|████ | 2/16 [00:05<00:32, 2.31s/it]
epoch 69 | valid.f_iou 0.7275599837303162, valid.f_f-score 0.81678: 12%|███▉ | 2/16 [00:05<00:32, 2.31s/it]
epoch 69 | valid.f_iou 0.7275599837303162, valid.f_f-score 0.81678: 19%|█████▊ | 3/16 [00:05<00:18, 1.46s/it]
epoch 69 | valid.f_iou 0.7018200159072876, valid.f_f-score 0.76761: 19%|█████▊ | 3/16 [00:06<00:18, 1.46s/it]
epoch 69 | valid.f_iou 0.7018200159072876, valid.f_f-score 0.76761: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 69 | valid.f_iou 0.6911699771881104, valid.f_f-score 0.7785: 25%|████████ | 4/16 [00:06<00:12, 1.06s/it]
epoch 69 | valid.f_iou 0.6911699771881104, valid.f_f-score 0.7785: 31%|██████████ | 5/16 [00:06<00:09, 1.20it/s]
epoch 69 | valid.f_iou 0.6693199872970581, valid.f_f-score 0.76601: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 69 | valid.f_iou 0.6693199872970581, valid.f_f-score 0.76601: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 69 | valid.f_iou 0.6862599849700928, valid.f_f-score 0.78436: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 69 | valid.f_iou 0.6862599849700928, valid.f_f-score 0.78436: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 69 | valid.f_iou 0.6841099858283997, valid.f_f-score 0.78824: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 69 | valid.f_iou 0.6841099858283997, valid.f_f-score 0.78824: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 69 | valid.f_iou 0.6943699717521667, valid.f_f-score 0.79118: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 69 | valid.f_iou 0.6943699717521667, valid.f_f-score 0.79118: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 69 | valid.f_iou 0.7030400037765503, valid.f_f-score 0.80179: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 69 | valid.f_iou 0.7030400037765503, valid.f_f-score 0.80179: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.02it/s]
epoch 69 | valid.f_iou 0.6895099878311157, valid.f_f-score 0.78078: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 69 | valid.f_iou 0.6895099878311157, valid.f_f-score 0.78078: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 69 | valid.f_iou 0.7041400074958801, valid.f_f-score 0.79348: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 69 | valid.f_iou 0.7041400074958801, valid.f_f-score 0.79348: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.34it/s]
epoch 69 | valid.f_iou 0.7164999842643738, valid.f_f-score 0.80342: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 69 | valid.f_iou 0.7164999842643738, valid.f_f-score 0.80342: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 69 | valid.f_iou 0.710319995880127, valid.f_f-score 0.79965: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.45it/s]
epoch 69 | valid.f_iou 0.710319995880127, valid.f_f-score 0.79965: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.53it/s]
epoch 69 | valid.f_iou 0.7209399938583374, valid.f_f-score 0.80944: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 69 | valid.f_iou 0.7209399938583374, valid.f_f-score 0.80944: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 69 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.79989: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 69 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.79989: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 69 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.79989: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 69 | valid.f_iou 0.6814299821853638, valid.f_f-score 0.71541: 0%| | 0/16 [00:05, ?it/s]
epoch 69 | valid.f_iou 0.6814299821853638, valid.f_f-score 0.71541: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 69 | valid.f_iou 0.766539990901947, valid.f_f-score 0.82136: 6%|██ | 1/16 [00:05<01:19, 5.29s/it]
epoch 69 | valid.f_iou 0.766539990901947, valid.f_f-score 0.82136: 12%|████ | 2/16 [00:05<00:34, 2.44s/it]
epoch 69 | valid.f_iou 0.7275599837303162, valid.f_f-score 0.81678: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 69 | valid.f_iou 0.7275599837303162, valid.f_f-score 0.81678: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 69 | valid.f_iou 0.7018200159072876, valid.f_f-score 0.76761: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 69 | valid.f_iou 0.7018200159072876, valid.f_f-score 0.76761: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 69 | valid.f_iou 0.6930800080299377, valid.f_f-score 0.7785: 25%|████████ | 4/16 [00:07<00:12, 1.08s/it]
epoch 69 | valid.f_iou 0.6930800080299377, valid.f_f-score 0.7785: 31%|██████████ | 5/16 [00:07<00:09, 1.18it/s]
epoch 69 | valid.f_iou 0.6709200143814087, valid.f_f-score 0.76601: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 69 | valid.f_iou 0.6709200143814087, valid.f_f-score 0.76601: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 69 | valid.f_iou 0.6894000172615051, valid.f_f-score 0.78436: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 69 | valid.f_iou 0.6894000172615051, valid.f_f-score 0.78436: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 69 | valid.f_iou 0.6868600249290466, valid.f_f-score 0.78824: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 69 | valid.f_iou 0.6868600249290466, valid.f_f-score 0.78824: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 69 | valid.f_iou 0.6980199813842773, valid.f_f-score 0.79118: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 69 | valid.f_iou 0.6980199813842773, valid.f_f-score 0.79118: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.09it/s]
epoch 69 | valid.f_iou 0.7021499872207642, valid.f_f-score 0.79822: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.09it/s]
epoch 69 | valid.f_iou 0.7021499872207642, valid.f_f-score 0.79822: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.25it/s]
epoch 69 | valid.f_iou 0.6887000203132629, valid.f_f-score 0.77753: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.25it/s]
epoch 69 | valid.f_iou 0.6887000203132629, valid.f_f-score 0.77753: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 69 | valid.f_iou 0.7034000158309937, valid.f_f-score 0.79051: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 69 | valid.f_iou 0.7034000158309937, valid.f_f-score 0.79051: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 69 | valid.f_iou 0.7158200144767761, valid.f_f-score 0.80196: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.48it/s]
epoch 69 | valid.f_iou 0.7158200144767761, valid.f_f-score 0.80196: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 69 | valid.f_iou 0.7096800208091736, valid.f_f-score 0.79829: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 69 | valid.f_iou 0.7096800208091736, valid.f_f-score 0.79829: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 69 | valid.f_iou 0.7203500270843506, valid.f_f-score 0.80817: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 69 | valid.f_iou 0.7203500270843506, valid.f_f-score 0.80817: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 69 | valid.f_iou 0.7142900228500366, valid.f_f-score 0.79871: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.66it/s]
epoch 69 | valid.f_iou 0.7142900228500366, valid.f_f-score 0.79871: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 69 | valid.f_iou 0.7142900228500366, valid.f_f-score 0.79871: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 70 | loss 1.6680572032928467, f_iou 0.8765189051628113: 0%| | 0/74 [00:06, ?it/s]
epoch 70 | loss 1.6680572032928467, f_iou 0.8765189051628113: 1%|▌ | 1/74 [00:06<07:26, 6.12s/it]
epoch 70 | loss 1.029468297958374, f_iou 0.9044613242149353: 1%|▌ | 1/74 [00:06<07:26, 6.12s/it]
epoch 70 | loss 1.029468297958374, f_iou 0.9044613242149353: 3%|█ | 2/74 [00:06<03:37, 3.03s/it]
epoch 70 | loss 0.7403978705406189, f_iou 0.853859543800354: 3%|█ | 2/74 [00:07<03:37, 3.03s/it]
epoch 70 | loss 0.7403978705406189, f_iou 0.853859543800354: 4%|█▌ | 3/74 [00:07<02:23, 2.03s/it]
epoch 70 | loss 2.1367058753967285, f_iou 0.8433302640914917: 4%|█▌ | 3/74 [00:08<02:23, 2.03s/it]
epoch 70 | loss 2.1367058753967285, f_iou 0.8433302640914917: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 70 | loss 1.5706822872161865, f_iou 0.8037528991699219: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 70 | loss 1.5706822872161865, f_iou 0.8037528991699219: 7%|██▌ | 5/74 [00:09<01:29, 1.30s/it]
epoch 70 | loss 0.40781113505363464, f_iou 0.8300888538360596: 7%|██▍ | 5/74 [00:10<01:29, 1.30s/it]
epoch 70 | loss 0.40781113505363464, f_iou 0.8300888538360596: 8%|██▉ | 6/74 [00:10<01:16, 1.13s/it]
epoch 70 | loss 1.7458499670028687, f_iou 0.8102557063102722: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 70 | loss 1.7458499670028687, f_iou 0.8102557063102722: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 70 | loss 0.6940695643424988, f_iou 0.8270264267921448: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 70 | loss 0.6940695643424988, f_iou 0.8270264267921448: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 70 | loss 1.9461040496826172, f_iou 0.8081859946250916: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 70 | loss 1.9461040496826172, f_iou 0.8081859946250916: 12%|████▌ | 9/74 [00:12<00:56, 1.15it/s]
epoch 70 | loss 2.472317695617676, f_iou 0.7946851849555969: 12%|████▌ | 9/74 [00:13<00:56, 1.15it/s]
epoch 70 | loss 2.472317695617676, f_iou 0.7946851849555969: 14%|█████ | 10/74 [00:13<00:52, 1.22it/s]
epoch 70 | loss 0.6038914918899536, f_iou 0.8056178092956543: 14%|████▊ | 10/74 [00:14<00:52, 1.22it/s]
epoch 70 | loss 0.6038914918899536, f_iou 0.8056178092956543: 15%|█████▎ | 11/74 [00:14<00:50, 1.25it/s]
epoch 70 | loss 1.5795462131500244, f_iou 0.776785135269165: 15%|█████▌ | 11/74 [00:14<00:50, 1.25it/s]
epoch 70 | loss 1.5795462131500244, f_iou 0.776785135269165: 16%|██████ | 12/74 [00:14<00:48, 1.29it/s]
epoch 70 | loss 4.487062454223633, f_iou 0.747150182723999: 16%|██████▏ | 12/74 [00:15<00:48, 1.29it/s]
epoch 70 | loss 4.487062454223633, f_iou 0.747150182723999: 18%|██████▋ | 13/74 [00:15<00:46, 1.32it/s]
epoch 70 | loss 0.7101017832756042, f_iou 0.7563270330429077: 18%|██████▎ | 13/74 [00:16<00:46, 1.32it/s]
epoch 70 | loss 0.7101017832756042, f_iou 0.7563270330429077: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 70 | loss 1.139080286026001, f_iou 0.7650982737541199: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 70 | loss 1.139080286026001, f_iou 0.7650982737541199: 20%|███████▌ | 15/74 [00:16<00:43, 1.35it/s]
epoch 70 | loss 0.7590318918228149, f_iou 0.7235783338546753: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 70 | loss 0.7590318918228149, f_iou 0.7235783338546753: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 70 | loss 2.2677130699157715, f_iou 0.7068080306053162: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 70 | loss 2.2677130699157715, f_iou 0.7068080306053162: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 70 | loss 1.1634243726730347, f_iou 0.7141192555427551: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 70 | loss 1.1634243726730347, f_iou 0.7141192555427551: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 70 | loss 0.5045799016952515, f_iou 0.7279604077339172: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 70 | loss 0.5045799016952515, f_iou 0.7279604077339172: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 70 | loss 0.3700668215751648, f_iou 0.7400661706924438: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 70 | loss 0.3700668215751648, f_iou 0.7400661706924438: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 70 | loss 0.835675835609436, f_iou 0.7418528199195862: 27%|██████████ | 20/74 [00:21<00:39, 1.38it/s]
epoch 70 | loss 0.835675835609436, f_iou 0.7418528199195862: 28%|██████████▌ | 21/74 [00:21<00:38, 1.38it/s]
epoch 70 | loss 0.9618655443191528, f_iou 0.7482268214225769: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 70 | loss 0.9618655443191528, f_iou 0.7482268214225769: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 70 | loss 0.15656469762325287, f_iou 0.7556428909301758: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 70 | loss 0.15656469762325287, f_iou 0.7556428909301758: 31%|██████████▉ | 23/74 [00:22<00:36, 1.38it/s]
epoch 70 | loss 1.3636445999145508, f_iou 0.7509235143661499: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 70 | loss 1.3636445999145508, f_iou 0.7509235143661499: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 70 | loss 1.1303482055664062, f_iou 0.7563103437423706: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 70 | loss 1.1303482055664062, f_iou 0.7563103437423706: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 70 | loss 1.9672648906707764, f_iou 0.7320752143859863: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 70 | loss 1.9672648906707764, f_iou 0.7320752143859863: 35%|████████████▋ | 26/74 [00:24<00:35, 1.35it/s]
epoch 70 | loss 0.9578873515129089, f_iou 0.7380140423774719: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 70 | loss 0.9578873515129089, f_iou 0.7380140423774719: 36%|█████████████▏ | 27/74 [00:25<00:35, 1.32it/s]
epoch 70 | loss 0.7654627561569214, f_iou 0.7417229413986206: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.32it/s]
epoch 70 | loss 0.7654627561569214, f_iou 0.7417229413986206: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.31it/s]
epoch 70 | loss 0.9365169405937195, f_iou 0.7455668449401855: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.31it/s]
epoch 70 | loss 0.9365169405937195, f_iou 0.7455668449401855: 39%|██████████████ | 29/74 [00:27<00:33, 1.33it/s]
epoch 70 | loss 1.1803489923477173, f_iou 0.7520605325698853: 39%|██████████████ | 29/74 [00:27<00:33, 1.33it/s]
epoch 70 | loss 1.1803489923477173, f_iou 0.7520605325698853: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.35it/s]
epoch 70 | loss 0.6158804297447205, f_iou 0.7587297558784485: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.35it/s]
epoch 70 | loss 0.6158804297447205, f_iou 0.7587297558784485: 42%|███████████████ | 31/74 [00:28<00:31, 1.36it/s]
epoch 70 | loss 1.1058175563812256, f_iou 0.7611198425292969: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 70 | loss 1.1058175563812256, f_iou 0.7611198425292969: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 70 | loss 1.3554571866989136, f_iou 0.7567354440689087: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.37it/s]
epoch 70 | loss 1.3554571866989136, f_iou 0.7567354440689087: 45%|████████████████ | 33/74 [00:30<00:29, 1.37it/s]
epoch 70 | loss 2.062760353088379, f_iou 0.7503142952919006: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.37it/s]
epoch 70 | loss 2.062760353088379, f_iou 0.7503142952919006: 46%|█████████████████ | 34/74 [00:30<00:29, 1.38it/s]
epoch 70 | loss 0.0, f_iou 0.7553035020828247: 46%|███████████████████████▍ | 34/74 [00:31<00:29, 1.38it/s]
epoch 70 | loss 0.0, f_iou 0.7553035020828247: 47%|████████████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 70 | loss 1.0128509998321533, f_iou 0.7601642608642578: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 70 | loss 1.0128509998321533, f_iou 0.7601642608642578: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 70 | loss 0.7082916498184204, f_iou 0.7594516277313232: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 70 | loss 0.7082916498184204, f_iou 0.7594516277313232: 50%|██████████████████ | 37/74 [00:32<00:26, 1.38it/s]
epoch 70 | loss 1.0295279026031494, f_iou 0.7582671642303467: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 70 | loss 1.0295279026031494, f_iou 0.7582671642303467: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 70 | loss 1.8760085105895996, f_iou 0.7570422887802124: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 70 | loss 1.8760085105895996, f_iou 0.7570422887802124: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 70 | loss 0.8702754974365234, f_iou 0.7595678567886353: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 70 | loss 0.8702754974365234, f_iou 0.7595678567886353: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 70 | loss 2.942615509033203, f_iou 0.7549397945404053: 54%|████████████████████ | 40/74 [00:35<00:24, 1.39it/s]
epoch 70 | loss 2.942615509033203, f_iou 0.7549397945404053: 55%|████████████████████▌ | 41/74 [00:35<00:24, 1.36it/s]
epoch 70 | loss 0.34114164113998413, f_iou 0.7598192095756531: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.36it/s]
epoch 70 | loss 0.34114164113998413, f_iou 0.7598192095756531: 57%|███████████████████▊ | 42/74 [00:36<00:23, 1.34it/s]
epoch 70 | loss 0.0, f_iou 0.7653051614761353: 57%|████████████████████████████▉ | 42/74 [00:37<00:23, 1.34it/s]
epoch 70 | loss 0.0, f_iou 0.7653051614761353: 58%|█████████████████████████████▋ | 43/74 [00:37<00:22, 1.35it/s]
epoch 70 | loss 1.2165542840957642, f_iou 0.7630834579467773: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.35it/s]
epoch 70 | loss 1.2165542840957642, f_iou 0.7630834579467773: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 70 | loss 0.7742593288421631, f_iou 0.7667099237442017: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 70 | loss 0.7742593288421631, f_iou 0.7667099237442017: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 70 | loss 1.7171252965927124, f_iou 0.7658274173736572: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 70 | loss 1.7171252965927124, f_iou 0.7658274173736572: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 70 | loss 0.5682574510574341, f_iou 0.7624493837356567: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 70 | loss 0.5682574510574341, f_iou 0.7624493837356567: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.36it/s]
epoch 70 | loss 1.9816102981567383, f_iou 0.7554113268852234: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.36it/s]
epoch 70 | loss 1.9816102981567383, f_iou 0.7554113268852234: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.33it/s]
epoch 70 | loss 0.8251564502716064, f_iou 0.75618976354599: 65%|████████████████████████▋ | 48/74 [00:41<00:19, 1.33it/s]
epoch 70 | loss 0.8251564502716064, f_iou 0.75618976354599: 66%|█████████████████████████▏ | 49/74 [00:41<00:18, 1.35it/s]
epoch 70 | loss 0.7045719623565674, f_iou 0.7597277164459229: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.35it/s]
epoch 70 | loss 0.7045719623565674, f_iou 0.7597277164459229: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.36it/s]
epoch 70 | loss 0.3585033416748047, f_iou 0.7463045716285706: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.36it/s]
epoch 70 | loss 0.3585033416748047, f_iou 0.7463045716285706: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.37it/s]
epoch 70 | loss 2.375572443008423, f_iou 0.7466514110565186: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.37it/s]
epoch 70 | loss 2.375572443008423, f_iou 0.7466514110565186: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 70 | loss 0.8621082305908203, f_iou 0.7446940541267395: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 70 | loss 0.8621082305908203, f_iou 0.7446940541267395: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 70 | loss 0.36157864332199097, f_iou 0.7489773035049438: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 70 | loss 0.36157864332199097, f_iou 0.7489773035049438: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.38it/s]
epoch 70 | loss 0.831471860408783, f_iou 0.7514044046401978: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.38it/s]
epoch 70 | loss 0.831471860408783, f_iou 0.7514044046401978: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 70 | loss 1.1546285152435303, f_iou 0.7519897818565369: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 70 | loss 1.1546285152435303, f_iou 0.7519897818565369: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 70 | loss 2.201606512069702, f_iou 0.7483211159706116: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 70 | loss 2.201606512069702, f_iou 0.7483211159706116: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.36it/s]
epoch 70 | loss 1.4578369855880737, f_iou 0.7453102469444275: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.36it/s]
epoch 70 | loss 1.4578369855880737, f_iou 0.7453102469444275: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.36it/s]
epoch 70 | loss 1.0829931497573853, f_iou 0.7476489543914795: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.36it/s]
epoch 70 | loss 1.0829931497573853, f_iou 0.7476489543914795: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.37it/s]
epoch 70 | loss 0.547153890132904, f_iou 0.7509797811508179: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.37it/s]
epoch 70 | loss 0.547153890132904, f_iou 0.7509797811508179: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.37it/s]
epoch 70 | loss 2.968822956085205, f_iou 0.7484552264213562: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.37it/s]
epoch 70 | loss 2.968822956085205, f_iou 0.7484552264213562: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.38it/s]
epoch 70 | loss 1.5667567253112793, f_iou 0.7456430196762085: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.38it/s]
epoch 70 | loss 1.5667567253112793, f_iou 0.7456430196762085: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 70 | loss 0.9845381379127502, f_iou 0.7467928528785706: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 70 | loss 0.9845381379127502, f_iou 0.7467928528785706: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 70 | loss 0.0, f_iou 0.750659704208374: 85%|████████████████████████████████████████████▎ | 63/74 [00:52<00:07, 1.38it/s]
epoch 70 | loss 0.0, f_iou 0.750659704208374: 86%|████████████████████████████████████████████▉ | 64/74 [00:52<00:07, 1.39it/s]
epoch 70 | loss 1.8727352619171143, f_iou 0.7509534955024719: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 70 | loss 1.8727352619171143, f_iou 0.7509534955024719: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 70 | loss 0.9853799939155579, f_iou 0.7498623728752136: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 70 | loss 0.9853799939155579, f_iou 0.7498623728752136: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.36it/s]
epoch 70 | loss 3.0079047679901123, f_iou 0.7440710663795471: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.36it/s]
epoch 70 | loss 3.0079047679901123, f_iou 0.7440710663795471: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.33it/s]
epoch 70 | loss 1.8036079406738281, f_iou 0.7421746850013733: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.33it/s]
epoch 70 | loss 1.8036079406738281, f_iou 0.7421746850013733: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.32it/s]
epoch 70 | loss 1.2505625486373901, f_iou 0.7422232031822205: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.32it/s]
epoch 70 | loss 1.2505625486373901, f_iou 0.7422232031822205: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.31it/s]
epoch 70 | loss 0.5173319578170776, f_iou 0.7443481087684631: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.31it/s]
epoch 70 | loss 0.5173319578170776, f_iou 0.7443481087684631: 95%|██████████████████████████████████ | 70/74 [00:57<00:03, 1.30it/s]
epoch 70 | loss 0.9726384878158569, f_iou 0.7429848909378052: 95%|██████████████████████████████████ | 70/74 [00:58<00:03, 1.30it/s]
epoch 70 | loss 0.9726384878158569, f_iou 0.7429848909378052: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.30it/s]
epoch 70 | loss 0.6590206623077393, f_iou 0.7439960241317749: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.30it/s]
epoch 70 | loss 0.6590206623077393, f_iou 0.7439960241317749: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.32it/s]
epoch 70 | loss 1.5974894762039185, f_iou 0.7436500191688538: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.32it/s]
epoch 70 | loss 1.5974894762039185, f_iou 0.7436500191688538: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.34it/s]
epoch 70 | loss 1.3564417362213135, f_iou 0.7443671226501465: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.34it/s]
epoch 70 | loss 1.3564417362213135, f_iou 0.7443671226501465: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.36it/s]
epoch 70 | loss 1.3564417362213135, f_iou 0.7443671226501465: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 70 | valid.f_iou 0.7540799975395203, valid.f_f-score 0.87084: 0%| | 0/16 [00:05, ?it/s]
epoch 70 | valid.f_iou 0.7540799975395203, valid.f_f-score 0.87084: 6%|█▉ | 1/16 [00:05<01:16, 5.08s/it]
epoch 70 | valid.f_iou 0.6782600283622742, valid.f_f-score 0.84849: 6%|█▉ | 1/16 [00:05<01:16, 5.08s/it]
epoch 70 | valid.f_iou 0.6782600283622742, valid.f_f-score 0.84849: 12%|███▉ | 2/16 [00:05<00:33, 2.36s/it]
epoch 70 | valid.f_iou 0.550599992275238, valid.f_f-score 0.76354: 12%|████ | 2/16 [00:05<00:33, 2.36s/it]
epoch 70 | valid.f_iou 0.550599992275238, valid.f_f-score 0.76354: 19%|██████ | 3/16 [00:05<00:19, 1.49s/it]
epoch 70 | valid.f_iou 0.5857700109481812, valid.f_f-score 0.76901: 19%|█████▊ | 3/16 [00:06<00:19, 1.49s/it]
epoch 70 | valid.f_iou 0.5857700109481812, valid.f_f-score 0.76901: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 70 | valid.f_iou 0.5797200202941895, valid.f_f-score 0.7634: 25%|████████ | 4/16 [00:06<00:13, 1.08s/it]
epoch 70 | valid.f_iou 0.5797200202941895, valid.f_f-score 0.7634: 31%|██████████ | 5/16 [00:06<00:09, 1.17it/s]
epoch 70 | valid.f_iou 0.5512400269508362, valid.f_f-score 0.73192: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 70 | valid.f_iou 0.5512400269508362, valid.f_f-score 0.73192: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 70 | valid.f_iou 0.5722399950027466, valid.f_f-score 0.75119: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 70 | valid.f_iou 0.5722399950027466, valid.f_f-score 0.75119: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 70 | valid.f_iou 0.5446699857711792, valid.f_f-score 0.73127: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 70 | valid.f_iou 0.5446699857711792, valid.f_f-score 0.73127: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 70 | valid.f_iou 0.56045001745224, valid.f_f-score 0.73208: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 70 | valid.f_iou 0.56045001745224, valid.f_f-score 0.73208: 56%|██████████████████▌ | 9/16 [00:08<00:03, 2.03it/s]
epoch 70 | valid.f_iou 0.5488399863243103, valid.f_f-score 0.73385: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 70 | valid.f_iou 0.5488399863243103, valid.f_f-score 0.73385: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.22it/s]
epoch 70 | valid.f_iou 0.5515999794006348, valid.f_f-score 0.73112: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.22it/s]
epoch 70 | valid.f_iou 0.5515999794006348, valid.f_f-score 0.73112: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 70 | valid.f_iou 0.5714200139045715, valid.f_f-score 0.74658: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 70 | valid.f_iou 0.5714200139045715, valid.f_f-score 0.74658: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 70 | valid.f_iou 0.5728700160980225, valid.f_f-score 0.75158: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 70 | valid.f_iou 0.5728700160980225, valid.f_f-score 0.75158: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 70 | valid.f_iou 0.567080020904541, valid.f_f-score 0.74529: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.58it/s]
epoch 70 | valid.f_iou 0.567080020904541, valid.f_f-score 0.74529: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.64it/s]
epoch 70 | valid.f_iou 0.5734000205993652, valid.f_f-score 0.74525: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.64it/s]
epoch 70 | valid.f_iou 0.5734000205993652, valid.f_f-score 0.74525: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.69it/s]
epoch 70 | valid.f_iou 0.5782399773597717, valid.f_f-score 0.74539: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.69it/s]
epoch 70 | valid.f_iou 0.5782399773597717, valid.f_f-score 0.74539: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.73it/s]
epoch 70 | valid.f_iou 0.5782399773597717, valid.f_f-score 0.74539: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 70 | valid.f_iou 0.813480019569397, valid.f_f-score 0.8789: 0%| | 0/16 [00:04, ?it/s]
epoch 70 | valid.f_iou 0.813480019569397, valid.f_f-score 0.8789: 6%|██ | 1/16 [00:04<01:08, 4.55s/it]
epoch 70 | valid.f_iou 0.8405799865722656, valid.f_f-score 0.91366: 6%|█▉ | 1/16 [00:05<01:08, 4.55s/it]
epoch 70 | valid.f_iou 0.8405799865722656, valid.f_f-score 0.91366: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 70 | valid.f_iou 0.7343500256538391, valid.f_f-score 0.84361: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 70 | valid.f_iou 0.7343500256538391, valid.f_f-score 0.84361: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 70 | valid.f_iou 0.7416200041770935, valid.f_f-score 0.83724: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 70 | valid.f_iou 0.7416200041770935, valid.f_f-score 0.83724: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 70 | valid.f_iou 0.7196000218391418, valid.f_f-score 0.82433: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 70 | valid.f_iou 0.7196000218391418, valid.f_f-score 0.82433: 31%|█████████▋ | 5/16 [00:06<00:09, 1.21it/s]
epoch 70 | valid.f_iou 0.6797800064086914, valid.f_f-score 0.78521: 31%|█████████▋ | 5/16 [00:06<00:09, 1.21it/s]
epoch 70 | valid.f_iou 0.6797800064086914, valid.f_f-score 0.78521: 38%|███████████▋ | 6/16 [00:06<00:06, 1.48it/s]
epoch 70 | valid.f_iou 0.6968799829483032, valid.f_f-score 0.8031: 38%|████████████ | 6/16 [00:07<00:06, 1.48it/s]
epoch 70 | valid.f_iou 0.6968799829483032, valid.f_f-score 0.8031: 44%|██████████████ | 7/16 [00:07<00:05, 1.71it/s]
epoch 70 | valid.f_iou 0.6826599836349487, valid.f_f-score 0.79846: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.71it/s]
epoch 70 | valid.f_iou 0.6826599836349487, valid.f_f-score 0.79846: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 70 | valid.f_iou 0.7021099925041199, valid.f_f-score 0.81476: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.89it/s]
epoch 70 | valid.f_iou 0.7021099925041199, valid.f_f-score 0.81476: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.07it/s]
epoch 70 | valid.f_iou 0.6994400024414062, valid.f_f-score 0.82194: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.07it/s]
epoch 70 | valid.f_iou 0.6994400024414062, valid.f_f-score 0.82194: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.13it/s]
epoch 70 | valid.f_iou 0.70073002576828, valid.f_f-score 0.81968: 62%|████████████████████ | 10/16 [00:08<00:02, 2.13it/s]
epoch 70 | valid.f_iou 0.70073002576828, valid.f_f-score 0.81968: 69%|██████████████████████ | 11/16 [00:08<00:02, 2.28it/s]
epoch 70 | valid.f_iou 0.7121800184249878, valid.f_f-score 0.82866: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 70 | valid.f_iou 0.7121800184249878, valid.f_f-score 0.82866: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 70 | valid.f_iou 0.7254800200462341, valid.f_f-score 0.83612: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 70 | valid.f_iou 0.7254800200462341, valid.f_f-score 0.83612: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.51it/s]
epoch 70 | valid.f_iou 0.7183899879455566, valid.f_f-score 0.82681: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 70 | valid.f_iou 0.7183899879455566, valid.f_f-score 0.82681: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 70 | valid.f_iou 0.7153900265693665, valid.f_f-score 0.8218: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.59it/s]
epoch 70 | valid.f_iou 0.7153900265693665, valid.f_f-score 0.8218: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.64it/s]
epoch 70 | valid.f_iou 0.7159799933433533, valid.f_f-score 0.82051: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 70 | valid.f_iou 0.7159799933433533, valid.f_f-score 0.82051: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 70 | valid.f_iou 0.7159799933433533, valid.f_f-score 0.82051: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 70 | valid.f_iou 0.813480019569397, valid.f_f-score 0.8789: 0%| | 0/16 [00:04, ?it/s]
epoch 70 | valid.f_iou 0.813480019569397, valid.f_f-score 0.8789: 6%|██ | 1/16 [00:04<01:01, 4.10s/it]
epoch 70 | valid.f_iou 0.8194199800491333, valid.f_f-score 0.89026: 6%|█▉ | 1/16 [00:04<01:01, 4.10s/it]
epoch 70 | valid.f_iou 0.8194199800491333, valid.f_f-score 0.89026: 12%|███▉ | 2/16 [00:04<00:27, 1.96s/it]
epoch 70 | valid.f_iou 0.7202399969100952, valid.f_f-score 0.82801: 12%|███▉ | 2/16 [00:05<00:27, 1.96s/it]
epoch 70 | valid.f_iou 0.7202399969100952, valid.f_f-score 0.82801: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 70 | valid.f_iou 0.7310500144958496, valid.f_f-score 0.81821: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 70 | valid.f_iou 0.7310500144958496, valid.f_f-score 0.81821: 25%|███████▊ | 4/16 [00:05<00:11, 1.03it/s]
epoch 70 | valid.f_iou 0.7144899964332581, valid.f_f-score 0.8091: 25%|████████ | 4/16 [00:05<00:11, 1.03it/s]
epoch 70 | valid.f_iou 0.7144899964332581, valid.f_f-score 0.8091: 31%|██████████ | 5/16 [00:05<00:08, 1.30it/s]
epoch 70 | valid.f_iou 0.6755200028419495, valid.f_f-score 0.77252: 31%|█████████▋ | 5/16 [00:06<00:08, 1.30it/s]
epoch 70 | valid.f_iou 0.6755200028419495, valid.f_f-score 0.77252: 38%|███████████▋ | 6/16 [00:06<00:06, 1.52it/s]
epoch 70 | valid.f_iou 0.6949599981307983, valid.f_f-score 0.79223: 38%|███████████▋ | 6/16 [00:06<00:06, 1.52it/s]
epoch 70 | valid.f_iou 0.6949599981307983, valid.f_f-score 0.79223: 44%|█████████████▌ | 7/16 [00:06<00:05, 1.76it/s]
epoch 70 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.78894: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.76it/s]
epoch 70 | valid.f_iou 0.6809800267219543, valid.f_f-score 0.78894: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.90it/s]
epoch 70 | valid.f_iou 0.703249990940094, valid.f_f-score 0.8063: 50%|████████████████▌ | 8/16 [00:07<00:04, 1.90it/s]
epoch 70 | valid.f_iou 0.703249990940094, valid.f_f-score 0.8063: 56%|██████████████████▌ | 9/16 [00:07<00:03, 2.13it/s]
epoch 70 | valid.f_iou 0.6982600092887878, valid.f_f-score 0.81077: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.13it/s]
epoch 70 | valid.f_iou 0.6982600092887878, valid.f_f-score 0.81077: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 70 | valid.f_iou 0.6870899796485901, valid.f_f-score 0.80224: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 70 | valid.f_iou 0.6870899796485901, valid.f_f-score 0.80224: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.20it/s]
epoch 70 | valid.f_iou 0.6996700167655945, valid.f_f-score 0.81267: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.20it/s]
epoch 70 | valid.f_iou 0.6996700167655945, valid.f_f-score 0.81267: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.23it/s]
epoch 70 | valid.f_iou 0.7139300107955933, valid.f_f-score 0.82253: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.23it/s]
epoch 70 | valid.f_iou 0.7139300107955933, valid.f_f-score 0.82253: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.24it/s]
epoch 70 | valid.f_iou 0.7044500112533569, valid.f_f-score 0.81119: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.24it/s]
epoch 70 | valid.f_iou 0.7044500112533569, valid.f_f-score 0.81119: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.39it/s]
epoch 70 | valid.f_iou 0.7023800015449524, valid.f_f-score 0.80723: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.39it/s]
epoch 70 | valid.f_iou 0.7023800015449524, valid.f_f-score 0.80723: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.49it/s]
epoch 70 | valid.f_iou 0.7017199993133545, valid.f_f-score 0.80311: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.49it/s]
epoch 70 | valid.f_iou 0.7017199993133545, valid.f_f-score 0.80311: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.57it/s]
epoch 70 | valid.f_iou 0.7017199993133545, valid.f_f-score 0.80311: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.54it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 71 | loss 3.9363181591033936, f_iou 0.5980222821235657: 0%| | 0/74 [00:06, ?it/s]
epoch 71 | loss 3.9363181591033936, f_iou 0.5980222821235657: 1%|▌ | 1/74 [00:06<07:23, 6.08s/it]
epoch 71 | loss 3.7062315940856934, f_iou 0.5864201784133911: 1%|▌ | 1/74 [00:06<07:23, 6.08s/it]
epoch 71 | loss 3.7062315940856934, f_iou 0.5864201784133911: 3%|█ | 2/74 [00:06<03:34, 2.97s/it]
epoch 71 | loss 1.6130393743515015, f_iou 0.582297146320343: 3%|█ | 2/74 [00:07<03:34, 2.97s/it]
epoch 71 | loss 1.6130393743515015, f_iou 0.582297146320343: 4%|█▌ | 3/74 [00:07<02:22, 2.00s/it]
epoch 71 | loss 1.457334280014038, f_iou 0.6221691966056824: 4%|█▌ | 3/74 [00:08<02:22, 2.00s/it]
epoch 71 | loss 1.457334280014038, f_iou 0.6221691966056824: 5%|██ | 4/74 [00:08<01:48, 1.55s/it]
epoch 71 | loss 0.3780618906021118, f_iou 0.6925499439239502: 5%|██ | 4/74 [00:09<01:48, 1.55s/it]
epoch 71 | loss 0.3780618906021118, f_iou 0.6925499439239502: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 71 | loss 1.6756036281585693, f_iou 0.7047246694564819: 7%|██▌ | 5/74 [00:10<01:27, 1.27s/it]
epoch 71 | loss 1.6756036281585693, f_iou 0.7047246694564819: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 71 | loss 0.911676287651062, f_iou 0.6920716166496277: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 71 | loss 0.911676287651062, f_iou 0.6920716166496277: 9%|███▌ | 7/74 [00:10<01:06, 1.00it/s]
epoch 71 | loss 0.4037102460861206, f_iou 0.7264999747276306: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 71 | loss 0.4037102460861206, f_iou 0.7264999747276306: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 71 | loss 1.8083796501159668, f_iou 0.7443060874938965: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 71 | loss 1.8083796501159668, f_iou 0.7443060874938965: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 71 | loss 1.385953664779663, f_iou 0.7558836340904236: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 71 | loss 1.385953664779663, f_iou 0.7558836340904236: 14%|█████ | 10/74 [00:13<00:54, 1.17it/s]
epoch 71 | loss 1.3957319259643555, f_iou 0.7110285758972168: 14%|████▊ | 10/74 [00:14<00:54, 1.17it/s]
epoch 71 | loss 1.3957319259643555, f_iou 0.7110285758972168: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 71 | loss 1.2248231172561646, f_iou 0.7029129266738892: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 71 | loss 1.2248231172561646, f_iou 0.7029129266738892: 16%|█████▊ | 12/74 [00:14<00:50, 1.23it/s]
epoch 71 | loss 3.64201021194458, f_iou 0.6948205232620239: 16%|██████▏ | 12/74 [00:15<00:50, 1.23it/s]
epoch 71 | loss 3.64201021194458, f_iou 0.6948205232620239: 18%|██████▋ | 13/74 [00:15<00:47, 1.28it/s]
epoch 71 | loss 2.6492037773132324, f_iou 0.680671751499176: 18%|██████▌ | 13/74 [00:16<00:47, 1.28it/s]
epoch 71 | loss 2.6492037773132324, f_iou 0.680671751499176: 19%|███████ | 14/74 [00:16<00:45, 1.31it/s]
epoch 71 | loss 1.5978853702545166, f_iou 0.6693292260169983: 19%|██████▊ | 14/74 [00:16<00:45, 1.31it/s]
epoch 71 | loss 1.5978853702545166, f_iou 0.6693292260169983: 20%|███████▎ | 15/74 [00:16<00:44, 1.33it/s]
epoch 71 | loss 1.0083396434783936, f_iou 0.672879695892334: 20%|███████▌ | 15/74 [00:17<00:44, 1.33it/s]
epoch 71 | loss 1.0083396434783936, f_iou 0.672879695892334: 22%|████████ | 16/74 [00:17<00:42, 1.35it/s]
epoch 71 | loss 0.597771167755127, f_iou 0.6568832397460938: 22%|████████ | 16/74 [00:18<00:42, 1.35it/s]
epoch 71 | loss 0.597771167755127, f_iou 0.6568832397460938: 23%|████████▌ | 17/74 [00:18<00:41, 1.36it/s]
epoch 71 | loss 1.268158197402954, f_iou 0.6651790142059326: 23%|████████▌ | 17/74 [00:19<00:41, 1.36it/s]
epoch 71 | loss 1.268158197402954, f_iou 0.6651790142059326: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 71 | loss 1.7309386730194092, f_iou 0.6527224183082581: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 71 | loss 1.7309386730194092, f_iou 0.6527224183082581: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 71 | loss 0.5363445281982422, f_iou 0.6574549078941345: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 71 | loss 0.5363445281982422, f_iou 0.6574549078941345: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 71 | loss 0.7676289677619934, f_iou 0.6566978693008423: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 71 | loss 0.7676289677619934, f_iou 0.6566978693008423: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 71 | loss 1.2662155628204346, f_iou 0.6509883403778076: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 71 | loss 1.2662155628204346, f_iou 0.6509883403778076: 30%|██████████▋ | 22/74 [00:21<00:37, 1.39it/s]
epoch 71 | loss 1.584136962890625, f_iou 0.6341497898101807: 30%|███████████ | 22/74 [00:22<00:37, 1.39it/s]
epoch 71 | loss 1.584136962890625, f_iou 0.6341497898101807: 31%|███████████▌ | 23/74 [00:22<00:36, 1.39it/s]
epoch 71 | loss 1.0138119459152222, f_iou 0.6441686153411865: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 71 | loss 1.0138119459152222, f_iou 0.6441686153411865: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 71 | loss 0.8560521602630615, f_iou 0.6453105211257935: 32%|███████████▋ | 24/74 [00:24<00:35, 1.39it/s]
epoch 71 | loss 0.8560521602630615, f_iou 0.6453105211257935: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 71 | loss 1.587478518486023, f_iou 0.6475721597671509: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 71 | loss 1.587478518486023, f_iou 0.6475721597671509: 35%|█████████████ | 26/74 [00:24<00:34, 1.39it/s]
epoch 71 | loss 3.2693610191345215, f_iou 0.6408883333206177: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 71 | loss 3.2693610191345215, f_iou 0.6408883333206177: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.40it/s]
epoch 71 | loss 1.4342632293701172, f_iou 0.6492641568183899: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.40it/s]
epoch 71 | loss 1.4342632293701172, f_iou 0.6492641568183899: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 71 | loss 1.1019678115844727, f_iou 0.6548959612846375: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 71 | loss 1.1019678115844727, f_iou 0.6548959612846375: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 71 | loss 1.7945514917373657, f_iou 0.6555663347244263: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 71 | loss 1.7945514917373657, f_iou 0.6555663347244263: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 71 | loss 1.1092675924301147, f_iou 0.6541369557380676: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 71 | loss 1.1092675924301147, f_iou 0.6541369557380676: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 71 | loss 0.4921642243862152, f_iou 0.6611572504043579: 42%|███████████████ | 31/74 [00:29<00:30, 1.39it/s]
epoch 71 | loss 0.4921642243862152, f_iou 0.6611572504043579: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 71 | loss 3.001697063446045, f_iou 0.6592146754264832: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 71 | loss 3.001697063446045, f_iou 0.6592146754264832: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.39it/s]
epoch 71 | loss 0.9394360780715942, f_iou 0.6675679683685303: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 71 | loss 0.9394360780715942, f_iou 0.6675679683685303: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 71 | loss 1.1877620220184326, f_iou 0.6701002717018127: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 71 | loss 1.1877620220184326, f_iou 0.6701002717018127: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 71 | loss 1.0828447341918945, f_iou 0.6694556474685669: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 71 | loss 1.0828447341918945, f_iou 0.6694556474685669: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 71 | loss 1.4046896696090698, f_iou 0.6711015701293945: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 71 | loss 1.4046896696090698, f_iou 0.6711015701293945: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 71 | loss 1.8644580841064453, f_iou 0.6581597328186035: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 71 | loss 1.8644580841064453, f_iou 0.6581597328186035: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 71 | loss 1.4901372194290161, f_iou 0.6627112030982971: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 71 | loss 1.4901372194290161, f_iou 0.6627112030982971: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 71 | loss 0.6708391308784485, f_iou 0.669574499130249: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 71 | loss 0.6708391308784485, f_iou 0.669574499130249: 54%|████████████████████ | 40/74 [00:34<00:24, 1.39it/s]
epoch 71 | loss 0.9333285093307495, f_iou 0.6730969548225403: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 71 | loss 0.9333285093307495, f_iou 0.6730969548225403: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 71 | loss 1.7250220775604248, f_iou 0.6781631112098694: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 71 | loss 1.7250220775604248, f_iou 0.6781631112098694: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 71 | loss 0.9804180860519409, f_iou 0.6727109551429749: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 71 | loss 0.9804180860519409, f_iou 0.6727109551429749: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 71 | loss 0.5730767250061035, f_iou 0.6779995560646057: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 71 | loss 0.5730767250061035, f_iou 0.6779995560646057: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 71 | loss 0.0, f_iou 0.682992160320282: 59%|██████████████████████████████▉ | 44/74 [00:38<00:21, 1.39it/s]
epoch 71 | loss 0.0, f_iou 0.682992160320282: 61%|███████████████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 71 | loss 0.6900967359542847, f_iou 0.688888669013977: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.39it/s]
epoch 71 | loss 0.6900967359542847, f_iou 0.688888669013977: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 71 | loss 0.7541725039482117, f_iou 0.6905509233474731: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 71 | loss 0.7541725039482117, f_iou 0.6905509233474731: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.39it/s]
epoch 71 | loss 0.92073655128479, f_iou 0.6890994310379028: 64%|████████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 71 | loss 0.92073655128479, f_iou 0.6890994310379028: 65%|████████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 71 | loss 2.014688730239868, f_iou 0.6884804964065552: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 71 | loss 2.014688730239868, f_iou 0.6884804964065552: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.38it/s]
epoch 71 | loss 1.514721155166626, f_iou 0.6888329982757568: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 71 | loss 1.514721155166626, f_iou 0.6888329982757568: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.35it/s]
epoch 71 | loss 1.1066946983337402, f_iou 0.6928631067276001: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.35it/s]
epoch 71 | loss 1.1066946983337402, f_iou 0.6928631067276001: 69%|████████████████████████▊ | 51/74 [00:42<00:17, 1.35it/s]
epoch 71 | loss 3.2614822387695312, f_iou 0.692039966583252: 69%|█████████████████████████▌ | 51/74 [00:43<00:17, 1.35it/s]
epoch 71 | loss 3.2614822387695312, f_iou 0.692039966583252: 70%|██████████████████████████ | 52/74 [00:43<00:16, 1.36it/s]
epoch 71 | loss 2.4427225589752197, f_iou 0.6824031472206116: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.36it/s]
epoch 71 | loss 2.4427225589752197, f_iou 0.6824031472206116: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.36it/s]
epoch 71 | loss 1.973538875579834, f_iou 0.6801594495773315: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.36it/s]
epoch 71 | loss 1.973538875579834, f_iou 0.6801594495773315: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 71 | loss 2.424356460571289, f_iou 0.6728463172912598: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 71 | loss 2.424356460571289, f_iou 0.6728463172912598: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.36it/s]
epoch 71 | loss 1.6257243156433105, f_iou 0.6744096875190735: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.36it/s]
epoch 71 | loss 1.6257243156433105, f_iou 0.6744096875190735: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 71 | loss 0.9819405674934387, f_iou 0.6785899996757507: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 71 | loss 0.9819405674934387, f_iou 0.6785899996757507: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 71 | loss 0.8083233833312988, f_iou 0.6814567446708679: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 71 | loss 0.8083233833312988, f_iou 0.6814567446708679: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 71 | loss 1.4478847980499268, f_iou 0.6781067848205566: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 71 | loss 1.4478847980499268, f_iou 0.6781067848205566: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 71 | loss 2.696131467819214, f_iou 0.6744657754898071: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.38it/s]
epoch 71 | loss 2.696131467819214, f_iou 0.6744657754898071: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.37it/s]
epoch 71 | loss 0.621353268623352, f_iou 0.6753815412521362: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.37it/s]
epoch 71 | loss 0.621353268623352, f_iou 0.6753815412521362: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.37it/s]
epoch 71 | loss 1.3644194602966309, f_iou 0.6662506461143494: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.37it/s]
epoch 71 | loss 1.3644194602966309, f_iou 0.6662506461143494: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.34it/s]
epoch 71 | loss 1.0289188623428345, f_iou 0.6700509190559387: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.34it/s]
epoch 71 | loss 1.0289188623428345, f_iou 0.6700509190559387: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.32it/s]
epoch 71 | loss 2.3394148349761963, f_iou 0.6695511341094971: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.32it/s]
epoch 71 | loss 2.3394148349761963, f_iou 0.6695511341094971: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.30it/s]
epoch 71 | loss 1.3833168745040894, f_iou 0.6645991206169128: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.30it/s]
epoch 71 | loss 1.3833168745040894, f_iou 0.6645991206169128: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.29it/s]
epoch 71 | loss 1.2583352327346802, f_iou 0.6668714284896851: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.29it/s]
epoch 71 | loss 1.2583352327346802, f_iou 0.6668714284896851: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.28it/s]
epoch 71 | loss 1.2334330081939697, f_iou 0.665400505065918: 89%|█████████████████████████████████ | 66/74 [00:54<00:06, 1.28it/s]
epoch 71 | loss 1.2334330081939697, f_iou 0.665400505065918: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.28it/s]
epoch 71 | loss 3.1379780769348145, f_iou 0.6648724675178528: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.28it/s]
epoch 71 | loss 3.1379780769348145, f_iou 0.6648724675178528: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.31it/s]
epoch 71 | loss 0.4098478853702545, f_iou 0.6636190414428711: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.31it/s]
epoch 71 | loss 0.4098478853702545, f_iou 0.6636190414428711: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.34it/s]
epoch 71 | loss 1.6155239343643188, f_iou 0.6669113039970398: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.34it/s]
epoch 71 | loss 1.6155239343643188, f_iou 0.6669113039970398: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 71 | loss 1.9297513961791992, f_iou 0.6616097688674927: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 71 | loss 1.9297513961791992, f_iou 0.6616097688674927: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.37it/s]
epoch 71 | loss 0.46146470308303833, f_iou 0.665544331073761: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 71 | loss 0.46146470308303833, f_iou 0.665544331073761: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.37it/s]
epoch 71 | loss 0.324947714805603, f_iou 0.6697434782981873: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 71 | loss 0.324947714805603, f_iou 0.6697434782981873: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 71 | loss 2.5428225994110107, f_iou 0.6630728840827942: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 71 | loss 2.5428225994110107, f_iou 0.6630728840827942: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 71 | loss 2.5428225994110107, f_iou 0.6630728840827942: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 71 | valid.f_iou 0.7407299876213074, valid.f_f-score 0.87906: 0%| | 0/16 [00:05, ?it/s]
epoch 71 | valid.f_iou 0.7407299876213074, valid.f_f-score 0.87906: 6%|█▉ | 1/16 [00:05<01:23, 5.59s/it]
epoch 71 | valid.f_iou 0.6820700168609619, valid.f_f-score 0.8759: 6%|██ | 1/16 [00:06<01:23, 5.59s/it]
epoch 71 | valid.f_iou 0.6820700168609619, valid.f_f-score 0.8759: 12%|████ | 2/16 [00:06<00:35, 2.57s/it]
epoch 71 | valid.f_iou 0.5467900037765503, valid.f_f-score 0.78464: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 71 | valid.f_iou 0.5467900037765503, valid.f_f-score 0.78464: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 71 | valid.f_iou 0.5940499901771545, valid.f_f-score 0.78006: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 71 | valid.f_iou 0.5940499901771545, valid.f_f-score 0.78006: 25%|███████▊ | 4/16 [00:06<00:13, 1.16s/it]
epoch 71 | valid.f_iou 0.588100016117096, valid.f_f-score 0.77421: 25%|████████ | 4/16 [00:07<00:13, 1.16s/it]
epoch 71 | valid.f_iou 0.588100016117096, valid.f_f-score 0.77421: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 71 | valid.f_iou 0.5551599860191345, valid.f_f-score 0.73985: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 71 | valid.f_iou 0.5551599860191345, valid.f_f-score 0.73985: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 71 | valid.f_iou 0.5835099816322327, valid.f_f-score 0.759: 38%|████████████▍ | 6/16 [00:08<00:07, 1.32it/s]
epoch 71 | valid.f_iou 0.5835099816322327, valid.f_f-score 0.759: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.56it/s]
epoch 71 | valid.f_iou 0.5565800070762634, valid.f_f-score 0.73884: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 71 | valid.f_iou 0.5565800070762634, valid.f_f-score 0.73884: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 71 | valid.f_iou 0.5741099715232849, valid.f_f-score 0.7456: 50%|████████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 71 | valid.f_iou 0.5741099715232849, valid.f_f-score 0.7456: 56%|██████████████████ | 9/16 [00:09<00:03, 1.95it/s]
epoch 71 | valid.f_iou 0.559909999370575, valid.f_f-score 0.74064: 56%|██████████████████ | 9/16 [00:09<00:03, 1.95it/s]
epoch 71 | valid.f_iou 0.559909999370575, valid.f_f-score 0.74064: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.13it/s]
epoch 71 | valid.f_iou 0.5575799942016602, valid.f_f-score 0.73553: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 71 | valid.f_iou 0.5575799942016602, valid.f_f-score 0.73553: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 71 | valid.f_iou 0.577459990978241, valid.f_f-score 0.75066: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.28it/s]
epoch 71 | valid.f_iou 0.577459990978241, valid.f_f-score 0.75066: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.40it/s]
epoch 71 | valid.f_iou 0.5839099884033203, valid.f_f-score 0.75794: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 71 | valid.f_iou 0.5839099884033203, valid.f_f-score 0.75794: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 71 | valid.f_iou 0.5788000226020813, valid.f_f-score 0.75279: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 71 | valid.f_iou 0.5788000226020813, valid.f_f-score 0.75279: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.51it/s]
epoch 71 | valid.f_iou 0.5836700201034546, valid.f_f-score 0.7519: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.51it/s]
epoch 71 | valid.f_iou 0.5836700201034546, valid.f_f-score 0.7519: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.57it/s]
epoch 71 | valid.f_iou 0.588890016078949, valid.f_f-score 0.75036: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.57it/s]
epoch 71 | valid.f_iou 0.588890016078949, valid.f_f-score 0.75036: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 71 | valid.f_iou 0.588890016078949, valid.f_f-score 0.75036: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 71 | valid.f_iou 0.8437600135803223, valid.f_f-score 0.91164: 0%| | 0/16 [00:05, ?it/s]
epoch 71 | valid.f_iou 0.8437600135803223, valid.f_f-score 0.91164: 6%|█▉ | 1/16 [00:05<01:17, 5.20s/it]
epoch 71 | valid.f_iou 0.8539100289344788, valid.f_f-score 0.92858: 6%|█▉ | 1/16 [00:05<01:17, 5.20s/it]
epoch 71 | valid.f_iou 0.8539100289344788, valid.f_f-score 0.92858: 12%|███▉ | 2/16 [00:05<00:33, 2.43s/it]
epoch 71 | valid.f_iou 0.7389400005340576, valid.f_f-score 0.85135: 12%|███▉ | 2/16 [00:06<00:33, 2.43s/it]
epoch 71 | valid.f_iou 0.7389400005340576, valid.f_f-score 0.85135: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 71 | valid.f_iou 0.7452099919319153, valid.f_f-score 0.84015: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 71 | valid.f_iou 0.7452099919319153, valid.f_f-score 0.84015: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 71 | valid.f_iou 0.7200400233268738, valid.f_f-score 0.82934: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 71 | valid.f_iou 0.7200400233268738, valid.f_f-score 0.82934: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 71 | valid.f_iou 0.6926299929618835, valid.f_f-score 0.80548: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 71 | valid.f_iou 0.6926299929618835, valid.f_f-score 0.80548: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 71 | valid.f_iou 0.705810010433197, valid.f_f-score 0.81924: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 71 | valid.f_iou 0.705810010433197, valid.f_f-score 0.81924: 44%|██████████████ | 7/16 [00:07<00:05, 1.63it/s]
epoch 71 | valid.f_iou 0.6927000284194946, valid.f_f-score 0.80858: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 71 | valid.f_iou 0.6927000284194946, valid.f_f-score 0.80858: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.87it/s]
epoch 71 | valid.f_iou 0.7082499861717224, valid.f_f-score 0.81588: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.87it/s]
epoch 71 | valid.f_iou 0.7082499861717224, valid.f_f-score 0.81588: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 71 | valid.f_iou 0.7090499997138977, valid.f_f-score 0.8219: 56%|██████████████████ | 9/16 [00:08<00:03, 2.10it/s]
epoch 71 | valid.f_iou 0.7090499997138977, valid.f_f-score 0.8219: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.26it/s]
epoch 71 | valid.f_iou 0.688730001449585, valid.f_f-score 0.79218: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.26it/s]
epoch 71 | valid.f_iou 0.688730001449585, valid.f_f-score 0.79218: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.38it/s]
epoch 71 | valid.f_iou 0.7031599879264832, valid.f_f-score 0.80362: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 71 | valid.f_iou 0.7031599879264832, valid.f_f-score 0.80362: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 71 | valid.f_iou 0.7135999798774719, valid.f_f-score 0.80985: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.48it/s]
epoch 71 | valid.f_iou 0.7135999798774719, valid.f_f-score 0.80985: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 71 | valid.f_iou 0.7091500163078308, valid.f_f-score 0.80465: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 71 | valid.f_iou 0.7091500163078308, valid.f_f-score 0.80465: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 71 | valid.f_iou 0.7184500098228455, valid.f_f-score 0.8127: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.59it/s]
epoch 71 | valid.f_iou 0.7184500098228455, valid.f_f-score 0.8127: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.63it/s]
epoch 71 | valid.f_iou 0.7156599760055542, valid.f_f-score 0.8066: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.63it/s]
epoch 71 | valid.f_iou 0.7156599760055542, valid.f_f-score 0.8066: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 71 | valid.f_iou 0.7156599760055542, valid.f_f-score 0.8066: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 71 | valid.f_iou 0.8437600135803223, valid.f_f-score 0.91164: 0%| | 0/16 [00:05, ?it/s]
epoch 71 | valid.f_iou 0.8437600135803223, valid.f_f-score 0.91164: 6%|█▉ | 1/16 [00:05<01:15, 5.02s/it]
epoch 71 | valid.f_iou 0.8539100289344788, valid.f_f-score 0.92858: 6%|█▉ | 1/16 [00:05<01:15, 5.02s/it]
epoch 71 | valid.f_iou 0.8539100289344788, valid.f_f-score 0.92858: 12%|███▉ | 2/16 [00:05<00:32, 2.33s/it]
epoch 71 | valid.f_iou 0.7389400005340576, valid.f_f-score 0.85135: 12%|███▉ | 2/16 [00:05<00:32, 2.33s/it]
epoch 71 | valid.f_iou 0.7389400005340576, valid.f_f-score 0.85135: 19%|█████▊ | 3/16 [00:05<00:18, 1.45s/it]
epoch 71 | valid.f_iou 0.7453500032424927, valid.f_f-score 0.83444: 19%|█████▊ | 3/16 [00:06<00:18, 1.45s/it]
epoch 71 | valid.f_iou 0.7453500032424927, valid.f_f-score 0.83444: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 71 | valid.f_iou 0.724399983882904, valid.f_f-score 0.82477: 25%|████████ | 4/16 [00:06<00:12, 1.03s/it]
epoch 71 | valid.f_iou 0.724399983882904, valid.f_f-score 0.82477: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 71 | valid.f_iou 0.6962699890136719, valid.f_f-score 0.80167: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 71 | valid.f_iou 0.6962699890136719, valid.f_f-score 0.80167: 38%|███████████▋ | 6/16 [00:07<00:06, 1.54it/s]
epoch 71 | valid.f_iou 0.7107200026512146, valid.f_f-score 0.81598: 38%|███████████▋ | 6/16 [00:07<00:06, 1.54it/s]
epoch 71 | valid.f_iou 0.7107200026512146, valid.f_f-score 0.81598: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.80it/s]
epoch 71 | valid.f_iou 0.6969900131225586, valid.f_f-score 0.80573: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.80it/s]
epoch 71 | valid.f_iou 0.6969900131225586, valid.f_f-score 0.80573: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.01it/s]
epoch 71 | valid.f_iou 0.7151299715042114, valid.f_f-score 0.81335: 50%|███████████████▌ | 8/16 [00:08<00:03, 2.01it/s]
epoch 71 | valid.f_iou 0.7151299715042114, valid.f_f-score 0.81335: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.22it/s]
epoch 71 | valid.f_iou 0.7138500213623047, valid.f_f-score 0.81629: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.22it/s]
epoch 71 | valid.f_iou 0.7138500213623047, valid.f_f-score 0.81629: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.36it/s]
epoch 71 | valid.f_iou 0.6888300180435181, valid.f_f-score 0.78507: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.36it/s]
epoch 71 | valid.f_iou 0.6888300180435181, valid.f_f-score 0.78507: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.46it/s]
epoch 71 | valid.f_iou 0.703249990940094, valid.f_f-score 0.7971: 69%|██████████████████████ | 11/16 [00:09<00:02, 2.46it/s]
epoch 71 | valid.f_iou 0.703249990940094, valid.f_f-score 0.7971: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.54it/s]
epoch 71 | valid.f_iou 0.7136800289154053, valid.f_f-score 0.80503: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 71 | valid.f_iou 0.7136800289154053, valid.f_f-score 0.80503: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 71 | valid.f_iou 0.7092199921607971, valid.f_f-score 0.80018: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 71 | valid.f_iou 0.7092199921607971, valid.f_f-score 0.80018: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.63it/s]
epoch 71 | valid.f_iou 0.7185099720954895, valid.f_f-score 0.80852: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 71 | valid.f_iou 0.7185099720954895, valid.f_f-score 0.80852: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 71 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.80388: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 71 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.80388: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 71 | valid.f_iou 0.7165700197219849, valid.f_f-score 0.80388: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 72 | loss 1.014605164527893, f_iou 0.9040386080741882: 0%| | 0/74 [00:05, ?it/s]
epoch 72 | loss 1.014605164527893, f_iou 0.9040386080741882: 1%|▌ | 1/74 [00:05<07:15, 5.96s/it]
epoch 72 | loss 1.1567381620407104, f_iou 0.9142137765884399: 1%|▌ | 1/74 [00:06<07:15, 5.96s/it]
epoch 72 | loss 1.1567381620407104, f_iou 0.9142137765884399: 3%|█ | 2/74 [00:06<03:32, 2.95s/it]
epoch 72 | loss 0.0, f_iou 0.8839931488037109: 3%|█▍ | 2/74 [00:07<03:32, 2.95s/it]
epoch 72 | loss 0.0, f_iou 0.8839931488037109: 4%|██ | 3/74 [00:07<02:20, 1.97s/it]
epoch 72 | loss 0.8981680274009705, f_iou 0.8310344219207764: 4%|█▌ | 3/74 [00:08<02:20, 1.97s/it]
epoch 72 | loss 0.8981680274009705, f_iou 0.8310344219207764: 5%|██ | 4/74 [00:08<01:45, 1.51s/it]
epoch 72 | loss 2.2824411392211914, f_iou 0.7542514204978943: 5%|██ | 4/74 [00:09<01:45, 1.51s/it]
epoch 72 | loss 2.2824411392211914, f_iou 0.7542514204978943: 7%|██▌ | 5/74 [00:09<01:26, 1.26s/it]
epoch 72 | loss 0.5926244258880615, f_iou 0.7737507820129395: 7%|██▌ | 5/74 [00:10<01:26, 1.26s/it]
epoch 72 | loss 0.5926244258880615, f_iou 0.7737507820129395: 8%|███ | 6/74 [00:10<01:15, 1.10s/it]
epoch 72 | loss 1.5722781419754028, f_iou 0.7397988438606262: 8%|███ | 6/74 [00:10<01:15, 1.10s/it]
epoch 72 | loss 1.5722781419754028, f_iou 0.7397988438606262: 9%|███▌ | 7/74 [00:10<01:06, 1.00it/s]
epoch 72 | loss 2.00474214553833, f_iou 0.7500405311584473: 9%|███▋ | 7/74 [00:11<01:06, 1.00it/s]
epoch 72 | loss 2.00474214553833, f_iou 0.7500405311584473: 11%|████▏ | 8/74 [00:11<01:01, 1.07it/s]
epoch 72 | loss 1.3348485231399536, f_iou 0.7568901181221008: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 72 | loss 1.3348485231399536, f_iou 0.7568901181221008: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 72 | loss 0.8408949375152588, f_iou 0.7704553008079529: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 72 | loss 0.8408949375152588, f_iou 0.7704553008079529: 14%|████▊ | 10/74 [00:13<00:53, 1.20it/s]
epoch 72 | loss 2.6452808380126953, f_iou 0.7321850657463074: 14%|████▊ | 10/74 [00:13<00:53, 1.20it/s]
epoch 72 | loss 2.6452808380126953, f_iou 0.7321850657463074: 15%|█████▎ | 11/74 [00:13<00:50, 1.25it/s]
epoch 72 | loss 2.2697770595550537, f_iou 0.7320342063903809: 15%|█████▎ | 11/74 [00:14<00:50, 1.25it/s]
epoch 72 | loss 2.2697770595550537, f_iou 0.7320342063903809: 16%|█████▊ | 12/74 [00:14<00:47, 1.29it/s]
epoch 72 | loss 4.273890972137451, f_iou 0.6905696392059326: 16%|██████ | 12/74 [00:15<00:47, 1.29it/s]
epoch 72 | loss 4.273890972137451, f_iou 0.6905696392059326: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 72 | loss 1.074573278427124, f_iou 0.6771939992904663: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 72 | loss 1.074573278427124, f_iou 0.6771939992904663: 19%|███████ | 14/74 [00:15<00:44, 1.34it/s]
epoch 72 | loss 3.0835165977478027, f_iou 0.6506040692329407: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 72 | loss 3.0835165977478027, f_iou 0.6506040692329407: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 72 | loss 1.8647260665893555, f_iou 0.6464890241622925: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 72 | loss 1.8647260665893555, f_iou 0.6464890241622925: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 72 | loss 1.5958232879638672, f_iou 0.6389400959014893: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 72 | loss 1.5958232879638672, f_iou 0.6389400959014893: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 72 | loss 0.9986405372619629, f_iou 0.6301878690719604: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 72 | loss 0.9986405372619629, f_iou 0.6301878690719604: 24%|████████▊ | 18/74 [00:18<00:42, 1.32it/s]
epoch 72 | loss 1.0626016855239868, f_iou 0.6351405382156372: 24%|████████▊ | 18/74 [00:19<00:42, 1.32it/s]
epoch 72 | loss 1.0626016855239868, f_iou 0.6351405382156372: 26%|█████████▏ | 19/74 [00:19<00:42, 1.30it/s]
epoch 72 | loss 1.4731464385986328, f_iou 0.6337777972221375: 26%|█████████▏ | 19/74 [00:20<00:42, 1.30it/s]
epoch 72 | loss 1.4731464385986328, f_iou 0.6337777972221375: 27%|█████████▋ | 20/74 [00:20<00:42, 1.29it/s]
epoch 72 | loss 1.3960485458374023, f_iou 0.639778733253479: 27%|██████████ | 20/74 [00:21<00:42, 1.29it/s]
epoch 72 | loss 1.3960485458374023, f_iou 0.639778733253479: 28%|██████████▌ | 21/74 [00:21<00:41, 1.28it/s]
epoch 72 | loss 1.0658619403839111, f_iou 0.6508219838142395: 28%|██████████▏ | 21/74 [00:22<00:41, 1.28it/s]
epoch 72 | loss 1.0658619403839111, f_iou 0.6508219838142395: 30%|██████████▋ | 22/74 [00:22<00:40, 1.28it/s]
epoch 72 | loss 0.6087111234664917, f_iou 0.6595193147659302: 30%|██████████▋ | 22/74 [00:22<00:40, 1.28it/s]
epoch 72 | loss 0.6087111234664917, f_iou 0.6595193147659302: 31%|███████████▏ | 23/74 [00:22<00:39, 1.28it/s]
epoch 72 | loss 0.9984832406044006, f_iou 0.6641945838928223: 31%|███████████▏ | 23/74 [00:23<00:39, 1.28it/s]
epoch 72 | loss 0.9984832406044006, f_iou 0.6641945838928223: 32%|███████████▋ | 24/74 [00:23<00:38, 1.31it/s]
epoch 72 | loss 0.791833221912384, f_iou 0.6607776284217834: 32%|████████████ | 24/74 [00:24<00:38, 1.31it/s]
epoch 72 | loss 0.791833221912384, f_iou 0.6607776284217834: 34%|████████████▌ | 25/74 [00:24<00:36, 1.33it/s]
epoch 72 | loss 2.017456531524658, f_iou 0.6542728543281555: 34%|████████████▌ | 25/74 [00:25<00:36, 1.33it/s]
epoch 72 | loss 2.017456531524658, f_iou 0.6542728543281555: 35%|█████████████ | 26/74 [00:25<00:35, 1.34it/s]
epoch 72 | loss 1.3588215112686157, f_iou 0.6590485572814941: 35%|████████████▋ | 26/74 [00:25<00:35, 1.34it/s]
epoch 72 | loss 1.3588215112686157, f_iou 0.6590485572814941: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.35it/s]
epoch 72 | loss 1.4636279344558716, f_iou 0.6631743311882019: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.35it/s]
epoch 72 | loss 1.4636279344558716, f_iou 0.6631743311882019: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 72 | loss 0.9214981198310852, f_iou 0.6493567228317261: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.36it/s]
epoch 72 | loss 0.9214981198310852, f_iou 0.6493567228317261: 39%|██████████████ | 29/74 [00:27<00:34, 1.29it/s]
epoch 72 | loss 1.2447900772094727, f_iou 0.6354072690010071: 39%|██████████████ | 29/74 [00:28<00:34, 1.29it/s]
epoch 72 | loss 1.2447900772094727, f_iou 0.6354072690010071: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.32it/s]
epoch 72 | loss 0.5115446448326111, f_iou 0.6460942625999451: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.32it/s]
epoch 72 | loss 0.5115446448326111, f_iou 0.6460942625999451: 42%|███████████████ | 31/74 [00:28<00:32, 1.34it/s]
epoch 72 | loss 0.839157223701477, f_iou 0.6512370705604553: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.34it/s]
epoch 72 | loss 0.839157223701477, f_iou 0.6512370705604553: 43%|████████████████ | 32/74 [00:29<00:31, 1.35it/s]
epoch 72 | loss 1.1726804971694946, f_iou 0.6578547358512878: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.35it/s]
epoch 72 | loss 1.1726804971694946, f_iou 0.6578547358512878: 45%|████████████████ | 33/74 [00:30<00:32, 1.27it/s]
epoch 72 | loss 1.3573790788650513, f_iou 0.6580389738082886: 45%|████████████████ | 33/74 [00:31<00:32, 1.27it/s]
epoch 72 | loss 1.3573790788650513, f_iou 0.6580389738082886: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.30it/s]
epoch 72 | loss 3.273906946182251, f_iou 0.6445501446723938: 46%|█████████████████ | 34/74 [00:31<00:30, 1.30it/s]
epoch 72 | loss 3.273906946182251, f_iou 0.6445501446723938: 47%|█████████████████▌ | 35/74 [00:31<00:29, 1.33it/s]
epoch 72 | loss 0.6636730432510376, f_iou 0.6357874870300293: 47%|█████████████████ | 35/74 [00:32<00:29, 1.33it/s]
epoch 72 | loss 0.6636730432510376, f_iou 0.6357874870300293: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.34it/s]
epoch 72 | loss 0.30261045694351196, f_iou 0.6431564092636108: 49%|█████████████████ | 36/74 [00:33<00:28, 1.34it/s]
epoch 72 | loss 0.30261045694351196, f_iou 0.6431564092636108: 50%|█████████████████▌ | 37/74 [00:33<00:27, 1.37it/s]
epoch 72 | loss 1.4442732334136963, f_iou 0.6466113924980164: 50%|██████████████████ | 37/74 [00:34<00:27, 1.37it/s]
epoch 72 | loss 1.4442732334136963, f_iou 0.6466113924980164: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.37it/s]
epoch 72 | loss 0.8954222798347473, f_iou 0.6525804400444031: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.37it/s]
epoch 72 | loss 0.8954222798347473, f_iou 0.6525804400444031: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 72 | loss 2.749664783477783, f_iou 0.6486477255821228: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 72 | loss 2.749664783477783, f_iou 0.6486477255821228: 54%|████████████████████ | 40/74 [00:35<00:24, 1.38it/s]
epoch 72 | loss 0.7337710857391357, f_iou 0.6331508755683899: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 72 | loss 0.7337710857391357, f_iou 0.6331508755683899: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 72 | loss 0.7664190530776978, f_iou 0.6398079991340637: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 72 | loss 0.7664190530776978, f_iou 0.6398079991340637: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 72 | loss 0.5175013542175293, f_iou 0.6385398507118225: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 72 | loss 0.5175013542175293, f_iou 0.6385398507118225: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.34it/s]
epoch 72 | loss 2.0149025917053223, f_iou 0.6335118412971497: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.34it/s]
epoch 72 | loss 2.0149025917053223, f_iou 0.6335118412971497: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.33it/s]
epoch 72 | loss 0.7136034369468689, f_iou 0.6272406578063965: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.33it/s]
epoch 72 | loss 0.7136034369468689, f_iou 0.6272406578063965: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 72 | loss 1.5676581859588623, f_iou 0.6281810402870178: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 72 | loss 1.5676581859588623, f_iou 0.6281810402870178: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.36it/s]
epoch 72 | loss 0.8130079507827759, f_iou 0.6333456635475159: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 72 | loss 0.8130079507827759, f_iou 0.6333456635475159: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.36it/s]
epoch 72 | loss 1.3362497091293335, f_iou 0.6370826363563538: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.36it/s]
epoch 72 | loss 1.3362497091293335, f_iou 0.6370826363563538: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.35it/s]
epoch 72 | loss 1.4286000728607178, f_iou 0.6240808963775635: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.35it/s]
epoch 72 | loss 1.4286000728607178, f_iou 0.6240808963775635: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.33it/s]
epoch 72 | loss 3.940859317779541, f_iou 0.6198474764823914: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.33it/s]
epoch 72 | loss 3.940859317779541, f_iou 0.6198474764823914: 68%|█████████████████████████ | 50/74 [00:43<00:18, 1.32it/s]
epoch 72 | loss 0.6468508243560791, f_iou 0.6258000731468201: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.32it/s]
epoch 72 | loss 0.6468508243560791, f_iou 0.6258000731468201: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.33it/s]
epoch 72 | loss 2.739649772644043, f_iou 0.6244058012962341: 69%|█████████████████████████▌ | 51/74 [00:44<00:17, 1.33it/s]
epoch 72 | loss 2.739649772644043, f_iou 0.6244058012962341: 70%|██████████████████████████ | 52/74 [00:44<00:16, 1.35it/s]
epoch 72 | loss 0.0, f_iou 0.631284773349762: 70%|████████████████████████████████████▌ | 52/74 [00:45<00:16, 1.35it/s]
epoch 72 | loss 0.0, f_iou 0.631284773349762: 72%|█████████████████████████████████████▏ | 53/74 [00:45<00:15, 1.36it/s]
epoch 72 | loss 1.635304570198059, f_iou 0.6320760846138: 72%|████████████████████████████▋ | 53/74 [00:45<00:15, 1.36it/s]
epoch 72 | loss 1.635304570198059, f_iou 0.6320760846138: 73%|█████████████████████████████▏ | 54/74 [00:45<00:14, 1.37it/s]
epoch 72 | loss 1.0213502645492554, f_iou 0.6357712149620056: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.37it/s]
epoch 72 | loss 1.0213502645492554, f_iou 0.6357712149620056: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 72 | loss 0.5531868934631348, f_iou 0.6282773017883301: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.38it/s]
epoch 72 | loss 0.5531868934631348, f_iou 0.6282773017883301: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 72 | loss 1.4496816396713257, f_iou 0.6187266111373901: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.38it/s]
epoch 72 | loss 1.4496816396713257, f_iou 0.6187266111373901: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 72 | loss 0.4355373978614807, f_iou 0.6247401237487793: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 72 | loss 0.4355373978614807, f_iou 0.6247401237487793: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.37it/s]
epoch 72 | loss 1.0800527334213257, f_iou 0.6173479557037354: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.37it/s]
epoch 72 | loss 1.0800527334213257, f_iou 0.6173479557037354: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.37it/s]
epoch 72 | loss 1.1852903366088867, f_iou 0.6206104755401611: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.37it/s]
epoch 72 | loss 1.1852903366088867, f_iou 0.6206104755401611: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 72 | loss 0.0, f_iou 0.6253433227539062: 81%|█████████████████████████████████████████▎ | 60/74 [00:50<00:10, 1.37it/s]
epoch 72 | loss 0.0, f_iou 0.6253433227539062: 82%|██████████████████████████████████████████ | 61/74 [00:50<00:09, 1.37it/s]
epoch 72 | loss 1.335141897201538, f_iou 0.6256627440452576: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.37it/s]
epoch 72 | loss 1.335141897201538, f_iou 0.6256627440452576: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.38it/s]
epoch 72 | loss 0.9517791271209717, f_iou 0.6284589767456055: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 72 | loss 0.9517791271209717, f_iou 0.6284589767456055: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 72 | loss 1.0438456535339355, f_iou 0.6320103406906128: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 72 | loss 1.0438456535339355, f_iou 0.6320103406906128: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 72 | loss 0.917670488357544, f_iou 0.626473069190979: 86%|████████████████████████████████▊ | 64/74 [00:53<00:07, 1.38it/s]
epoch 72 | loss 0.917670488357544, f_iou 0.626473069190979: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.39it/s]
epoch 72 | loss 1.5061440467834473, f_iou 0.6282452940940857: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 72 | loss 1.5061440467834473, f_iou 0.6282452940940857: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 72 | loss 3.5526046752929688, f_iou 0.6286637187004089: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 72 | loss 3.5526046752929688, f_iou 0.6286637187004089: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 72 | loss 2.461421012878418, f_iou 0.6267341375350952: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 72 | loss 2.461421012878418, f_iou 0.6267341375350952: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 72 | loss 3.9887402057647705, f_iou 0.6265539526939392: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 72 | loss 3.9887402057647705, f_iou 0.6265539526939392: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 72 | loss 0.5765303373336792, f_iou 0.6307274699211121: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 72 | loss 0.5765303373336792, f_iou 0.6307274699211121: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 72 | loss 1.010840892791748, f_iou 0.6344650983810425: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 72 | loss 1.010840892791748, f_iou 0.6344650983810425: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 72 | loss 1.1202627420425415, f_iou 0.6307283639907837: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 72 | loss 1.1202627420425415, f_iou 0.6307283639907837: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 72 | loss 2.0426998138427734, f_iou 0.6342855095863342: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 72 | loss 2.0426998138427734, f_iou 0.6342855095863342: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 72 | loss 1.0110132694244385, f_iou 0.6364266872406006: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 72 | loss 1.0110132694244385, f_iou 0.6364266872406006: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 72 | loss 1.0110132694244385, f_iou 0.6364266872406006: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 72 | valid.f_iou 0.7465900182723999, valid.f_f-score 0.85743: 0%| | 0/16 [00:05, ?it/s]
epoch 72 | valid.f_iou 0.7465900182723999, valid.f_f-score 0.85743: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 72 | valid.f_iou 0.6835500001907349, valid.f_f-score 0.84611: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 72 | valid.f_iou 0.6835500001907349, valid.f_f-score 0.84611: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 72 | valid.f_iou 0.5602099895477295, valid.f_f-score 0.7595: 12%|████ | 2/16 [00:06<00:35, 2.55s/it]
epoch 72 | valid.f_iou 0.5602099895477295, valid.f_f-score 0.7595: 19%|██████ | 3/16 [00:06<00:20, 1.59s/it]
epoch 72 | valid.f_iou 0.6080499887466431, valid.f_f-score 0.77002: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 72 | valid.f_iou 0.6080499887466431, valid.f_f-score 0.77002: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 72 | valid.f_iou 0.6024600267410278, valid.f_f-score 0.76569: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 72 | valid.f_iou 0.6024600267410278, valid.f_f-score 0.76569: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 72 | valid.f_iou 0.5694000124931335, valid.f_f-score 0.7359: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 72 | valid.f_iou 0.5694000124931335, valid.f_f-score 0.7359: 38%|████████████ | 6/16 [00:07<00:07, 1.37it/s]
epoch 72 | valid.f_iou 0.5979300141334534, valid.f_f-score 0.75612: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 72 | valid.f_iou 0.5979300141334534, valid.f_f-score 0.75612: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 72 | valid.f_iou 0.5733000040054321, valid.f_f-score 0.73926: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 72 | valid.f_iou 0.5733000040054321, valid.f_f-score 0.73926: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.88it/s]
epoch 72 | valid.f_iou 0.5843600034713745, valid.f_f-score 0.73942: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.88it/s]
epoch 72 | valid.f_iou 0.5843600034713745, valid.f_f-score 0.73942: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 72 | valid.f_iou 0.5728300213813782, valid.f_f-score 0.73891: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.10it/s]
epoch 72 | valid.f_iou 0.5728300213813782, valid.f_f-score 0.73891: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.27it/s]
epoch 72 | valid.f_iou 0.572130024433136, valid.f_f-score 0.73621: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.27it/s]
epoch 72 | valid.f_iou 0.572130024433136, valid.f_f-score 0.73621: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.39it/s]
epoch 72 | valid.f_iou 0.5929700136184692, valid.f_f-score 0.75193: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 72 | valid.f_iou 0.5929700136184692, valid.f_f-score 0.75193: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 72 | valid.f_iou 0.6045799851417542, valid.f_f-score 0.76151: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.48it/s]
epoch 72 | valid.f_iou 0.6045799851417542, valid.f_f-score 0.76151: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 72 | valid.f_iou 0.5990200042724609, valid.f_f-score 0.75679: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 72 | valid.f_iou 0.5990200042724609, valid.f_f-score 0.75679: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 72 | valid.f_iou 0.6022499799728394, valid.f_f-score 0.75587: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.59it/s]
epoch 72 | valid.f_iou 0.6022499799728394, valid.f_f-score 0.75587: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 72 | valid.f_iou 0.603950023651123, valid.f_f-score 0.75321: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.63it/s]
epoch 72 | valid.f_iou 0.603950023651123, valid.f_f-score 0.75321: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 72 | valid.f_iou 0.603950023651123, valid.f_f-score 0.75321: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 72 | valid.f_iou 0.7977100014686584, valid.f_f-score 0.82974: 0%| | 0/16 [00:04, ?it/s]
epoch 72 | valid.f_iou 0.7977100014686584, valid.f_f-score 0.82974: 6%|█▉ | 1/16 [00:04<01:11, 4.79s/it]
epoch 72 | valid.f_iou 0.8364099860191345, valid.f_f-score 0.89101: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 72 | valid.f_iou 0.8364099860191345, valid.f_f-score 0.89101: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 72 | valid.f_iou 0.7369300127029419, valid.f_f-score 0.82856: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 72 | valid.f_iou 0.7369300127029419, valid.f_f-score 0.82856: 19%|█████▊ | 3/16 [00:05<00:18, 1.44s/it]
epoch 72 | valid.f_iou 0.7111600041389465, valid.f_f-score 0.79163: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 72 | valid.f_iou 0.7111600041389465, valid.f_f-score 0.79163: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 72 | valid.f_iou 0.6931099891662598, valid.f_f-score 0.79118: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 72 | valid.f_iou 0.6931099891662598, valid.f_f-score 0.79118: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 72 | valid.f_iou 0.6625800132751465, valid.f_f-score 0.76188: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 72 | valid.f_iou 0.6625800132751465, valid.f_f-score 0.76188: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 72 | valid.f_iou 0.685230016708374, valid.f_f-score 0.78641: 38%|████████████ | 6/16 [00:07<00:06, 1.44it/s]
epoch 72 | valid.f_iou 0.685230016708374, valid.f_f-score 0.78641: 44%|██████████████ | 7/16 [00:07<00:05, 1.68it/s]
epoch 72 | valid.f_iou 0.6839399933815002, valid.f_f-score 0.79052: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 72 | valid.f_iou 0.6839399933815002, valid.f_f-score 0.79052: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.86it/s]
epoch 72 | valid.f_iou 0.6910600066184998, valid.f_f-score 0.79365: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 72 | valid.f_iou 0.6910600066184998, valid.f_f-score 0.79365: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 72 | valid.f_iou 0.7020300030708313, valid.f_f-score 0.80557: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 72 | valid.f_iou 0.7020300030708313, valid.f_f-score 0.80557: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.22it/s]
epoch 72 | valid.f_iou 0.6932799816131592, valid.f_f-score 0.79015: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.22it/s]
epoch 72 | valid.f_iou 0.6932799816131592, valid.f_f-score 0.79015: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.35it/s]
epoch 72 | valid.f_iou 0.7069200277328491, valid.f_f-score 0.8019: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.35it/s]
epoch 72 | valid.f_iou 0.7069200277328491, valid.f_f-score 0.8019: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.46it/s]
epoch 72 | valid.f_iou 0.7198200225830078, valid.f_f-score 0.81132: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 72 | valid.f_iou 0.7198200225830078, valid.f_f-score 0.81132: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 72 | valid.f_iou 0.7128000259399414, valid.f_f-score 0.80758: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 72 | valid.f_iou 0.7128000259399414, valid.f_f-score 0.80758: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 72 | valid.f_iou 0.7215999960899353, valid.f_f-score 0.81646: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 72 | valid.f_iou 0.7215999960899353, valid.f_f-score 0.81646: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 72 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.81607: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 72 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.81607: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 72 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.81607: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 72 | valid.f_iou 0.7977100014686584, valid.f_f-score 0.82974: 0%| | 0/16 [00:05, ?it/s]
epoch 72 | valid.f_iou 0.7977100014686584, valid.f_f-score 0.82974: 6%|█▉ | 1/16 [00:05<01:15, 5.06s/it]
epoch 72 | valid.f_iou 0.8364099860191345, valid.f_f-score 0.89101: 6%|█▉ | 1/16 [00:05<01:15, 5.06s/it]
epoch 72 | valid.f_iou 0.8364099860191345, valid.f_f-score 0.89101: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 72 | valid.f_iou 0.7369300127029419, valid.f_f-score 0.82856: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 72 | valid.f_iou 0.7369300127029419, valid.f_f-score 0.82856: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 72 | valid.f_iou 0.7113100290298462, valid.f_f-score 0.78467: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 72 | valid.f_iou 0.7113100290298462, valid.f_f-score 0.78467: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 72 | valid.f_iou 0.6987800002098083, valid.f_f-score 0.78561: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 72 | valid.f_iou 0.6987800002098083, valid.f_f-score 0.78561: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 72 | valid.f_iou 0.6673099994659424, valid.f_f-score 0.75724: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 72 | valid.f_iou 0.6673099994659424, valid.f_f-score 0.75724: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 72 | valid.f_iou 0.6910399794578552, valid.f_f-score 0.78244: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 72 | valid.f_iou 0.6910399794578552, valid.f_f-score 0.78244: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 72 | valid.f_iou 0.6890199780464172, valid.f_f-score 0.78704: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 72 | valid.f_iou 0.6890199780464172, valid.f_f-score 0.78704: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.87it/s]
epoch 72 | valid.f_iou 0.697950005531311, valid.f_f-score 0.79056: 50%|████████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 72 | valid.f_iou 0.697950005531311, valid.f_f-score 0.79056: 56%|██████████████████ | 9/16 [00:08<00:03, 2.09it/s]
epoch 72 | valid.f_iou 0.706309974193573, valid.f_f-score 0.79962: 56%|██████████████████ | 9/16 [00:08<00:03, 2.09it/s]
epoch 72 | valid.f_iou 0.706309974193573, valid.f_f-score 0.79962: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.27it/s]
epoch 72 | valid.f_iou 0.689050018787384, valid.f_f-score 0.77862: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.27it/s]
epoch 72 | valid.f_iou 0.689050018787384, valid.f_f-score 0.77862: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.39it/s]
epoch 72 | valid.f_iou 0.7030400037765503, valid.f_f-score 0.79133: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 72 | valid.f_iou 0.7030400037765503, valid.f_f-score 0.79133: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 72 | valid.f_iou 0.7162200212478638, valid.f_f-score 0.80285: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 72 | valid.f_iou 0.7162200212478638, valid.f_f-score 0.80285: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 72 | valid.f_iou 0.7094699740409851, valid.f_f-score 0.79972: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 72 | valid.f_iou 0.7094699740409851, valid.f_f-score 0.79972: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 72 | valid.f_iou 0.7184900045394897, valid.f_f-score 0.80911: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 72 | valid.f_iou 0.7184900045394897, valid.f_f-score 0.80911: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 72 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81018: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 72 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81018: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 72 | valid.f_iou 0.7200000286102295, valid.f_f-score 0.81018: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 73 | loss 0.9445101022720337, f_iou 0.8989654779434204: 0%| | 0/74 [00:05, ?it/s]
epoch 73 | loss 0.9445101022720337, f_iou 0.8989654779434204: 1%|▌ | 1/74 [00:05<06:21, 5.22s/it]
epoch 73 | loss 0.6895517706871033, f_iou 0.8958977460861206: 1%|▌ | 1/74 [00:06<06:21, 5.22s/it]
epoch 73 | loss 0.6895517706871033, f_iou 0.8958977460861206: 3%|█ | 2/74 [00:06<03:10, 2.65s/it]
epoch 73 | loss 0.3198574185371399, f_iou 0.9237930178642273: 3%|█ | 2/74 [00:06<03:10, 2.65s/it]
epoch 73 | loss 0.3198574185371399, f_iou 0.9237930178642273: 4%|█▌ | 3/74 [00:06<02:12, 1.86s/it]
epoch 73 | loss 1.2684681415557861, f_iou 0.9119375348091125: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 73 | loss 1.2684681415557861, f_iou 0.9119375348091125: 5%|██ | 4/74 [00:07<01:41, 1.44s/it]
epoch 73 | loss 1.895967721939087, f_iou 0.8556941151618958: 5%|██ | 4/74 [00:08<01:41, 1.44s/it]
epoch 73 | loss 1.895967721939087, f_iou 0.8556941151618958: 7%|██▌ | 5/74 [00:08<01:23, 1.21s/it]
epoch 73 | loss 2.8738110065460205, f_iou 0.8256415724754333: 7%|██▌ | 5/74 [00:09<01:23, 1.21s/it]
epoch 73 | loss 2.8738110065460205, f_iou 0.8256415724754333: 8%|███ | 6/74 [00:09<01:12, 1.07s/it]
epoch 73 | loss 1.6718226671218872, f_iou 0.8305885195732117: 8%|███ | 6/74 [00:10<01:12, 1.07s/it]
epoch 73 | loss 1.6718226671218872, f_iou 0.8305885195732117: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 73 | loss 0.6851221919059753, f_iou 0.8235454559326172: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 73 | loss 0.6851221919059753, f_iou 0.8235454559326172: 11%|████ | 8/74 [00:10<01:00, 1.09it/s]
epoch 73 | loss 1.0185246467590332, f_iou 0.828156590461731: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 73 | loss 1.0185246467590332, f_iou 0.828156590461731: 12%|████▌ | 9/74 [00:11<00:57, 1.14it/s]
epoch 73 | loss 3.1383516788482666, f_iou 0.7986008524894714: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 73 | loss 3.1383516788482666, f_iou 0.7986008524894714: 14%|████▊ | 10/74 [00:12<00:54, 1.18it/s]
epoch 73 | loss 1.4632773399353027, f_iou 0.7260007858276367: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 73 | loss 1.4632773399353027, f_iou 0.7260007858276367: 15%|█████▎ | 11/74 [00:13<00:51, 1.21it/s]
epoch 73 | loss 1.440995454788208, f_iou 0.7312023043632507: 15%|█████▌ | 11/74 [00:14<00:51, 1.21it/s]
epoch 73 | loss 1.440995454788208, f_iou 0.7312023043632507: 16%|██████ | 12/74 [00:14<00:49, 1.25it/s]
epoch 73 | loss 0.5853107571601868, f_iou 0.7377630472183228: 16%|█████▊ | 12/74 [00:14<00:49, 1.25it/s]
epoch 73 | loss 0.5853107571601868, f_iou 0.7377630472183228: 18%|██████▎ | 13/74 [00:14<00:47, 1.28it/s]
epoch 73 | loss 0.6625723242759705, f_iou 0.7006928324699402: 18%|██████▎ | 13/74 [00:15<00:47, 1.28it/s]
epoch 73 | loss 0.6625723242759705, f_iou 0.7006928324699402: 19%|██████▊ | 14/74 [00:15<00:45, 1.31it/s]
epoch 73 | loss 2.008571147918701, f_iou 0.6878975033760071: 19%|███████ | 14/74 [00:16<00:45, 1.31it/s]
epoch 73 | loss 2.008571147918701, f_iou 0.6878975033760071: 20%|███████▌ | 15/74 [00:16<00:44, 1.33it/s]
epoch 73 | loss 1.505873203277588, f_iou 0.6968573927879333: 20%|███████▌ | 15/74 [00:16<00:44, 1.33it/s]
epoch 73 | loss 1.505873203277588, f_iou 0.6968573927879333: 22%|████████ | 16/74 [00:16<00:43, 1.35it/s]
epoch 73 | loss 0.6139344573020935, f_iou 0.7092438340187073: 22%|███████▊ | 16/74 [00:17<00:43, 1.35it/s]
epoch 73 | loss 0.6139344573020935, f_iou 0.7092438340187073: 23%|████████▎ | 17/74 [00:17<00:41, 1.36it/s]
epoch 73 | loss 1.317488193511963, f_iou 0.7055378556251526: 23%|████████▌ | 17/74 [00:18<00:41, 1.36it/s]
epoch 73 | loss 1.317488193511963, f_iou 0.7055378556251526: 24%|█████████ | 18/74 [00:18<00:41, 1.35it/s]
epoch 73 | loss 1.0328705310821533, f_iou 0.7096347808837891: 24%|████████▊ | 18/74 [00:19<00:41, 1.35it/s]
epoch 73 | loss 1.0328705310821533, f_iou 0.7096347808837891: 26%|█████████▏ | 19/74 [00:19<00:41, 1.33it/s]
epoch 73 | loss 0.46192237734794617, f_iou 0.7231117486953735: 26%|████████▉ | 19/74 [00:19<00:41, 1.33it/s]
epoch 73 | loss 0.46192237734794617, f_iou 0.7231117486953735: 27%|█████████▍ | 20/74 [00:19<00:40, 1.34it/s]
epoch 73 | loss 2.4557571411132812, f_iou 0.7241129875183105: 27%|█████████▋ | 20/74 [00:20<00:40, 1.34it/s]
epoch 73 | loss 2.4557571411132812, f_iou 0.7241129875183105: 28%|██████████▏ | 21/74 [00:20<00:39, 1.35it/s]
epoch 73 | loss 0.7380972504615784, f_iou 0.7271761298179626: 28%|██████████▏ | 21/74 [00:21<00:39, 1.35it/s]
epoch 73 | loss 0.7380972504615784, f_iou 0.7271761298179626: 30%|██████████▋ | 22/74 [00:21<00:38, 1.36it/s]
epoch 73 | loss 1.2158011198043823, f_iou 0.7264623641967773: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 73 | loss 1.2158011198043823, f_iou 0.7264623641967773: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 73 | loss 0.9131578803062439, f_iou 0.7346161603927612: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 73 | loss 0.9131578803062439, f_iou 0.7346161603927612: 32%|███████████▋ | 24/74 [00:22<00:36, 1.35it/s]
epoch 73 | loss 1.783223032951355, f_iou 0.7278834581375122: 32%|████████████ | 24/74 [00:23<00:36, 1.35it/s]
epoch 73 | loss 1.783223032951355, f_iou 0.7278834581375122: 34%|████████████▌ | 25/74 [00:23<00:36, 1.33it/s]
epoch 73 | loss 1.6238629817962646, f_iou 0.7260630130767822: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 73 | loss 1.6238629817962646, f_iou 0.7260630130767822: 35%|████████████▋ | 26/74 [00:24<00:36, 1.32it/s]
epoch 73 | loss 0.6770208477973938, f_iou 0.7346991896629333: 35%|████████████▋ | 26/74 [00:25<00:36, 1.32it/s]
epoch 73 | loss 0.6770208477973938, f_iou 0.7346991896629333: 36%|█████████████▏ | 27/74 [00:25<00:35, 1.31it/s]
epoch 73 | loss 0.0, f_iou 0.7438221573829651: 36%|██████████████████▌ | 27/74 [00:25<00:35, 1.31it/s]
epoch 73 | loss 0.0, f_iou 0.7438221573829651: 38%|███████████████████▎ | 28/74 [00:25<00:35, 1.31it/s]
epoch 73 | loss 2.4641244411468506, f_iou 0.7321707606315613: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.31it/s]
epoch 73 | loss 2.4641244411468506, f_iou 0.7321707606315613: 39%|██████████████ | 29/74 [00:26<00:34, 1.32it/s]
epoch 73 | loss 1.2778338193893433, f_iou 0.7366029024124146: 39%|██████████████ | 29/74 [00:27<00:34, 1.32it/s]
epoch 73 | loss 1.2778338193893433, f_iou 0.7366029024124146: 41%|██████████████▌ | 30/74 [00:27<00:32, 1.33it/s]
epoch 73 | loss 1.6830487251281738, f_iou 0.7322770953178406: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.33it/s]
epoch 73 | loss 1.6830487251281738, f_iou 0.7322770953178406: 42%|███████████████ | 31/74 [00:28<00:32, 1.32it/s]
epoch 73 | loss 0.5324022173881531, f_iou 0.7391504049301147: 42%|███████████████ | 31/74 [00:28<00:32, 1.32it/s]
epoch 73 | loss 0.5324022173881531, f_iou 0.7391504049301147: 43%|███████████████▌ | 32/74 [00:28<00:32, 1.30it/s]
epoch 73 | loss 0.7255818843841553, f_iou 0.7442793250083923: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.30it/s]
epoch 73 | loss 0.7255818843841553, f_iou 0.7442793250083923: 45%|████████████████ | 33/74 [00:29<00:31, 1.30it/s]
epoch 73 | loss 0.9037686586380005, f_iou 0.7490707635879517: 45%|████████████████ | 33/74 [00:30<00:31, 1.30it/s]
epoch 73 | loss 0.9037686586380005, f_iou 0.7490707635879517: 46%|████████████████▌ | 34/74 [00:30<00:31, 1.29it/s]
epoch 73 | loss 1.7961434125900269, f_iou 0.7430510520935059: 46%|████████████████▌ | 34/74 [00:31<00:31, 1.29it/s]
epoch 73 | loss 1.7961434125900269, f_iou 0.7430510520935059: 47%|█████████████████ | 35/74 [00:31<00:30, 1.29it/s]
epoch 73 | loss 1.1092965602874756, f_iou 0.7461763024330139: 47%|█████████████████ | 35/74 [00:32<00:30, 1.29it/s]
epoch 73 | loss 1.1092965602874756, f_iou 0.7461763024330139: 49%|█████████████████▌ | 36/74 [00:32<00:29, 1.28it/s]
epoch 73 | loss 0.7027863264083862, f_iou 0.7518659830093384: 49%|█████████████████▌ | 36/74 [00:32<00:29, 1.28it/s]
epoch 73 | loss 0.7027863264083862, f_iou 0.7518659830093384: 50%|██████████████████ | 37/74 [00:32<00:28, 1.29it/s]
epoch 73 | loss 1.2812297344207764, f_iou 0.7539917230606079: 50%|██████████████████ | 37/74 [00:33<00:28, 1.29it/s]
epoch 73 | loss 1.2812297344207764, f_iou 0.7539917230606079: 51%|██████████████████▍ | 38/74 [00:33<00:27, 1.32it/s]
epoch 73 | loss 0.6017823219299316, f_iou 0.7588979005813599: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 73 | loss 0.6017823219299316, f_iou 0.7588979005813599: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 73 | loss 2.0215656757354736, f_iou 0.7517144083976746: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.34it/s]
epoch 73 | loss 2.0215656757354736, f_iou 0.7517144083976746: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.35it/s]
epoch 73 | loss 2.459275484085083, f_iou 0.741174042224884: 54%|████████████████████▌ | 40/74 [00:35<00:25, 1.35it/s]
epoch 73 | loss 2.459275484085083, f_iou 0.741174042224884: 55%|█████████████████████ | 41/74 [00:35<00:24, 1.36it/s]
epoch 73 | loss 0.6117199063301086, f_iou 0.7430546283721924: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.36it/s]
epoch 73 | loss 0.6117199063301086, f_iou 0.7430546283721924: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 73 | loss 1.3432914018630981, f_iou 0.7301297783851624: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 73 | loss 1.3432914018630981, f_iou 0.7301297783851624: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 73 | loss 2.2176291942596436, f_iou 0.7253861427307129: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 73 | loss 2.2176291942596436, f_iou 0.7253861427307129: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.38it/s]
epoch 73 | loss 0.9428675770759583, f_iou 0.7278223633766174: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 73 | loss 0.9428675770759583, f_iou 0.7278223633766174: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 73 | loss 0.9784719944000244, f_iou 0.7324667572975159: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 73 | loss 0.9784719944000244, f_iou 0.7324667572975159: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 73 | loss 1.3038827180862427, f_iou 0.7338507175445557: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 73 | loss 1.3038827180862427, f_iou 0.7338507175445557: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 73 | loss 1.468382716178894, f_iou 0.7341893911361694: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.39it/s]
epoch 73 | loss 1.468382716178894, f_iou 0.7341893911361694: 65%|████████████████████████ | 48/74 [00:40<00:18, 1.39it/s]
epoch 73 | loss 3.5697989463806152, f_iou 0.7224999070167542: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 73 | loss 3.5697989463806152, f_iou 0.7224999070167542: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 73 | loss 1.292630910873413, f_iou 0.7211296558380127: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 73 | loss 1.292630910873413, f_iou 0.7211296558380127: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 73 | loss 0.42705512046813965, f_iou 0.7069926261901855: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 73 | loss 0.42705512046813965, f_iou 0.7069926261901855: 69%|████████████████████████ | 51/74 [00:42<00:16, 1.39it/s]
epoch 73 | loss 1.36652672290802, f_iou 0.709597110748291: 69%|██████████████████████████▉ | 51/74 [00:43<00:16, 1.39it/s]
epoch 73 | loss 1.36652672290802, f_iou 0.709597110748291: 70%|███████████████████████████▍ | 52/74 [00:43<00:15, 1.39it/s]
epoch 73 | loss 0.7533183097839355, f_iou 0.7123961448669434: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 73 | loss 0.7533183097839355, f_iou 0.7123961448669434: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.40it/s]
epoch 73 | loss 3.120032548904419, f_iou 0.7056541442871094: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.40it/s]
epoch 73 | loss 3.120032548904419, f_iou 0.7056541442871094: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 73 | loss 0.9061475396156311, f_iou 0.7011367678642273: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 73 | loss 0.9061475396156311, f_iou 0.7011367678642273: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 73 | loss 0.12881717085838318, f_iou 0.7054880261421204: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.39it/s]
epoch 73 | loss 0.12881717085838318, f_iou 0.7054880261421204: 76%|██████████████████████████▍ | 56/74 [00:46<00:12, 1.39it/s]
epoch 73 | loss 1.332803726196289, f_iou 0.7053824067115784: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 73 | loss 1.332803726196289, f_iou 0.7053824067115784: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 73 | loss 0.9289953112602234, f_iou 0.7086410522460938: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 73 | loss 0.9289953112602234, f_iou 0.7086410522460938: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 73 | loss 1.6522226333618164, f_iou 0.7038184404373169: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 73 | loss 1.6522226333618164, f_iou 0.7038184404373169: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 73 | loss 2.2741215229034424, f_iou 0.7011566162109375: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 73 | loss 2.2741215229034424, f_iou 0.7011566162109375: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 73 | loss 0.7478198409080505, f_iou 0.7050359845161438: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 73 | loss 0.7478198409080505, f_iou 0.7050359845161438: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 73 | loss 0.7100237011909485, f_iou 0.6977185606956482: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 73 | loss 0.7100237011909485, f_iou 0.6977185606956482: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 73 | loss 1.8800472021102905, f_iou 0.6988848447799683: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 73 | loss 1.8800472021102905, f_iou 0.6988848447799683: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.35it/s]
epoch 73 | loss 0.5009161829948425, f_iou 0.6995258927345276: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.35it/s]
epoch 73 | loss 0.5009161829948425, f_iou 0.6995258927345276: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.33it/s]
epoch 73 | loss 0.8096945881843567, f_iou 0.6887639760971069: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.33it/s]
epoch 73 | loss 0.8096945881843567, f_iou 0.6887639760971069: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.30it/s]
epoch 73 | loss 0.8010839819908142, f_iou 0.6917181611061096: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.30it/s]
epoch 73 | loss 0.8010839819908142, f_iou 0.6917181611061096: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.30it/s]
epoch 73 | loss 1.2643896341323853, f_iou 0.6914845705032349: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.30it/s]
epoch 73 | loss 1.2643896341323853, f_iou 0.6914845705032349: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.30it/s]
epoch 73 | loss 1.1094226837158203, f_iou 0.6869839429855347: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.30it/s]
epoch 73 | loss 1.1094226837158203, f_iou 0.6869839429855347: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.29it/s]
epoch 73 | loss 1.6297804117202759, f_iou 0.6807592511177063: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.29it/s]
epoch 73 | loss 1.6297804117202759, f_iou 0.6807592511177063: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.31it/s]
epoch 73 | loss 2.9260904788970947, f_iou 0.6781408190727234: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.31it/s]
epoch 73 | loss 2.9260904788970947, f_iou 0.6781408190727234: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.34it/s]
epoch 73 | loss 2.308689594268799, f_iou 0.6799318194389343: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.34it/s]
epoch 73 | loss 2.308689594268799, f_iou 0.6799318194389343: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.35it/s]
epoch 73 | loss 0.750416100025177, f_iou 0.682527482509613: 96%|████████████████████████████████████▍ | 71/74 [00:58<00:02, 1.35it/s]
epoch 73 | loss 0.750416100025177, f_iou 0.682527482509613: 97%|████████████████████████████████████▉ | 72/74 [00:58<00:01, 1.37it/s]
epoch 73 | loss 1.3454625606536865, f_iou 0.6812654733657837: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 73 | loss 1.3454625606536865, f_iou 0.6812654733657837: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 73 | loss 1.4526475667953491, f_iou 0.6836804151535034: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 73 | loss 1.4526475667953491, f_iou 0.6836804151535034: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 73 | loss 1.4526475667953491, f_iou 0.6836804151535034: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 73 | valid.f_iou 0.7250699996948242, valid.f_f-score 0.82986: 0%| | 0/16 [00:05, ?it/s]
epoch 73 | valid.f_iou 0.7250699996948242, valid.f_f-score 0.82986: 6%|█▉ | 1/16 [00:05<01:26, 5.78s/it]
epoch 73 | valid.f_iou 0.6718299984931946, valid.f_f-score 0.83452: 6%|█▉ | 1/16 [00:06<01:26, 5.78s/it]
epoch 73 | valid.f_iou 0.6718299984931946, valid.f_f-score 0.83452: 12%|███▉ | 2/16 [00:06<00:37, 2.65s/it]
epoch 73 | valid.f_iou 0.5369099974632263, valid.f_f-score 0.74627: 12%|███▉ | 2/16 [00:06<00:37, 2.65s/it]
epoch 73 | valid.f_iou 0.5369099974632263, valid.f_f-score 0.74627: 19%|█████▊ | 3/16 [00:06<00:21, 1.65s/it]
epoch 73 | valid.f_iou 0.5719199776649475, valid.f_f-score 0.742: 19%|██████▏ | 3/16 [00:07<00:21, 1.65s/it]
epoch 73 | valid.f_iou 0.5719199776649475, valid.f_f-score 0.742: 25%|████████▎ | 4/16 [00:07<00:14, 1.17s/it]
epoch 73 | valid.f_iou 0.5830600261688232, valid.f_f-score 0.74956: 25%|███████▊ | 4/16 [00:07<00:14, 1.17s/it]
epoch 73 | valid.f_iou 0.5830600261688232, valid.f_f-score 0.74956: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 73 | valid.f_iou 0.5540199875831604, valid.f_f-score 0.72318: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 73 | valid.f_iou 0.5540199875831604, valid.f_f-score 0.72318: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 73 | valid.f_iou 0.5824000239372253, valid.f_f-score 0.747: 38%|████████████▍ | 6/16 [00:08<00:07, 1.35it/s]
epoch 73 | valid.f_iou 0.5824000239372253, valid.f_f-score 0.747: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.63it/s]
epoch 73 | valid.f_iou 0.5708900094032288, valid.f_f-score 0.73274: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 73 | valid.f_iou 0.5708900094032288, valid.f_f-score 0.73274: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 73 | valid.f_iou 0.5828999876976013, valid.f_f-score 0.73365: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.78it/s]
epoch 73 | valid.f_iou 0.5828999876976013, valid.f_f-score 0.73365: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 73 | valid.f_iou 0.5704699754714966, valid.f_f-score 0.73261: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 73 | valid.f_iou 0.5704699754714966, valid.f_f-score 0.73261: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 73 | valid.f_iou 0.5639899969100952, valid.f_f-score 0.72587: 62%|██████████████████▊ | 10/16 [00:10<00:02, 2.05it/s]
epoch 73 | valid.f_iou 0.5639899969100952, valid.f_f-score 0.72587: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.07it/s]
epoch 73 | valid.f_iou 0.5858100056648254, valid.f_f-score 0.74209: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.07it/s]
epoch 73 | valid.f_iou 0.5858100056648254, valid.f_f-score 0.74209: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 73 | valid.f_iou 0.5946099758148193, valid.f_f-score 0.75213: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 73 | valid.f_iou 0.5946099758148193, valid.f_f-score 0.75213: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.14it/s]
epoch 73 | valid.f_iou 0.5889700055122375, valid.f_f-score 0.74784: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.14it/s]
epoch 73 | valid.f_iou 0.5889700055122375, valid.f_f-score 0.74784: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.19it/s]
epoch 73 | valid.f_iou 0.586929976940155, valid.f_f-score 0.74123: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.19it/s]
epoch 73 | valid.f_iou 0.586929976940155, valid.f_f-score 0.74123: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.19it/s]
epoch 73 | valid.f_iou 0.5917199850082397, valid.f_f-score 0.73977: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.19it/s]
epoch 73 | valid.f_iou 0.5917199850082397, valid.f_f-score 0.73977: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.17it/s]
epoch 73 | valid.f_iou 0.5917199850082397, valid.f_f-score 0.73977: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.30it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 73 | valid.f_iou 0.7597500085830688, valid.f_f-score 0.81017: 0%| | 0/16 [00:05, ?it/s]
epoch 73 | valid.f_iou 0.7597500085830688, valid.f_f-score 0.81017: 6%|█▉ | 1/16 [00:05<01:15, 5.03s/it]
epoch 73 | valid.f_iou 0.8123000264167786, valid.f_f-score 0.87415: 6%|█▉ | 1/16 [00:05<01:15, 5.03s/it]
epoch 73 | valid.f_iou 0.8123000264167786, valid.f_f-score 0.87415: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 73 | valid.f_iou 0.7257599830627441, valid.f_f-score 0.8226: 12%|████ | 2/16 [00:05<00:32, 2.35s/it]
epoch 73 | valid.f_iou 0.7257599830627441, valid.f_f-score 0.8226: 19%|██████ | 3/16 [00:05<00:19, 1.48s/it]
epoch 73 | valid.f_iou 0.6903200149536133, valid.f_f-score 0.75363: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 73 | valid.f_iou 0.6903200149536133, valid.f_f-score 0.75363: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 73 | valid.f_iou 0.6569700241088867, valid.f_f-score 0.73222: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 73 | valid.f_iou 0.6569700241088867, valid.f_f-score 0.73222: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 73 | valid.f_iou 0.6454700231552124, valid.f_f-score 0.72119: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 73 | valid.f_iou 0.6454700231552124, valid.f_f-score 0.72119: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 73 | valid.f_iou 0.6643900275230408, valid.f_f-score 0.7465: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 73 | valid.f_iou 0.6643900275230408, valid.f_f-score 0.7465: 44%|██████████████ | 7/16 [00:07<00:05, 1.63it/s]
epoch 73 | valid.f_iou 0.6558300256729126, valid.f_f-score 0.74103: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 73 | valid.f_iou 0.6558300256729126, valid.f_f-score 0.74103: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 73 | valid.f_iou 0.6758099794387817, valid.f_f-score 0.75452: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 73 | valid.f_iou 0.6758099794387817, valid.f_f-score 0.75452: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 73 | valid.f_iou 0.6918699741363525, valid.f_f-score 0.7714: 56%|██████████████████ | 9/16 [00:09<00:03, 1.97it/s]
epoch 73 | valid.f_iou 0.6918699741363525, valid.f_f-score 0.7714: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.04it/s]
epoch 73 | valid.f_iou 0.6760600209236145, valid.f_f-score 0.74848: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 73 | valid.f_iou 0.6760600209236145, valid.f_f-score 0.74848: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 73 | valid.f_iou 0.6907899975776672, valid.f_f-score 0.76351: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 73 | valid.f_iou 0.6907899975776672, valid.f_f-score 0.76351: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.27it/s]
epoch 73 | valid.f_iou 0.6997799873352051, valid.f_f-score 0.77138: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 73 | valid.f_iou 0.6997799873352051, valid.f_f-score 0.77138: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 73 | valid.f_iou 0.6956300139427185, valid.f_f-score 0.76937: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 73 | valid.f_iou 0.6956300139427185, valid.f_f-score 0.76937: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 73 | valid.f_iou 0.6958199739456177, valid.f_f-score 0.77017: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 73 | valid.f_iou 0.6958199739456177, valid.f_f-score 0.77017: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 73 | valid.f_iou 0.6950399875640869, valid.f_f-score 0.76913: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 73 | valid.f_iou 0.6950399875640869, valid.f_f-score 0.76913: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 73 | valid.f_iou 0.6950399875640869, valid.f_f-score 0.76913: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 73 | valid.f_iou 0.7597500085830688, valid.f_f-score 0.81017: 0%| | 0/16 [00:04, ?it/s]
epoch 73 | valid.f_iou 0.7597500085830688, valid.f_f-score 0.81017: 6%|█▉ | 1/16 [00:04<01:01, 4.11s/it]
epoch 73 | valid.f_iou 0.8123000264167786, valid.f_f-score 0.87415: 6%|█▉ | 1/16 [00:05<01:01, 4.11s/it]
epoch 73 | valid.f_iou 0.8123000264167786, valid.f_f-score 0.87415: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 73 | valid.f_iou 0.7257599830627441, valid.f_f-score 0.8226: 12%|████ | 2/16 [00:05<00:31, 2.28s/it]
epoch 73 | valid.f_iou 0.7257599830627441, valid.f_f-score 0.8226: 19%|██████ | 3/16 [00:05<00:18, 1.45s/it]
epoch 73 | valid.f_iou 0.6905099749565125, valid.f_f-score 0.7534: 19%|██████ | 3/16 [00:05<00:18, 1.45s/it]
epoch 73 | valid.f_iou 0.6905099749565125, valid.f_f-score 0.7534: 25%|████████ | 4/16 [00:05<00:12, 1.04s/it]
epoch 73 | valid.f_iou 0.6667400002479553, valid.f_f-score 0.73203: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 73 | valid.f_iou 0.6667400002479553, valid.f_f-score 0.73203: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 73 | valid.f_iou 0.6536099910736084, valid.f_f-score 0.72104: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 73 | valid.f_iou 0.6536099910736084, valid.f_f-score 0.72104: 38%|███████████▋ | 6/16 [00:06<00:07, 1.40it/s]
epoch 73 | valid.f_iou 0.6746500134468079, valid.f_f-score 0.74637: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 73 | valid.f_iou 0.6746500134468079, valid.f_f-score 0.74637: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 73 | valid.f_iou 0.6648100018501282, valid.f_f-score 0.74091: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 73 | valid.f_iou 0.6648100018501282, valid.f_f-score 0.74091: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.78it/s]
epoch 73 | valid.f_iou 0.6856099963188171, valid.f_f-score 0.75442: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 73 | valid.f_iou 0.6856099963188171, valid.f_f-score 0.75442: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 73 | valid.f_iou 0.697160005569458, valid.f_f-score 0.76782: 56%|██████████████████ | 9/16 [00:08<00:03, 1.98it/s]
epoch 73 | valid.f_iou 0.697160005569458, valid.f_f-score 0.76782: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.16it/s]
epoch 73 | valid.f_iou 0.6775400042533875, valid.f_f-score 0.74126: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 73 | valid.f_iou 0.6775400042533875, valid.f_f-score 0.74126: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.31it/s]
epoch 73 | valid.f_iou 0.6921499967575073, valid.f_f-score 0.75689: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 73 | valid.f_iou 0.6921499967575073, valid.f_f-score 0.75689: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 73 | valid.f_iou 0.7010300159454346, valid.f_f-score 0.76562: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 73 | valid.f_iou 0.7010300159454346, valid.f_f-score 0.76562: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 73 | valid.f_iou 0.6967999935150146, valid.f_f-score 0.76404: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 73 | valid.f_iou 0.6967999935150146, valid.f_f-score 0.76404: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 73 | valid.f_iou 0.69691002368927, valid.f_f-score 0.76519: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.56it/s]
epoch 73 | valid.f_iou 0.69691002368927, valid.f_f-score 0.76519: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 73 | valid.f_iou 0.6967099905014038, valid.f_f-score 0.76268: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 73 | valid.f_iou 0.6967099905014038, valid.f_f-score 0.76268: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 73 | valid.f_iou 0.6967099905014038, valid.f_f-score 0.76268: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 74 | loss 1.084647297859192, f_iou 0.22702498733997345: 0%| | 0/74 [00:06, ?it/s]
epoch 74 | loss 1.084647297859192, f_iou 0.22702498733997345: 1%|▌ | 1/74 [00:06<07:37, 6.27s/it]
epoch 74 | loss 3.520979166030884, f_iou 0.5136242508888245: 1%|▌ | 1/74 [00:07<07:37, 6.27s/it]
epoch 74 | loss 3.520979166030884, f_iou 0.5136242508888245: 3%|█ | 2/74 [00:07<03:41, 3.07s/it]
epoch 74 | loss 1.181265115737915, f_iou 0.5251098871231079: 3%|█ | 2/74 [00:07<03:41, 3.07s/it]
epoch 74 | loss 1.181265115737915, f_iou 0.5251098871231079: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 74 | loss 0.8711939454078674, f_iou 0.5576725602149963: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 74 | loss 0.8711939454078674, f_iou 0.5576725602149963: 5%|██ | 4/74 [00:08<01:51, 1.60s/it]
epoch 74 | loss 0.6467317938804626, f_iou 0.5064777731895447: 5%|██ | 4/74 [00:09<01:51, 1.60s/it]
epoch 74 | loss 0.6467317938804626, f_iou 0.5064777731895447: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 74 | loss 0.9591127038002014, f_iou 0.5618636012077332: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 74 | loss 0.9591127038002014, f_iou 0.5618636012077332: 8%|███ | 6/74 [00:10<01:17, 1.14s/it]
epoch 74 | loss 1.572033405303955, f_iou 0.5562717914581299: 8%|███ | 6/74 [00:11<01:17, 1.14s/it]
epoch 74 | loss 1.572033405303955, f_iou 0.5562717914581299: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 74 | loss 1.58640456199646, f_iou 0.579146146774292: 9%|███▊ | 7/74 [00:11<01:08, 1.02s/it]
epoch 74 | loss 1.58640456199646, f_iou 0.579146146774292: 11%|████▎ | 8/74 [00:11<01:02, 1.06it/s]
epoch 74 | loss 0.7074264287948608, f_iou 0.5870249271392822: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 74 | loss 0.7074264287948608, f_iou 0.5870249271392822: 12%|████▌ | 9/74 [00:12<00:56, 1.14it/s]
epoch 74 | loss 2.549574136734009, f_iou 0.5642827749252319: 12%|████▌ | 9/74 [00:13<00:56, 1.14it/s]
epoch 74 | loss 2.549574136734009, f_iou 0.5642827749252319: 14%|█████ | 10/74 [00:13<00:52, 1.21it/s]
epoch 74 | loss 1.102892279624939, f_iou 0.5698599815368652: 14%|█████ | 10/74 [00:14<00:52, 1.21it/s]
epoch 74 | loss 1.102892279624939, f_iou 0.5698599815368652: 15%|█████▌ | 11/74 [00:14<00:50, 1.26it/s]
epoch 74 | loss 1.3052412271499634, f_iou 0.5747280716896057: 15%|█████▎ | 11/74 [00:14<00:50, 1.26it/s]
epoch 74 | loss 1.3052412271499634, f_iou 0.5747280716896057: 16%|█████▊ | 12/74 [00:14<00:47, 1.30it/s]
epoch 74 | loss 0.5558737516403198, f_iou 0.5538796186447144: 16%|█████▊ | 12/74 [00:15<00:47, 1.30it/s]
epoch 74 | loss 0.5558737516403198, f_iou 0.5538796186447144: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 74 | loss 0.6189731359481812, f_iou 0.5778841972351074: 18%|██████▎ | 13/74 [00:16<00:47, 1.29it/s]
epoch 74 | loss 0.6189731359481812, f_iou 0.5778841972351074: 19%|██████▊ | 14/74 [00:16<00:46, 1.29it/s]
epoch 74 | loss 0.9277247786521912, f_iou 0.5962457060813904: 19%|██████▊ | 14/74 [00:17<00:46, 1.29it/s]
epoch 74 | loss 0.9277247786521912, f_iou 0.5962457060813904: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 74 | loss 0.5967055559158325, f_iou 0.6174739599227905: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 74 | loss 0.5967055559158325, f_iou 0.6174739599227905: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 74 | loss 0.8219572305679321, f_iou 0.6249985098838806: 22%|███████▊ | 16/74 [00:18<00:44, 1.30it/s]
epoch 74 | loss 0.8219572305679321, f_iou 0.6249985098838806: 23%|████████▎ | 17/74 [00:18<00:44, 1.28it/s]
epoch 74 | loss 2.540894031524658, f_iou 0.6107875108718872: 23%|████████▌ | 17/74 [00:19<00:44, 1.28it/s]
epoch 74 | loss 2.540894031524658, f_iou 0.6107875108718872: 24%|█████████ | 18/74 [00:19<00:43, 1.27it/s]
epoch 74 | loss 0.5336582660675049, f_iou 0.6172454953193665: 24%|████████▊ | 18/74 [00:20<00:43, 1.27it/s]
epoch 74 | loss 0.5336582660675049, f_iou 0.6172454953193665: 26%|█████████▏ | 19/74 [00:20<00:42, 1.28it/s]
epoch 74 | loss 1.2999893426895142, f_iou 0.6188539266586304: 26%|█████████▏ | 19/74 [00:21<00:42, 1.28it/s]
epoch 74 | loss 1.2999893426895142, f_iou 0.6188539266586304: 27%|█████████▋ | 20/74 [00:21<00:41, 1.31it/s]
epoch 74 | loss 0.5685001015663147, f_iou 0.635212779045105: 27%|██████████ | 20/74 [00:21<00:41, 1.31it/s]
epoch 74 | loss 0.5685001015663147, f_iou 0.635212779045105: 28%|██████████▌ | 21/74 [00:21<00:39, 1.33it/s]
epoch 74 | loss 1.6879305839538574, f_iou 0.631115734577179: 28%|██████████▌ | 21/74 [00:22<00:39, 1.33it/s]
epoch 74 | loss 1.6879305839538574, f_iou 0.631115734577179: 30%|███████████ | 22/74 [00:22<00:38, 1.35it/s]
epoch 74 | loss 1.0548970699310303, f_iou 0.6164796948432922: 30%|██████████▋ | 22/74 [00:23<00:38, 1.35it/s]
epoch 74 | loss 1.0548970699310303, f_iou 0.6164796948432922: 31%|███████████▏ | 23/74 [00:23<00:37, 1.36it/s]
epoch 74 | loss 1.9143149852752686, f_iou 0.6165590286254883: 31%|███████████▏ | 23/74 [00:23<00:37, 1.36it/s]
epoch 74 | loss 1.9143149852752686, f_iou 0.6165590286254883: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 74 | loss 2.6819491386413574, f_iou 0.598153829574585: 32%|████████████ | 24/74 [00:24<00:36, 1.37it/s]
epoch 74 | loss 2.6819491386413574, f_iou 0.598153829574585: 34%|████████████▌ | 25/74 [00:24<00:35, 1.38it/s]
epoch 74 | loss 0.5005619525909424, f_iou 0.6122409701347351: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 74 | loss 0.5005619525909424, f_iou 0.6122409701347351: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 74 | loss 1.4301737546920776, f_iou 0.6167194843292236: 35%|████████████▋ | 26/74 [00:26<00:34, 1.39it/s]
epoch 74 | loss 1.4301737546920776, f_iou 0.6167194843292236: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.38it/s]
epoch 74 | loss 0.6382793188095093, f_iou 0.6273404955863953: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.38it/s]
epoch 74 | loss 0.6382793188095093, f_iou 0.6273404955863953: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 74 | loss 1.5011570453643799, f_iou 0.6299004554748535: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 74 | loss 1.5011570453643799, f_iou 0.6299004554748535: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 74 | loss 1.3757011890411377, f_iou 0.6362927556037903: 39%|██████████████ | 29/74 [00:28<00:32, 1.39it/s]
epoch 74 | loss 1.3757011890411377, f_iou 0.6362927556037903: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 74 | loss 1.2428417205810547, f_iou 0.6444390416145325: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 74 | loss 1.2428417205810547, f_iou 0.6444390416145325: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 74 | loss 1.1850820779800415, f_iou 0.6480278968811035: 42%|███████████████ | 31/74 [00:29<00:30, 1.40it/s]
epoch 74 | loss 1.1850820779800415, f_iou 0.6480278968811035: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 74 | loss 1.4546067714691162, f_iou 0.6500601768493652: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.39it/s]
epoch 74 | loss 1.4546067714691162, f_iou 0.6500601768493652: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 74 | loss 1.2554950714111328, f_iou 0.6511204242706299: 45%|████████████████ | 33/74 [00:31<00:29, 1.40it/s]
epoch 74 | loss 1.2554950714111328, f_iou 0.6511204242706299: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.40it/s]
epoch 74 | loss 0.7859488725662231, f_iou 0.6592634916305542: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.40it/s]
epoch 74 | loss 0.7859488725662231, f_iou 0.6592634916305542: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 74 | loss 0.7313293814659119, f_iou 0.6661537289619446: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 74 | loss 0.7313293814659119, f_iou 0.6661537289619446: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 74 | loss 0.6224735975265503, f_iou 0.6735374331474304: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.39it/s]
epoch 74 | loss 0.6224735975265503, f_iou 0.6735374331474304: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 74 | loss 3.389084815979004, f_iou 0.6626165509223938: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.39it/s]
epoch 74 | loss 3.389084815979004, f_iou 0.6626165509223938: 51%|███████████████████ | 38/74 [00:34<00:26, 1.37it/s]
epoch 74 | loss 2.3240277767181396, f_iou 0.651159405708313: 51%|███████████████████ | 38/74 [00:34<00:26, 1.37it/s]
epoch 74 | loss 2.3240277767181396, f_iou 0.651159405708313: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.35it/s]
epoch 74 | loss 3.849029779434204, f_iou 0.6487082242965698: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.35it/s]
epoch 74 | loss 3.849029779434204, f_iou 0.6487082242965698: 54%|████████████████████ | 40/74 [00:35<00:24, 1.37it/s]
epoch 74 | loss 0.8661553859710693, f_iou 0.6515743136405945: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.37it/s]
epoch 74 | loss 0.8661553859710693, f_iou 0.6515743136405945: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 74 | loss 0.6194573640823364, f_iou 0.6558572053909302: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 74 | loss 0.6194573640823364, f_iou 0.6558572053909302: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.36it/s]
epoch 74 | loss 1.4451582431793213, f_iou 0.6567298769950867: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.36it/s]
epoch 74 | loss 1.4451582431793213, f_iou 0.6567298769950867: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 74 | loss 0.7877561450004578, f_iou 0.6605170369148254: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.37it/s]
epoch 74 | loss 0.7877561450004578, f_iou 0.6605170369148254: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 74 | loss 0.9265251755714417, f_iou 0.6581870913505554: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.38it/s]
epoch 74 | loss 0.9265251755714417, f_iou 0.6581870913505554: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 74 | loss 2.217346668243408, f_iou 0.6549063920974731: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.38it/s]
epoch 74 | loss 2.217346668243408, f_iou 0.6549063920974731: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.38it/s]
epoch 74 | loss 0.7714571952819824, f_iou 0.6591824889183044: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 74 | loss 0.7714571952819824, f_iou 0.6591824889183044: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 74 | loss 1.0269025564193726, f_iou 0.6620230078697205: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 74 | loss 1.0269025564193726, f_iou 0.6620230078697205: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.35it/s]
epoch 74 | loss 0.4044346511363983, f_iou 0.6680333018302917: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.35it/s]
epoch 74 | loss 0.4044346511363983, f_iou 0.6680333018302917: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.33it/s]
epoch 74 | loss 0.0, f_iou 0.6733145713806152: 66%|█████████████████████████████████▊ | 49/74 [00:42<00:18, 1.33it/s]
epoch 74 | loss 0.0, f_iou 0.6733145713806152: 68%|██████████████████████████████████▍ | 50/74 [00:42<00:18, 1.32it/s]
epoch 74 | loss 0.7024848461151123, f_iou 0.6693316102027893: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.32it/s]
epoch 74 | loss 0.7024848461151123, f_iou 0.6693316102027893: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.32it/s]
epoch 74 | loss 3.15673828125, f_iou 0.6630606055259705: 69%|████████████████████████████▎ | 51/74 [00:44<00:17, 1.32it/s]
epoch 74 | loss 3.15673828125, f_iou 0.6630606055259705: 70%|████████████████████████████▊ | 52/74 [00:44<00:16, 1.34it/s]
epoch 74 | loss 0.6839566230773926, f_iou 0.6682853102684021: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.34it/s]
epoch 74 | loss 0.6839566230773926, f_iou 0.6682853102684021: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.36it/s]
epoch 74 | loss 0.7466027736663818, f_iou 0.6655808091163635: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.36it/s]
epoch 74 | loss 0.7466027736663818, f_iou 0.6655808091163635: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.37it/s]
epoch 74 | loss 0.727652907371521, f_iou 0.6703355312347412: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.37it/s]
epoch 74 | loss 0.727652907371521, f_iou 0.6703355312347412: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.38it/s]
epoch 74 | loss 1.4271961450576782, f_iou 0.6679404377937317: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.38it/s]
epoch 74 | loss 1.4271961450576782, f_iou 0.6679404377937317: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.38it/s]
epoch 74 | loss 1.7875608205795288, f_iou 0.6680184602737427: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.38it/s]
epoch 74 | loss 1.7875608205795288, f_iou 0.6680184602737427: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 74 | loss 1.0349276065826416, f_iou 0.6720231771469116: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 74 | loss 1.0349276065826416, f_iou 0.6720231771469116: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 74 | loss 0.8844009041786194, f_iou 0.6741656064987183: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 74 | loss 0.8844009041786194, f_iou 0.6741656064987183: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 74 | loss 0.3521299958229065, f_iou 0.6779442429542542: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 74 | loss 0.3521299958229065, f_iou 0.6779442429542542: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 74 | loss 1.2150511741638184, f_iou 0.6797217130661011: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 74 | loss 1.2150511741638184, f_iou 0.6797217130661011: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.40it/s]
epoch 74 | loss 0.8781406879425049, f_iou 0.683129072189331: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.40it/s]
epoch 74 | loss 0.8781406879425049, f_iou 0.683129072189331: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 74 | loss 0.7675442695617676, f_iou 0.6872000694274902: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 74 | loss 0.7675442695617676, f_iou 0.6872000694274902: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.37it/s]
epoch 74 | loss 1.1394234895706177, f_iou 0.6855111122131348: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 74 | loss 1.1394234895706177, f_iou 0.6855111122131348: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.34it/s]
epoch 74 | loss 1.3137388229370117, f_iou 0.6862829923629761: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.34it/s]
epoch 74 | loss 1.3137388229370117, f_iou 0.6862829923629761: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.36it/s]
epoch 74 | loss 0.5212113857269287, f_iou 0.689159095287323: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.36it/s]
epoch 74 | loss 0.5212113857269287, f_iou 0.689159095287323: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.37it/s]
epoch 74 | loss 1.0906518697738647, f_iou 0.6848801970481873: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.37it/s]
epoch 74 | loss 1.0906518697738647, f_iou 0.6848801970481873: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 74 | loss 0.4497755765914917, f_iou 0.6867631673812866: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 74 | loss 0.4497755765914917, f_iou 0.6867631673812866: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 74 | loss 0.9688405394554138, f_iou 0.6895985007286072: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 74 | loss 0.9688405394554138, f_iou 0.6895985007286072: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 74 | loss 0.5814751386642456, f_iou 0.6891621947288513: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 74 | loss 0.5814751386642456, f_iou 0.6891621947288513: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 74 | loss 2.335092782974243, f_iou 0.6891918182373047: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 74 | loss 2.335092782974243, f_iou 0.6891918182373047: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 74 | loss 1.234192132949829, f_iou 0.6893839240074158: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 74 | loss 1.234192132949829, f_iou 0.6893839240074158: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 74 | loss 2.975242853164673, f_iou 0.6812390089035034: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 74 | loss 2.975242853164673, f_iou 0.6812390089035034: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 74 | loss 1.0317864418029785, f_iou 0.67613285779953: 99%|█████████████████████████████████████▍| 73/74 [01:00<00:00, 1.41it/s]
epoch 74 | loss 1.0317864418029785, f_iou 0.67613285779953: 100%|██████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 74 | loss 1.0317864418029785, f_iou 0.67613285779953: 100%|██████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 74 | valid.f_iou 0.7614799737930298, valid.f_f-score 0.89544: 0%| | 0/16 [00:05, ?it/s]
epoch 74 | valid.f_iou 0.7614799737930298, valid.f_f-score 0.89544: 6%|█▉ | 1/16 [00:05<01:22, 5.51s/it]
epoch 74 | valid.f_iou 0.6436700224876404, valid.f_f-score 0.8319: 6%|██ | 1/16 [00:05<01:22, 5.51s/it]
epoch 74 | valid.f_iou 0.6436700224876404, valid.f_f-score 0.8319: 12%|████ | 2/16 [00:05<00:35, 2.55s/it]
epoch 74 | valid.f_iou 0.5359500050544739, valid.f_f-score 0.76172: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 74 | valid.f_iou 0.5359500050544739, valid.f_f-score 0.76172: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 74 | valid.f_iou 0.5821200013160706, valid.f_f-score 0.77277: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 74 | valid.f_iou 0.5821200013160706, valid.f_f-score 0.77277: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 74 | valid.f_iou 0.5763999819755554, valid.f_f-score 0.76782: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 74 | valid.f_iou 0.5763999819755554, valid.f_f-score 0.76782: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 74 | valid.f_iou 0.5405300259590149, valid.f_f-score 0.73027: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 74 | valid.f_iou 0.5405300259590149, valid.f_f-score 0.73027: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 74 | valid.f_iou 0.5664499998092651, valid.f_f-score 0.74934: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 74 | valid.f_iou 0.5664499998092651, valid.f_f-score 0.74934: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 74 | valid.f_iou 0.5452700257301331, valid.f_f-score 0.73612: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 74 | valid.f_iou 0.5452700257301331, valid.f_f-score 0.73612: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 74 | valid.f_iou 0.5468699932098389, valid.f_f-score 0.72492: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 74 | valid.f_iou 0.5468699932098389, valid.f_f-score 0.72492: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 74 | valid.f_iou 0.5420600175857544, valid.f_f-score 0.72652: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 74 | valid.f_iou 0.5420600175857544, valid.f_f-score 0.72652: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 74 | valid.f_iou 0.5393999814987183, valid.f_f-score 0.72501: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 74 | valid.f_iou 0.5393999814987183, valid.f_f-score 0.72501: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 74 | valid.f_iou 0.5635200142860413, valid.f_f-score 0.74209: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.25it/s]
epoch 74 | valid.f_iou 0.5635200142860413, valid.f_f-score 0.74209: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 74 | valid.f_iou 0.5633100271224976, valid.f_f-score 0.74805: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 74 | valid.f_iou 0.5633100271224976, valid.f_f-score 0.74805: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 74 | valid.f_iou 0.5569599866867065, valid.f_f-score 0.74334: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 74 | valid.f_iou 0.5569599866867065, valid.f_f-score 0.74334: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 74 | valid.f_iou 0.5587700009346008, valid.f_f-score 0.74171: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 74 | valid.f_iou 0.5587700009346008, valid.f_f-score 0.74171: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 74 | valid.f_iou 0.5612800121307373, valid.f_f-score 0.73869: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 74 | valid.f_iou 0.5612800121307373, valid.f_f-score 0.73869: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 74 | valid.f_iou 0.5612800121307373, valid.f_f-score 0.73869: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 74 | valid.f_iou 0.8183199763298035, valid.f_f-score 0.90333: 0%| | 0/16 [00:05, ?it/s]
epoch 74 | valid.f_iou 0.8183199763298035, valid.f_f-score 0.90333: 6%|█▉ | 1/16 [00:05<01:19, 5.33s/it]
epoch 74 | valid.f_iou 0.8464699983596802, valid.f_f-score 0.9268: 6%|██ | 1/16 [00:05<01:19, 5.33s/it]
epoch 74 | valid.f_iou 0.8464699983596802, valid.f_f-score 0.9268: 12%|████ | 2/16 [00:05<00:34, 2.48s/it]
epoch 74 | valid.f_iou 0.7329400181770325, valid.f_f-score 0.84831: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 74 | valid.f_iou 0.7329400181770325, valid.f_f-score 0.84831: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 74 | valid.f_iou 0.6955400109291077, valid.f_f-score 0.78994: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 74 | valid.f_iou 0.6955400109291077, valid.f_f-score 0.78994: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 74 | valid.f_iou 0.6852999925613403, valid.f_f-score 0.79189: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 74 | valid.f_iou 0.6852999925613403, valid.f_f-score 0.79189: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 74 | valid.f_iou 0.6448900103569031, valid.f_f-score 0.75323: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 74 | valid.f_iou 0.6448900103569031, valid.f_f-score 0.75323: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 74 | valid.f_iou 0.6642400026321411, valid.f_f-score 0.77355: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 74 | valid.f_iou 0.6642400026321411, valid.f_f-score 0.77355: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.66it/s]
epoch 74 | valid.f_iou 0.6625099778175354, valid.f_f-score 0.7775: 44%|██████████████ | 7/16 [00:08<00:05, 1.66it/s]
epoch 74 | valid.f_iou 0.6625099778175354, valid.f_f-score 0.7775: 50%|████████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 74 | valid.f_iou 0.6851599812507629, valid.f_f-score 0.79511: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 74 | valid.f_iou 0.6851599812507629, valid.f_f-score 0.79511: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 74 | valid.f_iou 0.6891599893569946, valid.f_f-score 0.80396: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.03it/s]
epoch 74 | valid.f_iou 0.6891599893569946, valid.f_f-score 0.80396: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 74 | valid.f_iou 0.6891499757766724, valid.f_f-score 0.80157: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.21it/s]
epoch 74 | valid.f_iou 0.6891499757766724, valid.f_f-score 0.80157: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 74 | valid.f_iou 0.7038400173187256, valid.f_f-score 0.81254: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 74 | valid.f_iou 0.7038400173187256, valid.f_f-score 0.81254: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 74 | valid.f_iou 0.7160599827766418, valid.f_f-score 0.82078: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.47it/s]
epoch 74 | valid.f_iou 0.7160599827766418, valid.f_f-score 0.82078: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 74 | valid.f_iou 0.7091900110244751, valid.f_f-score 0.81481: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 74 | valid.f_iou 0.7091900110244751, valid.f_f-score 0.81481: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 74 | valid.f_iou 0.7082899808883667, valid.f_f-score 0.81092: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 74 | valid.f_iou 0.7082899808883667, valid.f_f-score 0.81092: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 74 | valid.f_iou 0.7062900066375732, valid.f_f-score 0.80686: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 74 | valid.f_iou 0.7062900066375732, valid.f_f-score 0.80686: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 74 | valid.f_iou 0.7062900066375732, valid.f_f-score 0.80686: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 74 | valid.f_iou 0.8183199763298035, valid.f_f-score 0.90333: 0%| | 0/16 [00:05, ?it/s]
epoch 74 | valid.f_iou 0.8183199763298035, valid.f_f-score 0.90333: 6%|█▉ | 1/16 [00:05<01:16, 5.12s/it]
epoch 74 | valid.f_iou 0.8251500129699707, valid.f_f-score 0.90513: 6%|█▉ | 1/16 [00:05<01:16, 5.12s/it]
epoch 74 | valid.f_iou 0.8251500129699707, valid.f_f-score 0.90513: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 74 | valid.f_iou 0.718720018863678, valid.f_f-score 0.83386: 12%|████ | 2/16 [00:06<00:33, 2.37s/it]
epoch 74 | valid.f_iou 0.718720018863678, valid.f_f-score 0.83386: 19%|██████ | 3/16 [00:06<00:19, 1.50s/it]
epoch 74 | valid.f_iou 0.6862000226974487, valid.f_f-score 0.77173: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 74 | valid.f_iou 0.6862000226974487, valid.f_f-score 0.77173: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 74 | valid.f_iou 0.6818600296974182, valid.f_f-score 0.77732: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 74 | valid.f_iou 0.6818600296974182, valid.f_f-score 0.77732: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 74 | valid.f_iou 0.6420199871063232, valid.f_f-score 0.74109: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 74 | valid.f_iou 0.6420199871063232, valid.f_f-score 0.74109: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 74 | valid.f_iou 0.663919985294342, valid.f_f-score 0.76315: 38%|████████████ | 6/16 [00:07<00:06, 1.46it/s]
epoch 74 | valid.f_iou 0.663919985294342, valid.f_f-score 0.76315: 44%|██████████████ | 7/16 [00:07<00:05, 1.74it/s]
epoch 74 | valid.f_iou 0.6622400283813477, valid.f_f-score 0.7684: 44%|██████████████ | 7/16 [00:07<00:05, 1.74it/s]
epoch 74 | valid.f_iou 0.6622400283813477, valid.f_f-score 0.7684: 50%|████████████████ | 8/16 [00:07<00:04, 1.97it/s]
epoch 74 | valid.f_iou 0.6857900023460388, valid.f_f-score 0.78702: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.97it/s]
epoch 74 | valid.f_iou 0.6857900023460388, valid.f_f-score 0.78702: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 74 | valid.f_iou 0.6876199841499329, valid.f_f-score 0.79335: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 74 | valid.f_iou 0.6876199841499329, valid.f_f-score 0.79335: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 74 | valid.f_iou 0.6718199849128723, valid.f_f-score 0.78073: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.33it/s]
epoch 74 | valid.f_iou 0.6718199849128723, valid.f_f-score 0.78073: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 74 | valid.f_iou 0.6879500150680542, valid.f_f-score 0.79344: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 74 | valid.f_iou 0.6879500150680542, valid.f_f-score 0.79344: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 74 | valid.f_iou 0.7013999819755554, valid.f_f-score 0.8045: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.52it/s]
epoch 74 | valid.f_iou 0.7013999819755554, valid.f_f-score 0.8045: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.58it/s]
epoch 74 | valid.f_iou 0.6923900246620178, valid.f_f-score 0.7967: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.58it/s]
epoch 74 | valid.f_iou 0.6923900246620178, valid.f_f-score 0.7967: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.61it/s]
epoch 74 | valid.f_iou 0.6926100254058838, valid.f_f-score 0.79401: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 74 | valid.f_iou 0.6926100254058838, valid.f_f-score 0.79401: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 74 | valid.f_iou 0.6895300149917603, valid.f_f-score 0.78941: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 74 | valid.f_iou 0.6895300149917603, valid.f_f-score 0.78941: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 74 | valid.f_iou 0.6895300149917603, valid.f_f-score 0.78941: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 75 | loss 0.8561309576034546, f_iou 0.8592379689216614: 0%| | 0/74 [00:06, ?it/s]
epoch 75 | loss 0.8561309576034546, f_iou 0.8592379689216614: 1%|▌ | 1/74 [00:06<07:18, 6.01s/it]
epoch 75 | loss 0.8077061772346497, f_iou 0.7268517017364502: 1%|▌ | 1/74 [00:06<07:18, 6.01s/it]
epoch 75 | loss 0.8077061772346497, f_iou 0.7268517017364502: 3%|█ | 2/74 [00:06<03:33, 2.96s/it]
epoch 75 | loss 0.6941422820091248, f_iou 0.7344781756401062: 3%|█ | 2/74 [00:07<03:33, 2.96s/it]
epoch 75 | loss 0.6941422820091248, f_iou 0.7344781756401062: 4%|█▌ | 3/74 [00:07<02:25, 2.05s/it]
epoch 75 | loss 1.0295450687408447, f_iou 0.7865602374076843: 4%|█▌ | 3/74 [00:08<02:25, 2.05s/it]
epoch 75 | loss 1.0295450687408447, f_iou 0.7865602374076843: 5%|██ | 4/74 [00:08<01:50, 1.59s/it]
epoch 75 | loss 1.9951868057250977, f_iou 0.71608966588974: 5%|██ | 4/74 [00:09<01:50, 1.59s/it]
epoch 75 | loss 1.9951868057250977, f_iou 0.71608966588974: 7%|██▋ | 5/74 [00:09<01:34, 1.36s/it]
epoch 75 | loss 0.7175355553627014, f_iou 0.7413486838340759: 7%|██▌ | 5/74 [00:10<01:34, 1.36s/it]
epoch 75 | loss 0.7175355553627014, f_iou 0.7413486838340759: 8%|███ | 6/74 [00:10<01:19, 1.17s/it]
epoch 75 | loss 1.7130615711212158, f_iou 0.7269965410232544: 8%|███ | 6/74 [00:11<01:19, 1.17s/it]
epoch 75 | loss 1.7130615711212158, f_iou 0.7269965410232544: 9%|███▌ | 7/74 [00:11<01:10, 1.05s/it]
epoch 75 | loss 1.2358989715576172, f_iou 0.7235649228096008: 9%|███▌ | 7/74 [00:12<01:10, 1.05s/it]
epoch 75 | loss 1.2358989715576172, f_iou 0.7235649228096008: 11%|████ | 8/74 [00:12<01:03, 1.03it/s]
epoch 75 | loss 0.3649364113807678, f_iou 0.7512134313583374: 11%|████ | 8/74 [00:12<01:03, 1.03it/s]
epoch 75 | loss 0.3649364113807678, f_iou 0.7512134313583374: 12%|████▌ | 9/74 [00:12<00:59, 1.10it/s]
epoch 75 | loss 0.8457287549972534, f_iou 0.7619572281837463: 12%|████▌ | 9/74 [00:13<00:59, 1.10it/s]
epoch 75 | loss 0.8457287549972534, f_iou 0.7619572281837463: 14%|████▊ | 10/74 [00:13<00:55, 1.15it/s]
epoch 75 | loss 1.2781254053115845, f_iou 0.6935245990753174: 14%|████▊ | 10/74 [00:14<00:55, 1.15it/s]
epoch 75 | loss 1.2781254053115845, f_iou 0.6935245990753174: 15%|█████▎ | 11/74 [00:14<00:53, 1.18it/s]
epoch 75 | loss 1.0112050771713257, f_iou 0.6357308626174927: 15%|█████▎ | 11/74 [00:15<00:53, 1.18it/s]
epoch 75 | loss 1.0112050771713257, f_iou 0.6357308626174927: 16%|█████▊ | 12/74 [00:15<00:51, 1.22it/s]
epoch 75 | loss 0.6559866666793823, f_iou 0.6521851420402527: 16%|█████▊ | 12/74 [00:15<00:51, 1.22it/s]
epoch 75 | loss 0.6559866666793823, f_iou 0.6521851420402527: 18%|██████▎ | 13/74 [00:15<00:48, 1.25it/s]
epoch 75 | loss 1.6543512344360352, f_iou 0.6391081213951111: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 75 | loss 1.6543512344360352, f_iou 0.6391081213951111: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 75 | loss 1.9819025993347168, f_iou 0.6389470100402832: 19%|██████▊ | 14/74 [00:17<00:46, 1.28it/s]
epoch 75 | loss 1.9819025993347168, f_iou 0.6389470100402832: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 75 | loss 3.5816383361816406, f_iou 0.643147885799408: 20%|███████▌ | 15/74 [00:18<00:45, 1.29it/s]
epoch 75 | loss 3.5816383361816406, f_iou 0.643147885799408: 22%|████████ | 16/74 [00:18<00:44, 1.29it/s]
epoch 75 | loss 1.9897189140319824, f_iou 0.637057900428772: 22%|████████ | 16/74 [00:18<00:44, 1.29it/s]
epoch 75 | loss 1.9897189140319824, f_iou 0.637057900428772: 23%|████████▌ | 17/74 [00:18<00:43, 1.31it/s]
epoch 75 | loss 0.8447307348251343, f_iou 0.6519955396652222: 23%|████████▎ | 17/74 [00:19<00:43, 1.31it/s]
epoch 75 | loss 0.8447307348251343, f_iou 0.6519955396652222: 24%|████████▊ | 18/74 [00:19<00:42, 1.33it/s]
epoch 75 | loss 1.7855840921401978, f_iou 0.6478977203369141: 24%|████████▊ | 18/74 [00:20<00:42, 1.33it/s]
epoch 75 | loss 1.7855840921401978, f_iou 0.6478977203369141: 26%|█████████▏ | 19/74 [00:20<00:40, 1.34it/s]
epoch 75 | loss 1.394606351852417, f_iou 0.6269372701644897: 26%|█████████▌ | 19/74 [00:21<00:40, 1.34it/s]
epoch 75 | loss 1.394606351852417, f_iou 0.6269372701644897: 27%|██████████ | 20/74 [00:21<00:40, 1.33it/s]
epoch 75 | loss 0.5902193784713745, f_iou 0.5970830917358398: 27%|█████████▋ | 20/74 [00:21<00:40, 1.33it/s]
epoch 75 | loss 0.5902193784713745, f_iou 0.5970830917358398: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 75 | loss 0.7550722360610962, f_iou 0.6099990606307983: 28%|██████████▏ | 21/74 [00:22<00:40, 1.32it/s]
epoch 75 | loss 0.7550722360610962, f_iou 0.6099990606307983: 30%|██████████▋ | 22/74 [00:22<00:38, 1.34it/s]
epoch 75 | loss 0.5344301462173462, f_iou 0.6129158139228821: 30%|██████████▋ | 22/74 [00:23<00:38, 1.34it/s]
epoch 75 | loss 0.5344301462173462, f_iou 0.6129158139228821: 31%|███████████▏ | 23/74 [00:23<00:37, 1.35it/s]
epoch 75 | loss 1.7220594882965088, f_iou 0.5972965955734253: 31%|███████████▏ | 23/74 [00:24<00:37, 1.35it/s]
epoch 75 | loss 1.7220594882965088, f_iou 0.5972965955734253: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 75 | loss 0.8812856674194336, f_iou 0.5759655833244324: 32%|███████████▋ | 24/74 [00:24<00:36, 1.36it/s]
epoch 75 | loss 0.8812856674194336, f_iou 0.5759655833244324: 34%|████████████▏ | 25/74 [00:24<00:35, 1.36it/s]
epoch 75 | loss 0.6226330399513245, f_iou 0.5888158679008484: 34%|████████████▏ | 25/74 [00:25<00:35, 1.36it/s]
epoch 75 | loss 0.6226330399513245, f_iou 0.5888158679008484: 35%|████████████▋ | 26/74 [00:25<00:35, 1.34it/s]
epoch 75 | loss 0.5825818181037903, f_iou 0.5997719764709473: 35%|████████████▋ | 26/74 [00:26<00:35, 1.34it/s]
epoch 75 | loss 0.5825818181037903, f_iou 0.5997719764709473: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.31it/s]
epoch 75 | loss 1.4851019382476807, f_iou 0.6033761501312256: 36%|█████████████▏ | 27/74 [00:27<00:35, 1.31it/s]
epoch 75 | loss 1.4851019382476807, f_iou 0.6033761501312256: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.31it/s]
epoch 75 | loss 0.9307321906089783, f_iou 0.611391544342041: 38%|██████████████ | 28/74 [00:27<00:35, 1.31it/s]
epoch 75 | loss 0.9307321906089783, f_iou 0.611391544342041: 39%|██████████████▌ | 29/74 [00:27<00:34, 1.30it/s]
epoch 75 | loss 1.7500941753387451, f_iou 0.6188057661056519: 39%|██████████████ | 29/74 [00:28<00:34, 1.30it/s]
epoch 75 | loss 1.7500941753387451, f_iou 0.6188057661056519: 41%|██████████████▌ | 30/74 [00:28<00:34, 1.29it/s]
epoch 75 | loss 1.1380507946014404, f_iou 0.6205728054046631: 41%|██████████████▌ | 30/74 [00:29<00:34, 1.29it/s]
epoch 75 | loss 1.1380507946014404, f_iou 0.6205728054046631: 42%|███████████████ | 31/74 [00:29<00:33, 1.29it/s]
epoch 75 | loss 1.268686056137085, f_iou 0.6287233233451843: 42%|███████████████▌ | 31/74 [00:30<00:33, 1.29it/s]
epoch 75 | loss 1.268686056137085, f_iou 0.6287233233451843: 43%|████████████████ | 32/74 [00:30<00:32, 1.29it/s]
epoch 75 | loss 0.42514568567276, f_iou 0.6097040176391602: 43%|████████████████▍ | 32/74 [00:31<00:32, 1.29it/s]
epoch 75 | loss 0.42514568567276, f_iou 0.6097040176391602: 45%|████████████████▉ | 33/74 [00:31<00:31, 1.28it/s]
epoch 75 | loss 0.8617565035820007, f_iou 0.6171711683273315: 45%|████████████████ | 33/74 [00:31<00:31, 1.28it/s]
epoch 75 | loss 0.8617565035820007, f_iou 0.6171711683273315: 46%|████████████████▌ | 34/74 [00:31<00:31, 1.28it/s]
epoch 75 | loss 1.238734483718872, f_iou 0.6021140813827515: 46%|█████████████████ | 34/74 [00:32<00:31, 1.28it/s]
epoch 75 | loss 1.238734483718872, f_iou 0.6021140813827515: 47%|█████████████████▌ | 35/74 [00:32<00:30, 1.27it/s]
epoch 75 | loss 0.9878708720207214, f_iou 0.607048511505127: 47%|█████████████████▌ | 35/74 [00:33<00:30, 1.27it/s]
epoch 75 | loss 0.9878708720207214, f_iou 0.607048511505127: 49%|██████████████████ | 36/74 [00:33<00:29, 1.27it/s]
epoch 75 | loss 1.0045228004455566, f_iou 0.6158758997917175: 49%|█████████████████▌ | 36/74 [00:34<00:29, 1.27it/s]
epoch 75 | loss 1.0045228004455566, f_iou 0.6158758997917175: 50%|██████████████████ | 37/74 [00:34<00:29, 1.27it/s]
epoch 75 | loss 1.1461879014968872, f_iou 0.6123776435852051: 50%|██████████████████ | 37/74 [00:35<00:29, 1.27it/s]
epoch 75 | loss 1.1461879014968872, f_iou 0.6123776435852051: 51%|██████████████████▍ | 38/74 [00:35<00:28, 1.27it/s]
epoch 75 | loss 1.3156778812408447, f_iou 0.6171308755874634: 51%|██████████████████▍ | 38/74 [00:35<00:28, 1.27it/s]
epoch 75 | loss 1.3156778812408447, f_iou 0.6171308755874634: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.30it/s]
epoch 75 | loss 1.7981237173080444, f_iou 0.6195529103279114: 53%|██████████████████▉ | 39/74 [00:36<00:26, 1.30it/s]
epoch 75 | loss 1.7981237173080444, f_iou 0.6195529103279114: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.33it/s]
epoch 75 | loss 1.6721417903900146, f_iou 0.619613766670227: 54%|████████████████████ | 40/74 [00:37<00:25, 1.33it/s]
epoch 75 | loss 1.6721417903900146, f_iou 0.619613766670227: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.34it/s]
epoch 75 | loss 0.6501175165176392, f_iou 0.6146354079246521: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.34it/s]
epoch 75 | loss 0.6501175165176392, f_iou 0.6146354079246521: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.35it/s]
epoch 75 | loss 1.0625290870666504, f_iou 0.6195607781410217: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.35it/s]
epoch 75 | loss 1.0625290870666504, f_iou 0.6195607781410217: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.36it/s]
epoch 75 | loss 0.9021734595298767, f_iou 0.6233245134353638: 58%|████████████████████▉ | 43/74 [00:39<00:22, 1.36it/s]
epoch 75 | loss 0.9021734595298767, f_iou 0.6233245134353638: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.34it/s]
epoch 75 | loss 1.2322404384613037, f_iou 0.628296971321106: 59%|██████████████████████ | 44/74 [00:40<00:22, 1.34it/s]
epoch 75 | loss 1.2322404384613037, f_iou 0.628296971321106: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.32it/s]
epoch 75 | loss 0.9889146089553833, f_iou 0.6292265057563782: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.32it/s]
epoch 75 | loss 0.9889146089553833, f_iou 0.6292265057563782: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.30it/s]
epoch 75 | loss 2.5378541946411133, f_iou 0.626214325428009: 62%|███████████████████████ | 46/74 [00:41<00:21, 1.30it/s]
epoch 75 | loss 2.5378541946411133, f_iou 0.626214325428009: 64%|███████████████████████▌ | 47/74 [00:41<00:20, 1.32it/s]
epoch 75 | loss 1.3125555515289307, f_iou 0.6306483149528503: 64%|██████████████████████▊ | 47/74 [00:42<00:20, 1.32it/s]
epoch 75 | loss 1.3125555515289307, f_iou 0.6306483149528503: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.34it/s]
epoch 75 | loss 0.636342465877533, f_iou 0.6368115544319153: 65%|████████████████████████ | 48/74 [00:43<00:19, 1.34it/s]
epoch 75 | loss 0.636342465877533, f_iou 0.6368115544319153: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.35it/s]
epoch 75 | loss 1.0732109546661377, f_iou 0.6421141624450684: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.35it/s]
epoch 75 | loss 1.0732109546661377, f_iou 0.6421141624450684: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.36it/s]
epoch 75 | loss 3.317978858947754, f_iou 0.6438658833503723: 68%|█████████████████████████ | 50/74 [00:44<00:17, 1.36it/s]
epoch 75 | loss 3.317978858947754, f_iou 0.6438658833503723: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.37it/s]
epoch 75 | loss 0.8657491207122803, f_iou 0.6478857398033142: 69%|████████████████████████▊ | 51/74 [00:45<00:16, 1.37it/s]
epoch 75 | loss 0.8657491207122803, f_iou 0.6478857398033142: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.38it/s]
epoch 75 | loss 0.7658053040504456, f_iou 0.6524460315704346: 70%|█████████████████████████▎ | 52/74 [00:46<00:15, 1.38it/s]
epoch 75 | loss 0.7658053040504456, f_iou 0.6524460315704346: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.38it/s]
epoch 75 | loss 0.0, f_iou 0.6584823131561279: 72%|████████████████████████████████████▌ | 53/74 [00:46<00:15, 1.38it/s]
epoch 75 | loss 0.0, f_iou 0.6584823131561279: 73%|█████████████████████████████████████▏ | 54/74 [00:46<00:14, 1.38it/s]
epoch 75 | loss 1.1226224899291992, f_iou 0.6552796363830566: 73%|██████████████████████████▎ | 54/74 [00:47<00:14, 1.38it/s]
epoch 75 | loss 1.1226224899291992, f_iou 0.6552796363830566: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 75 | loss 0.09375, f_iou 0.6612388491630554: 74%|██████████████████████████████████▉ | 55/74 [00:48<00:13, 1.39it/s]
epoch 75 | loss 0.09375, f_iou 0.6612388491630554: 76%|███████████████████████████████████▌ | 56/74 [00:48<00:12, 1.39it/s]
epoch 75 | loss 2.0438144207000732, f_iou 0.6599804162979126: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 75 | loss 2.0438144207000732, f_iou 0.6599804162979126: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 75 | loss 0.36244356632232666, f_iou 0.6654230952262878: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.39it/s]
epoch 75 | loss 0.36244356632232666, f_iou 0.6654230952262878: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.39it/s]
epoch 75 | loss 0.9520213603973389, f_iou 0.667773425579071: 78%|█████████████████████████████ | 58/74 [00:50<00:11, 1.39it/s]
epoch 75 | loss 0.9520213603973389, f_iou 0.667773425579071: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.39it/s]
epoch 75 | loss 1.0615116357803345, f_iou 0.6721080541610718: 80%|████████████████████████████▋ | 59/74 [00:51<00:10, 1.39it/s]
epoch 75 | loss 1.0615116357803345, f_iou 0.6721080541610718: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.38it/s]
epoch 75 | loss 2.3909785747528076, f_iou 0.6635436415672302: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.38it/s]
epoch 75 | loss 2.3909785747528076, f_iou 0.6635436415672302: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.38it/s]
epoch 75 | loss 2.6456375122070312, f_iou 0.6586848497390747: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.38it/s]
epoch 75 | loss 2.6456375122070312, f_iou 0.6586848497390747: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 75 | loss 2.85888671875, f_iou 0.6640877723693848: 84%|██████████████████████████████████▎ | 62/74 [00:53<00:08, 1.39it/s]
epoch 75 | loss 2.85888671875, f_iou 0.6640877723693848: 85%|██████████████████████████████████▉ | 63/74 [00:53<00:07, 1.39it/s]
epoch 75 | loss 3.856733798980713, f_iou 0.6605298519134521: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.39it/s]
epoch 75 | loss 3.856733798980713, f_iou 0.6605298519134521: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.39it/s]
epoch 75 | loss 1.55833899974823, f_iou 0.6585630774497986: 86%|████████████████████████████████▊ | 64/74 [00:54<00:07, 1.39it/s]
epoch 75 | loss 1.55833899974823, f_iou 0.6585630774497986: 88%|█████████████████████████████████▍ | 65/74 [00:54<00:06, 1.39it/s]
epoch 75 | loss 2.6188149452209473, f_iou 0.6546937227249146: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.39it/s]
epoch 75 | loss 2.6188149452209473, f_iou 0.6546937227249146: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 75 | loss 0.9009726643562317, f_iou 0.6465749144554138: 89%|████████████████████████████████ | 66/74 [00:56<00:05, 1.39it/s]
epoch 75 | loss 0.9009726643562317, f_iou 0.6465749144554138: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 75 | loss 2.856214761734009, f_iou 0.6422313451766968: 91%|█████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 75 | loss 2.856214761734009, f_iou 0.6422313451766968: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 75 | loss 1.914823293685913, f_iou 0.6427968740463257: 92%|██████████████████████████████████ | 68/74 [00:57<00:04, 1.39it/s]
epoch 75 | loss 1.914823293685913, f_iou 0.6427968740463257: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 75 | loss 0.7228622436523438, f_iou 0.6454964280128479: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.40it/s]
epoch 75 | loss 0.7228622436523438, f_iou 0.6454964280128479: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 75 | loss 2.2672016620635986, f_iou 0.6386080980300903: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 75 | loss 2.2672016620635986, f_iou 0.6386080980300903: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 75 | loss 1.1951552629470825, f_iou 0.6373597383499146: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 75 | loss 1.1951552629470825, f_iou 0.6373597383499146: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 75 | loss 1.600961685180664, f_iou 0.6358125805854797: 97%|████████████████████████████████████ | 72/74 [01:00<00:01, 1.40it/s]
epoch 75 | loss 1.600961685180664, f_iou 0.6358125805854797: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 75 | loss 2.9664649963378906, f_iou 0.6378249526023865: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.40it/s]
epoch 75 | loss 2.9664649963378906, f_iou 0.6378249526023865: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.40it/s]
epoch 75 | loss 2.9664649963378906, f_iou 0.6378249526023865: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 75 | valid.f_iou 0.6716399788856506, valid.f_f-score 0.82362: 0%| | 0/16 [00:05, ?it/s]
epoch 75 | valid.f_iou 0.6716399788856506, valid.f_f-score 0.82362: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 75 | valid.f_iou 0.6569899916648865, valid.f_f-score 0.87675: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 75 | valid.f_iou 0.6569899916648865, valid.f_f-score 0.87675: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 75 | valid.f_iou 0.5217000246047974, valid.f_f-score 0.78107: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 75 | valid.f_iou 0.5217000246047974, valid.f_f-score 0.78107: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 75 | valid.f_iou 0.5574899911880493, valid.f_f-score 0.76779: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 75 | valid.f_iou 0.5574899911880493, valid.f_f-score 0.76779: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 75 | valid.f_iou 0.5686399936676025, valid.f_f-score 0.77807: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 75 | valid.f_iou 0.5686399936676025, valid.f_f-score 0.77807: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 75 | valid.f_iou 0.5354499816894531, valid.f_f-score 0.74692: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 75 | valid.f_iou 0.5354499816894531, valid.f_f-score 0.74692: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 75 | valid.f_iou 0.5553900003433228, valid.f_f-score 0.76394: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 75 | valid.f_iou 0.5553900003433228, valid.f_f-score 0.76394: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 75 | valid.f_iou 0.5332800149917603, valid.f_f-score 0.74415: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 75 | valid.f_iou 0.5332800149917603, valid.f_f-score 0.74415: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 75 | valid.f_iou 0.5517100095748901, valid.f_f-score 0.75153: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 75 | valid.f_iou 0.5517100095748901, valid.f_f-score 0.75153: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 75 | valid.f_iou 0.5507299900054932, valid.f_f-score 0.75908: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 75 | valid.f_iou 0.5507299900054932, valid.f_f-score 0.75908: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.97it/s]
epoch 75 | valid.f_iou 0.5434499979019165, valid.f_f-score 0.74737: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.97it/s]
epoch 75 | valid.f_iou 0.5434499979019165, valid.f_f-score 0.74737: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.11it/s]
epoch 75 | valid.f_iou 0.55663001537323, valid.f_f-score 0.75969: 69%|██████████████████████ | 11/16 [00:10<00:02, 2.11it/s]
epoch 75 | valid.f_iou 0.55663001537323, valid.f_f-score 0.75969: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.23it/s]
epoch 75 | valid.f_iou 0.5528299808502197, valid.f_f-score 0.76538: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 75 | valid.f_iou 0.5528299808502197, valid.f_f-score 0.76538: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 75 | valid.f_iou 0.5488499999046326, valid.f_f-score 0.76167: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.37it/s]
epoch 75 | valid.f_iou 0.5488499999046326, valid.f_f-score 0.76167: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.45it/s]
epoch 75 | valid.f_iou 0.5546200275421143, valid.f_f-score 0.76026: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.45it/s]
epoch 75 | valid.f_iou 0.5546200275421143, valid.f_f-score 0.76026: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.53it/s]
epoch 75 | valid.f_iou 0.5655900239944458, valid.f_f-score 0.76436: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.53it/s]
epoch 75 | valid.f_iou 0.5655900239944458, valid.f_f-score 0.76436: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.56it/s]
epoch 75 | valid.f_iou 0.5655900239944458, valid.f_f-score 0.76436: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 75 | valid.f_iou 0.7948399782180786, valid.f_f-score 0.77459: 0%| | 0/16 [00:05, ?it/s]
epoch 75 | valid.f_iou 0.7948399782180786, valid.f_f-score 0.77459: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 75 | valid.f_iou 0.8292700052261353, valid.f_f-score 0.86058: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 75 | valid.f_iou 0.8292700052261353, valid.f_f-score 0.86058: 12%|███▉ | 2/16 [00:05<00:33, 2.42s/it]
epoch 75 | valid.f_iou 0.74822998046875, valid.f_f-score 0.83244: 12%|████▏ | 2/16 [00:06<00:33, 2.42s/it]
epoch 75 | valid.f_iou 0.74822998046875, valid.f_f-score 0.83244: 19%|██████▏ | 3/16 [00:06<00:19, 1.52s/it]
epoch 75 | valid.f_iou 0.737060010433197, valid.f_f-score 0.81077: 19%|██████ | 3/16 [00:06<00:19, 1.52s/it]
epoch 75 | valid.f_iou 0.737060010433197, valid.f_f-score 0.81077: 25%|████████ | 4/16 [00:06<00:13, 1.10s/it]
epoch 75 | valid.f_iou 0.6963000297546387, valid.f_f-score 0.78652: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 75 | valid.f_iou 0.6963000297546387, valid.f_f-score 0.78652: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 75 | valid.f_iou 0.6921600103378296, valid.f_f-score 0.78227: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 75 | valid.f_iou 0.6921600103378296, valid.f_f-score 0.78227: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 75 | valid.f_iou 0.6913400292396545, valid.f_f-score 0.78977: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 75 | valid.f_iou 0.6913400292396545, valid.f_f-score 0.78977: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 75 | valid.f_iou 0.6860499978065491, valid.f_f-score 0.79023: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 75 | valid.f_iou 0.6860499978065491, valid.f_f-score 0.79023: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 75 | valid.f_iou 0.6990399956703186, valid.f_f-score 0.79795: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 75 | valid.f_iou 0.6990399956703186, valid.f_f-score 0.79795: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.00it/s]
epoch 75 | valid.f_iou 0.7088599801063538, valid.f_f-score 0.8096: 56%|██████████████████ | 9/16 [00:09<00:03, 2.00it/s]
epoch 75 | valid.f_iou 0.7088599801063538, valid.f_f-score 0.8096: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.18it/s]
epoch 75 | valid.f_iou 0.6956200003623962, valid.f_f-score 0.78909: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.18it/s]
epoch 75 | valid.f_iou 0.6956200003623962, valid.f_f-score 0.78909: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.33it/s]
epoch 75 | valid.f_iou 0.7079499959945679, valid.f_f-score 0.80071: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.33it/s]
epoch 75 | valid.f_iou 0.7079499959945679, valid.f_f-score 0.80071: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.45it/s]
epoch 75 | valid.f_iou 0.7170000076293945, valid.f_f-score 0.80759: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.45it/s]
epoch 75 | valid.f_iou 0.7170000076293945, valid.f_f-score 0.80759: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 75 | valid.f_iou 0.7098600268363953, valid.f_f-score 0.80285: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 75 | valid.f_iou 0.7098600268363953, valid.f_f-score 0.80285: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 75 | valid.f_iou 0.7069000005722046, valid.f_f-score 0.80136: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 75 | valid.f_iou 0.7069000005722046, valid.f_f-score 0.80136: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 75 | valid.f_iou 0.7095500230789185, valid.f_f-score 0.80257: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 75 | valid.f_iou 0.7095500230789185, valid.f_f-score 0.80257: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 75 | valid.f_iou 0.7095500230789185, valid.f_f-score 0.80257: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 75 | valid.f_iou 0.6986899971961975, valid.f_f-score 0.71477: 0%| | 0/16 [00:04, ?it/s]
epoch 75 | valid.f_iou 0.6986899971961975, valid.f_f-score 0.71477: 6%|█▉ | 1/16 [00:04<01:08, 4.59s/it]
epoch 75 | valid.f_iou 0.7811999917030334, valid.f_f-score 0.83067: 6%|█▉ | 1/16 [00:05<01:08, 4.59s/it]
epoch 75 | valid.f_iou 0.7811999917030334, valid.f_f-score 0.83067: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 75 | valid.f_iou 0.7161800265312195, valid.f_f-score 0.8125: 12%|████ | 2/16 [00:05<00:30, 2.15s/it]
epoch 75 | valid.f_iou 0.7161800265312195, valid.f_f-score 0.8125: 19%|██████ | 3/16 [00:05<00:17, 1.37s/it]
epoch 75 | valid.f_iou 0.7131999731063843, valid.f_f-score 0.79524: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 75 | valid.f_iou 0.7131999731063843, valid.f_f-score 0.79524: 25%|███████▊ | 4/16 [00:05<00:12, 1.00s/it]
epoch 75 | valid.f_iou 0.6872100234031677, valid.f_f-score 0.7741: 25%|████████ | 4/16 [00:06<00:12, 1.00s/it]
epoch 75 | valid.f_iou 0.6872100234031677, valid.f_f-score 0.7741: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 75 | valid.f_iou 0.6845800280570984, valid.f_f-score 0.77192: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 75 | valid.f_iou 0.6845800280570984, valid.f_f-score 0.77192: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 75 | valid.f_iou 0.6865299940109253, valid.f_f-score 0.7809: 38%|████████████ | 6/16 [00:07<00:06, 1.49it/s]
epoch 75 | valid.f_iou 0.6865299940109253, valid.f_f-score 0.7809: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 75 | valid.f_iou 0.681850016117096, valid.f_f-score 0.78246: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 75 | valid.f_iou 0.681850016117096, valid.f_f-score 0.78246: 50%|████████████████ | 8/16 [00:07<00:04, 1.90it/s]
epoch 75 | valid.f_iou 0.698360025882721, valid.f_f-score 0.79105: 50%|████████████████ | 8/16 [00:07<00:04, 1.90it/s]
epoch 75 | valid.f_iou 0.698360025882721, valid.f_f-score 0.79105: 56%|██████████████████ | 9/16 [00:07<00:03, 2.13it/s]
epoch 75 | valid.f_iou 0.7059100270271301, valid.f_f-score 0.79982: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.13it/s]
epoch 75 | valid.f_iou 0.7059100270271301, valid.f_f-score 0.79982: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 75 | valid.f_iou 0.6896499991416931, valid.f_f-score 0.77634: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.16it/s]
epoch 75 | valid.f_iou 0.6896499991416931, valid.f_f-score 0.77634: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.18it/s]
epoch 75 | valid.f_iou 0.7024800181388855, valid.f_f-score 0.78902: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 75 | valid.f_iou 0.7024800181388855, valid.f_f-score 0.78902: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.32it/s]
epoch 75 | valid.f_iou 0.7097499966621399, valid.f_f-score 0.79481: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.32it/s]
epoch 75 | valid.f_iou 0.7097499966621399, valid.f_f-score 0.79481: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.43it/s]
epoch 75 | valid.f_iou 0.7031300067901611, valid.f_f-score 0.791: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.43it/s]
epoch 75 | valid.f_iou 0.7031300067901611, valid.f_f-score 0.791: 88%|████████████████████████████ | 14/16 [00:09<00:00, 2.51it/s]
epoch 75 | valid.f_iou 0.7006199955940247, valid.f_f-score 0.7903: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.51it/s]
epoch 75 | valid.f_iou 0.7006199955940247, valid.f_f-score 0.7903: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.56it/s]
epoch 75 | valid.f_iou 0.7041100263595581, valid.f_f-score 0.79344: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 75 | valid.f_iou 0.7041100263595581, valid.f_f-score 0.79344: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.61it/s]
epoch 75 | valid.f_iou 0.7041100263595581, valid.f_f-score 0.79344: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 76 | loss 4.797652244567871, f_iou 0.3442130982875824: 0%| | 0/74 [00:05, ?it/s]
epoch 76 | loss 4.797652244567871, f_iou 0.3442130982875824: 1%|▌ | 1/74 [00:05<06:40, 5.48s/it]
epoch 76 | loss 1.2980320453643799, f_iou 0.4761514663696289: 1%|▌ | 1/74 [00:06<06:40, 5.48s/it]
epoch 76 | loss 1.2980320453643799, f_iou 0.4761514663696289: 3%|█ | 2/74 [00:06<03:17, 2.75s/it]
epoch 76 | loss 3.412954330444336, f_iou 0.5559310913085938: 3%|█ | 2/74 [00:07<03:17, 2.75s/it]
epoch 76 | loss 3.412954330444336, f_iou 0.5559310913085938: 4%|█▌ | 3/74 [00:07<02:13, 1.88s/it]
epoch 76 | loss 1.7147526741027832, f_iou 0.46668919920921326: 4%|█▍ | 3/74 [00:08<02:13, 1.88s/it]
epoch 76 | loss 1.7147526741027832, f_iou 0.46668919920921326: 5%|█▉ | 4/74 [00:08<01:43, 1.48s/it]
epoch 76 | loss 0.6300182938575745, f_iou 0.5571380853652954: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 76 | loss 0.6300182938575745, f_iou 0.5571380853652954: 7%|██▌ | 5/74 [00:08<01:25, 1.24s/it]
epoch 76 | loss 1.8095098733901978, f_iou 0.5597228407859802: 7%|██▌ | 5/74 [00:09<01:25, 1.24s/it]
epoch 76 | loss 1.8095098733901978, f_iou 0.5597228407859802: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 76 | loss 1.3137047290802002, f_iou 0.6001774072647095: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 76 | loss 1.3137047290802002, f_iou 0.6001774072647095: 9%|███▌ | 7/74 [00:10<01:06, 1.01it/s]
epoch 76 | loss 2.6177659034729004, f_iou 0.578181266784668: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 76 | loss 2.6177659034729004, f_iou 0.578181266784668: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 76 | loss 2.864072322845459, f_iou 0.5727061033248901: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 76 | loss 2.864072322845459, f_iou 0.5727061033248901: 12%|████▌ | 9/74 [00:11<00:57, 1.14it/s]
epoch 76 | loss 0.791929304599762, f_iou 0.5556187033653259: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 76 | loss 0.791929304599762, f_iou 0.5556187033653259: 14%|█████ | 10/74 [00:12<00:54, 1.17it/s]
epoch 76 | loss 0.6859081387519836, f_iou 0.5598613023757935: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 76 | loss 0.6859081387519836, f_iou 0.5598613023757935: 15%|█████▎ | 11/74 [00:13<00:52, 1.20it/s]
epoch 76 | loss 0.6066851019859314, f_iou 0.5919476747512817: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 76 | loss 0.6066851019859314, f_iou 0.5919476747512817: 16%|█████▊ | 12/74 [00:14<00:49, 1.26it/s]
epoch 76 | loss 1.3933550119400024, f_iou 0.5889440178871155: 16%|█████▊ | 12/74 [00:14<00:49, 1.26it/s]
epoch 76 | loss 1.3933550119400024, f_iou 0.5889440178871155: 18%|██████▎ | 13/74 [00:14<00:47, 1.29it/s]
epoch 76 | loss 0.5767698287963867, f_iou 0.6125141382217407: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 76 | loss 0.5767698287963867, f_iou 0.6125141382217407: 19%|██████▊ | 14/74 [00:15<00:48, 1.24it/s]
epoch 76 | loss 1.7707643508911133, f_iou 0.6236522793769836: 19%|██████▊ | 14/74 [00:16<00:48, 1.24it/s]
epoch 76 | loss 1.7707643508911133, f_iou 0.6236522793769836: 20%|███████▎ | 15/74 [00:16<00:46, 1.27it/s]
epoch 76 | loss 0.6097772717475891, f_iou 0.6374977827072144: 20%|███████▎ | 15/74 [00:17<00:46, 1.27it/s]
epoch 76 | loss 0.6097772717475891, f_iou 0.6374977827072144: 22%|███████▊ | 16/74 [00:17<00:44, 1.31it/s]
epoch 76 | loss 2.332376003265381, f_iou 0.650286078453064: 22%|████████▏ | 16/74 [00:18<00:44, 1.31it/s]
epoch 76 | loss 2.332376003265381, f_iou 0.650286078453064: 23%|████████▋ | 17/74 [00:18<00:42, 1.33it/s]
epoch 76 | loss 3.894566535949707, f_iou 0.6453462243080139: 23%|████████▌ | 17/74 [00:18<00:42, 1.33it/s]
epoch 76 | loss 3.894566535949707, f_iou 0.6453462243080139: 24%|█████████ | 18/74 [00:18<00:41, 1.34it/s]
epoch 76 | loss 0.44761934876441956, f_iou 0.6624484658241272: 24%|████████▌ | 18/74 [00:19<00:41, 1.34it/s]
epoch 76 | loss 0.44761934876441956, f_iou 0.6624484658241272: 26%|████████▉ | 19/74 [00:19<00:40, 1.36it/s]
epoch 76 | loss 1.4510303735733032, f_iou 0.6434710025787354: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 76 | loss 1.4510303735733032, f_iou 0.6434710025787354: 27%|█████████▋ | 20/74 [00:20<00:39, 1.37it/s]
epoch 76 | loss 2.675018310546875, f_iou 0.6267416477203369: 27%|██████████ | 20/74 [00:20<00:39, 1.37it/s]
epoch 76 | loss 2.675018310546875, f_iou 0.6267416477203369: 28%|██████████▌ | 21/74 [00:20<00:38, 1.38it/s]
epoch 76 | loss 1.0762274265289307, f_iou 0.6207893490791321: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 76 | loss 1.0762274265289307, f_iou 0.6207893490791321: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 76 | loss 1.1441400051116943, f_iou 0.6337229609489441: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 76 | loss 1.1441400051116943, f_iou 0.6337229609489441: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 76 | loss 1.064408540725708, f_iou 0.6444810628890991: 31%|███████████▌ | 23/74 [00:23<00:36, 1.39it/s]
epoch 76 | loss 1.064408540725708, f_iou 0.6444810628890991: 32%|████████████ | 24/74 [00:23<00:36, 1.39it/s]
epoch 76 | loss 0.9465705156326294, f_iou 0.653615415096283: 32%|████████████ | 24/74 [00:23<00:36, 1.39it/s]
epoch 76 | loss 0.9465705156326294, f_iou 0.653615415096283: 34%|████████████▌ | 25/74 [00:23<00:35, 1.39it/s]
epoch 76 | loss 0.995522141456604, f_iou 0.66504967212677: 34%|█████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 76 | loss 0.995522141456604, f_iou 0.66504967212677: 35%|█████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 76 | loss 1.2259786128997803, f_iou 0.6667766571044922: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 76 | loss 1.2259786128997803, f_iou 0.6667766571044922: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 76 | loss 1.0232925415039062, f_iou 0.6741025447845459: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 76 | loss 1.0232925415039062, f_iou 0.6741025447845459: 38%|█████████████▌ | 28/74 [00:25<00:32, 1.40it/s]
epoch 76 | loss 0.6890619993209839, f_iou 0.6508575677871704: 38%|█████████████▌ | 28/74 [00:26<00:32, 1.40it/s]
epoch 76 | loss 0.6890619993209839, f_iou 0.6508575677871704: 39%|██████████████ | 29/74 [00:26<00:32, 1.40it/s]
epoch 76 | loss 0.913750410079956, f_iou 0.6593132019042969: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.40it/s]
epoch 76 | loss 0.913750410079956, f_iou 0.6593132019042969: 41%|███████████████ | 30/74 [00:27<00:31, 1.40it/s]
epoch 76 | loss 3.9295668601989746, f_iou 0.6618768572807312: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.40it/s]
epoch 76 | loss 3.9295668601989746, f_iou 0.6618768572807312: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 76 | loss 1.5970195531845093, f_iou 0.6570309996604919: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 76 | loss 1.5970195531845093, f_iou 0.6570309996604919: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.36it/s]
epoch 76 | loss 0.8532191514968872, f_iou 0.6622936725616455: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 76 | loss 0.8532191514968872, f_iou 0.6622936725616455: 45%|████████████████ | 33/74 [00:29<00:30, 1.33it/s]
epoch 76 | loss 1.4431531429290771, f_iou 0.6655749678611755: 45%|████████████████ | 33/74 [00:30<00:30, 1.33it/s]
epoch 76 | loss 1.4431531429290771, f_iou 0.6655749678611755: 46%|████████████████▌ | 34/74 [00:30<00:30, 1.30it/s]
epoch 76 | loss 1.0570329427719116, f_iou 0.6718346476554871: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.30it/s]
epoch 76 | loss 1.0570329427719116, f_iou 0.6718346476554871: 47%|█████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 76 | loss 0.9638696908950806, f_iou 0.6573001742362976: 47%|█████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 76 | loss 0.9638696908950806, f_iou 0.6573001742362976: 49%|█████████████████▌ | 36/74 [00:31<00:28, 1.34it/s]
epoch 76 | loss 1.4306584596633911, f_iou 0.6514522433280945: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.34it/s]
epoch 76 | loss 1.4306584596633911, f_iou 0.6514522433280945: 50%|██████████████████ | 37/74 [00:32<00:27, 1.35it/s]
epoch 76 | loss 1.8775324821472168, f_iou 0.656093955039978: 50%|██████████████████▌ | 37/74 [00:33<00:27, 1.35it/s]
epoch 76 | loss 1.8775324821472168, f_iou 0.656093955039978: 51%|███████████████████ | 38/74 [00:33<00:26, 1.36it/s]
epoch 76 | loss 1.0643455982208252, f_iou 0.6617144346237183: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.36it/s]
epoch 76 | loss 1.0643455982208252, f_iou 0.6617144346237183: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.37it/s]
epoch 76 | loss 1.8174023628234863, f_iou 0.66251140832901: 53%|████████████████████ | 39/74 [00:34<00:25, 1.37it/s]
epoch 76 | loss 1.8174023628234863, f_iou 0.66251140832901: 54%|████████████████████▌ | 40/74 [00:34<00:24, 1.38it/s]
epoch 76 | loss 1.0609309673309326, f_iou 0.6664653420448303: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 76 | loss 1.0609309673309326, f_iou 0.6664653420448303: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 76 | loss 1.4071234464645386, f_iou 0.6671788692474365: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 76 | loss 1.4071234464645386, f_iou 0.6671788692474365: 57%|████████████████████▍ | 42/74 [00:36<00:22, 1.39it/s]
epoch 76 | loss 1.5004193782806396, f_iou 0.6687107086181641: 57%|████████████████████▍ | 42/74 [00:36<00:22, 1.39it/s]
epoch 76 | loss 1.5004193782806396, f_iou 0.6687107086181641: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.39it/s]
epoch 76 | loss 1.9255280494689941, f_iou 0.6658799052238464: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 76 | loss 1.9255280494689941, f_iou 0.6658799052238464: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 76 | loss 1.2698774337768555, f_iou 0.6710286736488342: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 76 | loss 1.2698774337768555, f_iou 0.6710286736488342: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.39it/s]
epoch 76 | loss 0.6129398941993713, f_iou 0.6564410924911499: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 76 | loss 0.6129398941993713, f_iou 0.6564410924911499: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 76 | loss 1.8173298835754395, f_iou 0.657889187335968: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 76 | loss 1.8173298835754395, f_iou 0.657889187335968: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.39it/s]
epoch 76 | loss 0.5466205477714539, f_iou 0.6603369116783142: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 76 | loss 0.5466205477714539, f_iou 0.6603369116783142: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.40it/s]
epoch 76 | loss 0.5920920372009277, f_iou 0.6479165554046631: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.40it/s]
epoch 76 | loss 0.5920920372009277, f_iou 0.6479165554046631: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 76 | loss 1.6365211009979248, f_iou 0.6497700214385986: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.37it/s]
epoch 76 | loss 1.6365211009979248, f_iou 0.6497700214385986: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.35it/s]
epoch 76 | loss 0.9399734735488892, f_iou 0.6523038148880005: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.35it/s]
epoch 76 | loss 0.9399734735488892, f_iou 0.6523038148880005: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.37it/s]
epoch 76 | loss 1.2110401391983032, f_iou 0.6518236994743347: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.37it/s]
epoch 76 | loss 1.2110401391983032, f_iou 0.6518236994743347: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.38it/s]
epoch 76 | loss 0.8090776205062866, f_iou 0.6535787582397461: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 76 | loss 0.8090776205062866, f_iou 0.6535787582397461: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 76 | loss 2.3270347118377686, f_iou 0.6562663912773132: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 76 | loss 2.3270347118377686, f_iou 0.6562663912773132: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.37it/s]
epoch 76 | loss 0.836878776550293, f_iou 0.6448166966438293: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.37it/s]
epoch 76 | loss 0.836878776550293, f_iou 0.6448166966438293: 74%|███████████████████████████▌ | 55/74 [00:45<00:14, 1.34it/s]
epoch 76 | loss 1.84120774269104, f_iou 0.6482166051864624: 74%|████████████████████████████▏ | 55/74 [00:46<00:14, 1.34it/s]
epoch 76 | loss 1.84120774269104, f_iou 0.6482166051864624: 76%|████████████████████████████▊ | 56/74 [00:46<00:13, 1.36it/s]
epoch 76 | loss 1.5238540172576904, f_iou 0.6458385586738586: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.36it/s]
epoch 76 | loss 1.5238540172576904, f_iou 0.6458385586738586: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.37it/s]
epoch 76 | loss 3.6668338775634766, f_iou 0.6433786749839783: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.37it/s]
epoch 76 | loss 3.6668338775634766, f_iou 0.6433786749839783: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.38it/s]
epoch 76 | loss 2.2568469047546387, f_iou 0.6438499093055725: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 76 | loss 2.2568469047546387, f_iou 0.6438499093055725: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 76 | loss 2.928244113922119, f_iou 0.6371947526931763: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.38it/s]
epoch 76 | loss 2.928244113922119, f_iou 0.6371947526931763: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.38it/s]
epoch 76 | loss 1.2244014739990234, f_iou 0.6394657492637634: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 76 | loss 1.2244014739990234, f_iou 0.6394657492637634: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 76 | loss 0.9236483573913574, f_iou 0.6420376300811768: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 76 | loss 0.9236483573913574, f_iou 0.6420376300811768: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.38it/s]
epoch 76 | loss 1.6895960569381714, f_iou 0.6424256563186646: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 76 | loss 1.6895960569381714, f_iou 0.6424256563186646: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 76 | loss 4.191282272338867, f_iou 0.6378344893455505: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.39it/s]
epoch 76 | loss 4.191282272338867, f_iou 0.6378344893455505: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 76 | loss 2.134995460510254, f_iou 0.6332097053527832: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 76 | loss 2.134995460510254, f_iou 0.6332097053527832: 88%|████████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 76 | loss 3.2290799617767334, f_iou 0.6378911137580872: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 76 | loss 3.2290799617767334, f_iou 0.6378911137580872: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 76 | loss 0.5102505087852478, f_iou 0.6416970491409302: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.40it/s]
epoch 76 | loss 0.5102505087852478, f_iou 0.6416970491409302: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.40it/s]
epoch 76 | loss 1.11381196975708, f_iou 0.6438198685646057: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.40it/s]
epoch 76 | loss 1.11381196975708, f_iou 0.6438198685646057: 92%|██████████████████████████████████▉ | 68/74 [00:55<00:04, 1.40it/s]
epoch 76 | loss 1.8059077262878418, f_iou 0.6387786269187927: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 76 | loss 1.8059077262878418, f_iou 0.6387786269187927: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 76 | loss 2.2415101528167725, f_iou 0.6361819505691528: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 76 | loss 2.2415101528167725, f_iou 0.6361819505691528: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 76 | loss 1.7791813611984253, f_iou 0.6364196538925171: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 76 | loss 1.7791813611984253, f_iou 0.6364196538925171: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 76 | loss 1.4807586669921875, f_iou 0.6360211968421936: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 76 | loss 1.4807586669921875, f_iou 0.6360211968421936: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 76 | loss 0.9368526339530945, f_iou 0.6273117661476135: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 76 | loss 0.9368526339530945, f_iou 0.6273117661476135: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 76 | loss 1.38788640499115, f_iou 0.6280234456062317: 99%|█████████████████████████████████████▍| 73/74 [00:59<00:00, 1.40it/s]
epoch 76 | loss 1.38788640499115, f_iou 0.6280234456062317: 100%|██████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 76 | loss 1.38788640499115, f_iou 0.6280234456062317: 100%|██████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 76 | valid.f_iou 0.7709699869155884, valid.f_f-score 0.87971: 0%| | 0/16 [00:04, ?it/s]
epoch 76 | valid.f_iou 0.7709699869155884, valid.f_f-score 0.87971: 6%|█▉ | 1/16 [00:05<01:15, 5.01s/it]
epoch 76 | valid.f_iou 0.6549500226974487, valid.f_f-score 0.81398: 6%|█▉ | 1/16 [00:05<01:15, 5.01s/it]
epoch 76 | valid.f_iou 0.6549500226974487, valid.f_f-score 0.81398: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 76 | valid.f_iou 0.5408999919891357, valid.f_f-score 0.75169: 12%|███▉ | 2/16 [00:05<00:32, 2.34s/it]
epoch 76 | valid.f_iou 0.5408999919891357, valid.f_f-score 0.75169: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 76 | valid.f_iou 0.5769000053405762, valid.f_f-score 0.74234: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 76 | valid.f_iou 0.5769000053405762, valid.f_f-score 0.74234: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 76 | valid.f_iou 0.5664600133895874, valid.f_f-score 0.74753: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 76 | valid.f_iou 0.5664600133895874, valid.f_f-score 0.74753: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 76 | valid.f_iou 0.5377500057220459, valid.f_f-score 0.71592: 31%|█████████▋ | 5/16 [00:07<00:09, 1.18it/s]
epoch 76 | valid.f_iou 0.5377500057220459, valid.f_f-score 0.71592: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 76 | valid.f_iou 0.5622699856758118, valid.f_f-score 0.73607: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 76 | valid.f_iou 0.5622699856758118, valid.f_f-score 0.73607: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.57it/s]
epoch 76 | valid.f_iou 0.5392799973487854, valid.f_f-score 0.72217: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 76 | valid.f_iou 0.5392799973487854, valid.f_f-score 0.72217: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 76 | valid.f_iou 0.5486699938774109, valid.f_f-score 0.71445: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 76 | valid.f_iou 0.5486699938774109, valid.f_f-score 0.71445: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 76 | valid.f_iou 0.5402399897575378, valid.f_f-score 0.71618: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 76 | valid.f_iou 0.5402399897575378, valid.f_f-score 0.71618: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 76 | valid.f_iou 0.5381500124931335, valid.f_f-score 0.71217: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 76 | valid.f_iou 0.5381500124931335, valid.f_f-score 0.71217: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 76 | valid.f_iou 0.5618399977684021, valid.f_f-score 0.73035: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 76 | valid.f_iou 0.5618399977684021, valid.f_f-score 0.73035: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.31it/s]
epoch 76 | valid.f_iou 0.5644699931144714, valid.f_f-score 0.73256: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 76 | valid.f_iou 0.5644699931144714, valid.f_f-score 0.73256: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 76 | valid.f_iou 0.5514100193977356, valid.f_f-score 0.72055: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 76 | valid.f_iou 0.5514100193977356, valid.f_f-score 0.72055: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 76 | valid.f_iou 0.5532100200653076, valid.f_f-score 0.72043: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 76 | valid.f_iou 0.5532100200653076, valid.f_f-score 0.72043: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.51it/s]
epoch 76 | valid.f_iou 0.5593600273132324, valid.f_f-score 0.71995: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 76 | valid.f_iou 0.5593600273132324, valid.f_f-score 0.71995: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 76 | valid.f_iou 0.5593600273132324, valid.f_f-score 0.71995: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 76 | valid.f_iou 0.5896300077438354, valid.f_f-score 0.74135: 0%| | 0/16 [00:05, ?it/s]
epoch 76 | valid.f_iou 0.5896300077438354, valid.f_f-score 0.74135: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 76 | valid.f_iou 0.7419400215148926, valid.f_f-score 0.84966: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 76 | valid.f_iou 0.7419400215148926, valid.f_f-score 0.84966: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 76 | valid.f_iou 0.7061899900436401, valid.f_f-score 0.83056: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 76 | valid.f_iou 0.7061899900436401, valid.f_f-score 0.83056: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 76 | valid.f_iou 0.675320029258728, valid.f_f-score 0.76825: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 76 | valid.f_iou 0.675320029258728, valid.f_f-score 0.76825: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 76 | valid.f_iou 0.6369799971580505, valid.f_f-score 0.74949: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 76 | valid.f_iou 0.6369799971580505, valid.f_f-score 0.74949: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 76 | valid.f_iou 0.640470027923584, valid.f_f-score 0.75265: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 76 | valid.f_iou 0.640470027923584, valid.f_f-score 0.75265: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 76 | valid.f_iou 0.6635000109672546, valid.f_f-score 0.77732: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 76 | valid.f_iou 0.6635000109672546, valid.f_f-score 0.77732: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 76 | valid.f_iou 0.6554399728775024, valid.f_f-score 0.77781: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 76 | valid.f_iou 0.6554399728775024, valid.f_f-score 0.77781: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 76 | valid.f_iou 0.6700599789619446, valid.f_f-score 0.78466: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 76 | valid.f_iou 0.6700599789619446, valid.f_f-score 0.78466: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 76 | valid.f_iou 0.682479977607727, valid.f_f-score 0.79843: 56%|██████████████████ | 9/16 [00:09<00:03, 2.03it/s]
epoch 76 | valid.f_iou 0.682479977607727, valid.f_f-score 0.79843: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.09it/s]
epoch 76 | valid.f_iou 0.6814500093460083, valid.f_f-score 0.79226: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 76 | valid.f_iou 0.6814500093460083, valid.f_f-score 0.79226: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.14it/s]
epoch 76 | valid.f_iou 0.6962100267410278, valid.f_f-score 0.80393: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.14it/s]
epoch 76 | valid.f_iou 0.6962100267410278, valid.f_f-score 0.80393: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.17it/s]
epoch 76 | valid.f_iou 0.7098399996757507, valid.f_f-score 0.81316: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.17it/s]
epoch 76 | valid.f_iou 0.7098399996757507, valid.f_f-score 0.81316: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.32it/s]
epoch 76 | valid.f_iou 0.707319974899292, valid.f_f-score 0.81025: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.32it/s]
epoch 76 | valid.f_iou 0.707319974899292, valid.f_f-score 0.81025: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.43it/s]
epoch 76 | valid.f_iou 0.7038599848747253, valid.f_f-score 0.80382: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 76 | valid.f_iou 0.7038599848747253, valid.f_f-score 0.80382: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 76 | valid.f_iou 0.701740026473999, valid.f_f-score 0.80073: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.52it/s]
epoch 76 | valid.f_iou 0.701740026473999, valid.f_f-score 0.80073: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 76 | valid.f_iou 0.701740026473999, valid.f_f-score 0.80073: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 76 | valid.f_iou 0.5896300077438354, valid.f_f-score 0.74135: 0%| | 0/16 [00:05, ?it/s]
epoch 76 | valid.f_iou 0.5896300077438354, valid.f_f-score 0.74135: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 76 | valid.f_iou 0.7419400215148926, valid.f_f-score 0.84966: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 76 | valid.f_iou 0.7419400215148926, valid.f_f-score 0.84966: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 76 | valid.f_iou 0.7061899900436401, valid.f_f-score 0.83056: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 76 | valid.f_iou 0.7061899900436401, valid.f_f-score 0.83056: 19%|█████▊ | 3/16 [00:05<00:18, 1.45s/it]
epoch 76 | valid.f_iou 0.6753799915313721, valid.f_f-score 0.75655: 19%|█████▊ | 3/16 [00:06<00:18, 1.45s/it]
epoch 76 | valid.f_iou 0.6753799915313721, valid.f_f-score 0.75655: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 76 | valid.f_iou 0.6467300057411194, valid.f_f-score 0.74013: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 76 | valid.f_iou 0.6467300057411194, valid.f_f-score 0.74013: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 76 | valid.f_iou 0.6485999822616577, valid.f_f-score 0.74485: 31%|█████████▋ | 5/16 [00:07<00:08, 1.25it/s]
epoch 76 | valid.f_iou 0.6485999822616577, valid.f_f-score 0.74485: 38%|███████████▋ | 6/16 [00:07<00:06, 1.51it/s]
epoch 76 | valid.f_iou 0.672249972820282, valid.f_f-score 0.77064: 38%|████████████ | 6/16 [00:07<00:06, 1.51it/s]
epoch 76 | valid.f_iou 0.672249972820282, valid.f_f-score 0.77064: 44%|██████████████ | 7/16 [00:07<00:05, 1.78it/s]
epoch 76 | valid.f_iou 0.663100004196167, valid.f_f-score 0.77196: 44%|██████████████ | 7/16 [00:07<00:05, 1.78it/s]
epoch 76 | valid.f_iou 0.663100004196167, valid.f_f-score 0.77196: 50%|████████████████ | 8/16 [00:07<00:04, 2.00it/s]
epoch 76 | valid.f_iou 0.6779400110244751, valid.f_f-score 0.77946: 50%|███████████████▌ | 8/16 [00:08<00:04, 2.00it/s]
epoch 76 | valid.f_iou 0.6779400110244751, valid.f_f-score 0.77946: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 76 | valid.f_iou 0.6870599985122681, valid.f_f-score 0.79023: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 76 | valid.f_iou 0.6870599985122681, valid.f_f-score 0.79023: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.34it/s]
epoch 76 | valid.f_iou 0.6780300140380859, valid.f_f-score 0.77876: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.34it/s]
epoch 76 | valid.f_iou 0.6780300140380859, valid.f_f-score 0.77876: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.44it/s]
epoch 76 | valid.f_iou 0.6930800080299377, valid.f_f-score 0.79156: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.44it/s]
epoch 76 | valid.f_iou 0.6930800080299377, valid.f_f-score 0.79156: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.53it/s]
epoch 76 | valid.f_iou 0.7069500088691711, valid.f_f-score 0.80277: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.53it/s]
epoch 76 | valid.f_iou 0.7069500088691711, valid.f_f-score 0.80277: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 76 | valid.f_iou 0.7046300172805786, valid.f_f-score 0.80063: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.60it/s]
epoch 76 | valid.f_iou 0.7046300172805786, valid.f_f-score 0.80063: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.65it/s]
epoch 76 | valid.f_iou 0.7013499736785889, valid.f_f-score 0.79483: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.65it/s]
epoch 76 | valid.f_iou 0.7013499736785889, valid.f_f-score 0.79483: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 76 | valid.f_iou 0.699940025806427, valid.f_f-score 0.79099: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.67it/s]
epoch 76 | valid.f_iou 0.699940025806427, valid.f_f-score 0.79099: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 76 | valid.f_iou 0.699940025806427, valid.f_f-score 0.79099: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 77 | loss 1.4081757068634033, f_iou 0.8082853555679321: 0%| | 0/74 [00:06, ?it/s]
epoch 77 | loss 1.4081757068634033, f_iou 0.8082853555679321: 1%|▌ | 1/74 [00:06<08:03, 6.63s/it]
epoch 77 | loss 0.6617610454559326, f_iou 0.7124807834625244: 1%|▌ | 1/74 [00:07<08:03, 6.63s/it]
epoch 77 | loss 0.6617610454559326, f_iou 0.7124807834625244: 3%|█ | 2/74 [00:07<03:50, 3.21s/it]
epoch 77 | loss 1.5536201000213623, f_iou 0.687448263168335: 3%|█ | 2/74 [00:08<03:50, 3.21s/it]
epoch 77 | loss 1.5536201000213623, f_iou 0.687448263168335: 4%|█▌ | 3/74 [00:08<02:30, 2.11s/it]
epoch 77 | loss 0.9272738695144653, f_iou 0.7574039697647095: 4%|█▌ | 3/74 [00:09<02:30, 2.11s/it]
epoch 77 | loss 0.9272738695144653, f_iou 0.7574039697647095: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 77 | loss 2.220726490020752, f_iou 0.6983668208122253: 5%|██ | 4/74 [00:09<01:53, 1.62s/it]
epoch 77 | loss 2.220726490020752, f_iou 0.6983668208122253: 7%|██▌ | 5/74 [00:09<01:33, 1.35s/it]
epoch 77 | loss 1.176190972328186, f_iou 0.7271753549575806: 7%|██▌ | 5/74 [00:10<01:33, 1.35s/it]
epoch 77 | loss 1.176190972328186, f_iou 0.7271753549575806: 8%|███ | 6/74 [00:10<01:21, 1.20s/it]
epoch 77 | loss 0.3396568298339844, f_iou 0.7576488852500916: 8%|███ | 6/74 [00:11<01:21, 1.20s/it]
epoch 77 | loss 0.3396568298339844, f_iou 0.7576488852500916: 9%|███▌ | 7/74 [00:11<01:11, 1.07s/it]
epoch 77 | loss 0.3413362503051758, f_iou 0.7833938002586365: 9%|███▌ | 7/74 [00:12<01:11, 1.07s/it]
epoch 77 | loss 0.3413362503051758, f_iou 0.7833938002586365: 11%|████ | 8/74 [00:12<01:04, 1.02it/s]
epoch 77 | loss 2.642197608947754, f_iou 0.7736049294471741: 11%|████ | 8/74 [00:13<01:04, 1.02it/s]
epoch 77 | loss 2.642197608947754, f_iou 0.7736049294471741: 12%|████▌ | 9/74 [00:13<00:59, 1.09it/s]
epoch 77 | loss 1.440463900566101, f_iou 0.749777615070343: 12%|████▋ | 9/74 [00:14<00:59, 1.09it/s]
epoch 77 | loss 1.440463900566101, f_iou 0.749777615070343: 14%|█████▏ | 10/74 [00:14<00:55, 1.16it/s]
epoch 77 | loss 0.5491582751274109, f_iou 0.6903850436210632: 14%|████▊ | 10/74 [00:14<00:55, 1.16it/s]
epoch 77 | loss 0.5491582751274109, f_iou 0.6903850436210632: 15%|█████▎ | 11/74 [00:14<00:51, 1.22it/s]
epoch 77 | loss 1.472658395767212, f_iou 0.7045122385025024: 15%|█████▌ | 11/74 [00:15<00:51, 1.22it/s]
epoch 77 | loss 1.472658395767212, f_iou 0.7045122385025024: 16%|██████ | 12/74 [00:15<00:48, 1.27it/s]
epoch 77 | loss 1.4041259288787842, f_iou 0.7169521450996399: 16%|█████▊ | 12/74 [00:16<00:48, 1.27it/s]
epoch 77 | loss 1.4041259288787842, f_iou 0.7169521450996399: 18%|██████▎ | 13/74 [00:16<00:46, 1.30it/s]
epoch 77 | loss 0.8531227111816406, f_iou 0.728418231010437: 18%|██████▌ | 13/74 [00:16<00:46, 1.30it/s]
epoch 77 | loss 0.8531227111816406, f_iou 0.728418231010437: 19%|███████ | 14/74 [00:16<00:45, 1.32it/s]
epoch 77 | loss 1.605118989944458, f_iou 0.7340912818908691: 19%|███████ | 14/74 [00:17<00:45, 1.32it/s]
epoch 77 | loss 1.605118989944458, f_iou 0.7340912818908691: 20%|███████▌ | 15/74 [00:17<00:43, 1.34it/s]
epoch 77 | loss 0.4021829068660736, f_iou 0.7480126619338989: 20%|███████▎ | 15/74 [00:18<00:43, 1.34it/s]
epoch 77 | loss 0.4021829068660736, f_iou 0.7480126619338989: 22%|███████▊ | 16/74 [00:18<00:43, 1.34it/s]
epoch 77 | loss 1.3690581321716309, f_iou 0.7491638660430908: 22%|███████▊ | 16/74 [00:19<00:43, 1.34it/s]
epoch 77 | loss 1.3690581321716309, f_iou 0.7491638660430908: 23%|████████▎ | 17/74 [00:19<00:42, 1.33it/s]
epoch 77 | loss 1.0476195812225342, f_iou 0.7590671181678772: 23%|████████▎ | 17/74 [00:19<00:42, 1.33it/s]
epoch 77 | loss 1.0476195812225342, f_iou 0.7590671181678772: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 77 | loss 0.823392927646637, f_iou 0.7325064539909363: 24%|█████████ | 18/74 [00:20<00:41, 1.34it/s]
epoch 77 | loss 0.823392927646637, f_iou 0.7325064539909363: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 77 | loss 0.9291770458221436, f_iou 0.7412600517272949: 26%|█████████▏ | 19/74 [00:21<00:40, 1.35it/s]
epoch 77 | loss 0.9291770458221436, f_iou 0.7412600517272949: 27%|█████████▋ | 20/74 [00:21<00:40, 1.35it/s]
epoch 77 | loss 1.1545480489730835, f_iou 0.7481330633163452: 27%|█████████▋ | 20/74 [00:22<00:40, 1.35it/s]
epoch 77 | loss 1.1545480489730835, f_iou 0.7481330633163452: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 77 | loss 0.5327804088592529, f_iou 0.7440816760063171: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 77 | loss 0.5327804088592529, f_iou 0.7440816760063171: 30%|██████████▋ | 22/74 [00:22<00:38, 1.37it/s]
epoch 77 | loss 2.9813523292541504, f_iou 0.742497444152832: 30%|███████████ | 22/74 [00:23<00:38, 1.37it/s]
epoch 77 | loss 2.9813523292541504, f_iou 0.742497444152832: 31%|███████████▌ | 23/74 [00:23<00:37, 1.37it/s]
epoch 77 | loss 0.9771533608436584, f_iou 0.7503206729888916: 31%|███████████▏ | 23/74 [00:24<00:37, 1.37it/s]
epoch 77 | loss 0.9771533608436584, f_iou 0.7503206729888916: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 77 | loss 1.5466376543045044, f_iou 0.7347483038902283: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 77 | loss 1.5466376543045044, f_iou 0.7347483038902283: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 77 | loss 0.8166080713272095, f_iou 0.7237532734870911: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 77 | loss 0.8166080713272095, f_iou 0.7237532734870911: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 77 | loss 1.1487462520599365, f_iou 0.7287948131561279: 35%|████████████▋ | 26/74 [00:26<00:34, 1.38it/s]
epoch 77 | loss 1.1487462520599365, f_iou 0.7287948131561279: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.38it/s]
epoch 77 | loss 1.956659197807312, f_iou 0.723582923412323: 36%|█████████████▊ | 27/74 [00:27<00:33, 1.38it/s]
epoch 77 | loss 1.956659197807312, f_iou 0.723582923412323: 38%|██████████████▍ | 28/74 [00:27<00:33, 1.39it/s]
epoch 77 | loss 0.6848304867744446, f_iou 0.7302774786949158: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 77 | loss 0.6848304867744446, f_iou 0.7302774786949158: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 77 | loss 1.03944730758667, f_iou 0.7279265522956848: 39%|██████████████▉ | 29/74 [00:28<00:32, 1.37it/s]
epoch 77 | loss 1.03944730758667, f_iou 0.7279265522956848: 41%|███████████████▍ | 30/74 [00:28<00:32, 1.37it/s]
epoch 77 | loss 1.782705545425415, f_iou 0.7308154106140137: 41%|███████████████ | 30/74 [00:29<00:32, 1.37it/s]
epoch 77 | loss 1.782705545425415, f_iou 0.7308154106140137: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.38it/s]
epoch 77 | loss 1.3603825569152832, f_iou 0.7280840277671814: 42%|███████████████ | 31/74 [00:30<00:31, 1.38it/s]
epoch 77 | loss 1.3603825569152832, f_iou 0.7280840277671814: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.38it/s]
epoch 77 | loss 1.1716110706329346, f_iou 0.7313725352287292: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.38it/s]
epoch 77 | loss 1.1716110706329346, f_iou 0.7313725352287292: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 77 | loss 0.310031533241272, f_iou 0.7385175824165344: 45%|████████████████▌ | 33/74 [00:31<00:29, 1.39it/s]
epoch 77 | loss 0.310031533241272, f_iou 0.7385175824165344: 46%|█████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 77 | loss 0.8209012746810913, f_iou 0.7399778962135315: 46%|████████████████▌ | 34/74 [00:32<00:28, 1.39it/s]
epoch 77 | loss 0.8209012746810913, f_iou 0.7399778962135315: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 77 | loss 1.6847457885742188, f_iou 0.7343147993087769: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 77 | loss 1.6847457885742188, f_iou 0.7343147993087769: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 77 | loss 0.7025392055511475, f_iou 0.7381343841552734: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.39it/s]
epoch 77 | loss 0.7025392055511475, f_iou 0.7381343841552734: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 77 | loss 0.422917902469635, f_iou 0.7439054250717163: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.37it/s]
epoch 77 | loss 0.422917902469635, f_iou 0.7439054250717163: 51%|███████████████████ | 38/74 [00:34<00:26, 1.36it/s]
epoch 77 | loss 0.8524262309074402, f_iou 0.7478544116020203: 51%|██████████████████▍ | 38/74 [00:35<00:26, 1.36it/s]
epoch 77 | loss 0.8524262309074402, f_iou 0.7478544116020203: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.35it/s]
epoch 77 | loss 0.7875820994377136, f_iou 0.7528024911880493: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.35it/s]
epoch 77 | loss 0.7875820994377136, f_iou 0.7528024911880493: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 77 | loss 0.9183247685432434, f_iou 0.7564374804496765: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.37it/s]
epoch 77 | loss 0.9183247685432434, f_iou 0.7564374804496765: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 77 | loss 0.5948567390441895, f_iou 0.7604374885559082: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.38it/s]
epoch 77 | loss 0.5948567390441895, f_iou 0.7604374885559082: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 77 | loss 0.945095956325531, f_iou 0.7599064111709595: 57%|█████████████████████ | 42/74 [00:38<00:23, 1.38it/s]
epoch 77 | loss 0.945095956325531, f_iou 0.7599064111709595: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.39it/s]
epoch 77 | loss 1.4133328199386597, f_iou 0.7618986964225769: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.39it/s]
epoch 77 | loss 1.4133328199386597, f_iou 0.7618986964225769: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 77 | loss 2.6396944522857666, f_iou 0.7597984671592712: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 77 | loss 2.6396944522857666, f_iou 0.7597984671592712: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.36it/s]
epoch 77 | loss 3.231976270675659, f_iou 0.7562153935432434: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.36it/s]
epoch 77 | loss 3.231976270675659, f_iou 0.7562153935432434: 62%|███████████████████████ | 46/74 [00:40<00:21, 1.32it/s]
epoch 77 | loss 1.1253901720046997, f_iou 0.7532677054405212: 62%|██████████████████████▍ | 46/74 [00:41<00:21, 1.32it/s]
epoch 77 | loss 1.1253901720046997, f_iou 0.7532677054405212: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.32it/s]
epoch 77 | loss 0.6849949359893799, f_iou 0.7375965118408203: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.32it/s]
epoch 77 | loss 0.6849949359893799, f_iou 0.7375965118408203: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.32it/s]
epoch 77 | loss 0.9712392091751099, f_iou 0.7390303015708923: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.32it/s]
epoch 77 | loss 0.9712392091751099, f_iou 0.7390303015708923: 66%|███████████████████████▊ | 49/74 [00:42<00:19, 1.32it/s]
epoch 77 | loss 0.6087623238563538, f_iou 0.7435517907142639: 66%|███████████████████████▊ | 49/74 [00:43<00:19, 1.32it/s]
epoch 77 | loss 0.6087623238563538, f_iou 0.7435517907142639: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.31it/s]
epoch 77 | loss 1.881284475326538, f_iou 0.7317280173301697: 68%|█████████████████████████ | 50/74 [00:44<00:18, 1.31it/s]
epoch 77 | loss 1.881284475326538, f_iou 0.7317280173301697: 69%|█████████████████████████▌ | 51/74 [00:44<00:17, 1.31it/s]
epoch 77 | loss 1.7635828256607056, f_iou 0.7288956046104431: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.31it/s]
epoch 77 | loss 1.7635828256607056, f_iou 0.7288956046104431: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.31it/s]
epoch 77 | loss 0.4466407299041748, f_iou 0.7151462435722351: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.31it/s]
epoch 77 | loss 0.4466407299041748, f_iou 0.7151462435722351: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.33it/s]
epoch 77 | loss 3.672443151473999, f_iou 0.7070677280426025: 72%|██████████████████████████▌ | 53/74 [00:46<00:15, 1.33it/s]
epoch 77 | loss 3.672443151473999, f_iou 0.7070677280426025: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.35it/s]
epoch 77 | loss 0.5951142907142639, f_iou 0.7027914524078369: 73%|██████████████████████████▎ | 54/74 [00:47<00:14, 1.35it/s]
epoch 77 | loss 0.5951142907142639, f_iou 0.7027914524078369: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.35it/s]
epoch 77 | loss 0.2740541100502014, f_iou 0.706132173538208: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.35it/s]
epoch 77 | loss 0.2740541100502014, f_iou 0.706132173538208: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.37it/s]
epoch 77 | loss 3.249340534210205, f_iou 0.7012695074081421: 76%|████████████████████████████ | 56/74 [00:48<00:13, 1.37it/s]
epoch 77 | loss 3.249340534210205, f_iou 0.7012695074081421: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.35it/s]
epoch 77 | loss 2.6549291610717773, f_iou 0.7036766409873962: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.35it/s]
epoch 77 | loss 2.6549291610717773, f_iou 0.7036766409873962: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.33it/s]
epoch 77 | loss 2.5135111808776855, f_iou 0.702631413936615: 78%|█████████████████████████████ | 58/74 [00:50<00:12, 1.33it/s]
epoch 77 | loss 2.5135111808776855, f_iou 0.702631413936615: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.34it/s]
epoch 77 | loss 0.6088732481002808, f_iou 0.7015185356140137: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.34it/s]
epoch 77 | loss 0.6088732481002808, f_iou 0.7015185356140137: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.35it/s]
epoch 77 | loss 0.9533654451370239, f_iou 0.703014612197876: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.35it/s]
epoch 77 | loss 0.9533654451370239, f_iou 0.703014612197876: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.36it/s]
epoch 77 | loss 0.9060368537902832, f_iou 0.7038029432296753: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.36it/s]
epoch 77 | loss 0.9060368537902832, f_iou 0.7038029432296753: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.37it/s]
epoch 77 | loss 0.0, f_iou 0.7082319259643555: 84%|██████████████████████████████████████████▋ | 62/74 [00:52<00:08, 1.37it/s]
epoch 77 | loss 0.0, f_iou 0.7082319259643555: 85%|███████████████████████████████████████████▍ | 63/74 [00:52<00:07, 1.38it/s]
epoch 77 | loss 1.010690450668335, f_iou 0.7090444564819336: 85%|███████████████████████████████▌ | 63/74 [00:53<00:07, 1.38it/s]
epoch 77 | loss 1.010690450668335, f_iou 0.7090444564819336: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.38it/s]
epoch 77 | loss 1.4908931255340576, f_iou 0.7087501287460327: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.38it/s]
epoch 77 | loss 1.4908931255340576, f_iou 0.7087501287460327: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 77 | loss 0.6484019756317139, f_iou 0.7114445567131042: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.38it/s]
epoch 77 | loss 0.6484019756317139, f_iou 0.7114445567131042: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 77 | loss 1.2310739755630493, f_iou 0.7131603360176086: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 77 | loss 1.2310739755630493, f_iou 0.7131603360176086: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 77 | loss 0.6227795481681824, f_iou 0.7142239809036255: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 77 | loss 0.6227795481681824, f_iou 0.7142239809036255: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 77 | loss 0.7408024072647095, f_iou 0.7170284986495972: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.40it/s]
epoch 77 | loss 0.7408024072647095, f_iou 0.7170284986495972: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 77 | loss 0.6365249156951904, f_iou 0.7187758684158325: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 77 | loss 0.6365249156951904, f_iou 0.7187758684158325: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 77 | loss 1.2500574588775635, f_iou 0.7200656533241272: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 77 | loss 1.2500574588775635, f_iou 0.7200656533241272: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 77 | loss 0.6862474679946899, f_iou 0.7231215834617615: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 77 | loss 0.6862474679946899, f_iou 0.7231215834617615: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 77 | loss 0.7180946469306946, f_iou 0.7250856161117554: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 77 | loss 0.7180946469306946, f_iou 0.7250856161117554: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 77 | loss 0.5890735387802124, f_iou 0.7274836897850037: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 77 | loss 0.5890735387802124, f_iou 0.7274836897850037: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 77 | loss 0.5890735387802124, f_iou 0.7274836897850037: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 77 | valid.f_iou 0.7463200092315674, valid.f_f-score 0.82949: 0%| | 0/16 [00:05, ?it/s]
epoch 77 | valid.f_iou 0.7463200092315674, valid.f_f-score 0.82949: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 77 | valid.f_iou 0.6758900284767151, valid.f_f-score 0.81642: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 77 | valid.f_iou 0.6758900284767151, valid.f_f-score 0.81642: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 77 | valid.f_iou 0.5639299750328064, valid.f_f-score 0.73667: 12%|███▉ | 2/16 [00:06<00:34, 2.45s/it]
epoch 77 | valid.f_iou 0.5639299750328064, valid.f_f-score 0.73667: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 77 | valid.f_iou 0.6033899784088135, valid.f_f-score 0.74848: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 77 | valid.f_iou 0.6033899784088135, valid.f_f-score 0.74848: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 77 | valid.f_iou 0.6050999760627747, valid.f_f-score 0.7623: 25%|████████ | 4/16 [00:07<00:13, 1.13s/it]
epoch 77 | valid.f_iou 0.6050999760627747, valid.f_f-score 0.7623: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 77 | valid.f_iou 0.5740399956703186, valid.f_f-score 0.72532: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 77 | valid.f_iou 0.5740399956703186, valid.f_f-score 0.72532: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 77 | valid.f_iou 0.6001499891281128, valid.f_f-score 0.74609: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 77 | valid.f_iou 0.6001499891281128, valid.f_f-score 0.74609: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 77 | valid.f_iou 0.5928999781608582, valid.f_f-score 0.73776: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 77 | valid.f_iou 0.5928999781608582, valid.f_f-score 0.73776: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 77 | valid.f_iou 0.5968599915504456, valid.f_f-score 0.73063: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 77 | valid.f_iou 0.5968599915504456, valid.f_f-score 0.73063: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.88it/s]
epoch 77 | valid.f_iou 0.5906100273132324, valid.f_f-score 0.73173: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 77 | valid.f_iou 0.5906100273132324, valid.f_f-score 0.73173: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 77 | valid.f_iou 0.5906699895858765, valid.f_f-score 0.72996: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 77 | valid.f_iou 0.5906699895858765, valid.f_f-score 0.72996: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 77 | valid.f_iou 0.6131600141525269, valid.f_f-score 0.74669: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.25it/s]
epoch 77 | valid.f_iou 0.6131600141525269, valid.f_f-score 0.74669: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 77 | valid.f_iou 0.6128600239753723, valid.f_f-score 0.75295: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 77 | valid.f_iou 0.6128600239753723, valid.f_f-score 0.75295: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 77 | valid.f_iou 0.6022899746894836, valid.f_f-score 0.7461: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 77 | valid.f_iou 0.6022899746894836, valid.f_f-score 0.7461: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 77 | valid.f_iou 0.6063500046730042, valid.f_f-score 0.7458: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.54it/s]
epoch 77 | valid.f_iou 0.6063500046730042, valid.f_f-score 0.7458: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.58it/s]
epoch 77 | valid.f_iou 0.6088299751281738, valid.f_f-score 0.74346: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 77 | valid.f_iou 0.6088299751281738, valid.f_f-score 0.74346: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 77 | valid.f_iou 0.6088299751281738, valid.f_f-score 0.74346: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 77 | valid.f_iou 0.7767800092697144, valid.f_f-score 0.84524: 0%| | 0/16 [00:05, ?it/s]
epoch 77 | valid.f_iou 0.7767800092697144, valid.f_f-score 0.84524: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 77 | valid.f_iou 0.8277599811553955, valid.f_f-score 0.89728: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 77 | valid.f_iou 0.8277599811553955, valid.f_f-score 0.89728: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 77 | valid.f_iou 0.6975100040435791, valid.f_f-score 0.8119: 12%|████ | 2/16 [00:06<00:34, 2.46s/it]
epoch 77 | valid.f_iou 0.6975100040435791, valid.f_f-score 0.8119: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 77 | valid.f_iou 0.6743000149726868, valid.f_f-score 0.76796: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 77 | valid.f_iou 0.6743000149726868, valid.f_f-score 0.76796: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 77 | valid.f_iou 0.6527400016784668, valid.f_f-score 0.75779: 25%|███████▊ | 4/16 [00:07<00:12, 1.08s/it]
epoch 77 | valid.f_iou 0.6527400016784668, valid.f_f-score 0.75779: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 77 | valid.f_iou 0.6345099806785583, valid.f_f-score 0.72895: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 77 | valid.f_iou 0.6345099806785583, valid.f_f-score 0.72895: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 77 | valid.f_iou 0.6554999947547913, valid.f_f-score 0.75455: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 77 | valid.f_iou 0.6554999947547913, valid.f_f-score 0.75455: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 77 | valid.f_iou 0.6455699801445007, valid.f_f-score 0.74409: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.70it/s]
epoch 77 | valid.f_iou 0.6455699801445007, valid.f_f-score 0.74409: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 77 | valid.f_iou 0.6666100025177002, valid.f_f-score 0.75673: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.90it/s]
epoch 77 | valid.f_iou 0.6666100025177002, valid.f_f-score 0.75673: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.13it/s]
epoch 77 | valid.f_iou 0.6830800175666809, valid.f_f-score 0.77302: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.13it/s]
epoch 77 | valid.f_iou 0.6830800175666809, valid.f_f-score 0.77302: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.28it/s]
epoch 77 | valid.f_iou 0.6812899708747864, valid.f_f-score 0.7703: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.28it/s]
epoch 77 | valid.f_iou 0.6812899708747864, valid.f_f-score 0.7703: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.40it/s]
epoch 77 | valid.f_iou 0.6946099996566772, valid.f_f-score 0.78371: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.40it/s]
epoch 77 | valid.f_iou 0.6946099996566772, valid.f_f-score 0.78371: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 77 | valid.f_iou 0.7081699967384338, valid.f_f-score 0.79437: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 77 | valid.f_iou 0.7081699967384338, valid.f_f-score 0.79437: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 77 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.79016: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 77 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.79016: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 77 | valid.f_iou 0.7139300107955933, valid.f_f-score 0.80089: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 77 | valid.f_iou 0.7139300107955933, valid.f_f-score 0.80089: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 77 | valid.f_iou 0.7133200168609619, valid.f_f-score 0.80057: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.66it/s]
epoch 77 | valid.f_iou 0.7133200168609619, valid.f_f-score 0.80057: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 77 | valid.f_iou 0.7133200168609619, valid.f_f-score 0.80057: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 77 | valid.f_iou 0.7767800092697144, valid.f_f-score 0.84524: 0%| | 0/16 [00:04, ?it/s]
epoch 77 | valid.f_iou 0.7767800092697144, valid.f_f-score 0.84524: 6%|█▉ | 1/16 [00:04<01:11, 4.80s/it]
epoch 77 | valid.f_iou 0.8277599811553955, valid.f_f-score 0.89728: 6%|█▉ | 1/16 [00:05<01:11, 4.80s/it]
epoch 77 | valid.f_iou 0.8277599811553955, valid.f_f-score 0.89728: 12%|███▉ | 2/16 [00:05<00:31, 2.25s/it]
epoch 77 | valid.f_iou 0.6975100040435791, valid.f_f-score 0.8119: 12%|████ | 2/16 [00:05<00:31, 2.25s/it]
epoch 77 | valid.f_iou 0.6975100040435791, valid.f_f-score 0.8119: 19%|██████ | 3/16 [00:05<00:18, 1.42s/it]
epoch 77 | valid.f_iou 0.6744599938392639, valid.f_f-score 0.76796: 19%|█████▊ | 3/16 [00:06<00:18, 1.42s/it]
epoch 77 | valid.f_iou 0.6744599938392639, valid.f_f-score 0.76796: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 77 | valid.f_iou 0.6624100208282471, valid.f_f-score 0.75779: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 77 | valid.f_iou 0.6624100208282471, valid.f_f-score 0.75779: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 77 | valid.f_iou 0.6425700187683105, valid.f_f-score 0.72895: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 77 | valid.f_iou 0.6425700187683105, valid.f_f-score 0.72895: 38%|███████████▋ | 6/16 [00:06<00:06, 1.46it/s]
epoch 77 | valid.f_iou 0.6641799807548523, valid.f_f-score 0.75455: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 77 | valid.f_iou 0.6641799807548523, valid.f_f-score 0.75455: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 77 | valid.f_iou 0.6531699895858765, valid.f_f-score 0.74409: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 77 | valid.f_iou 0.6531699895858765, valid.f_f-score 0.74409: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.83it/s]
epoch 77 | valid.f_iou 0.6744400262832642, valid.f_f-score 0.75673: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 77 | valid.f_iou 0.6744400262832642, valid.f_f-score 0.75673: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 77 | valid.f_iou 0.6861799955368042, valid.f_f-score 0.76949: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 77 | valid.f_iou 0.6861799955368042, valid.f_f-score 0.76949: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.15it/s]
epoch 77 | valid.f_iou 0.6802700161933899, valid.f_f-score 0.76305: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.15it/s]
epoch 77 | valid.f_iou 0.6802700161933899, valid.f_f-score 0.76305: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.29it/s]
epoch 77 | valid.f_iou 0.6936799883842468, valid.f_f-score 0.77706: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 77 | valid.f_iou 0.6936799883842468, valid.f_f-score 0.77706: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 77 | valid.f_iou 0.7073100209236145, valid.f_f-score 0.78901: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 77 | valid.f_iou 0.7073100209236145, valid.f_f-score 0.78901: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.51it/s]
epoch 77 | valid.f_iou 0.7034800052642822, valid.f_f-score 0.7852: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.51it/s]
epoch 77 | valid.f_iou 0.7034800052642822, valid.f_f-score 0.7852: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.58it/s]
epoch 77 | valid.f_iou 0.7131800055503845, valid.f_f-score 0.79626: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 77 | valid.f_iou 0.7131800055503845, valid.f_f-score 0.79626: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 77 | valid.f_iou 0.7134900093078613, valid.f_f-score 0.79623: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 77 | valid.f_iou 0.7134900093078613, valid.f_f-score 0.79623: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 77 | valid.f_iou 0.7134900093078613, valid.f_f-score 0.79623: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 78 | loss 0.799573540687561, f_iou 0.9287733435630798: 0%| | 0/74 [00:06, ?it/s]
epoch 78 | loss 0.799573540687561, f_iou 0.9287733435630798: 1%|▌ | 1/74 [00:06<07:43, 6.36s/it]
epoch 78 | loss 0.6405870318412781, f_iou 0.6637596487998962: 1%|▌ | 1/74 [00:07<07:43, 6.36s/it]
epoch 78 | loss 0.6405870318412781, f_iou 0.6637596487998962: 3%|█ | 2/74 [00:07<03:42, 3.08s/it]
epoch 78 | loss 1.6391795873641968, f_iou 0.649419903755188: 3%|█ | 2/74 [00:07<03:42, 3.08s/it]
epoch 78 | loss 1.6391795873641968, f_iou 0.649419903755188: 4%|█▌ | 3/74 [00:07<02:23, 2.03s/it]
epoch 78 | loss 0.9714623689651489, f_iou 0.7022914886474609: 4%|█▌ | 3/74 [00:08<02:23, 2.03s/it]
epoch 78 | loss 0.9714623689651489, f_iou 0.7022914886474609: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 78 | loss 1.6205377578735352, f_iou 0.7142136096954346: 5%|██ | 4/74 [00:09<01:47, 1.54s/it]
epoch 78 | loss 1.6205377578735352, f_iou 0.7142136096954346: 7%|██▌ | 5/74 [00:09<01:29, 1.30s/it]
epoch 78 | loss 0.737080991268158, f_iou 0.7343190908432007: 7%|██▌ | 5/74 [00:10<01:29, 1.30s/it]
epoch 78 | loss 0.737080991268158, f_iou 0.7343190908432007: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 78 | loss 1.116668701171875, f_iou 0.7488563060760498: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 78 | loss 1.116668701171875, f_iou 0.7488563060760498: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 78 | loss 0.9210461974143982, f_iou 0.6674632430076599: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 78 | loss 0.9210461974143982, f_iou 0.6674632430076599: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 78 | loss 1.0795938968658447, f_iou 0.6049513220787048: 11%|████ | 8/74 [00:12<01:01, 1.08it/s]
epoch 78 | loss 1.0795938968658447, f_iou 0.6049513220787048: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 78 | loss 1.0960665941238403, f_iou 0.5615169405937195: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 78 | loss 1.0960665941238403, f_iou 0.5615169405937195: 14%|████▊ | 10/74 [00:13<00:55, 1.16it/s]
epoch 78 | loss 1.2555015087127686, f_iou 0.5809158682823181: 14%|████▊ | 10/74 [00:14<00:55, 1.16it/s]
epoch 78 | loss 1.2555015087127686, f_iou 0.5809158682823181: 15%|█████▎ | 11/74 [00:14<00:53, 1.17it/s]
epoch 78 | loss 0.8637948632240295, f_iou 0.5789148211479187: 15%|█████▎ | 11/74 [00:15<00:53, 1.17it/s]
epoch 78 | loss 0.8637948632240295, f_iou 0.5789148211479187: 16%|█████▊ | 12/74 [00:15<00:51, 1.21it/s]
epoch 78 | loss 0.7230997085571289, f_iou 0.5990567207336426: 16%|█████▊ | 12/74 [00:15<00:51, 1.21it/s]
epoch 78 | loss 0.7230997085571289, f_iou 0.5990567207336426: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 78 | loss 2.254685401916504, f_iou 0.5945689678192139: 18%|██████▌ | 13/74 [00:16<00:49, 1.24it/s]
epoch 78 | loss 2.254685401916504, f_iou 0.5945689678192139: 19%|███████ | 14/74 [00:16<00:47, 1.26it/s]
epoch 78 | loss 0.7785546779632568, f_iou 0.6161144375801086: 19%|██████▊ | 14/74 [00:17<00:47, 1.26it/s]
epoch 78 | loss 0.7785546779632568, f_iou 0.6161144375801086: 20%|███████▎ | 15/74 [00:17<00:46, 1.27it/s]
epoch 78 | loss 0.8319398164749146, f_iou 0.6207160353660583: 20%|███████▎ | 15/74 [00:18<00:46, 1.27it/s]
epoch 78 | loss 0.8319398164749146, f_iou 0.6207160353660583: 22%|███████▊ | 16/74 [00:18<00:45, 1.29it/s]
epoch 78 | loss 1.5197510719299316, f_iou 0.6294314861297607: 22%|███████▊ | 16/74 [00:18<00:45, 1.29it/s]
epoch 78 | loss 1.5197510719299316, f_iou 0.6294314861297607: 23%|████████▎ | 17/74 [00:18<00:43, 1.30it/s]
epoch 78 | loss 0.8105543851852417, f_iou 0.6430123448371887: 23%|████████▎ | 17/74 [00:19<00:43, 1.30it/s]
epoch 78 | loss 0.8105543851852417, f_iou 0.6430123448371887: 24%|████████▊ | 18/74 [00:19<00:42, 1.30it/s]
epoch 78 | loss 1.0948644876480103, f_iou 0.6386739611625671: 24%|████████▊ | 18/74 [00:20<00:42, 1.30it/s]
epoch 78 | loss 1.0948644876480103, f_iou 0.6386739611625671: 26%|█████████▏ | 19/74 [00:20<00:42, 1.30it/s]
epoch 78 | loss 0.43056371808052063, f_iou 0.6543911099433899: 26%|████████▉ | 19/74 [00:21<00:42, 1.30it/s]
epoch 78 | loss 0.43056371808052063, f_iou 0.6543911099433899: 27%|█████████▍ | 20/74 [00:21<00:40, 1.33it/s]
epoch 78 | loss 0.6058120131492615, f_iou 0.6397681832313538: 27%|█████████▋ | 20/74 [00:21<00:40, 1.33it/s]
epoch 78 | loss 0.6058120131492615, f_iou 0.6397681832313538: 28%|██████████▏ | 21/74 [00:21<00:39, 1.34it/s]
epoch 78 | loss 2.6572513580322266, f_iou 0.654235303401947: 28%|██████████▌ | 21/74 [00:22<00:39, 1.34it/s]
epoch 78 | loss 2.6572513580322266, f_iou 0.654235303401947: 30%|███████████ | 22/74 [00:22<00:38, 1.36it/s]
epoch 78 | loss 1.2445409297943115, f_iou 0.6384406089782715: 30%|██████████▋ | 22/74 [00:23<00:38, 1.36it/s]
epoch 78 | loss 1.2445409297943115, f_iou 0.6384406089782715: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 78 | loss 1.0316667556762695, f_iou 0.6446706652641296: 31%|███████████▏ | 23/74 [00:24<00:37, 1.37it/s]
epoch 78 | loss 1.0316667556762695, f_iou 0.6446706652641296: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 78 | loss 1.776686191558838, f_iou 0.6395752429962158: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 78 | loss 1.776686191558838, f_iou 0.6395752429962158: 34%|████████████▌ | 25/74 [00:24<00:35, 1.37it/s]
epoch 78 | loss 0.8232449889183044, f_iou 0.6488017439842224: 34%|████████████▏ | 25/74 [00:25<00:35, 1.37it/s]
epoch 78 | loss 0.8232449889183044, f_iou 0.6488017439842224: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 78 | loss 1.1641273498535156, f_iou 0.6567288637161255: 35%|████████████▋ | 26/74 [00:26<00:34, 1.38it/s]
epoch 78 | loss 1.1641273498535156, f_iou 0.6567288637161255: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 78 | loss 1.4616968631744385, f_iou 0.6536301970481873: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 78 | loss 1.4616968631744385, f_iou 0.6536301970481873: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.38it/s]
epoch 78 | loss 0.7360166907310486, f_iou 0.6605252027511597: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 78 | loss 0.7360166907310486, f_iou 0.6605252027511597: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 78 | loss 1.5057413578033447, f_iou 0.6584362983703613: 39%|██████████████ | 29/74 [00:28<00:32, 1.39it/s]
epoch 78 | loss 1.5057413578033447, f_iou 0.6584362983703613: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 78 | loss 0.7525200843811035, f_iou 0.6553469300270081: 41%|██████████████▌ | 30/74 [00:29<00:31, 1.39it/s]
epoch 78 | loss 0.7525200843811035, f_iou 0.6553469300270081: 42%|███████████████ | 31/74 [00:29<00:30, 1.39it/s]
epoch 78 | loss 0.6275213956832886, f_iou 0.6524895429611206: 42%|███████████████ | 31/74 [00:29<00:30, 1.39it/s]
epoch 78 | loss 0.6275213956832886, f_iou 0.6524895429611206: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 78 | loss 0.7992948889732361, f_iou 0.6608626246452332: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.39it/s]
epoch 78 | loss 0.7992948889732361, f_iou 0.6608626246452332: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 78 | loss 0.7740811705589294, f_iou 0.6424171924591064: 45%|████████████████ | 33/74 [00:31<00:29, 1.40it/s]
epoch 78 | loss 0.7740811705589294, f_iou 0.6424171924591064: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.40it/s]
epoch 78 | loss 0.33028948307037354, f_iou 0.6240756511688232: 46%|████████████████ | 34/74 [00:31<00:28, 1.40it/s]
epoch 78 | loss 0.33028948307037354, f_iou 0.6240756511688232: 47%|████████████████▌ | 35/74 [00:31<00:27, 1.40it/s]
epoch 78 | loss 1.4883331060409546, f_iou 0.6328499913215637: 47%|█████████████████ | 35/74 [00:32<00:27, 1.40it/s]
epoch 78 | loss 1.4883331060409546, f_iou 0.6328499913215637: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 78 | loss 1.1311113834381104, f_iou 0.6398810148239136: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 78 | loss 1.1311113834381104, f_iou 0.6398810148239136: 50%|██████████████████ | 37/74 [00:33<00:27, 1.37it/s]
epoch 78 | loss 2.027529716491699, f_iou 0.6346469521522522: 50%|██████████████████▌ | 37/74 [00:34<00:27, 1.37it/s]
epoch 78 | loss 2.027529716491699, f_iou 0.6346469521522522: 51%|███████████████████ | 38/74 [00:34<00:26, 1.38it/s]
epoch 78 | loss 0.9864324331283569, f_iou 0.6382426023483276: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 78 | loss 0.9864324331283569, f_iou 0.6382426023483276: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 78 | loss 0.4332703948020935, f_iou 0.6465420722961426: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 78 | loss 0.4332703948020935, f_iou 0.6465420722961426: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 78 | loss 1.0955572128295898, f_iou 0.6505158543586731: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 78 | loss 1.0955572128295898, f_iou 0.6505158543586731: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 78 | loss 0.5670439004898071, f_iou 0.6566547155380249: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.39it/s]
epoch 78 | loss 0.5670439004898071, f_iou 0.6566547155380249: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 78 | loss 1.595475196838379, f_iou 0.6564235687255859: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.39it/s]
epoch 78 | loss 1.595475196838379, f_iou 0.6564235687255859: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.39it/s]
epoch 78 | loss 1.1280603408813477, f_iou 0.6415048837661743: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.39it/s]
epoch 78 | loss 1.1280603408813477, f_iou 0.6415048837661743: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 78 | loss 2.1986098289489746, f_iou 0.6384944915771484: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 78 | loss 2.1986098289489746, f_iou 0.6384944915771484: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 78 | loss 0.8484352827072144, f_iou 0.6376330256462097: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 78 | loss 0.8484352827072144, f_iou 0.6376330256462097: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 78 | loss 0.8088308572769165, f_iou 0.64341139793396: 62%|███████████████████████▌ | 46/74 [00:40<00:20, 1.39it/s]
epoch 78 | loss 0.8088308572769165, f_iou 0.64341139793396: 64%|████████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 78 | loss 1.4070165157318115, f_iou 0.6480250358581543: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 78 | loss 1.4070165157318115, f_iou 0.6480250358581543: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 78 | loss 1.3097583055496216, f_iou 0.6524855494499207: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.39it/s]
epoch 78 | loss 1.3097583055496216, f_iou 0.6524855494499207: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 78 | loss 0.5374099016189575, f_iou 0.6561123728752136: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 78 | loss 0.5374099016189575, f_iou 0.6561123728752136: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 78 | loss 0.8177871108055115, f_iou 0.6621007323265076: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.40it/s]
epoch 78 | loss 0.8177871108055115, f_iou 0.6621007323265076: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 78 | loss 1.6176066398620605, f_iou 0.6613125205039978: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 78 | loss 1.6176066398620605, f_iou 0.6613125205039978: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 78 | loss 1.1609077453613281, f_iou 0.6621813178062439: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 78 | loss 1.1609077453613281, f_iou 0.6621813178062439: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 78 | loss 1.3039493560791016, f_iou 0.6566148996353149: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 78 | loss 1.3039493560791016, f_iou 0.6566148996353149: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 78 | loss 1.1777936220169067, f_iou 0.6551761031150818: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 78 | loss 1.1777936220169067, f_iou 0.6551761031150818: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 78 | loss 0.6075565814971924, f_iou 0.6605024337768555: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 78 | loss 0.6075565814971924, f_iou 0.6605024337768555: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 78 | loss 0.7522953152656555, f_iou 0.6643620133399963: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 78 | loss 0.7522953152656555, f_iou 0.6643620133399963: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 78 | loss 1.2039687633514404, f_iou 0.6532295346260071: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 78 | loss 1.2039687633514404, f_iou 0.6532295346260071: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.40it/s]
epoch 78 | loss 0.8392837047576904, f_iou 0.6580086946487427: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.40it/s]
epoch 78 | loss 0.8392837047576904, f_iou 0.6580086946487427: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 78 | loss 1.6081727743148804, f_iou 0.6587148904800415: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 78 | loss 1.6081727743148804, f_iou 0.6587148904800415: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.40it/s]
epoch 78 | loss 0.7015419006347656, f_iou 0.6479608416557312: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.40it/s]
epoch 78 | loss 0.7015419006347656, f_iou 0.6479608416557312: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 78 | loss 0.5366525053977966, f_iou 0.6531948447227478: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 78 | loss 0.5366525053977966, f_iou 0.6531948447227478: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 78 | loss 4.028334617614746, f_iou 0.648809015750885: 84%|███████████████████████████████▊ | 62/74 [00:52<00:08, 1.39it/s]
epoch 78 | loss 4.028334617614746, f_iou 0.648809015750885: 85%|████████████████████████████████▎ | 63/74 [00:52<00:07, 1.39it/s]
epoch 78 | loss 1.0016640424728394, f_iou 0.6495774984359741: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 78 | loss 1.0016640424728394, f_iou 0.6495774984359741: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 78 | loss 1.9340662956237793, f_iou 0.6502044200897217: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 78 | loss 1.9340662956237793, f_iou 0.6502044200897217: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 78 | loss 2.2427845001220703, f_iou 0.6522874236106873: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 78 | loss 2.2427845001220703, f_iou 0.6522874236106873: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 78 | loss 1.5145148038864136, f_iou 0.6505101323127747: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 78 | loss 1.5145148038864136, f_iou 0.6505101323127747: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 78 | loss 1.5191525220870972, f_iou 0.65203458070755: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.39it/s]
epoch 78 | loss 1.5191525220870972, f_iou 0.65203458070755: 92%|██████████████████████████████████▉ | 68/74 [00:55<00:04, 1.39it/s]
epoch 78 | loss 1.7271478176116943, f_iou 0.6491315364837646: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 78 | loss 1.7271478176116943, f_iou 0.6491315364837646: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 78 | loss 0.0, f_iou 0.6537051200866699: 93%|███████████████████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 78 | loss 0.0, f_iou 0.6537051200866699: 95%|████████████████████████████████████████████████▏ | 70/74 [00:57<00:02, 1.40it/s]
epoch 78 | loss 0.39184772968292236, f_iou 0.6577335596084595: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 78 | loss 0.39184772968292236, f_iou 0.6577335596084595: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 78 | loss 1.2955958843231201, f_iou 0.6514504551887512: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 78 | loss 1.2955958843231201, f_iou 0.6514504551887512: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 78 | loss 0.39530622959136963, f_iou 0.6425318121910095: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 78 | loss 0.39530622959136963, f_iou 0.6425318121910095: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 78 | loss 0.7572965621948242, f_iou 0.6455979943275452: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 78 | loss 0.7572965621948242, f_iou 0.6455979943275452: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 78 | loss 0.7572965621948242, f_iou 0.6455979943275452: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 78 | valid.f_iou 0.7515199780464172, valid.f_f-score 0.85982: 0%| | 0/16 [00:05, ?it/s]
epoch 78 | valid.f_iou 0.7515199780464172, valid.f_f-score 0.85982: 6%|█▉ | 1/16 [00:05<01:18, 5.23s/it]
epoch 78 | valid.f_iou 0.7036700248718262, valid.f_f-score 0.86883: 6%|█▉ | 1/16 [00:05<01:18, 5.23s/it]
epoch 78 | valid.f_iou 0.7036700248718262, valid.f_f-score 0.86883: 12%|███▉ | 2/16 [00:05<00:33, 2.42s/it]
epoch 78 | valid.f_iou 0.5686500072479248, valid.f_f-score 0.77664: 12%|███▉ | 2/16 [00:06<00:33, 2.42s/it]
epoch 78 | valid.f_iou 0.5686500072479248, valid.f_f-score 0.77664: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 78 | valid.f_iou 0.6111699938774109, valid.f_f-score 0.77294: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 78 | valid.f_iou 0.6111699938774109, valid.f_f-score 0.77294: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 78 | valid.f_iou 0.6108400225639343, valid.f_f-score 0.7763: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 78 | valid.f_iou 0.6108400225639343, valid.f_f-score 0.7763: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 78 | valid.f_iou 0.5707600116729736, valid.f_f-score 0.73517: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 78 | valid.f_iou 0.5707600116729736, valid.f_f-score 0.73517: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 78 | valid.f_iou 0.5892999768257141, valid.f_f-score 0.75456: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 78 | valid.f_iou 0.5892999768257141, valid.f_f-score 0.75456: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.59it/s]
epoch 78 | valid.f_iou 0.5756499767303467, valid.f_f-score 0.74588: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 78 | valid.f_iou 0.5756499767303467, valid.f_f-score 0.74588: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 78 | valid.f_iou 0.5830399990081787, valid.f_f-score 0.74334: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 78 | valid.f_iou 0.5830399990081787, valid.f_f-score 0.74334: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 78 | valid.f_iou 0.5726400017738342, valid.f_f-score 0.74226: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 78 | valid.f_iou 0.5726400017738342, valid.f_f-score 0.74226: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 78 | valid.f_iou 0.5755699872970581, valid.f_f-score 0.74117: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 78 | valid.f_iou 0.5755699872970581, valid.f_f-score 0.74117: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 78 | valid.f_iou 0.5979400277137756, valid.f_f-score 0.75703: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 78 | valid.f_iou 0.5979400277137756, valid.f_f-score 0.75703: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 78 | valid.f_iou 0.6082599759101868, valid.f_f-score 0.76494: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 78 | valid.f_iou 0.6082599759101868, valid.f_f-score 0.76494: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 78 | valid.f_iou 0.6001600027084351, valid.f_f-score 0.7577: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.44it/s]
epoch 78 | valid.f_iou 0.6001600027084351, valid.f_f-score 0.7577: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 78 | valid.f_iou 0.6041300296783447, valid.f_f-score 0.75693: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 78 | valid.f_iou 0.6041300296783447, valid.f_f-score 0.75693: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 78 | valid.f_iou 0.6072900295257568, valid.f_f-score 0.75435: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 78 | valid.f_iou 0.6072900295257568, valid.f_f-score 0.75435: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 78 | valid.f_iou 0.6072900295257568, valid.f_f-score 0.75435: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 78 | valid.f_iou 0.8030300140380859, valid.f_f-score 0.87803: 0%| | 0/16 [00:05, ?it/s]
epoch 78 | valid.f_iou 0.8030300140380859, valid.f_f-score 0.87803: 6%|█▉ | 1/16 [00:05<01:17, 5.19s/it]
epoch 78 | valid.f_iou 0.8461999893188477, valid.f_f-score 0.91654: 6%|█▉ | 1/16 [00:05<01:17, 5.19s/it]
epoch 78 | valid.f_iou 0.8461999893188477, valid.f_f-score 0.91654: 12%|███▉ | 2/16 [00:05<00:33, 2.41s/it]
epoch 78 | valid.f_iou 0.7347099781036377, valid.f_f-score 0.84349: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 78 | valid.f_iou 0.7347099781036377, valid.f_f-score 0.84349: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 78 | valid.f_iou 0.6975499987602234, valid.f_f-score 0.78373: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 78 | valid.f_iou 0.6975499987602234, valid.f_f-score 0.78373: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 78 | valid.f_iou 0.6671800017356873, valid.f_f-score 0.765: 25%|████████▎ | 4/16 [00:07<00:13, 1.09s/it]
epoch 78 | valid.f_iou 0.6671800017356873, valid.f_f-score 0.765: 31%|██████████▎ | 5/16 [00:07<00:09, 1.15it/s]
epoch 78 | valid.f_iou 0.6594399809837341, valid.f_f-score 0.76386: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 78 | valid.f_iou 0.6594399809837341, valid.f_f-score 0.76386: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 78 | valid.f_iou 0.6820799708366394, valid.f_f-score 0.78795: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 78 | valid.f_iou 0.6820799708366394, valid.f_f-score 0.78795: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 78 | valid.f_iou 0.6810799837112427, valid.f_f-score 0.79341: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 78 | valid.f_iou 0.6810799837112427, valid.f_f-score 0.79341: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 78 | valid.f_iou 0.6972299814224243, valid.f_f-score 0.80138: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 78 | valid.f_iou 0.6972299814224243, valid.f_f-score 0.80138: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 78 | valid.f_iou 0.7081400156021118, valid.f_f-score 0.81191: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 78 | valid.f_iou 0.7081400156021118, valid.f_f-score 0.81191: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 78 | valid.f_iou 0.7007899880409241, valid.f_f-score 0.79644: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 78 | valid.f_iou 0.7007899880409241, valid.f_f-score 0.79644: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 78 | valid.f_iou 0.7136499881744385, valid.f_f-score 0.80789: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 78 | valid.f_iou 0.7136499881744385, valid.f_f-score 0.80789: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.28it/s]
epoch 78 | valid.f_iou 0.7251399755477905, valid.f_f-score 0.81631: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.28it/s]
epoch 78 | valid.f_iou 0.7251399755477905, valid.f_f-score 0.81631: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 78 | valid.f_iou 0.7144899964332581, valid.f_f-score 0.81093: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 78 | valid.f_iou 0.7144899964332581, valid.f_f-score 0.81093: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 78 | valid.f_iou 0.7250800132751465, valid.f_f-score 0.82043: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.50it/s]
epoch 78 | valid.f_iou 0.7250800132751465, valid.f_f-score 0.82043: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 78 | valid.f_iou 0.7204200029373169, valid.f_f-score 0.81708: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 78 | valid.f_iou 0.7204200029373169, valid.f_f-score 0.81708: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 78 | valid.f_iou 0.7204200029373169, valid.f_f-score 0.81708: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 78 | valid.f_iou 0.8030300140380859, valid.f_f-score 0.87803: 0%| | 0/16 [00:04, ?it/s]
epoch 78 | valid.f_iou 0.8030300140380859, valid.f_f-score 0.87803: 6%|█▉ | 1/16 [00:04<01:13, 4.88s/it]
epoch 78 | valid.f_iou 0.8461999893188477, valid.f_f-score 0.91654: 6%|█▉ | 1/16 [00:05<01:13, 4.88s/it]
epoch 78 | valid.f_iou 0.8461999893188477, valid.f_f-score 0.91654: 12%|███▉ | 2/16 [00:05<00:31, 2.27s/it]
epoch 78 | valid.f_iou 0.7347099781036377, valid.f_f-score 0.84349: 12%|███▉ | 2/16 [00:05<00:31, 2.27s/it]
epoch 78 | valid.f_iou 0.7347099781036377, valid.f_f-score 0.84349: 19%|█████▊ | 3/16 [00:05<00:18, 1.45s/it]
epoch 78 | valid.f_iou 0.6977099776268005, valid.f_f-score 0.78373: 19%|█████▊ | 3/16 [00:06<00:18, 1.45s/it]
epoch 78 | valid.f_iou 0.6977099776268005, valid.f_f-score 0.78373: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 78 | valid.f_iou 0.6766200065612793, valid.f_f-score 0.765: 25%|████████▎ | 4/16 [00:06<00:12, 1.05s/it]
epoch 78 | valid.f_iou 0.6766200065612793, valid.f_f-score 0.765: 31%|██████████▎ | 5/16 [00:06<00:09, 1.19it/s]
epoch 78 | valid.f_iou 0.6672999858856201, valid.f_f-score 0.76386: 31%|█████████▋ | 5/16 [00:07<00:09, 1.19it/s]
epoch 78 | valid.f_iou 0.6672999858856201, valid.f_f-score 0.76386: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 78 | valid.f_iou 0.6906099915504456, valid.f_f-score 0.78795: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 78 | valid.f_iou 0.6906099915504456, valid.f_f-score 0.78795: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 78 | valid.f_iou 0.688539981842041, valid.f_f-score 0.79341: 44%|██████████████ | 7/16 [00:08<00:05, 1.60it/s]
epoch 78 | valid.f_iou 0.688539981842041, valid.f_f-score 0.79341: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 78 | valid.f_iou 0.7070900201797485, valid.f_f-score 0.80138: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 78 | valid.f_iou 0.7070900201797485, valid.f_f-score 0.80138: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 78 | valid.f_iou 0.7134400010108948, valid.f_f-score 0.80839: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 78 | valid.f_iou 0.7134400010108948, valid.f_f-score 0.80839: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 78 | valid.f_iou 0.7019000053405762, valid.f_f-score 0.78916: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 78 | valid.f_iou 0.7019000053405762, valid.f_f-score 0.78916: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 78 | valid.f_iou 0.7146700024604797, valid.f_f-score 0.80122: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.18it/s]
epoch 78 | valid.f_iou 0.7146700024604797, valid.f_f-score 0.80122: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.32it/s]
epoch 78 | valid.f_iou 0.7260800004005432, valid.f_f-score 0.811: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.32it/s]
epoch 78 | valid.f_iou 0.7260800004005432, valid.f_f-score 0.811: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.44it/s]
epoch 78 | valid.f_iou 0.7153599858283997, valid.f_f-score 0.806: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.44it/s]
epoch 78 | valid.f_iou 0.7153599858283997, valid.f_f-score 0.806: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.52it/s]
epoch 78 | valid.f_iou 0.7258899807929993, valid.f_f-score 0.81583: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 78 | valid.f_iou 0.7258899807929993, valid.f_f-score 0.81583: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 78 | valid.f_iou 0.7216500043869019, valid.f_f-score 0.81277: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 78 | valid.f_iou 0.7216500043869019, valid.f_f-score 0.81277: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 78 | valid.f_iou 0.7216500043869019, valid.f_f-score 0.81277: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 79 | loss 1.8371535539627075, f_iou 0.5636525750160217: 0%| | 0/74 [00:06, ?it/s]
epoch 79 | loss 1.8371535539627075, f_iou 0.5636525750160217: 1%|▌ | 1/74 [00:06<07:42, 6.34s/it]
epoch 79 | loss 0.6782452464103699, f_iou 0.7378678321838379: 1%|▌ | 1/74 [00:07<07:42, 6.34s/it]
epoch 79 | loss 0.6782452464103699, f_iou 0.7378678321838379: 3%|█ | 2/74 [00:07<03:42, 3.10s/it]
epoch 79 | loss 0.4060133099555969, f_iou 0.5003171563148499: 3%|█ | 2/74 [00:08<03:42, 3.10s/it]
epoch 79 | loss 0.4060133099555969, f_iou 0.5003171563148499: 4%|█▌ | 3/74 [00:08<02:26, 2.07s/it]
epoch 79 | loss 0.475135862827301, f_iou 0.6196185946464539: 4%|█▌ | 3/74 [00:08<02:26, 2.07s/it]
epoch 79 | loss 0.475135862827301, f_iou 0.6196185946464539: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 79 | loss 3.9843616485595703, f_iou 0.602512538433075: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 79 | loss 3.9843616485595703, f_iou 0.602512538433075: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 79 | loss 2.5163421630859375, f_iou 0.5812783241271973: 7%|██▌ | 5/74 [00:10<01:28, 1.28s/it]
epoch 79 | loss 2.5163421630859375, f_iou 0.5812783241271973: 8%|███ | 6/74 [00:10<01:20, 1.18s/it]
epoch 79 | loss 2.026825428009033, f_iou 0.5785872340202332: 8%|███ | 6/74 [00:11<01:20, 1.18s/it]
epoch 79 | loss 2.026825428009033, f_iou 0.5785872340202332: 9%|███▌ | 7/74 [00:11<01:10, 1.05s/it]
epoch 79 | loss 2.562082529067993, f_iou 0.5926253795623779: 9%|███▌ | 7/74 [00:12<01:10, 1.05s/it]
epoch 79 | loss 2.562082529067993, f_iou 0.5926253795623779: 11%|████ | 8/74 [00:12<01:03, 1.03it/s]
epoch 79 | loss 0.3987426161766052, f_iou 0.6280838251113892: 11%|████ | 8/74 [00:12<01:03, 1.03it/s]
epoch 79 | loss 0.3987426161766052, f_iou 0.6280838251113892: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 79 | loss 0.4978629946708679, f_iou 0.6545258164405823: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 79 | loss 0.4978629946708679, f_iou 0.6545258164405823: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 79 | loss 1.631288766860962, f_iou 0.6559752225875854: 14%|█████ | 10/74 [00:14<00:54, 1.18it/s]
epoch 79 | loss 1.631288766860962, f_iou 0.6559752225875854: 15%|█████▌ | 11/74 [00:14<00:51, 1.23it/s]
epoch 79 | loss 0.9718843102455139, f_iou 0.6785270571708679: 15%|█████▎ | 11/74 [00:15<00:51, 1.23it/s]
epoch 79 | loss 0.9718843102455139, f_iou 0.6785270571708679: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 79 | loss 0.36425986886024475, f_iou 0.6973698735237122: 16%|█████▋ | 12/74 [00:15<00:48, 1.28it/s]
epoch 79 | loss 0.36425986886024475, f_iou 0.6973698735237122: 18%|██████▏ | 13/74 [00:15<00:46, 1.30it/s]
epoch 79 | loss 0.0, f_iou 0.706861138343811: 18%|█████████▏ | 13/74 [00:16<00:46, 1.30it/s]
epoch 79 | loss 0.0, f_iou 0.706861138343811: 19%|█████████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 79 | loss 1.2066930532455444, f_iou 0.7224477529525757: 19%|██████▊ | 14/74 [00:17<00:45, 1.33it/s]
epoch 79 | loss 1.2066930532455444, f_iou 0.7224477529525757: 20%|███████▎ | 15/74 [00:17<00:43, 1.34it/s]
epoch 79 | loss 0.8212504386901855, f_iou 0.7324141263961792: 20%|███████▎ | 15/74 [00:17<00:43, 1.34it/s]
epoch 79 | loss 0.8212504386901855, f_iou 0.7324141263961792: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 79 | loss 1.1746809482574463, f_iou 0.7297027111053467: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 79 | loss 1.1746809482574463, f_iou 0.7297027111053467: 23%|████████▎ | 17/74 [00:18<00:41, 1.36it/s]
epoch 79 | loss 1.5764135122299194, f_iou 0.7383741736412048: 23%|████████▎ | 17/74 [00:19<00:41, 1.36it/s]
epoch 79 | loss 1.5764135122299194, f_iou 0.7383741736412048: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 79 | loss 2.0591518878936768, f_iou 0.7304242849349976: 24%|████████▊ | 18/74 [00:20<00:40, 1.37it/s]
epoch 79 | loss 2.0591518878936768, f_iou 0.7304242849349976: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 79 | loss 0.9629690647125244, f_iou 0.7375022768974304: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 79 | loss 0.9629690647125244, f_iou 0.7375022768974304: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 79 | loss 1.2835018634796143, f_iou 0.7333539724349976: 27%|█████████▋ | 20/74 [00:21<00:38, 1.39it/s]
epoch 79 | loss 1.2835018634796143, f_iou 0.7333539724349976: 28%|██████████▏ | 21/74 [00:21<00:37, 1.40it/s]
epoch 79 | loss 1.1743083000183105, f_iou 0.729090690612793: 28%|██████████▌ | 21/74 [00:22<00:37, 1.40it/s]
epoch 79 | loss 1.1743083000183105, f_iou 0.729090690612793: 30%|███████████ | 22/74 [00:22<00:37, 1.40it/s]
epoch 79 | loss 1.1055177450180054, f_iou 0.7338502407073975: 30%|██████████▋ | 22/74 [00:22<00:37, 1.40it/s]
epoch 79 | loss 1.1055177450180054, f_iou 0.7338502407073975: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 79 | loss 1.5349353551864624, f_iou 0.7234799861907959: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 79 | loss 1.5349353551864624, f_iou 0.7234799861907959: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 79 | loss 0.6580276489257812, f_iou 0.7247593998908997: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 79 | loss 0.6580276489257812, f_iou 0.7247593998908997: 34%|████████████▏ | 25/74 [00:24<00:36, 1.35it/s]
epoch 79 | loss 1.3884844779968262, f_iou 0.7285464406013489: 34%|████████████▏ | 25/74 [00:25<00:36, 1.35it/s]
epoch 79 | loss 1.3884844779968262, f_iou 0.7285464406013489: 35%|████████████▋ | 26/74 [00:25<00:35, 1.34it/s]
epoch 79 | loss 2.475342273712158, f_iou 0.7135268449783325: 35%|█████████████ | 26/74 [00:25<00:35, 1.34it/s]
epoch 79 | loss 2.475342273712158, f_iou 0.7135268449783325: 36%|█████████████▌ | 27/74 [00:25<00:34, 1.35it/s]
epoch 79 | loss 1.8084818124771118, f_iou 0.7191279530525208: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.35it/s]
epoch 79 | loss 1.8084818124771118, f_iou 0.7191279530525208: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 79 | loss 1.1114916801452637, f_iou 0.7143313884735107: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.36it/s]
epoch 79 | loss 1.1114916801452637, f_iou 0.7143313884735107: 39%|██████████████ | 29/74 [00:27<00:33, 1.34it/s]
epoch 79 | loss 1.0538125038146973, f_iou 0.7214916348457336: 39%|██████████████ | 29/74 [00:28<00:33, 1.34it/s]
epoch 79 | loss 1.0538125038146973, f_iou 0.7214916348457336: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.34it/s]
epoch 79 | loss 1.0064685344696045, f_iou 0.726042628288269: 41%|███████████████ | 30/74 [00:29<00:32, 1.34it/s]
epoch 79 | loss 1.0064685344696045, f_iou 0.726042628288269: 42%|███████████████▌ | 31/74 [00:29<00:32, 1.32it/s]
epoch 79 | loss 0.9900466203689575, f_iou 0.7305696606636047: 42%|███████████████ | 31/74 [00:29<00:32, 1.32it/s]
epoch 79 | loss 0.9900466203689575, f_iou 0.7305696606636047: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.33it/s]
epoch 79 | loss 0.4808005690574646, f_iou 0.7084614634513855: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.33it/s]
epoch 79 | loss 0.4808005690574646, f_iou 0.7084614634513855: 45%|████████████████ | 33/74 [00:30<00:30, 1.35it/s]
epoch 79 | loss 1.0920393466949463, f_iou 0.7108867764472961: 45%|████████████████ | 33/74 [00:31<00:30, 1.35it/s]
epoch 79 | loss 1.0920393466949463, f_iou 0.7108867764472961: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.33it/s]
epoch 79 | loss 1.0494424104690552, f_iou 0.7143435478210449: 46%|████████████████▌ | 34/74 [00:32<00:30, 1.33it/s]
epoch 79 | loss 1.0494424104690552, f_iou 0.7143435478210449: 47%|█████████████████ | 35/74 [00:32<00:29, 1.31it/s]
epoch 79 | loss 0.4657467007637024, f_iou 0.7050173878669739: 47%|█████████████████ | 35/74 [00:32<00:29, 1.31it/s]
epoch 79 | loss 0.4657467007637024, f_iou 0.7050173878669739: 49%|█████████████████▌ | 36/74 [00:32<00:29, 1.30it/s]
epoch 79 | loss 1.8164479732513428, f_iou 0.7083023190498352: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.30it/s]
epoch 79 | loss 1.8164479732513428, f_iou 0.7083023190498352: 50%|██████████████████ | 37/74 [00:33<00:28, 1.31it/s]
epoch 79 | loss 0.8611109852790833, f_iou 0.7087430953979492: 50%|██████████████████ | 37/74 [00:34<00:28, 1.31it/s]
epoch 79 | loss 0.8611109852790833, f_iou 0.7087430953979492: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 79 | loss 4.400589942932129, f_iou 0.7036489248275757: 51%|███████████████████ | 38/74 [00:34<00:26, 1.34it/s]
epoch 79 | loss 4.400589942932129, f_iou 0.7036489248275757: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.35it/s]
epoch 79 | loss 1.242100715637207, f_iou 0.6860644221305847: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.35it/s]
epoch 79 | loss 1.242100715637207, f_iou 0.6860644221305847: 54%|████████████████████ | 40/74 [00:35<00:24, 1.36it/s]
epoch 79 | loss 0.6591981649398804, f_iou 0.6908513903617859: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.36it/s]
epoch 79 | loss 0.6591981649398804, f_iou 0.6908513903617859: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 79 | loss 1.073960781097412, f_iou 0.6950841546058655: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.37it/s]
epoch 79 | loss 1.073960781097412, f_iou 0.6950841546058655: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.37it/s]
epoch 79 | loss 1.3261970281600952, f_iou 0.6950854063034058: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 79 | loss 1.3261970281600952, f_iou 0.6950854063034058: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 79 | loss 0.804841160774231, f_iou 0.68402498960495: 58%|██████████████████████▋ | 43/74 [00:38<00:22, 1.38it/s]
epoch 79 | loss 0.804841160774231, f_iou 0.68402498960495: 59%|███████████████████████▏ | 44/74 [00:38<00:21, 1.39it/s]
epoch 79 | loss 0.3857051134109497, f_iou 0.6900171637535095: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 79 | loss 0.3857051134109497, f_iou 0.6900171637535095: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 79 | loss 0.6392520666122437, f_iou 0.6750167608261108: 61%|█████████████████████▉ | 45/74 [00:40<00:20, 1.39it/s]
epoch 79 | loss 0.6392520666122437, f_iou 0.6750167608261108: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 79 | loss 1.8898391723632812, f_iou 0.672258734703064: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.39it/s]
epoch 79 | loss 1.8898391723632812, f_iou 0.672258734703064: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.39it/s]
epoch 79 | loss 2.556769609451294, f_iou 0.6612313985824585: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.39it/s]
epoch 79 | loss 2.556769609451294, f_iou 0.6612313985824585: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.40it/s]
epoch 79 | loss 0.0, f_iou 0.6679619550704956: 65%|█████████████████████████████████ | 48/74 [00:42<00:18, 1.40it/s]
epoch 79 | loss 0.0, f_iou 0.6679619550704956: 66%|█████████████████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 79 | loss 1.0841050148010254, f_iou 0.6736931204795837: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 79 | loss 1.0841050148010254, f_iou 0.6736931204795837: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.40it/s]
epoch 79 | loss 3.5280961990356445, f_iou 0.6673775911331177: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.40it/s]
epoch 79 | loss 3.5280961990356445, f_iou 0.6673775911331177: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 79 | loss 1.6683118343353271, f_iou 0.6716820001602173: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 79 | loss 1.6683118343353271, f_iou 0.6716820001602173: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 79 | loss 0.4558562636375427, f_iou 0.6773316264152527: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 79 | loss 0.4558562636375427, f_iou 0.6773316264152527: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.40it/s]
epoch 79 | loss 1.2416075468063354, f_iou 0.6798324584960938: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.40it/s]
epoch 79 | loss 1.2416075468063354, f_iou 0.6798324584960938: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 79 | loss 3.7531354427337646, f_iou 0.6804525852203369: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.40it/s]
epoch 79 | loss 3.7531354427337646, f_iou 0.6804525852203369: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 79 | loss 0.7963583469390869, f_iou 0.6805328130722046: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.40it/s]
epoch 79 | loss 0.7963583469390869, f_iou 0.6805328130722046: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 79 | loss 0.8430946469306946, f_iou 0.6848998665809631: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 79 | loss 0.8430946469306946, f_iou 0.6848998665809631: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.40it/s]
epoch 79 | loss 1.410845160484314, f_iou 0.6867181658744812: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.40it/s]
epoch 79 | loss 1.410845160484314, f_iou 0.6867181658744812: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.40it/s]
epoch 79 | loss 2.325378894805908, f_iou 0.6773676872253418: 78%|█████████████████████████████ | 58/74 [00:49<00:11, 1.40it/s]
epoch 79 | loss 2.325378894805908, f_iou 0.6773676872253418: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.40it/s]
epoch 79 | loss 2.0266575813293457, f_iou 0.675841212272644: 80%|█████████████████████████████▌ | 59/74 [00:50<00:10, 1.40it/s]
epoch 79 | loss 2.0266575813293457, f_iou 0.675841212272644: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.40it/s]
epoch 79 | loss 0.8140655755996704, f_iou 0.6791720986366272: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.40it/s]
epoch 79 | loss 0.8140655755996704, f_iou 0.6791720986366272: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 79 | loss 2.3260812759399414, f_iou 0.6762271523475647: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 79 | loss 2.3260812759399414, f_iou 0.6762271523475647: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 79 | loss 1.2088959217071533, f_iou 0.6766248345375061: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.39it/s]
epoch 79 | loss 1.2088959217071533, f_iou 0.6766248345375061: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.40it/s]
epoch 79 | loss 0.5159258246421814, f_iou 0.680051326751709: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.40it/s]
epoch 79 | loss 0.5159258246421814, f_iou 0.680051326751709: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 79 | loss 1.5107917785644531, f_iou 0.68231201171875: 86%|████████████████████████████████▊ | 64/74 [00:53<00:07, 1.39it/s]
epoch 79 | loss 1.5107917785644531, f_iou 0.68231201171875: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.39it/s]
epoch 79 | loss 0.7644467949867249, f_iou 0.6860727071762085: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.39it/s]
epoch 79 | loss 0.7644467949867249, f_iou 0.6860727071762085: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 79 | loss 1.1088650226593018, f_iou 0.6870644092559814: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.39it/s]
epoch 79 | loss 1.1088650226593018, f_iou 0.6870644092559814: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 79 | loss 0.4801381826400757, f_iou 0.6912664771080017: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 79 | loss 0.4801381826400757, f_iou 0.6912664771080017: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.36it/s]
epoch 79 | loss 1.2328555583953857, f_iou 0.6911056041717529: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 79 | loss 1.2328555583953857, f_iou 0.6911056041717529: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.34it/s]
epoch 79 | loss 2.924511432647705, f_iou 0.6873254776000977: 93%|██████████████████████████████████▌ | 69/74 [00:57<00:03, 1.34it/s]
epoch 79 | loss 2.924511432647705, f_iou 0.6873254776000977: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.36it/s]
epoch 79 | loss 1.648655891418457, f_iou 0.6880760788917542: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.36it/s]
epoch 79 | loss 1.648655891418457, f_iou 0.6880760788917542: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.38it/s]
epoch 79 | loss 1.4059948921203613, f_iou 0.6817345023155212: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.38it/s]
epoch 79 | loss 1.4059948921203613, f_iou 0.6817345023155212: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 79 | loss 2.1554458141326904, f_iou 0.6814755797386169: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 79 | loss 2.1554458141326904, f_iou 0.6814755797386169: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 79 | loss 0.5429097414016724, f_iou 0.6737985610961914: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 79 | loss 0.5429097414016724, f_iou 0.6737985610961914: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 79 | loss 0.5429097414016724, f_iou 0.6737985610961914: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 79 | valid.f_iou 0.7220100164413452, valid.f_f-score 0.86637: 0%| | 0/16 [00:05, ?it/s]
epoch 79 | valid.f_iou 0.7220100164413452, valid.f_f-score 0.86637: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 79 | valid.f_iou 0.694570004940033, valid.f_f-score 0.88326: 6%|██ | 1/16 [00:05<01:22, 5.53s/it]
epoch 79 | valid.f_iou 0.694570004940033, valid.f_f-score 0.88326: 12%|████ | 2/16 [00:05<00:35, 2.53s/it]
epoch 79 | valid.f_iou 0.5560299754142761, valid.f_f-score 0.78344: 12%|███▉ | 2/16 [00:06<00:35, 2.53s/it]
epoch 79 | valid.f_iou 0.5560299754142761, valid.f_f-score 0.78344: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 79 | valid.f_iou 0.6057900190353394, valid.f_f-score 0.77867: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 79 | valid.f_iou 0.6057900190353394, valid.f_f-score 0.77867: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 79 | valid.f_iou 0.5949299931526184, valid.f_f-score 0.76659: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 79 | valid.f_iou 0.5949299931526184, valid.f_f-score 0.76659: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 79 | valid.f_iou 0.5573400259017944, valid.f_f-score 0.72759: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 79 | valid.f_iou 0.5573400259017944, valid.f_f-score 0.72759: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 79 | valid.f_iou 0.582069993019104, valid.f_f-score 0.74701: 38%|████████████ | 6/16 [00:08<00:07, 1.43it/s]
epoch 79 | valid.f_iou 0.582069993019104, valid.f_f-score 0.74701: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 79 | valid.f_iou 0.55281001329422, valid.f_f-score 0.72702: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.63it/s]
epoch 79 | valid.f_iou 0.55281001329422, valid.f_f-score 0.72702: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 79 | valid.f_iou 0.5711600184440613, valid.f_f-score 0.73623: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 79 | valid.f_iou 0.5711600184440613, valid.f_f-score 0.73623: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 79 | valid.f_iou 0.5645300149917603, valid.f_f-score 0.73436: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 79 | valid.f_iou 0.5645300149917603, valid.f_f-score 0.73436: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 79 | valid.f_iou 0.5681099891662598, valid.f_f-score 0.73533: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.13it/s]
epoch 79 | valid.f_iou 0.5681099891662598, valid.f_f-score 0.73533: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 79 | valid.f_iou 0.5867699980735779, valid.f_f-score 0.75007: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 79 | valid.f_iou 0.5867699980735779, valid.f_f-score 0.75007: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 79 | valid.f_iou 0.5970199704170227, valid.f_f-score 0.75763: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 79 | valid.f_iou 0.5970199704170227, valid.f_f-score 0.75763: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 79 | valid.f_iou 0.5910999774932861, valid.f_f-score 0.75217: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 79 | valid.f_iou 0.5910999774932861, valid.f_f-score 0.75217: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 79 | valid.f_iou 0.595740020275116, valid.f_f-score 0.7515: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.56it/s]
epoch 79 | valid.f_iou 0.595740020275116, valid.f_f-score 0.7515: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.62it/s]
epoch 79 | valid.f_iou 0.5990999937057495, valid.f_f-score 0.74859: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 79 | valid.f_iou 0.5990999937057495, valid.f_f-score 0.74859: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 79 | valid.f_iou 0.5990999937057495, valid.f_f-score 0.74859: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 79 | valid.f_iou 0.797540009021759, valid.f_f-score 0.7889: 0%| | 0/16 [00:04, ?it/s]
epoch 79 | valid.f_iou 0.797540009021759, valid.f_f-score 0.7889: 6%|██ | 1/16 [00:04<01:14, 4.94s/it]
epoch 79 | valid.f_iou 0.8393599987030029, valid.f_f-score 0.87017: 6%|█▉ | 1/16 [00:05<01:14, 4.94s/it]
epoch 79 | valid.f_iou 0.8393599987030029, valid.f_f-score 0.87017: 12%|███▉ | 2/16 [00:05<00:32, 2.30s/it]
epoch 79 | valid.f_iou 0.720740020275116, valid.f_f-score 0.82592: 12%|████ | 2/16 [00:05<00:32, 2.30s/it]
epoch 79 | valid.f_iou 0.720740020275116, valid.f_f-score 0.82592: 19%|██████ | 3/16 [00:05<00:18, 1.44s/it]
epoch 79 | valid.f_iou 0.6874799728393555, valid.f_f-score 0.77349: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 79 | valid.f_iou 0.6874799728393555, valid.f_f-score 0.77349: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 79 | valid.f_iou 0.6605299711227417, valid.f_f-score 0.76065: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 79 | valid.f_iou 0.6605299711227417, valid.f_f-score 0.76065: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 79 | valid.f_iou 0.647409975528717, valid.f_f-score 0.75489: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 79 | valid.f_iou 0.647409975528717, valid.f_f-score 0.75489: 38%|████████████ | 6/16 [00:06<00:06, 1.53it/s]
epoch 79 | valid.f_iou 0.6712499856948853, valid.f_f-score 0.77995: 38%|███████████▋ | 6/16 [00:07<00:06, 1.53it/s]
epoch 79 | valid.f_iou 0.6712499856948853, valid.f_f-score 0.77995: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.80it/s]
epoch 79 | valid.f_iou 0.6728399991989136, valid.f_f-score 0.78651: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.80it/s]
epoch 79 | valid.f_iou 0.6728399991989136, valid.f_f-score 0.78651: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.96it/s]
epoch 79 | valid.f_iou 0.6887199878692627, valid.f_f-score 0.79384: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.96it/s]
epoch 79 | valid.f_iou 0.6887199878692627, valid.f_f-score 0.79384: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.07it/s]
epoch 79 | valid.f_iou 0.69336998462677, valid.f_f-score 0.80466: 56%|██████████████████▌ | 9/16 [00:08<00:03, 2.07it/s]
epoch 79 | valid.f_iou 0.69336998462677, valid.f_f-score 0.80466: 62%|████████████████████ | 10/16 [00:08<00:02, 2.23it/s]
epoch 79 | valid.f_iou 0.6980100274085999, valid.f_f-score 0.80674: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.23it/s]
epoch 79 | valid.f_iou 0.6980100274085999, valid.f_f-score 0.80674: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.27it/s]
epoch 79 | valid.f_iou 0.709659993648529, valid.f_f-score 0.81621: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.27it/s]
epoch 79 | valid.f_iou 0.709659993648529, valid.f_f-score 0.81621: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.30it/s]
epoch 79 | valid.f_iou 0.7208499908447266, valid.f_f-score 0.82337: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.30it/s]
epoch 79 | valid.f_iou 0.7208499908447266, valid.f_f-score 0.82337: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.35it/s]
epoch 79 | valid.f_iou 0.7154300212860107, valid.f_f-score 0.81815: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.35it/s]
epoch 79 | valid.f_iou 0.7154300212860107, valid.f_f-score 0.81815: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 79 | valid.f_iou 0.7197999954223633, valid.f_f-score 0.82084: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 79 | valid.f_iou 0.7197999954223633, valid.f_f-score 0.82084: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 79 | valid.f_iou 0.7159000039100647, valid.f_f-score 0.81782: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 79 | valid.f_iou 0.7159000039100647, valid.f_f-score 0.81782: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.62it/s]
epoch 79 | valid.f_iou 0.7159000039100647, valid.f_f-score 0.81782: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 79 | valid.f_iou 0.797540009021759, valid.f_f-score 0.7889: 0%| | 0/16 [00:04, ?it/s]
epoch 79 | valid.f_iou 0.797540009021759, valid.f_f-score 0.7889: 6%|██ | 1/16 [00:04<01:08, 4.55s/it]
epoch 79 | valid.f_iou 0.8393599987030029, valid.f_f-score 0.87017: 6%|█▉ | 1/16 [00:04<01:08, 4.55s/it]
epoch 79 | valid.f_iou 0.8393599987030029, valid.f_f-score 0.87017: 12%|███▉ | 2/16 [00:05<00:29, 2.14s/it]
epoch 79 | valid.f_iou 0.720740020275116, valid.f_f-score 0.82592: 12%|████ | 2/16 [00:05<00:29, 2.14s/it]
epoch 79 | valid.f_iou 0.720740020275116, valid.f_f-score 0.82592: 19%|██████ | 3/16 [00:05<00:17, 1.37s/it]
epoch 79 | valid.f_iou 0.6876699924468994, valid.f_f-score 0.77349: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 79 | valid.f_iou 0.6876699924468994, valid.f_f-score 0.77349: 25%|███████▊ | 4/16 [00:05<00:12, 1.01s/it]
epoch 79 | valid.f_iou 0.6680600047111511, valid.f_f-score 0.76065: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 79 | valid.f_iou 0.6680600047111511, valid.f_f-score 0.76065: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 79 | valid.f_iou 0.653689980506897, valid.f_f-score 0.75489: 31%|██████████ | 5/16 [00:06<00:08, 1.25it/s]
epoch 79 | valid.f_iou 0.653689980506897, valid.f_f-score 0.75489: 38%|████████████ | 6/16 [00:06<00:06, 1.47it/s]
epoch 79 | valid.f_iou 0.6783599853515625, valid.f_f-score 0.77995: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 79 | valid.f_iou 0.6783599853515625, valid.f_f-score 0.77995: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 79 | valid.f_iou 0.679069995880127, valid.f_f-score 0.78651: 44%|██████████████ | 7/16 [00:07<00:05, 1.68it/s]
epoch 79 | valid.f_iou 0.679069995880127, valid.f_f-score 0.78651: 50%|████████████████ | 8/16 [00:07<00:04, 1.81it/s]
epoch 79 | valid.f_iou 0.6975700259208679, valid.f_f-score 0.79384: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 79 | valid.f_iou 0.6975700259208679, valid.f_f-score 0.79384: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 79 | valid.f_iou 0.7003099918365479, valid.f_f-score 0.80171: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.96it/s]
epoch 79 | valid.f_iou 0.7003099918365479, valid.f_f-score 0.80171: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.14it/s]
epoch 79 | valid.f_iou 0.7043200135231018, valid.f_f-score 0.80406: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.14it/s]
epoch 79 | valid.f_iou 0.7043200135231018, valid.f_f-score 0.80406: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.30it/s]
epoch 79 | valid.f_iou 0.7154499888420105, valid.f_f-score 0.81376: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.30it/s]
epoch 79 | valid.f_iou 0.7154499888420105, valid.f_f-score 0.81376: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 79 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.82246: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.42it/s]
epoch 79 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.82246: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 79 | valid.f_iou 0.7203800082206726, valid.f_f-score 0.81732: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 79 | valid.f_iou 0.7203800082206726, valid.f_f-score 0.81732: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.60it/s]
epoch 79 | valid.f_iou 0.7244300246238708, valid.f_f-score 0.82007: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 79 | valid.f_iou 0.7244300246238708, valid.f_f-score 0.82007: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 79 | valid.f_iou 0.7207499742507935, valid.f_f-score 0.81709: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 79 | valid.f_iou 0.7207499742507935, valid.f_f-score 0.81709: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 79 | valid.f_iou 0.7207499742507935, valid.f_f-score 0.81709: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 80 | loss 1.5646355152130127, f_iou 0.7089895009994507: 0%| | 0/74 [00:05, ?it/s]
epoch 80 | loss 1.5646355152130127, f_iou 0.7089895009994507: 1%|▌ | 1/74 [00:05<07:09, 5.88s/it]
epoch 80 | loss 0.9253004789352417, f_iou 0.7239837646484375: 1%|▌ | 1/74 [00:06<07:09, 5.88s/it]
epoch 80 | loss 0.9253004789352417, f_iou 0.7239837646484375: 3%|█ | 2/74 [00:06<03:30, 2.92s/it]
epoch 80 | loss 1.4851117134094238, f_iou 0.6800945997238159: 3%|█ | 2/74 [00:07<03:30, 2.92s/it]
epoch 80 | loss 1.4851117134094238, f_iou 0.6800945997238159: 4%|█▌ | 3/74 [00:07<02:21, 2.00s/it]
epoch 80 | loss 3.5122809410095215, f_iou 0.6817284226417542: 4%|█▌ | 3/74 [00:08<02:21, 2.00s/it]
epoch 80 | loss 3.5122809410095215, f_iou 0.6817284226417542: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 80 | loss 0.5881475806236267, f_iou 0.7119914889335632: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 80 | loss 0.5881475806236267, f_iou 0.7119914889335632: 7%|██▌ | 5/74 [00:09<01:27, 1.26s/it]
epoch 80 | loss 1.0565851926803589, f_iou 0.6912357807159424: 7%|██▌ | 5/74 [00:10<01:27, 1.26s/it]
epoch 80 | loss 1.0565851926803589, f_iou 0.6912357807159424: 8%|███ | 6/74 [00:10<01:15, 1.10s/it]
epoch 80 | loss 1.6086993217468262, f_iou 0.6886770129203796: 8%|███ | 6/74 [00:10<01:15, 1.10s/it]
epoch 80 | loss 1.6086993217468262, f_iou 0.6886770129203796: 9%|███▌ | 7/74 [00:10<01:07, 1.00s/it]
epoch 80 | loss 2.4741175174713135, f_iou 0.666284441947937: 9%|███▌ | 7/74 [00:11<01:07, 1.00s/it]
epoch 80 | loss 2.4741175174713135, f_iou 0.666284441947937: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 80 | loss 1.1248915195465088, f_iou 0.6765041947364807: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 80 | loss 1.1248915195465088, f_iou 0.6765041947364807: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 80 | loss 1.5108362436294556, f_iou 0.6856452226638794: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 80 | loss 1.5108362436294556, f_iou 0.6856452226638794: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 80 | loss 0.8072785139083862, f_iou 0.6598647832870483: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 80 | loss 0.8072785139083862, f_iou 0.6598647832870483: 15%|█████▎ | 11/74 [00:13<00:52, 1.20it/s]
epoch 80 | loss 0.4175291657447815, f_iou 0.6858786940574646: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 80 | loss 0.4175291657447815, f_iou 0.6858786940574646: 16%|█████▊ | 12/74 [00:14<00:50, 1.22it/s]
epoch 80 | loss 1.5234547853469849, f_iou 0.6870242357254028: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 80 | loss 1.5234547853469849, f_iou 0.6870242357254028: 18%|██████▎ | 13/74 [00:15<00:49, 1.23it/s]
epoch 80 | loss 1.4968788623809814, f_iou 0.6906193494796753: 18%|██████▎ | 13/74 [00:16<00:49, 1.23it/s]
epoch 80 | loss 1.4968788623809814, f_iou 0.6906193494796753: 19%|██████▊ | 14/74 [00:16<00:47, 1.27it/s]
epoch 80 | loss 0.8434386253356934, f_iou 0.6705225110054016: 19%|██████▊ | 14/74 [00:16<00:47, 1.27it/s]
epoch 80 | loss 0.8434386253356934, f_iou 0.6705225110054016: 20%|███████▎ | 15/74 [00:16<00:45, 1.30it/s]
epoch 80 | loss 1.8916850090026855, f_iou 0.6805799007415771: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 80 | loss 1.8916850090026855, f_iou 0.6805799007415771: 22%|███████▊ | 16/74 [00:17<00:43, 1.33it/s]
epoch 80 | loss 1.2492384910583496, f_iou 0.6926642060279846: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 80 | loss 1.2492384910583496, f_iou 0.6926642060279846: 23%|████████▎ | 17/74 [00:18<00:42, 1.35it/s]
epoch 80 | loss 1.29774010181427, f_iou 0.7034642696380615: 23%|████████▋ | 17/74 [00:19<00:42, 1.35it/s]
epoch 80 | loss 1.29774010181427, f_iou 0.7034642696380615: 24%|█████████▏ | 18/74 [00:19<00:41, 1.34it/s]
epoch 80 | loss 0.8855493068695068, f_iou 0.7130260467529297: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 80 | loss 0.8855493068695068, f_iou 0.7130260467529297: 26%|█████████▏ | 19/74 [00:19<00:41, 1.33it/s]
epoch 80 | loss 0.9881162643432617, f_iou 0.7240568995475769: 26%|█████████▏ | 19/74 [00:20<00:41, 1.33it/s]
epoch 80 | loss 0.9881162643432617, f_iou 0.7240568995475769: 27%|█████████▋ | 20/74 [00:20<00:40, 1.32it/s]
epoch 80 | loss 0.6975115537643433, f_iou 0.7257484197616577: 27%|█████████▋ | 20/74 [00:21<00:40, 1.32it/s]
epoch 80 | loss 0.6975115537643433, f_iou 0.7257484197616577: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 80 | loss 3.7656264305114746, f_iou 0.7187457084655762: 28%|██████████▏ | 21/74 [00:22<00:40, 1.32it/s]
epoch 80 | loss 3.7656264305114746, f_iou 0.7187457084655762: 30%|██████████▋ | 22/74 [00:22<00:39, 1.33it/s]
epoch 80 | loss 2.27299427986145, f_iou 0.7092426419258118: 30%|███████████▎ | 22/74 [00:22<00:39, 1.33it/s]
epoch 80 | loss 2.27299427986145, f_iou 0.7092426419258118: 31%|███████████▊ | 23/74 [00:22<00:37, 1.35it/s]
epoch 80 | loss 1.4459338188171387, f_iou 0.709760308265686: 31%|███████████▌ | 23/74 [00:23<00:37, 1.35it/s]
epoch 80 | loss 1.4459338188171387, f_iou 0.709760308265686: 32%|████████████ | 24/74 [00:23<00:37, 1.35it/s]
epoch 80 | loss 1.9362022876739502, f_iou 0.6886656880378723: 32%|███████████▋ | 24/74 [00:24<00:37, 1.35it/s]
epoch 80 | loss 1.9362022876739502, f_iou 0.6886656880378723: 34%|████████████▏ | 25/74 [00:24<00:36, 1.35it/s]
epoch 80 | loss 1.4305050373077393, f_iou 0.6869035959243774: 34%|████████████▏ | 25/74 [00:25<00:36, 1.35it/s]
epoch 80 | loss 1.4305050373077393, f_iou 0.6869035959243774: 35%|████████████▋ | 26/74 [00:25<00:36, 1.33it/s]
epoch 80 | loss 0.6784490346908569, f_iou 0.6886205077171326: 35%|████████████▋ | 26/74 [00:25<00:36, 1.33it/s]
epoch 80 | loss 0.6784490346908569, f_iou 0.6886205077171326: 36%|█████████████▏ | 27/74 [00:25<00:35, 1.31it/s]
epoch 80 | loss 1.989198088645935, f_iou 0.683746874332428: 36%|█████████████▊ | 27/74 [00:26<00:35, 1.31it/s]
epoch 80 | loss 1.989198088645935, f_iou 0.683746874332428: 38%|██████████████▍ | 28/74 [00:26<00:35, 1.30it/s]
epoch 80 | loss 0.2862374186515808, f_iou 0.6936900019645691: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.30it/s]
epoch 80 | loss 0.2862374186515808, f_iou 0.6936900019645691: 39%|██████████████ | 29/74 [00:27<00:34, 1.29it/s]
epoch 80 | loss 0.6802476644515991, f_iou 0.7017582058906555: 39%|██████████████ | 29/74 [00:28<00:34, 1.29it/s]
epoch 80 | loss 0.6802476644515991, f_iou 0.7017582058906555: 41%|██████████████▌ | 30/74 [00:28<00:34, 1.28it/s]
epoch 80 | loss 1.1532737016677856, f_iou 0.7089926600456238: 41%|██████████████▌ | 30/74 [00:29<00:34, 1.28it/s]
epoch 80 | loss 1.1532737016677856, f_iou 0.7089926600456238: 42%|███████████████ | 31/74 [00:29<00:33, 1.28it/s]
epoch 80 | loss 0.7605490684509277, f_iou 0.7131847143173218: 42%|███████████████ | 31/74 [00:29<00:33, 1.28it/s]
epoch 80 | loss 0.7605490684509277, f_iou 0.7131847143173218: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.32it/s]
epoch 80 | loss 1.3536531925201416, f_iou 0.7148440480232239: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.32it/s]
epoch 80 | loss 1.3536531925201416, f_iou 0.7148440480232239: 45%|████████████████ | 33/74 [00:30<00:30, 1.33it/s]
epoch 80 | loss 1.9022982120513916, f_iou 0.7126355171203613: 45%|████████████████ | 33/74 [00:31<00:30, 1.33it/s]
epoch 80 | loss 1.9022982120513916, f_iou 0.7126355171203613: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.35it/s]
epoch 80 | loss 1.3676989078521729, f_iou 0.7131092548370361: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.35it/s]
epoch 80 | loss 1.3676989078521729, f_iou 0.7131092548370361: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 80 | loss 2.088221788406372, f_iou 0.713037371635437: 47%|█████████████████▉ | 35/74 [00:32<00:28, 1.36it/s]
epoch 80 | loss 2.088221788406372, f_iou 0.713037371635437: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.37it/s]
epoch 80 | loss 0.5922691822052002, f_iou 0.7193452715873718: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 80 | loss 0.5922691822052002, f_iou 0.7193452715873718: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 80 | loss 3.4671852588653564, f_iou 0.7198042869567871: 50%|██████████████████ | 37/74 [00:34<00:26, 1.37it/s]
epoch 80 | loss 3.4671852588653564, f_iou 0.7198042869567871: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 80 | loss 0.6366413831710815, f_iou 0.7259406447410583: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 80 | loss 0.6366413831710815, f_iou 0.7259406447410583: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 80 | loss 2.698803186416626, f_iou 0.71785968542099: 53%|████████████████████▌ | 39/74 [00:35<00:25, 1.38it/s]
epoch 80 | loss 2.698803186416626, f_iou 0.71785968542099: 54%|█████████████████████ | 40/74 [00:35<00:24, 1.38it/s]
epoch 80 | loss 1.7675278186798096, f_iou 0.7154712080955505: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.38it/s]
epoch 80 | loss 1.7675278186798096, f_iou 0.7154712080955505: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 80 | loss 0.8597957491874695, f_iou 0.7192975878715515: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.38it/s]
epoch 80 | loss 0.8597957491874695, f_iou 0.7192975878715515: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 80 | loss 0.6815615892410278, f_iou 0.7243589162826538: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 80 | loss 0.6815615892410278, f_iou 0.7243589162826538: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 80 | loss 1.6166613101959229, f_iou 0.7258467674255371: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.37it/s]
epoch 80 | loss 1.6166613101959229, f_iou 0.7258467674255371: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 80 | loss 1.6695029735565186, f_iou 0.7254126071929932: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.37it/s]
epoch 80 | loss 1.6695029735565186, f_iou 0.7254126071929932: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.37it/s]
epoch 80 | loss 1.3988962173461914, f_iou 0.7277094125747681: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.37it/s]
epoch 80 | loss 1.3988962173461914, f_iou 0.7277094125747681: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 80 | loss 1.1228398084640503, f_iou 0.7285040020942688: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 80 | loss 1.1228398084640503, f_iou 0.7285040020942688: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 80 | loss 1.103422999382019, f_iou 0.7294442057609558: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.37it/s]
epoch 80 | loss 1.103422999382019, f_iou 0.7294442057609558: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.38it/s]
epoch 80 | loss 1.9189382791519165, f_iou 0.721688449382782: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.38it/s]
epoch 80 | loss 1.9189382791519165, f_iou 0.721688449382782: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 80 | loss 0.0, f_iou 0.7271707057952881: 66%|█████████████████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 80 | loss 0.0, f_iou 0.7271707057952881: 68%|██████████████████████████████████▍ | 50/74 [00:42<00:17, 1.39it/s]
epoch 80 | loss 1.4006744623184204, f_iou 0.7173464298248291: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 80 | loss 1.4006744623184204, f_iou 0.7173464298248291: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 80 | loss 1.5837233066558838, f_iou 0.7155225872993469: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 80 | loss 1.5837233066558838, f_iou 0.7155225872993469: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 80 | loss 1.0337170362472534, f_iou 0.7023142576217651: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.38it/s]
epoch 80 | loss 1.0337170362472534, f_iou 0.7023142576217651: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 80 | loss 2.7451798915863037, f_iou 0.6931191682815552: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 80 | loss 2.7451798915863037, f_iou 0.6931191682815552: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.38it/s]
epoch 80 | loss 0.8039229512214661, f_iou 0.6905310750007629: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.38it/s]
epoch 80 | loss 0.8039229512214661, f_iou 0.6905310750007629: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 80 | loss 0.633238673210144, f_iou 0.6782001852989197: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.38it/s]
epoch 80 | loss 0.633238673210144, f_iou 0.6782001852989197: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 80 | loss 1.587009310722351, f_iou 0.6752608418464661: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 80 | loss 1.587009310722351, f_iou 0.6752608418464661: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.37it/s]
epoch 80 | loss 1.489691972732544, f_iou 0.6739592552185059: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.37it/s]
epoch 80 | loss 1.489691972732544, f_iou 0.6739592552185059: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.38it/s]
epoch 80 | loss 1.5213708877563477, f_iou 0.6774964332580566: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 80 | loss 1.5213708877563477, f_iou 0.6774964332580566: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 80 | loss 0.9941731095314026, f_iou 0.6810162663459778: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 80 | loss 0.9941731095314026, f_iou 0.6810162663459778: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 80 | loss 2.004725217819214, f_iou 0.6732643842697144: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 80 | loss 2.004725217819214, f_iou 0.6732643842697144: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.38it/s]
epoch 80 | loss 0.7526345252990723, f_iou 0.6770139336585999: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.38it/s]
epoch 80 | loss 0.7526345252990723, f_iou 0.6770139336585999: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 80 | loss 1.9246898889541626, f_iou 0.6740880012512207: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 80 | loss 1.9246898889541626, f_iou 0.6740880012512207: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 80 | loss 1.1437568664550781, f_iou 0.6744672060012817: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 80 | loss 1.1437568664550781, f_iou 0.6744672060012817: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.38it/s]
epoch 80 | loss 1.5348620414733887, f_iou 0.6697164177894592: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 80 | loss 1.5348620414733887, f_iou 0.6697164177894592: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 80 | loss 1.1061508655548096, f_iou 0.6718079447746277: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 80 | loss 1.1061508655548096, f_iou 0.6718079447746277: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 80 | loss 0.8730388879776001, f_iou 0.6617823243141174: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 80 | loss 0.8730388879776001, f_iou 0.6617823243141174: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 80 | loss 2.969399929046631, f_iou 0.6585914492607117: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.38it/s]
epoch 80 | loss 2.969399929046631, f_iou 0.6585914492607117: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 80 | loss 1.8191847801208496, f_iou 0.651329755783081: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 80 | loss 1.8191847801208496, f_iou 0.651329755783081: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 80 | loss 0.5340076088905334, f_iou 0.6527079939842224: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 80 | loss 0.5340076088905334, f_iou 0.6527079939842224: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 80 | loss 0.43558430671691895, f_iou 0.6555492877960205: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 80 | loss 0.43558430671691895, f_iou 0.6555492877960205: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 80 | loss 0.4230257272720337, f_iou 0.6593145728111267: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 80 | loss 0.4230257272720337, f_iou 0.6593145728111267: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 80 | loss 1.089582920074463, f_iou 0.6626620888710022: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 80 | loss 1.089582920074463, f_iou 0.6626620888710022: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 80 | loss 0.7645118236541748, f_iou 0.6657456755638123: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 80 | loss 0.7645118236541748, f_iou 0.6657456755638123: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 80 | loss 0.7645118236541748, f_iou 0.6657456755638123: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 80 | valid.f_iou 0.7041299939155579, valid.f_f-score 0.84575: 0%| | 0/16 [00:05, ?it/s]
epoch 80 | valid.f_iou 0.7041299939155579, valid.f_f-score 0.84575: 6%|█▉ | 1/16 [00:05<01:24, 5.66s/it]
epoch 80 | valid.f_iou 0.6921399831771851, valid.f_f-score 0.87143: 6%|█▉ | 1/16 [00:06<01:24, 5.66s/it]
epoch 80 | valid.f_iou 0.6921399831771851, valid.f_f-score 0.87143: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 80 | valid.f_iou 0.5343199968338013, valid.f_f-score 0.76903: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 80 | valid.f_iou 0.5343199968338013, valid.f_f-score 0.76903: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 80 | valid.f_iou 0.5855200290679932, valid.f_f-score 0.77124: 19%|█████▊ | 3/16 [00:07<00:21, 1.62s/it]
epoch 80 | valid.f_iou 0.5855200290679932, valid.f_f-score 0.77124: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 80 | valid.f_iou 0.578790009021759, valid.f_f-score 0.76637: 25%|████████ | 4/16 [00:07<00:13, 1.15s/it]
epoch 80 | valid.f_iou 0.578790009021759, valid.f_f-score 0.76637: 31%|██████████ | 5/16 [00:07<00:09, 1.11it/s]
epoch 80 | valid.f_iou 0.5428199768066406, valid.f_f-score 0.72824: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 80 | valid.f_iou 0.5428199768066406, valid.f_f-score 0.72824: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 80 | valid.f_iou 0.5695400238037109, valid.f_f-score 0.74866: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 80 | valid.f_iou 0.5695400238037109, valid.f_f-score 0.74866: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 80 | valid.f_iou 0.5433400273323059, valid.f_f-score 0.73215: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 80 | valid.f_iou 0.5433400273323059, valid.f_f-score 0.73215: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 80 | valid.f_iou 0.559249997138977, valid.f_f-score 0.73343: 50%|████████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 80 | valid.f_iou 0.559249997138977, valid.f_f-score 0.73343: 56%|██████████████████ | 9/16 [00:09<00:03, 1.94it/s]
epoch 80 | valid.f_iou 0.5440999865531921, valid.f_f-score 0.73057: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 80 | valid.f_iou 0.5440999865531921, valid.f_f-score 0.73057: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 80 | valid.f_iou 0.5445500016212463, valid.f_f-score 0.72789: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.14it/s]
epoch 80 | valid.f_iou 0.5445500016212463, valid.f_f-score 0.72789: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 80 | valid.f_iou 0.5606200098991394, valid.f_f-score 0.74251: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.29it/s]
epoch 80 | valid.f_iou 0.5606200098991394, valid.f_f-score 0.74251: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 80 | valid.f_iou 0.5687400102615356, valid.f_f-score 0.74867: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 80 | valid.f_iou 0.5687400102615356, valid.f_f-score 0.74867: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 80 | valid.f_iou 0.5657100081443787, valid.f_f-score 0.74532: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 80 | valid.f_iou 0.5657100081443787, valid.f_f-score 0.74532: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 80 | valid.f_iou 0.5715799927711487, valid.f_f-score 0.74511: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 80 | valid.f_iou 0.5715799927711487, valid.f_f-score 0.74511: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 80 | valid.f_iou 0.5753200054168701, valid.f_f-score 0.74124: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 80 | valid.f_iou 0.5753200054168701, valid.f_f-score 0.74124: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 80 | valid.f_iou 0.5753200054168701, valid.f_f-score 0.74124: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 80 | valid.f_iou 0.8117799758911133, valid.f_f-score 0.83356: 0%| | 0/16 [00:05, ?it/s]
epoch 80 | valid.f_iou 0.8117799758911133, valid.f_f-score 0.83356: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 80 | valid.f_iou 0.8479800224304199, valid.f_f-score 0.89309: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 80 | valid.f_iou 0.8479800224304199, valid.f_f-score 0.89309: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 80 | valid.f_iou 0.7580000162124634, valid.f_f-score 0.85269: 12%|███▉ | 2/16 [00:06<00:34, 2.46s/it]
epoch 80 | valid.f_iou 0.7580000162124634, valid.f_f-score 0.85269: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 80 | valid.f_iou 0.7681599855422974, valid.f_f-score 0.85018: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 80 | valid.f_iou 0.7681599855422974, valid.f_f-score 0.85018: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 80 | valid.f_iou 0.7290199995040894, valid.f_f-score 0.8295: 25%|████████ | 4/16 [00:07<00:13, 1.11s/it]
epoch 80 | valid.f_iou 0.7290199995040894, valid.f_f-score 0.8295: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 80 | valid.f_iou 0.7126500010490417, valid.f_f-score 0.8178: 31%|██████████ | 5/16 [00:07<00:09, 1.15it/s]
epoch 80 | valid.f_iou 0.7126500010490417, valid.f_f-score 0.8178: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 80 | valid.f_iou 0.7245500087738037, valid.f_f-score 0.83187: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 80 | valid.f_iou 0.7245500087738037, valid.f_f-score 0.83187: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 80 | valid.f_iou 0.717710018157959, valid.f_f-score 0.82973: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 80 | valid.f_iou 0.717710018157959, valid.f_f-score 0.82973: 50%|████████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 80 | valid.f_iou 0.7231600284576416, valid.f_f-score 0.83167: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.87it/s]
epoch 80 | valid.f_iou 0.7231600284576416, valid.f_f-score 0.83167: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 80 | valid.f_iou 0.7243199944496155, valid.f_f-score 0.83636: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.10it/s]
epoch 80 | valid.f_iou 0.7243199944496155, valid.f_f-score 0.83636: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.27it/s]
epoch 80 | valid.f_iou 0.7127799987792969, valid.f_f-score 0.81685: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.27it/s]
epoch 80 | valid.f_iou 0.7127799987792969, valid.f_f-score 0.81685: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 80 | valid.f_iou 0.7231400012969971, valid.f_f-score 0.82559: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 80 | valid.f_iou 0.7231400012969971, valid.f_f-score 0.82559: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 80 | valid.f_iou 0.7357800006866455, valid.f_f-score 0.83349: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.50it/s]
epoch 80 | valid.f_iou 0.7357800006866455, valid.f_f-score 0.83349: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 80 | valid.f_iou 0.7286700010299683, valid.f_f-score 0.82589: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 80 | valid.f_iou 0.7286700010299683, valid.f_f-score 0.82589: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 80 | valid.f_iou 0.7350500226020813, valid.f_f-score 0.8311: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 80 | valid.f_iou 0.7350500226020813, valid.f_f-score 0.8311: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.65it/s]
epoch 80 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.82253: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 80 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.82253: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 80 | valid.f_iou 0.7297599911689758, valid.f_f-score 0.82253: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 80 | valid.f_iou 0.8117799758911133, valid.f_f-score 0.83356: 0%| | 0/16 [00:05, ?it/s]
epoch 80 | valid.f_iou 0.8117799758911133, valid.f_f-score 0.83356: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 80 | valid.f_iou 0.8479800224304199, valid.f_f-score 0.89309: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 80 | valid.f_iou 0.8479800224304199, valid.f_f-score 0.89309: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 80 | valid.f_iou 0.7580000162124634, valid.f_f-score 0.85269: 12%|███▉ | 2/16 [00:06<00:34, 2.46s/it]
epoch 80 | valid.f_iou 0.7580000162124634, valid.f_f-score 0.85269: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 80 | valid.f_iou 0.7686200141906738, valid.f_f-score 0.85018: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 80 | valid.f_iou 0.7686200141906738, valid.f_f-score 0.85018: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 80 | valid.f_iou 0.7362499833106995, valid.f_f-score 0.8295: 25%|████████ | 4/16 [00:07<00:13, 1.10s/it]
epoch 80 | valid.f_iou 0.7362499833106995, valid.f_f-score 0.8295: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 80 | valid.f_iou 0.7186800241470337, valid.f_f-score 0.8178: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 80 | valid.f_iou 0.7186800241470337, valid.f_f-score 0.8178: 38%|████████████ | 6/16 [00:07<00:07, 1.35it/s]
epoch 80 | valid.f_iou 0.731469988822937, valid.f_f-score 0.83187: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 80 | valid.f_iou 0.731469988822937, valid.f_f-score 0.83187: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 80 | valid.f_iou 0.7237600088119507, valid.f_f-score 0.82973: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 80 | valid.f_iou 0.7237600088119507, valid.f_f-score 0.82973: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 80 | valid.f_iou 0.7329800128936768, valid.f_f-score 0.83167: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 80 | valid.f_iou 0.7329800128936768, valid.f_f-score 0.83167: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 80 | valid.f_iou 0.7322999835014343, valid.f_f-score 0.83354: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 80 | valid.f_iou 0.7322999835014343, valid.f_f-score 0.83354: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 80 | valid.f_iou 0.7157300114631653, valid.f_f-score 0.81228: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 80 | valid.f_iou 0.7157300114631653, valid.f_f-score 0.81228: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.08it/s]
epoch 80 | valid.f_iou 0.7258399724960327, valid.f_f-score 0.8214: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.08it/s]
epoch 80 | valid.f_iou 0.7258399724960327, valid.f_f-score 0.8214: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.22it/s]
epoch 80 | valid.f_iou 0.7382799983024597, valid.f_f-score 0.83098: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 80 | valid.f_iou 0.7382799983024597, valid.f_f-score 0.83098: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.36it/s]
epoch 80 | valid.f_iou 0.7278800010681152, valid.f_f-score 0.82065: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.36it/s]
epoch 80 | valid.f_iou 0.7278800010681152, valid.f_f-score 0.82065: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.47it/s]
epoch 80 | valid.f_iou 0.73430997133255, valid.f_f-score 0.82621: 88%|████████████████████████████ | 14/16 [00:11<00:00, 2.47it/s]
epoch 80 | valid.f_iou 0.73430997133255, valid.f_f-score 0.82621: 94%|██████████████████████████████ | 15/16 [00:11<00:00, 2.55it/s]
epoch 80 | valid.f_iou 0.7299699783325195, valid.f_f-score 0.81901: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 80 | valid.f_iou 0.7299699783325195, valid.f_f-score 0.81901: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 80 | valid.f_iou 0.7299699783325195, valid.f_f-score 0.81901: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 81 | loss 1.1573392152786255, f_iou 0.6667851805686951: 0%| | 0/74 [00:05, ?it/s]
epoch 81 | loss 1.1573392152786255, f_iou 0.6667851805686951: 1%|▌ | 1/74 [00:05<07:06, 5.84s/it]
epoch 81 | loss 0.7359287738800049, f_iou 0.7294903993606567: 1%|▌ | 1/74 [00:06<07:06, 5.84s/it]
epoch 81 | loss 0.7359287738800049, f_iou 0.7294903993606567: 3%|█ | 2/74 [00:06<03:28, 2.89s/it]
epoch 81 | loss 3.063441753387451, f_iou 0.6634366512298584: 3%|█ | 2/74 [00:07<03:28, 2.89s/it]
epoch 81 | loss 3.063441753387451, f_iou 0.6634366512298584: 4%|█▌ | 3/74 [00:07<02:17, 1.94s/it]
epoch 81 | loss 1.299116849899292, f_iou 0.5841184854507446: 4%|█▌ | 3/74 [00:08<02:17, 1.94s/it]
epoch 81 | loss 1.299116849899292, f_iou 0.5841184854507446: 5%|██ | 4/74 [00:08<01:44, 1.49s/it]
epoch 81 | loss 1.0255876779556274, f_iou 0.6506880521774292: 5%|██ | 4/74 [00:09<01:44, 1.49s/it]
epoch 81 | loss 1.0255876779556274, f_iou 0.6506880521774292: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 81 | loss 1.385457992553711, f_iou 0.5422400236129761: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 81 | loss 1.385457992553711, f_iou 0.5422400236129761: 8%|███ | 6/74 [00:09<01:14, 1.09s/it]
epoch 81 | loss 1.6368131637573242, f_iou 0.5800657272338867: 8%|███ | 6/74 [00:10<01:14, 1.09s/it]
epoch 81 | loss 1.6368131637573242, f_iou 0.5800657272338867: 9%|███▌ | 7/74 [00:10<01:06, 1.00it/s]
epoch 81 | loss 0.6068061590194702, f_iou 0.5623671412467957: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 81 | loss 0.6068061590194702, f_iou 0.5623671412467957: 11%|████ | 8/74 [00:11<01:00, 1.08it/s]
epoch 81 | loss 1.973300576210022, f_iou 0.5903404355049133: 11%|████ | 8/74 [00:12<01:00, 1.08it/s]
epoch 81 | loss 1.973300576210022, f_iou 0.5903404355049133: 12%|████▌ | 9/74 [00:12<00:56, 1.14it/s]
epoch 81 | loss 1.9693403244018555, f_iou 0.5868985056877136: 12%|████▌ | 9/74 [00:12<00:56, 1.14it/s]
epoch 81 | loss 1.9693403244018555, f_iou 0.5868985056877136: 14%|████▊ | 10/74 [00:12<00:52, 1.22it/s]
epoch 81 | loss 1.5617729425430298, f_iou 0.6190398335456848: 14%|████▊ | 10/74 [00:13<00:52, 1.22it/s]
epoch 81 | loss 1.5617729425430298, f_iou 0.6190398335456848: 15%|█████▎ | 11/74 [00:13<00:49, 1.27it/s]
epoch 81 | loss 0.6300968527793884, f_iou 0.6428098678588867: 15%|█████▎ | 11/74 [00:14<00:49, 1.27it/s]
epoch 81 | loss 0.6300968527793884, f_iou 0.6428098678588867: 16%|█████▊ | 12/74 [00:14<00:47, 1.30it/s]
epoch 81 | loss 1.0095430612564087, f_iou 0.6529715657234192: 16%|█████▊ | 12/74 [00:15<00:47, 1.30it/s]
epoch 81 | loss 1.0095430612564087, f_iou 0.6529715657234192: 18%|██████▎ | 13/74 [00:15<00:45, 1.33it/s]
epoch 81 | loss 0.9968758821487427, f_iou 0.6705073118209839: 18%|██████▎ | 13/74 [00:15<00:45, 1.33it/s]
epoch 81 | loss 0.9968758821487427, f_iou 0.6705073118209839: 19%|██████▊ | 14/74 [00:15<00:44, 1.35it/s]
epoch 81 | loss 1.7652405500411987, f_iou 0.6702418923377991: 19%|██████▊ | 14/74 [00:16<00:44, 1.35it/s]
epoch 81 | loss 1.7652405500411987, f_iou 0.6702418923377991: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 81 | loss 1.2442045211791992, f_iou 0.6649495959281921: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 81 | loss 1.2442045211791992, f_iou 0.6649495959281921: 22%|███████▊ | 16/74 [00:17<00:42, 1.38it/s]
epoch 81 | loss 1.1875046491622925, f_iou 0.6718997955322266: 22%|███████▊ | 16/74 [00:17<00:42, 1.38it/s]
epoch 81 | loss 1.1875046491622925, f_iou 0.6718997955322266: 23%|████████▎ | 17/74 [00:17<00:41, 1.38it/s]
epoch 81 | loss 3.357227325439453, f_iou 0.6755298376083374: 23%|████████▌ | 17/74 [00:18<00:41, 1.38it/s]
epoch 81 | loss 3.357227325439453, f_iou 0.6755298376083374: 24%|█████████ | 18/74 [00:18<00:40, 1.39it/s]
epoch 81 | loss 0.10593067109584808, f_iou 0.6897498369216919: 24%|████████▌ | 18/74 [00:19<00:40, 1.39it/s]
epoch 81 | loss 0.10593067109584808, f_iou 0.6897498369216919: 26%|████████▉ | 19/74 [00:19<00:39, 1.40it/s]
epoch 81 | loss 1.4866739511489868, f_iou 0.7011604309082031: 26%|█████████▏ | 19/74 [00:20<00:39, 1.40it/s]
epoch 81 | loss 1.4866739511489868, f_iou 0.7011604309082031: 27%|█████████▋ | 20/74 [00:20<00:38, 1.40it/s]
epoch 81 | loss 1.3820831775665283, f_iou 0.7071603536605835: 27%|█████████▋ | 20/74 [00:20<00:38, 1.40it/s]
epoch 81 | loss 1.3820831775665283, f_iou 0.7071603536605835: 28%|██████████▏ | 21/74 [00:20<00:38, 1.38it/s]
epoch 81 | loss 2.5205583572387695, f_iou 0.699052631855011: 28%|██████████▌ | 21/74 [00:21<00:38, 1.38it/s]
epoch 81 | loss 2.5205583572387695, f_iou 0.699052631855011: 30%|███████████ | 22/74 [00:21<00:37, 1.38it/s]
epoch 81 | loss 1.130552053451538, f_iou 0.7018734812736511: 30%|███████████ | 22/74 [00:22<00:37, 1.38it/s]
epoch 81 | loss 1.130552053451538, f_iou 0.7018734812736511: 31%|███████████▌ | 23/74 [00:22<00:36, 1.39it/s]
epoch 81 | loss 0.5948324799537659, f_iou 0.7122175097465515: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 81 | loss 0.5948324799537659, f_iou 0.7122175097465515: 32%|███████████▋ | 24/74 [00:22<00:35, 1.39it/s]
epoch 81 | loss 0.7846342325210571, f_iou 0.7183696031570435: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 81 | loss 0.7846342325210571, f_iou 0.7183696031570435: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 81 | loss 0.9386969804763794, f_iou 0.7258257269859314: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 81 | loss 0.9386969804763794, f_iou 0.7258257269859314: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 81 | loss 0.6904663443565369, f_iou 0.7320845723152161: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 81 | loss 0.6904663443565369, f_iou 0.7320845723152161: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 81 | loss 1.2874095439910889, f_iou 0.7312586307525635: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 81 | loss 1.2874095439910889, f_iou 0.7312586307525635: 38%|█████████████▌ | 28/74 [00:25<00:32, 1.40it/s]
epoch 81 | loss 0.0, f_iou 0.7403259873390198: 38%|███████████████████▎ | 28/74 [00:26<00:32, 1.40it/s]
epoch 81 | loss 0.0, f_iou 0.7403259873390198: 39%|███████████████████▉ | 29/74 [00:26<00:32, 1.40it/s]
epoch 81 | loss 0.6436536908149719, f_iou 0.7454437613487244: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 81 | loss 0.6436536908149719, f_iou 0.7454437613487244: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.40it/s]
epoch 81 | loss 0.7975614666938782, f_iou 0.7453033328056335: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.40it/s]
epoch 81 | loss 0.7975614666938782, f_iou 0.7453033328056335: 42%|███████████████ | 31/74 [00:27<00:30, 1.40it/s]
epoch 81 | loss 0.7817116975784302, f_iou 0.7441474795341492: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 81 | loss 0.7817116975784302, f_iou 0.7441474795341492: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.39it/s]
epoch 81 | loss 0.0, f_iou 0.7516694664955139: 43%|██████████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 81 | loss 0.0, f_iou 0.7516694664955139: 45%|██████████████████████▋ | 33/74 [00:29<00:29, 1.39it/s]
epoch 81 | loss 2.0714147090911865, f_iou 0.7496114373207092: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 81 | loss 2.0714147090911865, f_iou 0.7496114373207092: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 81 | loss 0.4801279306411743, f_iou 0.7473801374435425: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 81 | loss 0.4801279306411743, f_iou 0.7473801374435425: 47%|█████████████████ | 35/74 [00:30<00:28, 1.39it/s]
epoch 81 | loss 0.7193797826766968, f_iou 0.7501489520072937: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 81 | loss 0.7193797826766968, f_iou 0.7501489520072937: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.40it/s]
epoch 81 | loss 0.8188834190368652, f_iou 0.7514854073524475: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.40it/s]
epoch 81 | loss 0.8188834190368652, f_iou 0.7514854073524475: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 81 | loss 0.5803933143615723, f_iou 0.7317094802856445: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 81 | loss 0.5803933143615723, f_iou 0.7317094802856445: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 81 | loss 0.0, f_iou 0.7368143796920776: 51%|██████████████████████████▏ | 38/74 [00:33<00:25, 1.39it/s]
epoch 81 | loss 0.0, f_iou 0.7368143796920776: 53%|██████████████████████████▉ | 39/74 [00:33<00:25, 1.39it/s]
epoch 81 | loss 0.8762015104293823, f_iou 0.7364734411239624: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 81 | loss 0.8762015104293823, f_iou 0.7364734411239624: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 81 | loss 1.5126986503601074, f_iou 0.7334395051002502: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 81 | loss 1.5126986503601074, f_iou 0.7334395051002502: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 81 | loss 1.1164135932922363, f_iou 0.7374414205551147: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 81 | loss 1.1164135932922363, f_iou 0.7374414205551147: 57%|████████████████████▍ | 42/74 [00:35<00:23, 1.37it/s]
epoch 81 | loss 1.1006274223327637, f_iou 0.7343158721923828: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 81 | loss 1.1006274223327637, f_iou 0.7343158721923828: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.38it/s]
epoch 81 | loss 3.6130642890930176, f_iou 0.7394593954086304: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 81 | loss 3.6130642890930176, f_iou 0.7394593954086304: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.38it/s]
epoch 81 | loss 0.5339468717575073, f_iou 0.7383705973625183: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 81 | loss 0.5339468717575073, f_iou 0.7383705973625183: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 81 | loss 1.353245735168457, f_iou 0.7351226210594177: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.38it/s]
epoch 81 | loss 1.353245735168457, f_iou 0.7351226210594177: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.39it/s]
epoch 81 | loss 1.254249095916748, f_iou 0.7372180819511414: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 81 | loss 1.254249095916748, f_iou 0.7372180819511414: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.38it/s]
epoch 81 | loss 1.5272634029388428, f_iou 0.7365504503250122: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 81 | loss 1.5272634029388428, f_iou 0.7365504503250122: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 81 | loss 2.042395830154419, f_iou 0.734736442565918: 65%|████████████████████████▋ | 48/74 [00:40<00:18, 1.38it/s]
epoch 81 | loss 2.042395830154419, f_iou 0.734736442565918: 66%|█████████████████████████▏ | 49/74 [00:40<00:18, 1.38it/s]
epoch 81 | loss 0.7786270380020142, f_iou 0.7375474572181702: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 81 | loss 0.7786270380020142, f_iou 0.7375474572181702: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.38it/s]
epoch 81 | loss 2.424949884414673, f_iou 0.7306955456733704: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.38it/s]
epoch 81 | loss 2.424949884414673, f_iou 0.7306955456733704: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.39it/s]
epoch 81 | loss 1.0706026554107666, f_iou 0.7328343391418457: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 81 | loss 1.0706026554107666, f_iou 0.7328343391418457: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 81 | loss 0.5945519208908081, f_iou 0.7369658350944519: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 81 | loss 0.5945519208908081, f_iou 0.7369658350944519: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.39it/s]
epoch 81 | loss 0.4958195090293884, f_iou 0.7234134078025818: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 81 | loss 0.4958195090293884, f_iou 0.7234134078025818: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.39it/s]
epoch 81 | loss 1.4613996744155884, f_iou 0.7199094891548157: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 81 | loss 1.4613996744155884, f_iou 0.7199094891548157: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 81 | loss 1.3779785633087158, f_iou 0.7238396406173706: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 81 | loss 1.3779785633087158, f_iou 0.7238396406173706: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 81 | loss 0.15031798183918, f_iou 0.7266421318054199: 76%|████████████████████████████▊ | 56/74 [00:46<00:12, 1.39it/s]
epoch 81 | loss 0.15031798183918, f_iou 0.7266421318054199: 77%|█████████████████████████████▎ | 57/74 [00:46<00:12, 1.39it/s]
epoch 81 | loss 1.6102972030639648, f_iou 0.7233370542526245: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 81 | loss 1.6102972030639648, f_iou 0.7233370542526245: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 81 | loss 2.432765483856201, f_iou 0.7203401327133179: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.39it/s]
epoch 81 | loss 2.432765483856201, f_iou 0.7203401327133179: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.40it/s]
epoch 81 | loss 0.9750838875770569, f_iou 0.7231838703155518: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.40it/s]
epoch 81 | loss 0.9750838875770569, f_iou 0.7231838703155518: 81%|█████████████████████████████▏ | 60/74 [00:48<00:10, 1.39it/s]
epoch 81 | loss 0.5635376572608948, f_iou 0.7255553007125854: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 81 | loss 0.5635376572608948, f_iou 0.7255553007125854: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.40it/s]
epoch 81 | loss 1.3952901363372803, f_iou 0.7228131890296936: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.40it/s]
epoch 81 | loss 1.3952901363372803, f_iou 0.7228131890296936: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.40it/s]
epoch 81 | loss 1.3848164081573486, f_iou 0.7263844013214111: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.40it/s]
epoch 81 | loss 1.3848164081573486, f_iou 0.7263844013214111: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.40it/s]
epoch 81 | loss 1.4449429512023926, f_iou 0.7289215326309204: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.40it/s]
epoch 81 | loss 1.4449429512023926, f_iou 0.7289215326309204: 86%|███████████████████████████████▏ | 64/74 [00:51<00:07, 1.40it/s]
epoch 81 | loss 0.9158196449279785, f_iou 0.7311917543411255: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.40it/s]
epoch 81 | loss 0.9158196449279785, f_iou 0.7311917543411255: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 81 | loss 1.119133710861206, f_iou 0.7295730710029602: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 81 | loss 1.119133710861206, f_iou 0.7295730710029602: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 81 | loss 1.9423518180847168, f_iou 0.7246714234352112: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 81 | loss 1.9423518180847168, f_iou 0.7246714234352112: 91%|████████████████████████████████▌ | 67/74 [00:53<00:05, 1.40it/s]
epoch 81 | loss 1.0219309329986572, f_iou 0.7275422811508179: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.40it/s]
epoch 81 | loss 1.0219309329986572, f_iou 0.7275422811508179: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.40it/s]
epoch 81 | loss 2.0942442417144775, f_iou 0.7226143479347229: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 81 | loss 2.0942442417144775, f_iou 0.7226143479347229: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 81 | loss 0.9944887161254883, f_iou 0.7214909195899963: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 81 | loss 0.9944887161254883, f_iou 0.7214909195899963: 95%|██████████████████████████████████ | 70/74 [00:55<00:02, 1.41it/s]
epoch 81 | loss 1.4565248489379883, f_iou 0.7216812372207642: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 81 | loss 1.4565248489379883, f_iou 0.7216812372207642: 96%|██████████████████████████████████▌ | 71/74 [00:56<00:02, 1.41it/s]
epoch 81 | loss 0.8757062554359436, f_iou 0.7241714000701904: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 81 | loss 0.8757062554359436, f_iou 0.7241714000701904: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 81 | loss 1.004911184310913, f_iou 0.7240837812423706: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 81 | loss 1.004911184310913, f_iou 0.7240837812423706: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 81 | loss 1.1006073951721191, f_iou 0.7259808778762817: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 81 | loss 1.1006073951721191, f_iou 0.7259808778762817: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.42it/s]
epoch 81 | loss 1.1006073951721191, f_iou 0.7259808778762817: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 81 | valid.f_iou 0.7432199716567993, valid.f_f-score 0.86107: 0%| | 0/16 [00:05, ?it/s]
epoch 81 | valid.f_iou 0.7432199716567993, valid.f_f-score 0.86107: 6%|█▉ | 1/16 [00:05<01:23, 5.59s/it]
epoch 81 | valid.f_iou 0.7317799925804138, valid.f_f-score 0.89466: 6%|█▉ | 1/16 [00:06<01:23, 5.59s/it]
epoch 81 | valid.f_iou 0.7317799925804138, valid.f_f-score 0.89466: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 81 | valid.f_iou 0.5861700177192688, valid.f_f-score 0.78359: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 81 | valid.f_iou 0.5861700177192688, valid.f_f-score 0.78359: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 81 | valid.f_iou 0.5913699865341187, valid.f_f-score 0.75128: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 81 | valid.f_iou 0.5913699865341187, valid.f_f-score 0.75128: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 81 | valid.f_iou 0.6045799851417542, valid.f_f-score 0.76031: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 81 | valid.f_iou 0.6045799851417542, valid.f_f-score 0.76031: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 81 | valid.f_iou 0.5707399845123291, valid.f_f-score 0.72902: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 81 | valid.f_iou 0.5707399845123291, valid.f_f-score 0.72902: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 81 | valid.f_iou 0.5893599987030029, valid.f_f-score 0.74491: 38%|███████████▋ | 6/16 [00:08<00:07, 1.39it/s]
epoch 81 | valid.f_iou 0.5893599987030029, valid.f_f-score 0.74491: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 81 | valid.f_iou 0.5628399848937988, valid.f_f-score 0.72709: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 81 | valid.f_iou 0.5628399848937988, valid.f_f-score 0.72709: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 81 | valid.f_iou 0.5745900273323059, valid.f_f-score 0.72808: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 81 | valid.f_iou 0.5745900273323059, valid.f_f-score 0.72808: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 81 | valid.f_iou 0.5644699931144714, valid.f_f-score 0.72854: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 81 | valid.f_iou 0.5644699931144714, valid.f_f-score 0.72854: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 81 | valid.f_iou 0.5695099830627441, valid.f_f-score 0.72868: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 81 | valid.f_iou 0.5695099830627441, valid.f_f-score 0.72868: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 81 | valid.f_iou 0.5932199954986572, valid.f_f-score 0.74548: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 81 | valid.f_iou 0.5932199954986572, valid.f_f-score 0.74548: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 81 | valid.f_iou 0.6029599905014038, valid.f_f-score 0.75324: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 81 | valid.f_iou 0.6029599905014038, valid.f_f-score 0.75324: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.25it/s]
epoch 81 | valid.f_iou 0.5932300090789795, valid.f_f-score 0.74576: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.25it/s]
epoch 81 | valid.f_iou 0.5932300090789795, valid.f_f-score 0.74576: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.37it/s]
epoch 81 | valid.f_iou 0.597350001335144, valid.f_f-score 0.74619: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.37it/s]
epoch 81 | valid.f_iou 0.597350001335144, valid.f_f-score 0.74619: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.47it/s]
epoch 81 | valid.f_iou 0.5996000170707703, valid.f_f-score 0.74405: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 81 | valid.f_iou 0.5996000170707703, valid.f_f-score 0.74405: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.55it/s]
epoch 81 | valid.f_iou 0.5996000170707703, valid.f_f-score 0.74405: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 81 | valid.f_iou 0.7716400027275085, valid.f_f-score 0.85768: 0%| | 0/16 [00:05, ?it/s]
epoch 81 | valid.f_iou 0.7716400027275085, valid.f_f-score 0.85768: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 81 | valid.f_iou 0.8292400240898132, valid.f_f-score 0.90627: 6%|█▉ | 1/16 [00:05<01:19, 5.31s/it]
epoch 81 | valid.f_iou 0.8292400240898132, valid.f_f-score 0.90627: 12%|███▉ | 2/16 [00:05<00:34, 2.47s/it]
epoch 81 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.82412: 12%|███▉ | 2/16 [00:06<00:34, 2.47s/it]
epoch 81 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.82412: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 81 | valid.f_iou 0.6711699962615967, valid.f_f-score 0.75952: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 81 | valid.f_iou 0.6711699962615967, valid.f_f-score 0.75952: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 81 | valid.f_iou 0.6427000164985657, valid.f_f-score 0.74258: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 81 | valid.f_iou 0.6427000164985657, valid.f_f-score 0.74258: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 81 | valid.f_iou 0.6375200152397156, valid.f_f-score 0.73342: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 81 | valid.f_iou 0.6375200152397156, valid.f_f-score 0.73342: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 81 | valid.f_iou 0.6669800281524658, valid.f_f-score 0.76299: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 81 | valid.f_iou 0.6669800281524658, valid.f_f-score 0.76299: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 81 | valid.f_iou 0.6604599952697754, valid.f_f-score 0.76037: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.67it/s]
epoch 81 | valid.f_iou 0.6604599952697754, valid.f_f-score 0.76037: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 81 | valid.f_iou 0.6782100200653076, valid.f_f-score 0.77898: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 81 | valid.f_iou 0.6782100200653076, valid.f_f-score 0.77898: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 81 | valid.f_iou 0.6868699789047241, valid.f_f-score 0.78769: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.05it/s]
epoch 81 | valid.f_iou 0.6868699789047241, valid.f_f-score 0.78769: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.12it/s]
epoch 81 | valid.f_iou 0.6855499744415283, valid.f_f-score 0.7836: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.12it/s]
epoch 81 | valid.f_iou 0.6855499744415283, valid.f_f-score 0.7836: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.20it/s]
epoch 81 | valid.f_iou 0.6988499760627747, valid.f_f-score 0.79581: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 81 | valid.f_iou 0.6988499760627747, valid.f_f-score 0.79581: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.34it/s]
epoch 81 | valid.f_iou 0.713729977607727, valid.f_f-score 0.80612: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.34it/s]
epoch 81 | valid.f_iou 0.713729977607727, valid.f_f-score 0.80612: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.45it/s]
epoch 81 | valid.f_iou 0.7049300074577332, valid.f_f-score 0.80035: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 81 | valid.f_iou 0.7049300074577332, valid.f_f-score 0.80035: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 81 | valid.f_iou 0.7153300046920776, valid.f_f-score 0.81044: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 81 | valid.f_iou 0.7153300046920776, valid.f_f-score 0.81044: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 81 | valid.f_iou 0.7144399881362915, valid.f_f-score 0.80993: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 81 | valid.f_iou 0.7144399881362915, valid.f_f-score 0.80993: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 81 | valid.f_iou 0.7144399881362915, valid.f_f-score 0.80993: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 81 | valid.f_iou 0.7716400027275085, valid.f_f-score 0.85768: 0%| | 0/16 [00:04, ?it/s]
epoch 81 | valid.f_iou 0.7716400027275085, valid.f_f-score 0.85768: 6%|█▉ | 1/16 [00:04<01:07, 4.48s/it]
epoch 81 | valid.f_iou 0.8292400240898132, valid.f_f-score 0.90627: 6%|█▉ | 1/16 [00:05<01:07, 4.48s/it]
epoch 81 | valid.f_iou 0.8292400240898132, valid.f_f-score 0.90627: 12%|███▉ | 2/16 [00:05<00:30, 2.21s/it]
epoch 81 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.82412: 12%|███▉ | 2/16 [00:05<00:30, 2.21s/it]
epoch 81 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.82412: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 81 | valid.f_iou 0.6713399887084961, valid.f_f-score 0.75952: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 81 | valid.f_iou 0.6713399887084961, valid.f_f-score 0.75952: 25%|███████▊ | 4/16 [00:05<00:11, 1.01it/s]
epoch 81 | valid.f_iou 0.6499800086021423, valid.f_f-score 0.74258: 25%|███████▊ | 4/16 [00:06<00:11, 1.01it/s]
epoch 81 | valid.f_iou 0.6499800086021423, valid.f_f-score 0.74258: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 81 | valid.f_iou 0.6435800194740295, valid.f_f-score 0.73342: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 81 | valid.f_iou 0.6435800194740295, valid.f_f-score 0.73342: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 81 | valid.f_iou 0.6738799810409546, valid.f_f-score 0.76299: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 81 | valid.f_iou 0.6738799810409546, valid.f_f-score 0.76299: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.76it/s]
epoch 81 | valid.f_iou 0.6664900183677673, valid.f_f-score 0.76037: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.76it/s]
epoch 81 | valid.f_iou 0.6664900183677673, valid.f_f-score 0.76037: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.98it/s]
epoch 81 | valid.f_iou 0.6864699721336365, valid.f_f-score 0.77898: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.98it/s]
epoch 81 | valid.f_iou 0.6864699721336365, valid.f_f-score 0.77898: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.19it/s]
epoch 81 | valid.f_iou 0.6901800036430359, valid.f_f-score 0.78419: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 81 | valid.f_iou 0.6901800036430359, valid.f_f-score 0.78419: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.32it/s]
epoch 81 | valid.f_iou 0.6842700242996216, valid.f_f-score 0.77843: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.32it/s]
epoch 81 | valid.f_iou 0.6842700242996216, valid.f_f-score 0.77843: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.29it/s]
epoch 81 | valid.f_iou 0.6976799964904785, valid.f_f-score 0.79106: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.29it/s]
epoch 81 | valid.f_iou 0.6976799964904785, valid.f_f-score 0.79106: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.26it/s]
epoch 81 | valid.f_iou 0.7126399874687195, valid.f_f-score 0.80302: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.26it/s]
epoch 81 | valid.f_iou 0.7126399874687195, valid.f_f-score 0.80302: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.26it/s]
epoch 81 | valid.f_iou 0.7007399797439575, valid.f_f-score 0.79446: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.26it/s]
epoch 81 | valid.f_iou 0.7007399797439575, valid.f_f-score 0.79446: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.25it/s]
epoch 81 | valid.f_iou 0.7114199995994568, valid.f_f-score 0.80494: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.25it/s]
epoch 81 | valid.f_iou 0.7114199995994568, valid.f_f-score 0.80494: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.35it/s]
epoch 81 | valid.f_iou 0.7088199853897095, valid.f_f-score 0.80106: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.35it/s]
epoch 81 | valid.f_iou 0.7088199853897095, valid.f_f-score 0.80106: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.45it/s]
epoch 81 | valid.f_iou 0.7088199853897095, valid.f_f-score 0.80106: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 82 | loss 0.7611616849899292, f_iou 0.832815945148468: 0%| | 0/74 [00:06, ?it/s]
epoch 82 | loss 0.7611616849899292, f_iou 0.832815945148468: 1%|▌ | 1/74 [00:06<07:25, 6.11s/it]
epoch 82 | loss 1.0323317050933838, f_iou 0.8487612009048462: 1%|▌ | 1/74 [00:06<07:25, 6.11s/it]
epoch 82 | loss 1.0323317050933838, f_iou 0.8487612009048462: 3%|█ | 2/74 [00:06<03:38, 3.03s/it]
epoch 82 | loss 0.8863993287086487, f_iou 0.8501060009002686: 3%|█ | 2/74 [00:07<03:38, 3.03s/it]
epoch 82 | loss 0.8863993287086487, f_iou 0.8501060009002686: 4%|█▌ | 3/74 [00:07<02:21, 1.99s/it]
epoch 82 | loss 1.1482824087142944, f_iou 0.8022050857543945: 4%|█▌ | 3/74 [00:08<02:21, 1.99s/it]
epoch 82 | loss 1.1482824087142944, f_iou 0.8022050857543945: 5%|██ | 4/74 [00:08<01:44, 1.50s/it]
epoch 82 | loss 1.0059683322906494, f_iou 0.8059455156326294: 5%|██ | 4/74 [00:09<01:44, 1.50s/it]
epoch 82 | loss 1.0059683322906494, f_iou 0.8059455156326294: 7%|██▌ | 5/74 [00:09<01:23, 1.21s/it]
epoch 82 | loss 1.8285760879516602, f_iou 0.7636088132858276: 7%|██▌ | 5/74 [00:09<01:23, 1.21s/it]
epoch 82 | loss 1.8285760879516602, f_iou 0.7636088132858276: 8%|███ | 6/74 [00:09<01:13, 1.07s/it]
epoch 82 | loss 0.5749424695968628, f_iou 0.7550829648971558: 8%|███ | 6/74 [00:10<01:13, 1.07s/it]
epoch 82 | loss 0.5749424695968628, f_iou 0.7550829648971558: 9%|███▌ | 7/74 [00:10<01:04, 1.04it/s]
epoch 82 | loss 2.128685474395752, f_iou 0.7208670377731323: 9%|███▌ | 7/74 [00:11<01:04, 1.04it/s]
epoch 82 | loss 2.128685474395752, f_iou 0.7208670377731323: 11%|████ | 8/74 [00:11<00:59, 1.11it/s]
epoch 82 | loss 3.0333361625671387, f_iou 0.7163984775543213: 11%|████ | 8/74 [00:12<00:59, 1.11it/s]
epoch 82 | loss 3.0333361625671387, f_iou 0.7163984775543213: 12%|████▌ | 9/74 [00:12<00:55, 1.17it/s]
epoch 82 | loss 0.6778157949447632, f_iou 0.7364889979362488: 12%|████▌ | 9/74 [00:13<00:55, 1.17it/s]
epoch 82 | loss 0.6778157949447632, f_iou 0.7364889979362488: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 82 | loss 1.5836536884307861, f_iou 0.7391452789306641: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 82 | loss 1.5836536884307861, f_iou 0.7391452789306641: 15%|█████▎ | 11/74 [00:13<00:50, 1.24it/s]
epoch 82 | loss 1.8607925176620483, f_iou 0.750076413154602: 15%|█████▌ | 11/74 [00:14<00:50, 1.24it/s]
epoch 82 | loss 1.8607925176620483, f_iou 0.750076413154602: 16%|██████ | 12/74 [00:14<00:48, 1.28it/s]
epoch 82 | loss 1.3355169296264648, f_iou 0.7519078850746155: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 82 | loss 1.3355169296264648, f_iou 0.7519078850746155: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 82 | loss 0.9853154420852661, f_iou 0.6982318162918091: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 82 | loss 0.9853154420852661, f_iou 0.6982318162918091: 19%|██████▊ | 14/74 [00:15<00:44, 1.34it/s]
epoch 82 | loss 2.0859017372131348, f_iou 0.702319324016571: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 82 | loss 2.0859017372131348, f_iou 0.702319324016571: 20%|███████▌ | 15/74 [00:16<00:43, 1.35it/s]
epoch 82 | loss 0.7584372162818909, f_iou 0.6585116386413574: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 82 | loss 0.7584372162818909, f_iou 0.6585116386413574: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 82 | loss 0.9036012887954712, f_iou 0.6735705137252808: 22%|███████▊ | 16/74 [00:18<00:42, 1.37it/s]
epoch 82 | loss 0.9036012887954712, f_iou 0.6735705137252808: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 82 | loss 0.5278133153915405, f_iou 0.6836434602737427: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 82 | loss 0.5278133153915405, f_iou 0.6836434602737427: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 82 | loss 0.9837502241134644, f_iou 0.6852394342422485: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 82 | loss 0.9837502241134644, f_iou 0.6852394342422485: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 82 | loss 1.4756736755371094, f_iou 0.6944204568862915: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 82 | loss 1.4756736755371094, f_iou 0.6944204568862915: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 82 | loss 1.798222541809082, f_iou 0.6873708963394165: 27%|██████████ | 20/74 [00:21<00:39, 1.38it/s]
epoch 82 | loss 1.798222541809082, f_iou 0.6873708963394165: 28%|██████████▌ | 21/74 [00:21<00:38, 1.37it/s]
epoch 82 | loss 0.7471466660499573, f_iou 0.6968366503715515: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 82 | loss 0.7471466660499573, f_iou 0.6968366503715515: 30%|██████████▋ | 22/74 [00:21<00:38, 1.33it/s]
epoch 82 | loss 2.118535041809082, f_iou 0.703416645526886: 30%|███████████▎ | 22/74 [00:22<00:38, 1.33it/s]
epoch 82 | loss 2.118535041809082, f_iou 0.703416645526886: 31%|███████████▊ | 23/74 [00:22<00:38, 1.32it/s]
epoch 82 | loss 1.9635008573532104, f_iou 0.691941499710083: 31%|███████████▌ | 23/74 [00:23<00:38, 1.32it/s]
epoch 82 | loss 1.9635008573532104, f_iou 0.691941499710083: 32%|████████████ | 24/74 [00:23<00:37, 1.34it/s]
epoch 82 | loss 3.636220932006836, f_iou 0.6642638444900513: 32%|████████████ | 24/74 [00:24<00:37, 1.34it/s]
epoch 82 | loss 3.636220932006836, f_iou 0.6642638444900513: 34%|████████████▌ | 25/74 [00:24<00:36, 1.36it/s]
epoch 82 | loss 1.8497161865234375, f_iou 0.6429635882377625: 34%|████████████▏ | 25/74 [00:24<00:36, 1.36it/s]
epoch 82 | loss 1.8497161865234375, f_iou 0.6429635882377625: 35%|████████████▋ | 26/74 [00:24<00:35, 1.36it/s]
epoch 82 | loss 0.6488713026046753, f_iou 0.6338654160499573: 35%|████████████▋ | 26/74 [00:25<00:35, 1.36it/s]
epoch 82 | loss 0.6488713026046753, f_iou 0.6338654160499573: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.34it/s]
epoch 82 | loss 0.9255545139312744, f_iou 0.6417073011398315: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.34it/s]
epoch 82 | loss 0.9255545139312744, f_iou 0.6417073011398315: 38%|█████████████▌ | 28/74 [00:26<00:34, 1.33it/s]
epoch 82 | loss 1.1855905055999756, f_iou 0.6496246457099915: 38%|█████████████▌ | 28/74 [00:26<00:34, 1.33it/s]
epoch 82 | loss 1.1855905055999756, f_iou 0.6496246457099915: 39%|██████████████ | 29/74 [00:26<00:33, 1.35it/s]
epoch 82 | loss 1.5870716571807861, f_iou 0.640760064125061: 39%|██████████████▌ | 29/74 [00:27<00:33, 1.35it/s]
epoch 82 | loss 1.5870716571807861, f_iou 0.640760064125061: 41%|███████████████ | 30/74 [00:27<00:32, 1.36it/s]
epoch 82 | loss 1.0243000984191895, f_iou 0.6440590620040894: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.36it/s]
epoch 82 | loss 1.0243000984191895, f_iou 0.6440590620040894: 42%|███████████████ | 31/74 [00:28<00:31, 1.37it/s]
epoch 82 | loss 1.1582345962524414, f_iou 0.6506680846214294: 42%|███████████████ | 31/74 [00:29<00:31, 1.37it/s]
epoch 82 | loss 1.1582345962524414, f_iou 0.6506680846214294: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 82 | loss 1.7719110250473022, f_iou 0.6343691945075989: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 82 | loss 1.7719110250473022, f_iou 0.6343691945075989: 45%|████████████████ | 33/74 [00:29<00:29, 1.37it/s]
epoch 82 | loss 0.9615052938461304, f_iou 0.6390165090560913: 45%|████████████████ | 33/74 [00:30<00:29, 1.37it/s]
epoch 82 | loss 0.9615052938461304, f_iou 0.6390165090560913: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.38it/s]
epoch 82 | loss 0.6459956169128418, f_iou 0.6481082439422607: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.38it/s]
epoch 82 | loss 0.6459956169128418, f_iou 0.6481082439422607: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 82 | loss 1.294905662536621, f_iou 0.652759850025177: 47%|█████████████████▉ | 35/74 [00:32<00:28, 1.38it/s]
epoch 82 | loss 1.294905662536621, f_iou 0.652759850025177: 49%|██████████████████▍ | 36/74 [00:32<00:27, 1.38it/s]
epoch 82 | loss 1.6404184103012085, f_iou 0.6487722396850586: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 82 | loss 1.6404184103012085, f_iou 0.6487722396850586: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 82 | loss 0.377991259098053, f_iou 0.6516884565353394: 50%|██████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 82 | loss 0.377991259098053, f_iou 0.6516884565353394: 51%|███████████████████ | 38/74 [00:33<00:26, 1.38it/s]
epoch 82 | loss 1.2432456016540527, f_iou 0.6552681922912598: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 82 | loss 1.2432456016540527, f_iou 0.6552681922912598: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 82 | loss 1.1564499139785767, f_iou 0.658467173576355: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 82 | loss 1.1564499139785767, f_iou 0.658467173576355: 54%|████████████████████ | 40/74 [00:34<00:24, 1.39it/s]
epoch 82 | loss 1.0674530267715454, f_iou 0.6582457423210144: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 82 | loss 1.0674530267715454, f_iou 0.6582457423210144: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 82 | loss 0.9952991008758545, f_iou 0.6619428992271423: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 82 | loss 0.9952991008758545, f_iou 0.6619428992271423: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 82 | loss 2.7011706829071045, f_iou 0.6584067940711975: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 82 | loss 2.7011706829071045, f_iou 0.6584067940711975: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 82 | loss 0.5964388251304626, f_iou 0.6654577255249023: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 82 | loss 0.5964388251304626, f_iou 0.6654577255249023: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.38it/s]
epoch 82 | loss 1.3932894468307495, f_iou 0.6660370230674744: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 82 | loss 1.3932894468307495, f_iou 0.6660370230674744: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.38it/s]
epoch 82 | loss 1.4220284223556519, f_iou 0.6699984669685364: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.38it/s]
epoch 82 | loss 1.4220284223556519, f_iou 0.6699984669685364: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 82 | loss 1.747061848640442, f_iou 0.6714174747467041: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.38it/s]
epoch 82 | loss 1.747061848640442, f_iou 0.6714174747467041: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.38it/s]
epoch 82 | loss 0.7190432548522949, f_iou 0.6754575967788696: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 82 | loss 0.7190432548522949, f_iou 0.6754575967788696: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 82 | loss 0.4638862907886505, f_iou 0.6808508038520813: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 82 | loss 0.4638862907886505, f_iou 0.6808508038520813: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 82 | loss 0.9425640106201172, f_iou 0.6861122846603394: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 82 | loss 0.9425640106201172, f_iou 0.6861122846603394: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 82 | loss 2.3278040885925293, f_iou 0.6761894226074219: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 82 | loss 2.3278040885925293, f_iou 0.6761894226074219: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 82 | loss 2.454512357711792, f_iou 0.6739742755889893: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 82 | loss 2.454512357711792, f_iou 0.6739742755889893: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 82 | loss 0.33096951246261597, f_iou 0.6795689463615417: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.38it/s]
epoch 82 | loss 0.33096951246261597, f_iou 0.6795689463615417: 72%|█████████████████████████ | 53/74 [00:44<00:15, 1.37it/s]
epoch 82 | loss 2.315460443496704, f_iou 0.6760783791542053: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.37it/s]
epoch 82 | loss 2.315460443496704, f_iou 0.6760783791542053: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.38it/s]
epoch 82 | loss 1.0360995531082153, f_iou 0.677714467048645: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.38it/s]
epoch 82 | loss 1.0360995531082153, f_iou 0.677714467048645: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 82 | loss 4.2379865646362305, f_iou 0.6818467378616333: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 82 | loss 4.2379865646362305, f_iou 0.6818467378616333: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 82 | loss 9.446041107177734, f_iou 0.6815319657325745: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.38it/s]
epoch 82 | loss 9.446041107177734, f_iou 0.6815319657325745: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 82 | loss 0.3684177100658417, f_iou 0.6859824657440186: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 82 | loss 0.3684177100658417, f_iou 0.6859824657440186: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 82 | loss 0.3942628502845764, f_iou 0.6904332041740417: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 82 | loss 0.3942628502845764, f_iou 0.6904332041740417: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 82 | loss 0.6036026477813721, f_iou 0.6951982975006104: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 82 | loss 0.6036026477813721, f_iou 0.6951982975006104: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 82 | loss 1.2945905923843384, f_iou 0.695778489112854: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.39it/s]
epoch 82 | loss 1.2945905923843384, f_iou 0.695778489112854: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.39it/s]
epoch 82 | loss 1.3762332201004028, f_iou 0.6958335638046265: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 82 | loss 1.3762332201004028, f_iou 0.6958335638046265: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.38it/s]
epoch 82 | loss 0.5657684206962585, f_iou 0.6980212926864624: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 82 | loss 0.5657684206962585, f_iou 0.6980212926864624: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 82 | loss 1.255151391029358, f_iou 0.6965458989143372: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.39it/s]
epoch 82 | loss 1.255151391029358, f_iou 0.6965458989143372: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 82 | loss 2.035916328430176, f_iou 0.6952214241027832: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 82 | loss 2.035916328430176, f_iou 0.6952214241027832: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 82 | loss 1.237463116645813, f_iou 0.6962214708328247: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 82 | loss 1.237463116645813, f_iou 0.6962214708328247: 89%|█████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 82 | loss 0.7296206951141357, f_iou 0.6928414702415466: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 82 | loss 0.7296206951141357, f_iou 0.6928414702415466: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 82 | loss 1.1977921724319458, f_iou 0.6887274980545044: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 82 | loss 1.1977921724319458, f_iou 0.6887274980545044: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 82 | loss 1.582587718963623, f_iou 0.6840218305587769: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 82 | loss 1.582587718963623, f_iou 0.6840218305587769: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.32it/s]
epoch 82 | loss 1.0463789701461792, f_iou 0.6871572732925415: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.32it/s]
epoch 82 | loss 1.0463789701461792, f_iou 0.6871572732925415: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.35it/s]
epoch 82 | loss 2.6309828758239746, f_iou 0.6868752241134644: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 82 | loss 2.6309828758239746, f_iou 0.6868752241134644: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.36it/s]
epoch 82 | loss 2.9779200553894043, f_iou 0.6820677518844604: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.36it/s]
epoch 82 | loss 2.9779200553894043, f_iou 0.6820677518844604: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.38it/s]
epoch 82 | loss 1.5242441892623901, f_iou 0.6841230392456055: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.38it/s]
epoch 82 | loss 1.5242441892623901, f_iou 0.6841230392456055: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 82 | loss 0.9488476514816284, f_iou 0.6829981207847595: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 82 | loss 0.9488476514816284, f_iou 0.6829981207847595: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 82 | loss 0.9488476514816284, f_iou 0.6829981207847595: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 82 | valid.f_iou 0.7478399872779846, valid.f_f-score 0.85547: 0%| | 0/16 [00:05, ?it/s]
epoch 82 | valid.f_iou 0.7478399872779846, valid.f_f-score 0.85547: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 82 | valid.f_iou 0.6665599942207336, valid.f_f-score 0.851: 6%|██ | 1/16 [00:06<01:23, 5.56s/it]
epoch 82 | valid.f_iou 0.6665599942207336, valid.f_f-score 0.851: 12%|████▏ | 2/16 [00:06<00:35, 2.57s/it]
epoch 82 | valid.f_iou 0.5425500273704529, valid.f_f-score 0.76214: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 82 | valid.f_iou 0.5425500273704529, valid.f_f-score 0.76214: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 82 | valid.f_iou 0.5934000015258789, valid.f_f-score 0.77152: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 82 | valid.f_iou 0.5934000015258789, valid.f_f-score 0.77152: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 82 | valid.f_iou 0.595990002155304, valid.f_f-score 0.7744: 25%|████████▎ | 4/16 [00:07<00:13, 1.15s/it]
epoch 82 | valid.f_iou 0.595990002155304, valid.f_f-score 0.7744: 31%|██████████▎ | 5/16 [00:07<00:09, 1.12it/s]
epoch 82 | valid.f_iou 0.5534800291061401, valid.f_f-score 0.73246: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 82 | valid.f_iou 0.5534800291061401, valid.f_f-score 0.73246: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 82 | valid.f_iou 0.5838099718093872, valid.f_f-score 0.75308: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 82 | valid.f_iou 0.5838099718093872, valid.f_f-score 0.75308: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 82 | valid.f_iou 0.5597900152206421, valid.f_f-score 0.73498: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 82 | valid.f_iou 0.5597900152206421, valid.f_f-score 0.73498: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 82 | valid.f_iou 0.569130003452301, valid.f_f-score 0.73298: 50%|████████████████ | 8/16 [00:09<00:04, 1.74it/s]
epoch 82 | valid.f_iou 0.569130003452301, valid.f_f-score 0.73298: 56%|██████████████████ | 9/16 [00:09<00:03, 1.97it/s]
epoch 82 | valid.f_iou 0.5673199892044067, valid.f_f-score 0.7346: 56%|██████████████████ | 9/16 [00:09<00:03, 1.97it/s]
epoch 82 | valid.f_iou 0.5673199892044067, valid.f_f-score 0.7346: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.15it/s]
epoch 82 | valid.f_iou 0.5682399868965149, valid.f_f-score 0.73562: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.15it/s]
epoch 82 | valid.f_iou 0.5682399868965149, valid.f_f-score 0.73562: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 82 | valid.f_iou 0.5882800221443176, valid.f_f-score 0.75135: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.28it/s]
epoch 82 | valid.f_iou 0.5882800221443176, valid.f_f-score 0.75135: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 82 | valid.f_iou 0.5892599821090698, valid.f_f-score 0.75412: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 82 | valid.f_iou 0.5892599821090698, valid.f_f-score 0.75412: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 82 | valid.f_iou 0.5761600136756897, valid.f_f-score 0.74644: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 82 | valid.f_iou 0.5761600136756897, valid.f_f-score 0.74644: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 82 | valid.f_iou 0.5793200135231018, valid.f_f-score 0.7452: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.55it/s]
epoch 82 | valid.f_iou 0.5793200135231018, valid.f_f-score 0.7452: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.59it/s]
epoch 82 | valid.f_iou 0.5826799869537354, valid.f_f-score 0.74245: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 82 | valid.f_iou 0.5826799869537354, valid.f_f-score 0.74245: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 82 | valid.f_iou 0.5826799869537354, valid.f_f-score 0.74245: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 82 | valid.f_iou 0.810699999332428, valid.f_f-score 0.8693: 0%| | 0/16 [00:05, ?it/s]
epoch 82 | valid.f_iou 0.810699999332428, valid.f_f-score 0.8693: 6%|██ | 1/16 [00:05<01:16, 5.12s/it]
epoch 82 | valid.f_iou 0.836679995059967, valid.f_f-score 0.90299: 6%|██ | 1/16 [00:05<01:16, 5.12s/it]
epoch 82 | valid.f_iou 0.836679995059967, valid.f_f-score 0.90299: 12%|████ | 2/16 [00:05<00:33, 2.38s/it]
epoch 82 | valid.f_iou 0.7587199807167053, valid.f_f-score 0.8713: 12%|████ | 2/16 [00:06<00:33, 2.38s/it]
epoch 82 | valid.f_iou 0.7587199807167053, valid.f_f-score 0.8713: 19%|██████ | 3/16 [00:06<00:19, 1.50s/it]
epoch 82 | valid.f_iou 0.7341799736022949, valid.f_f-score 0.82291: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 82 | valid.f_iou 0.7341799736022949, valid.f_f-score 0.82291: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 82 | valid.f_iou 0.7234500050544739, valid.f_f-score 0.82689: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 82 | valid.f_iou 0.7234500050544739, valid.f_f-score 0.82689: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 82 | valid.f_iou 0.6945800185203552, valid.f_f-score 0.79738: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 82 | valid.f_iou 0.6945800185203552, valid.f_f-score 0.79738: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 82 | valid.f_iou 0.7062100172042847, valid.f_f-score 0.81286: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 82 | valid.f_iou 0.7062100172042847, valid.f_f-score 0.81286: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 82 | valid.f_iou 0.6876400113105774, valid.f_f-score 0.8003: 44%|██████████████ | 7/16 [00:08<00:05, 1.60it/s]
epoch 82 | valid.f_iou 0.6876400113105774, valid.f_f-score 0.8003: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 82 | valid.f_iou 0.6953700184822083, valid.f_f-score 0.7994: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 82 | valid.f_iou 0.6953700184822083, valid.f_f-score 0.7994: 56%|██████████████████ | 9/16 [00:08<00:03, 1.92it/s]
epoch 82 | valid.f_iou 0.7049999833106995, valid.f_f-score 0.81126: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 82 | valid.f_iou 0.7049999833106995, valid.f_f-score 0.81126: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 82 | valid.f_iou 0.6937800049781799, valid.f_f-score 0.79292: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 82 | valid.f_iou 0.6937800049781799, valid.f_f-score 0.79292: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.22it/s]
epoch 82 | valid.f_iou 0.7065100073814392, valid.f_f-score 0.80429: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.22it/s]
epoch 82 | valid.f_iou 0.7065100073814392, valid.f_f-score 0.80429: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.35it/s]
epoch 82 | valid.f_iou 0.7134900093078613, valid.f_f-score 0.80945: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.35it/s]
epoch 82 | valid.f_iou 0.7134900093078613, valid.f_f-score 0.80945: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 82 | valid.f_iou 0.7074199914932251, valid.f_f-score 0.80362: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 82 | valid.f_iou 0.7074199914932251, valid.f_f-score 0.80362: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 82 | valid.f_iou 0.7121099829673767, valid.f_f-score 0.8096: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.52it/s]
epoch 82 | valid.f_iou 0.7121099829673767, valid.f_f-score 0.8096: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.57it/s]
epoch 82 | valid.f_iou 0.7127100229263306, valid.f_f-score 0.81035: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 82 | valid.f_iou 0.7127100229263306, valid.f_f-score 0.81035: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 82 | valid.f_iou 0.7127100229263306, valid.f_f-score 0.81035: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 82 | valid.f_iou 0.810699999332428, valid.f_f-score 0.8693: 0%| | 0/16 [00:05, ?it/s]
epoch 82 | valid.f_iou 0.810699999332428, valid.f_f-score 0.8693: 6%|██ | 1/16 [00:05<01:18, 5.20s/it]
epoch 82 | valid.f_iou 0.836679995059967, valid.f_f-score 0.90299: 6%|██ | 1/16 [00:05<01:18, 5.20s/it]
epoch 82 | valid.f_iou 0.836679995059967, valid.f_f-score 0.90299: 12%|████ | 2/16 [00:05<00:33, 2.41s/it]
epoch 82 | valid.f_iou 0.7587199807167053, valid.f_f-score 0.8713: 12%|████ | 2/16 [00:06<00:33, 2.41s/it]
epoch 82 | valid.f_iou 0.7587199807167053, valid.f_f-score 0.8713: 19%|██████ | 3/16 [00:06<00:19, 1.51s/it]
epoch 82 | valid.f_iou 0.7342000007629395, valid.f_f-score 0.82291: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 82 | valid.f_iou 0.7342000007629395, valid.f_f-score 0.82291: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 82 | valid.f_iou 0.7293300032615662, valid.f_f-score 0.82689: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 82 | valid.f_iou 0.7293300032615662, valid.f_f-score 0.82689: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 82 | valid.f_iou 0.6994799971580505, valid.f_f-score 0.79738: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 82 | valid.f_iou 0.6994799971580505, valid.f_f-score 0.79738: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 82 | valid.f_iou 0.7121300101280212, valid.f_f-score 0.81286: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 82 | valid.f_iou 0.7121300101280212, valid.f_f-score 0.81286: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 82 | valid.f_iou 0.6928300261497498, valid.f_f-score 0.8003: 44%|██████████████ | 7/16 [00:08<00:05, 1.61it/s]
epoch 82 | valid.f_iou 0.6928300261497498, valid.f_f-score 0.8003: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 82 | valid.f_iou 0.7013599872589111, valid.f_f-score 0.7994: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 82 | valid.f_iou 0.7013599872589111, valid.f_f-score 0.7994: 56%|██████████████████ | 9/16 [00:08<00:03, 2.02it/s]
epoch 82 | valid.f_iou 0.7077599763870239, valid.f_f-score 0.80782: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 82 | valid.f_iou 0.7077599763870239, valid.f_f-score 0.80782: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.20it/s]
epoch 82 | valid.f_iou 0.6962800025939941, valid.f_f-score 0.78979: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.20it/s]
epoch 82 | valid.f_iou 0.6962800025939941, valid.f_f-score 0.78979: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 82 | valid.f_iou 0.7088099718093872, valid.f_f-score 0.80142: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 82 | valid.f_iou 0.7088099718093872, valid.f_f-score 0.80142: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.44it/s]
epoch 82 | valid.f_iou 0.7156100273132324, valid.f_f-score 0.8068: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.44it/s]
epoch 82 | valid.f_iou 0.7156100273132324, valid.f_f-score 0.8068: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.51it/s]
epoch 82 | valid.f_iou 0.7093899846076965, valid.f_f-score 0.80118: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 82 | valid.f_iou 0.7093899846076965, valid.f_f-score 0.80118: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 82 | valid.f_iou 0.7139400243759155, valid.f_f-score 0.80732: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 82 | valid.f_iou 0.7139400243759155, valid.f_f-score 0.80732: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 82 | valid.f_iou 0.7149199843406677, valid.f_f-score 0.80821: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 82 | valid.f_iou 0.7149199843406677, valid.f_f-score 0.80821: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.49it/s]
epoch 82 | valid.f_iou 0.7149199843406677, valid.f_f-score 0.80821: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 83 | loss 0.9998400211334229, f_iou 0.5375586152076721: 0%| | 0/74 [00:06, ?it/s]
epoch 83 | loss 0.9998400211334229, f_iou 0.5375586152076721: 1%|▌ | 1/74 [00:06<07:35, 6.24s/it]
epoch 83 | loss 0.5450149774551392, f_iou 0.6003818511962891: 1%|▌ | 1/74 [00:07<07:35, 6.24s/it]
epoch 83 | loss 0.5450149774551392, f_iou 0.6003818511962891: 3%|█ | 2/74 [00:07<03:38, 3.04s/it]
epoch 83 | loss 1.0747179985046387, f_iou 0.6027790307998657: 3%|█ | 2/74 [00:07<03:38, 3.04s/it]
epoch 83 | loss 1.0747179985046387, f_iou 0.6027790307998657: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 83 | loss 0.9998247623443604, f_iou 0.6747235059738159: 4%|█▌ | 3/74 [00:08<02:26, 2.06s/it]
epoch 83 | loss 0.9998247623443604, f_iou 0.6747235059738159: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 83 | loss 1.0463323593139648, f_iou 0.6826070547103882: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 83 | loss 1.0463323593139648, f_iou 0.6826070547103882: 7%|██▌ | 5/74 [00:09<01:29, 1.29s/it]
epoch 83 | loss 0.3005317449569702, f_iou 0.7320221662521362: 7%|██▌ | 5/74 [00:10<01:29, 1.29s/it]
epoch 83 | loss 0.3005317449569702, f_iou 0.7320221662521362: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 83 | loss 0.9689698815345764, f_iou 0.7559486627578735: 8%|███ | 6/74 [00:11<01:16, 1.12s/it]
epoch 83 | loss 0.9689698815345764, f_iou 0.7559486627578735: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 83 | loss 3.4715986251831055, f_iou 0.7263934016227722: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 83 | loss 3.4715986251831055, f_iou 0.7263934016227722: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 83 | loss 1.2844722270965576, f_iou 0.738893985748291: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 83 | loss 1.2844722270965576, f_iou 0.738893985748291: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 83 | loss 1.832973837852478, f_iou 0.7337102293968201: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 83 | loss 1.832973837852478, f_iou 0.7337102293968201: 14%|█████ | 10/74 [00:13<00:53, 1.19it/s]
epoch 83 | loss 0.0, f_iou 0.756674587726593: 14%|███████ | 10/74 [00:14<00:53, 1.19it/s]
epoch 83 | loss 0.0, f_iou 0.756674587726593: 15%|███████▋ | 11/74 [00:14<00:50, 1.25it/s]
epoch 83 | loss 0.5051991939544678, f_iou 0.7659550905227661: 15%|█████▎ | 11/74 [00:14<00:50, 1.25it/s]
epoch 83 | loss 0.5051991939544678, f_iou 0.7659550905227661: 16%|█████▊ | 12/74 [00:14<00:48, 1.28it/s]
epoch 83 | loss 0.0, f_iou 0.7825767993927002: 16%|████████▎ | 12/74 [00:15<00:48, 1.28it/s]
epoch 83 | loss 0.0, f_iou 0.7825767993927002: 18%|████████▉ | 13/74 [00:15<00:46, 1.32it/s]
epoch 83 | loss 2.290440797805786, f_iou 0.7748410701751709: 18%|██████▌ | 13/74 [00:16<00:46, 1.32it/s]
epoch 83 | loss 2.290440797805786, f_iou 0.7748410701751709: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 83 | loss 1.1250944137573242, f_iou 0.7310681939125061: 19%|██████▊ | 14/74 [00:17<00:44, 1.34it/s]
epoch 83 | loss 1.1250944137573242, f_iou 0.7310681939125061: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 83 | loss 0.6871122717857361, f_iou 0.7442754507064819: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 83 | loss 0.6871122717857361, f_iou 0.7442754507064819: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 83 | loss 1.1686915159225464, f_iou 0.740419864654541: 22%|████████ | 16/74 [00:18<00:42, 1.37it/s]
epoch 83 | loss 1.1686915159225464, f_iou 0.740419864654541: 23%|████████▌ | 17/74 [00:18<00:41, 1.37it/s]
epoch 83 | loss 1.0445305109024048, f_iou 0.7438888549804688: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 83 | loss 1.0445305109024048, f_iou 0.7438888549804688: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 83 | loss 0.8948667049407959, f_iou 0.7339617013931274: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 83 | loss 0.8948667049407959, f_iou 0.7339617013931274: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 83 | loss 2.3250625133514404, f_iou 0.6974277496337891: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 83 | loss 2.3250625133514404, f_iou 0.6974277496337891: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 83 | loss 1.1926546096801758, f_iou 0.6899397969245911: 27%|█████████▋ | 20/74 [00:21<00:38, 1.39it/s]
epoch 83 | loss 1.1926546096801758, f_iou 0.6899397969245911: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 83 | loss 1.4637401103973389, f_iou 0.6869497299194336: 28%|██████████▏ | 21/74 [00:22<00:38, 1.39it/s]
epoch 83 | loss 1.4637401103973389, f_iou 0.6869497299194336: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 83 | loss 0.32864490151405334, f_iou 0.6992490887641907: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 83 | loss 0.32864490151405334, f_iou 0.6992490887641907: 31%|██████████▉ | 23/74 [00:22<00:37, 1.36it/s]
epoch 83 | loss 1.7941055297851562, f_iou 0.7052401900291443: 31%|███████████▏ | 23/74 [00:23<00:37, 1.36it/s]
epoch 83 | loss 1.7941055297851562, f_iou 0.7052401900291443: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 83 | loss 2.2904858589172363, f_iou 0.6966454386711121: 32%|███████████▋ | 24/74 [00:24<00:36, 1.37it/s]
epoch 83 | loss 2.2904858589172363, f_iou 0.6966454386711121: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 83 | loss 3.683145046234131, f_iou 0.683427095413208: 34%|████████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 83 | loss 3.683145046234131, f_iou 0.683427095413208: 35%|█████████████▎ | 26/74 [00:24<00:34, 1.38it/s]
epoch 83 | loss 0.6141542792320251, f_iou 0.6918286681175232: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 83 | loss 0.6141542792320251, f_iou 0.6918286681175232: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.38it/s]
epoch 83 | loss 0.883691668510437, f_iou 0.6671205759048462: 36%|█████████████▌ | 27/74 [00:26<00:33, 1.38it/s]
epoch 83 | loss 0.883691668510437, f_iou 0.6671205759048462: 38%|██████████████ | 28/74 [00:26<00:32, 1.40it/s]
epoch 83 | loss 1.4879363775253296, f_iou 0.6727696061134338: 38%|█████████████▌ | 28/74 [00:27<00:32, 1.40it/s]
epoch 83 | loss 1.4879363775253296, f_iou 0.6727696061134338: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 83 | loss 2.2011044025421143, f_iou 0.6690201163291931: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 83 | loss 2.2011044025421143, f_iou 0.6690201163291931: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.40it/s]
epoch 83 | loss 1.5919742584228516, f_iou 0.6756457686424255: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.40it/s]
epoch 83 | loss 1.5919742584228516, f_iou 0.6756457686424255: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 83 | loss 0.5894283652305603, f_iou 0.6775110960006714: 42%|███████████████ | 31/74 [00:29<00:30, 1.40it/s]
epoch 83 | loss 0.5894283652305603, f_iou 0.6775110960006714: 43%|███████████████▌ | 32/74 [00:29<00:29, 1.40it/s]
epoch 83 | loss 0.5505125522613525, f_iou 0.6848507523536682: 43%|███████████████▌ | 32/74 [00:29<00:29, 1.40it/s]
epoch 83 | loss 0.5505125522613525, f_iou 0.6848507523536682: 45%|████████████████ | 33/74 [00:29<00:29, 1.40it/s]
epoch 83 | loss 1.6328444480895996, f_iou 0.6920167803764343: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 83 | loss 1.6328444480895996, f_iou 0.6920167803764343: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.40it/s]
epoch 83 | loss 0.9100075364112854, f_iou 0.6972997784614563: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.40it/s]
epoch 83 | loss 0.9100075364112854, f_iou 0.6972997784614563: 47%|█████████████████ | 35/74 [00:31<00:27, 1.41it/s]
epoch 83 | loss 0.4173712730407715, f_iou 0.7042186856269836: 47%|█████████████████ | 35/74 [00:32<00:27, 1.41it/s]
epoch 83 | loss 0.4173712730407715, f_iou 0.7042186856269836: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.40it/s]
epoch 83 | loss 0.49737173318862915, f_iou 0.7087688446044922: 49%|█████████████████ | 36/74 [00:32<00:27, 1.40it/s]
epoch 83 | loss 0.49737173318862915, f_iou 0.7087688446044922: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.40it/s]
epoch 83 | loss 0.8228522539138794, f_iou 0.7028762698173523: 50%|██████████████████ | 37/74 [00:33<00:26, 1.40it/s]
epoch 83 | loss 0.8228522539138794, f_iou 0.7028762698173523: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.40it/s]
epoch 83 | loss 0.816459059715271, f_iou 0.7074878215789795: 51%|███████████████████ | 38/74 [00:34<00:25, 1.40it/s]
epoch 83 | loss 0.816459059715271, f_iou 0.7074878215789795: 53%|███████████████████▍ | 39/74 [00:34<00:24, 1.40it/s]
epoch 83 | loss 1.8739112615585327, f_iou 0.7089892625808716: 53%|██████████████████▉ | 39/74 [00:34<00:24, 1.40it/s]
epoch 83 | loss 1.8739112615585327, f_iou 0.7089892625808716: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.40it/s]
epoch 83 | loss 1.1010570526123047, f_iou 0.7123236060142517: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.40it/s]
epoch 83 | loss 1.1010570526123047, f_iou 0.7123236060142517: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.40it/s]
epoch 83 | loss 1.180915355682373, f_iou 0.6953664422035217: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.40it/s]
epoch 83 | loss 1.180915355682373, f_iou 0.6953664422035217: 57%|█████████████████████ | 42/74 [00:36<00:22, 1.40it/s]
epoch 83 | loss 0.38257941603660583, f_iou 0.7018120884895325: 57%|███████████████████▊ | 42/74 [00:37<00:22, 1.40it/s]
epoch 83 | loss 0.38257941603660583, f_iou 0.7018120884895325: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.40it/s]
epoch 83 | loss 0.8714582920074463, f_iou 0.697249710559845: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.40it/s]
epoch 83 | loss 0.8714582920074463, f_iou 0.697249710559845: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.40it/s]
epoch 83 | loss 1.009198546409607, f_iou 0.6826395392417908: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.40it/s]
epoch 83 | loss 1.009198546409607, f_iou 0.6826395392417908: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.40it/s]
epoch 83 | loss 0.7857193946838379, f_iou 0.6870192289352417: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.40it/s]
epoch 83 | loss 0.7857193946838379, f_iou 0.6870192289352417: 62%|██████████████████████▍ | 46/74 [00:39<00:19, 1.40it/s]
epoch 83 | loss 0.592369556427002, f_iou 0.6788574457168579: 62%|███████████████████████ | 46/74 [00:39<00:19, 1.40it/s]
epoch 83 | loss 0.592369556427002, f_iou 0.6788574457168579: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.40it/s]
epoch 83 | loss 1.0740668773651123, f_iou 0.6704714298248291: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.40it/s]
epoch 83 | loss 1.0740668773651123, f_iou 0.6704714298248291: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 83 | loss 2.9363229274749756, f_iou 0.6722825169563293: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 83 | loss 2.9363229274749756, f_iou 0.6722825169563293: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 83 | loss 0.744026780128479, f_iou 0.6744976043701172: 66%|████████████████████████▌ | 49/74 [00:42<00:17, 1.39it/s]
epoch 83 | loss 0.744026780128479, f_iou 0.6744976043701172: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 83 | loss 1.3639637231826782, f_iou 0.6712357997894287: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 83 | loss 1.3639637231826782, f_iou 0.6712357997894287: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 83 | loss 0.6564892530441284, f_iou 0.6726384162902832: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 83 | loss 0.6564892530441284, f_iou 0.6726384162902832: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 83 | loss 3.185521125793457, f_iou 0.6743977665901184: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 83 | loss 3.185521125793457, f_iou 0.6743977665901184: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 83 | loss 1.0551230907440186, f_iou 0.6768928170204163: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 83 | loss 1.0551230907440186, f_iou 0.6768928170204163: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.39it/s]
epoch 83 | loss 1.7468724250793457, f_iou 0.678044319152832: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 83 | loss 1.7468724250793457, f_iou 0.678044319152832: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.38it/s]
epoch 83 | loss 0.7012206315994263, f_iou 0.6768869161605835: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 83 | loss 0.7012206315994263, f_iou 0.6768869161605835: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.40it/s]
epoch 83 | loss 2.468951940536499, f_iou 0.6745649576187134: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.40it/s]
epoch 83 | loss 2.468951940536499, f_iou 0.6745649576187134: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.38it/s]
epoch 83 | loss 2.9086828231811523, f_iou 0.6702870726585388: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 83 | loss 2.9086828231811523, f_iou 0.6702870726585388: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.38it/s]
epoch 83 | loss 1.1414421796798706, f_iou 0.6713017821311951: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 83 | loss 1.1414421796798706, f_iou 0.6713017821311951: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 83 | loss 0.6765406727790833, f_iou 0.6763911843299866: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 83 | loss 0.6765406727790833, f_iou 0.6763911843299866: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 83 | loss 1.4898157119750977, f_iou 0.6783055067062378: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 83 | loss 1.4898157119750977, f_iou 0.6783055067062378: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 83 | loss 0.9478370547294617, f_iou 0.6781355738639832: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 83 | loss 0.9478370547294617, f_iou 0.6781355738639832: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.38it/s]
epoch 83 | loss 0.9167250394821167, f_iou 0.6812350749969482: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 83 | loss 0.9167250394821167, f_iou 0.6812350749969482: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 83 | loss 0.562709391117096, f_iou 0.6842498183250427: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 83 | loss 0.562709391117096, f_iou 0.6842498183250427: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.39it/s]
epoch 83 | loss 0.6940945982933044, f_iou 0.6862509250640869: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 83 | loss 0.6940945982933044, f_iou 0.6862509250640869: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 83 | loss 1.95109224319458, f_iou 0.6856074929237366: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.39it/s]
epoch 83 | loss 1.95109224319458, f_iou 0.6856074929237366: 89%|█████████████████████████████████▉ | 66/74 [00:53<00:05, 1.40it/s]
epoch 83 | loss 1.73378324508667, f_iou 0.6855786442756653: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.40it/s]
epoch 83 | loss 1.73378324508667, f_iou 0.6855786442756653: 91%|██████████████████████████████████▍ | 67/74 [00:54<00:04, 1.40it/s]
epoch 83 | loss 2.353332996368408, f_iou 0.6866641044616699: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:04, 1.40it/s]
epoch 83 | loss 2.353332996368408, f_iou 0.6866641044616699: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 83 | loss 1.2083077430725098, f_iou 0.6883763670921326: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 83 | loss 1.2083077430725098, f_iou 0.6883763670921326: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 83 | loss 3.0959362983703613, f_iou 0.6876657009124756: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 83 | loss 3.0959362983703613, f_iou 0.6876657009124756: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 83 | loss 0.6252157688140869, f_iou 0.6892433166503906: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 83 | loss 0.6252157688140869, f_iou 0.6892433166503906: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 83 | loss 0.7712612748146057, f_iou 0.6829320192337036: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 83 | loss 0.7712612748146057, f_iou 0.6829320192337036: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 83 | loss 1.2680704593658447, f_iou 0.6774039268493652: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 83 | loss 1.2680704593658447, f_iou 0.6774039268493652: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 83 | loss 1.4663184881210327, f_iou 0.6783103346824646: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 83 | loss 1.4663184881210327, f_iou 0.6783103346824646: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 83 | loss 1.4663184881210327, f_iou 0.6783103346824646: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 83 | valid.f_iou 0.7258300185203552, valid.f_f-score 0.85135: 0%| | 0/16 [00:05, ?it/s]
epoch 83 | valid.f_iou 0.7258300185203552, valid.f_f-score 0.85135: 6%|█▉ | 1/16 [00:05<01:22, 5.52s/it]
epoch 83 | valid.f_iou 0.700760006904602, valid.f_f-score 0.87369: 6%|██ | 1/16 [00:05<01:22, 5.52s/it]
epoch 83 | valid.f_iou 0.700760006904602, valid.f_f-score 0.87369: 12%|████ | 2/16 [00:05<00:35, 2.54s/it]
epoch 83 | valid.f_iou 0.5650799870491028, valid.f_f-score 0.77063: 12%|███▉ | 2/16 [00:06<00:35, 2.54s/it]
epoch 83 | valid.f_iou 0.5650799870491028, valid.f_f-score 0.77063: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 83 | valid.f_iou 0.6182199716567993, valid.f_f-score 0.77855: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 83 | valid.f_iou 0.6182199716567993, valid.f_f-score 0.77855: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 83 | valid.f_iou 0.6172099709510803, valid.f_f-score 0.76881: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 83 | valid.f_iou 0.6172099709510803, valid.f_f-score 0.76881: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 83 | valid.f_iou 0.5818799734115601, valid.f_f-score 0.73969: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 83 | valid.f_iou 0.5818799734115601, valid.f_f-score 0.73969: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 83 | valid.f_iou 0.6045200228691101, valid.f_f-score 0.75694: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 83 | valid.f_iou 0.6045200228691101, valid.f_f-score 0.75694: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 83 | valid.f_iou 0.5707700252532959, valid.f_f-score 0.73173: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 83 | valid.f_iou 0.5707700252532959, valid.f_f-score 0.73173: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 83 | valid.f_iou 0.5804100036621094, valid.f_f-score 0.73247: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 83 | valid.f_iou 0.5804100036621094, valid.f_f-score 0.73247: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 83 | valid.f_iou 0.569599986076355, valid.f_f-score 0.72946: 56%|██████████████████ | 9/16 [00:09<00:03, 1.91it/s]
epoch 83 | valid.f_iou 0.569599986076355, valid.f_f-score 0.72946: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.07it/s]
epoch 83 | valid.f_iou 0.5708199739456177, valid.f_f-score 0.73121: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 83 | valid.f_iou 0.5708199739456177, valid.f_f-score 0.73121: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 83 | valid.f_iou 0.5885800123214722, valid.f_f-score 0.74589: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.23it/s]
epoch 83 | valid.f_iou 0.5885800123214722, valid.f_f-score 0.74589: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 83 | valid.f_iou 0.5907700061798096, valid.f_f-score 0.75026: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.37it/s]
epoch 83 | valid.f_iou 0.5907700061798096, valid.f_f-score 0.75026: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 83 | valid.f_iou 0.5858500003814697, valid.f_f-score 0.74568: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 83 | valid.f_iou 0.5858500003814697, valid.f_f-score 0.74568: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.53it/s]
epoch 83 | valid.f_iou 0.5902900099754333, valid.f_f-score 0.74533: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 83 | valid.f_iou 0.5902900099754333, valid.f_f-score 0.74533: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 83 | valid.f_iou 0.5907099843025208, valid.f_f-score 0.74237: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 83 | valid.f_iou 0.5907099843025208, valid.f_f-score 0.74237: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 83 | valid.f_iou 0.5907099843025208, valid.f_f-score 0.74237: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 83 | valid.f_iou 0.8168200254440308, valid.f_f-score 0.87607: 0%| | 0/16 [00:05, ?it/s]
epoch 83 | valid.f_iou 0.8168200254440308, valid.f_f-score 0.87607: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 83 | valid.f_iou 0.8421400189399719, valid.f_f-score 0.91124: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 83 | valid.f_iou 0.8421400189399719, valid.f_f-score 0.91124: 12%|███▉ | 2/16 [00:05<00:33, 2.39s/it]
epoch 83 | valid.f_iou 0.7221500277519226, valid.f_f-score 0.83411: 12%|███▉ | 2/16 [00:06<00:33, 2.39s/it]
epoch 83 | valid.f_iou 0.7221500277519226, valid.f_f-score 0.83411: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 83 | valid.f_iou 0.7250800132751465, valid.f_f-score 0.81879: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 83 | valid.f_iou 0.7250800132751465, valid.f_f-score 0.81879: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 83 | valid.f_iou 0.7013999819755554, valid.f_f-score 0.80317: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 83 | valid.f_iou 0.7013999819755554, valid.f_f-score 0.80317: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 83 | valid.f_iou 0.6919199824333191, valid.f_f-score 0.79852: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 83 | valid.f_iou 0.6919199824333191, valid.f_f-score 0.79852: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 83 | valid.f_iou 0.7149699926376343, valid.f_f-score 0.82135: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 83 | valid.f_iou 0.7149699926376343, valid.f_f-score 0.82135: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.58it/s]
epoch 83 | valid.f_iou 0.7102299928665161, valid.f_f-score 0.81975: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 83 | valid.f_iou 0.7102299928665161, valid.f_f-score 0.81975: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 83 | valid.f_iou 0.7133200168609619, valid.f_f-score 0.82115: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 83 | valid.f_iou 0.7133200168609619, valid.f_f-score 0.82115: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.89it/s]
epoch 83 | valid.f_iou 0.7104700207710266, valid.f_f-score 0.82665: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 83 | valid.f_iou 0.7104700207710266, valid.f_f-score 0.82665: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 83 | valid.f_iou 0.7022200226783752, valid.f_f-score 0.8096: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.08it/s]
epoch 83 | valid.f_iou 0.7022200226783752, valid.f_f-score 0.8096: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.25it/s]
epoch 83 | valid.f_iou 0.7146099805831909, valid.f_f-score 0.81958: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 83 | valid.f_iou 0.7146099805831909, valid.f_f-score 0.81958: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.38it/s]
epoch 83 | valid.f_iou 0.727400004863739, valid.f_f-score 0.8277: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.38it/s]
epoch 83 | valid.f_iou 0.727400004863739, valid.f_f-score 0.8277: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.47it/s]
epoch 83 | valid.f_iou 0.7171000242233276, valid.f_f-score 0.8201: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 83 | valid.f_iou 0.7171000242233276, valid.f_f-score 0.8201: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 83 | valid.f_iou 0.7230299711227417, valid.f_f-score 0.8255: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.54it/s]
epoch 83 | valid.f_iou 0.7230299711227417, valid.f_f-score 0.8255: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.60it/s]
epoch 83 | valid.f_iou 0.7199100255966187, valid.f_f-score 0.82063: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 83 | valid.f_iou 0.7199100255966187, valid.f_f-score 0.82063: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 83 | valid.f_iou 0.7199100255966187, valid.f_f-score 0.82063: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 83 | valid.f_iou 0.8168200254440308, valid.f_f-score 0.87607: 0%| | 0/16 [00:05, ?it/s]
epoch 83 | valid.f_iou 0.8168200254440308, valid.f_f-score 0.87607: 6%|█▉ | 1/16 [00:05<01:16, 5.09s/it]
epoch 83 | valid.f_iou 0.8421400189399719, valid.f_f-score 0.91124: 6%|█▉ | 1/16 [00:05<01:16, 5.09s/it]
epoch 83 | valid.f_iou 0.8421400189399719, valid.f_f-score 0.91124: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 83 | valid.f_iou 0.7221500277519226, valid.f_f-score 0.83411: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 83 | valid.f_iou 0.7221500277519226, valid.f_f-score 0.83411: 19%|█████▊ | 3/16 [00:05<00:18, 1.43s/it]
epoch 83 | valid.f_iou 0.7253400087356567, valid.f_f-score 0.81879: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 83 | valid.f_iou 0.7253400087356567, valid.f_f-score 0.81879: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 83 | valid.f_iou 0.7103099822998047, valid.f_f-score 0.80317: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 83 | valid.f_iou 0.7103099822998047, valid.f_f-score 0.80317: 31%|█████████▋ | 5/16 [00:06<00:08, 1.28it/s]
epoch 83 | valid.f_iou 0.6993399858474731, valid.f_f-score 0.79852: 31%|█████████▋ | 5/16 [00:06<00:08, 1.28it/s]
epoch 83 | valid.f_iou 0.6993399858474731, valid.f_f-score 0.79852: 38%|███████████▋ | 6/16 [00:06<00:06, 1.56it/s]
epoch 83 | valid.f_iou 0.723330020904541, valid.f_f-score 0.82135: 38%|████████████ | 6/16 [00:07<00:06, 1.56it/s]
epoch 83 | valid.f_iou 0.723330020904541, valid.f_f-score 0.82135: 44%|██████████████ | 7/16 [00:07<00:04, 1.83it/s]
epoch 83 | valid.f_iou 0.7175499796867371, valid.f_f-score 0.81975: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.83it/s]
epoch 83 | valid.f_iou 0.7175499796867371, valid.f_f-score 0.81975: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.03it/s]
epoch 83 | valid.f_iou 0.7228400111198425, valid.f_f-score 0.82115: 50%|███████████████▌ | 8/16 [00:08<00:03, 2.03it/s]
epoch 83 | valid.f_iou 0.7228400111198425, valid.f_f-score 0.82115: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.24it/s]
epoch 83 | valid.f_iou 0.7181100249290466, valid.f_f-score 0.8237: 56%|██████████████████ | 9/16 [00:08<00:03, 2.24it/s]
epoch 83 | valid.f_iou 0.7181100249290466, valid.f_f-score 0.8237: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.38it/s]
epoch 83 | valid.f_iou 0.7011100053787231, valid.f_f-score 0.80068: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.38it/s]
epoch 83 | valid.f_iou 0.7011100053787231, valid.f_f-score 0.80068: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.48it/s]
epoch 83 | valid.f_iou 0.7135900259017944, valid.f_f-score 0.81141: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.48it/s]
epoch 83 | valid.f_iou 0.7135900259017944, valid.f_f-score 0.81141: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.55it/s]
epoch 83 | valid.f_iou 0.7264599800109863, valid.f_f-score 0.8214: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.55it/s]
epoch 83 | valid.f_iou 0.7264599800109863, valid.f_f-score 0.8214: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.61it/s]
epoch 83 | valid.f_iou 0.7131100296974182, valid.f_f-score 0.8111: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.61it/s]
epoch 83 | valid.f_iou 0.7131100296974182, valid.f_f-score 0.8111: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.65it/s]
epoch 83 | valid.f_iou 0.7193099856376648, valid.f_f-score 0.8171: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.65it/s]
epoch 83 | valid.f_iou 0.7193099856376648, valid.f_f-score 0.8171: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.68it/s]
epoch 83 | valid.f_iou 0.7169100046157837, valid.f_f-score 0.81189: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 83 | valid.f_iou 0.7169100046157837, valid.f_f-score 0.81189: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 83 | valid.f_iou 0.7169100046157837, valid.f_f-score 0.81189: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 84 | loss 1.2698185443878174, f_iou 0.23064763844013214: 0%| | 0/74 [00:06, ?it/s]
epoch 84 | loss 1.2698185443878174, f_iou 0.23064763844013214: 1%|▍ | 1/74 [00:06<07:28, 6.14s/it]
epoch 84 | loss 0.6404205560684204, f_iou 0.5874229073524475: 1%|▌ | 1/74 [00:06<07:28, 6.14s/it]
epoch 84 | loss 0.6404205560684204, f_iou 0.5874229073524475: 3%|█ | 2/74 [00:06<03:36, 3.01s/it]
epoch 84 | loss 3.234149217605591, f_iou 0.6213828921318054: 3%|█ | 2/74 [00:07<03:36, 3.01s/it]
epoch 84 | loss 3.234149217605591, f_iou 0.6213828921318054: 4%|█▌ | 3/74 [00:07<02:22, 2.00s/it]
epoch 84 | loss 0.41551029682159424, f_iou 0.691199779510498: 4%|█▌ | 3/74 [00:08<02:22, 2.00s/it]
epoch 84 | loss 0.41551029682159424, f_iou 0.691199779510498: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 84 | loss 0.3458562195301056, f_iou 0.6293898820877075: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 84 | loss 0.3458562195301056, f_iou 0.6293898820877075: 7%|██▌ | 5/74 [00:09<01:29, 1.29s/it]
epoch 84 | loss 2.8659114837646484, f_iou 0.6116107702255249: 7%|██▌ | 5/74 [00:10<01:29, 1.29s/it]
epoch 84 | loss 2.8659114837646484, f_iou 0.6116107702255249: 8%|███ | 6/74 [00:10<01:16, 1.13s/it]
epoch 84 | loss 2.8688504695892334, f_iou 0.634442150592804: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 84 | loss 2.8688504695892334, f_iou 0.634442150592804: 9%|███▌ | 7/74 [00:11<01:09, 1.04s/it]
epoch 84 | loss 0.5324704647064209, f_iou 0.5948941111564636: 9%|███▌ | 7/74 [00:11<01:09, 1.04s/it]
epoch 84 | loss 0.5324704647064209, f_iou 0.5948941111564636: 11%|████ | 8/74 [00:11<01:03, 1.05it/s]
epoch 84 | loss 1.466619849205017, f_iou 0.6158064007759094: 11%|████ | 8/74 [00:12<01:03, 1.05it/s]
epoch 84 | loss 1.466619849205017, f_iou 0.6158064007759094: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 84 | loss 1.5884281396865845, f_iou 0.6206273436546326: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 84 | loss 1.5884281396865845, f_iou 0.6206273436546326: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 84 | loss 1.0742254257202148, f_iou 0.6346654891967773: 14%|████▊ | 10/74 [00:14<00:54, 1.17it/s]
epoch 84 | loss 1.0742254257202148, f_iou 0.6346654891967773: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 84 | loss 1.4810378551483154, f_iou 0.6052428483963013: 15%|█████▎ | 11/74 [00:15<00:52, 1.20it/s]
epoch 84 | loss 1.4810378551483154, f_iou 0.6052428483963013: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 84 | loss 1.099440574645996, f_iou 0.5686048865318298: 16%|██████ | 12/74 [00:15<00:50, 1.22it/s]
epoch 84 | loss 1.099440574645996, f_iou 0.5686048865318298: 18%|██████▌ | 13/74 [00:15<00:49, 1.23it/s]
epoch 84 | loss 0.5317078232765198, f_iou 0.593676745891571: 18%|██████▌ | 13/74 [00:16<00:49, 1.23it/s]
epoch 84 | loss 0.5317078232765198, f_iou 0.593676745891571: 19%|███████ | 14/74 [00:16<00:48, 1.24it/s]
epoch 84 | loss 1.2267951965332031, f_iou 0.6066117882728577: 19%|██████▊ | 14/74 [00:17<00:48, 1.24it/s]
epoch 84 | loss 1.2267951965332031, f_iou 0.6066117882728577: 20%|███████▎ | 15/74 [00:17<00:46, 1.27it/s]
epoch 84 | loss 0.5383799076080322, f_iou 0.6297913789749146: 20%|███████▎ | 15/74 [00:18<00:46, 1.27it/s]
epoch 84 | loss 0.5383799076080322, f_iou 0.6297913789749146: 22%|███████▊ | 16/74 [00:18<00:44, 1.30it/s]
epoch 84 | loss 1.7237497568130493, f_iou 0.6083915829658508: 22%|███████▊ | 16/74 [00:18<00:44, 1.30it/s]
epoch 84 | loss 1.7237497568130493, f_iou 0.6083915829658508: 23%|████████▎ | 17/74 [00:18<00:43, 1.32it/s]
epoch 84 | loss 1.6133755445480347, f_iou 0.6208749413490295: 23%|████████▎ | 17/74 [00:19<00:43, 1.32it/s]
epoch 84 | loss 1.6133755445480347, f_iou 0.6208749413490295: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 84 | loss 3.7520508766174316, f_iou 0.603291392326355: 24%|█████████ | 18/74 [00:20<00:41, 1.34it/s]
epoch 84 | loss 3.7520508766174316, f_iou 0.603291392326355: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 84 | loss 0.732871949672699, f_iou 0.5985962152481079: 26%|█████████▌ | 19/74 [00:20<00:40, 1.35it/s]
epoch 84 | loss 0.732871949672699, f_iou 0.5985962152481079: 27%|██████████ | 20/74 [00:20<00:39, 1.36it/s]
epoch 84 | loss 1.0424449443817139, f_iou 0.5753214955329895: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 84 | loss 1.0424449443817139, f_iou 0.5753214955329895: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 84 | loss 1.0364103317260742, f_iou 0.5692502856254578: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 84 | loss 1.0364103317260742, f_iou 0.5692502856254578: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 84 | loss 0.4726100265979767, f_iou 0.5709912776947021: 30%|██████████▋ | 22/74 [00:23<00:37, 1.38it/s]
epoch 84 | loss 0.4726100265979767, f_iou 0.5709912776947021: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 84 | loss 0.6909580826759338, f_iou 0.5471999645233154: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 84 | loss 0.6909580826759338, f_iou 0.5471999645233154: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 84 | loss 0.3474949896335602, f_iou 0.556133508682251: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 84 | loss 0.3474949896335602, f_iou 0.556133508682251: 34%|████████████▌ | 25/74 [00:24<00:35, 1.40it/s]
epoch 84 | loss 1.9735673666000366, f_iou 0.5620279908180237: 34%|████████████▏ | 25/74 [00:25<00:35, 1.40it/s]
epoch 84 | loss 1.9735673666000366, f_iou 0.5620279908180237: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 84 | loss 0.9693849086761475, f_iou 0.569739580154419: 35%|█████████████ | 26/74 [00:25<00:34, 1.38it/s]
epoch 84 | loss 0.9693849086761475, f_iou 0.569739580154419: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 84 | loss 1.00132417678833, f_iou 0.5798119306564331: 36%|█████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 84 | loss 1.00132417678833, f_iou 0.5798119306564331: 38%|██████████████▍ | 28/74 [00:26<00:33, 1.39it/s]
epoch 84 | loss 0.6088307499885559, f_iou 0.591880202293396: 38%|██████████████ | 28/74 [00:27<00:33, 1.39it/s]
epoch 84 | loss 0.6088307499885559, f_iou 0.591880202293396: 39%|██████████████▌ | 29/74 [00:27<00:34, 1.29it/s]
epoch 84 | loss 1.9686994552612305, f_iou 0.591808021068573: 39%|██████████████▌ | 29/74 [00:28<00:34, 1.29it/s]
epoch 84 | loss 1.9686994552612305, f_iou 0.591808021068573: 41%|███████████████ | 30/74 [00:28<00:33, 1.32it/s]
epoch 84 | loss 1.4819278717041016, f_iou 0.5974724888801575: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.32it/s]
epoch 84 | loss 1.4819278717041016, f_iou 0.5974724888801575: 42%|███████████████ | 31/74 [00:29<00:31, 1.34it/s]
epoch 84 | loss 1.6674094200134277, f_iou 0.5888212323188782: 42%|███████████████ | 31/74 [00:29<00:31, 1.34it/s]
epoch 84 | loss 1.6674094200134277, f_iou 0.5888212323188782: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 84 | loss 0.7170806527137756, f_iou 0.5987237095832825: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.36it/s]
epoch 84 | loss 0.7170806527137756, f_iou 0.5987237095832825: 45%|████████████████ | 33/74 [00:30<00:29, 1.37it/s]
epoch 84 | loss 0.5137550234794617, f_iou 0.5925413370132446: 45%|████████████████ | 33/74 [00:31<00:29, 1.37it/s]
epoch 84 | loss 0.5137550234794617, f_iou 0.5925413370132446: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 84 | loss 0.6134721040725708, f_iou 0.6019462943077087: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 84 | loss 0.6134721040725708, f_iou 0.6019462943077087: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 84 | loss 3.132222890853882, f_iou 0.5905774235725403: 47%|█████████████████▌ | 35/74 [00:32<00:28, 1.37it/s]
epoch 84 | loss 3.132222890853882, f_iou 0.5905774235725403: 49%|██████████████████ | 36/74 [00:32<00:28, 1.35it/s]
epoch 84 | loss 0.29201260209083557, f_iou 0.5949095487594604: 49%|█████████████████ | 36/74 [00:33<00:28, 1.35it/s]
epoch 84 | loss 0.29201260209083557, f_iou 0.5949095487594604: 50%|█████████████████▌ | 37/74 [00:33<00:27, 1.33it/s]
epoch 84 | loss 1.5767990350723267, f_iou 0.5960387587547302: 50%|██████████████████ | 37/74 [00:34<00:27, 1.33it/s]
epoch 84 | loss 1.5767990350723267, f_iou 0.5960387587547302: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 84 | loss 1.5603430271148682, f_iou 0.5901095867156982: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 84 | loss 1.5603430271148682, f_iou 0.5901095867156982: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.36it/s]
epoch 84 | loss 0.7051692605018616, f_iou 0.5971545577049255: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.36it/s]
epoch 84 | loss 0.7051692605018616, f_iou 0.5971545577049255: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 84 | loss 0.7923802137374878, f_iou 0.605512261390686: 54%|████████████████████ | 40/74 [00:36<00:24, 1.37it/s]
epoch 84 | loss 0.7923802137374878, f_iou 0.605512261390686: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.37it/s]
epoch 84 | loss 0.7312664985656738, f_iou 0.6139527559280396: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.37it/s]
epoch 84 | loss 0.7312664985656738, f_iou 0.6139527559280396: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 84 | loss 0.7846198081970215, f_iou 0.6198785305023193: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 84 | loss 0.7846198081970215, f_iou 0.6198785305023193: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 84 | loss 0.9420148134231567, f_iou 0.6208632588386536: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.37it/s]
epoch 84 | loss 0.9420148134231567, f_iou 0.6208632588386536: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.37it/s]
epoch 84 | loss 0.0, f_iou 0.6289175748825073: 59%|██████████████████████████████▎ | 44/74 [00:39<00:21, 1.37it/s]
epoch 84 | loss 0.0, f_iou 0.6289175748825073: 61%|███████████████████████████████ | 45/74 [00:39<00:21, 1.36it/s]
epoch 84 | loss 2.985470771789551, f_iou 0.6280854344367981: 61%|██████████████████████▌ | 45/74 [00:40<00:21, 1.36it/s]
epoch 84 | loss 2.985470771789551, f_iou 0.6280854344367981: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.34it/s]
epoch 84 | loss 0.8171403408050537, f_iou 0.6339561343193054: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.34it/s]
epoch 84 | loss 0.8171403408050537, f_iou 0.6339561343193054: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.33it/s]
epoch 84 | loss 0.36340799927711487, f_iou 0.6361899375915527: 64%|██████████████████████▏ | 47/74 [00:41<00:20, 1.33it/s]
epoch 84 | loss 0.36340799927711487, f_iou 0.6361899375915527: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.32it/s]
epoch 84 | loss 1.437502145767212, f_iou 0.6381184458732605: 65%|████████████████████████ | 48/74 [00:42<00:19, 1.32it/s]
epoch 84 | loss 1.437502145767212, f_iou 0.6381184458732605: 66%|████████████████████████▌ | 49/74 [00:42<00:19, 1.31it/s]
epoch 84 | loss 0.4077523350715637, f_iou 0.6439104080200195: 66%|███████████████████████▊ | 49/74 [00:43<00:19, 1.31it/s]
epoch 84 | loss 0.4077523350715637, f_iou 0.6439104080200195: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.32it/s]
epoch 84 | loss 0.7513375282287598, f_iou 0.6482771635055542: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.32it/s]
epoch 84 | loss 0.7513375282287598, f_iou 0.6482771635055542: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.35it/s]
epoch 84 | loss 2.3444149494171143, f_iou 0.6452517509460449: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.35it/s]
epoch 84 | loss 2.3444149494171143, f_iou 0.6452517509460449: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.34it/s]
epoch 84 | loss 1.4738194942474365, f_iou 0.6441861987113953: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.34it/s]
epoch 84 | loss 1.4738194942474365, f_iou 0.6441861987113953: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.35it/s]
epoch 84 | loss 1.5410845279693604, f_iou 0.6394092440605164: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.35it/s]
epoch 84 | loss 1.5410845279693604, f_iou 0.6394092440605164: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.35it/s]
epoch 84 | loss 0.8121362924575806, f_iou 0.6425214409828186: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.35it/s]
epoch 84 | loss 0.8121362924575806, f_iou 0.6425214409828186: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.36it/s]
epoch 84 | loss 1.3355252742767334, f_iou 0.6447052359580994: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.36it/s]
epoch 84 | loss 1.3355252742767334, f_iou 0.6447052359580994: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 84 | loss 0.7669453620910645, f_iou 0.6477365493774414: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.38it/s]
epoch 84 | loss 0.7669453620910645, f_iou 0.6477365493774414: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 84 | loss 2.2325546741485596, f_iou 0.6469295024871826: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 84 | loss 2.2325546741485596, f_iou 0.6469295024871826: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 84 | loss 1.3859527111053467, f_iou 0.6412233710289001: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 84 | loss 1.3859527111053467, f_iou 0.6412233710289001: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 84 | loss 3.0087528228759766, f_iou 0.6363852620124817: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.38it/s]
epoch 84 | loss 3.0087528228759766, f_iou 0.6363852620124817: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 84 | loss 1.008523941040039, f_iou 0.6332110166549683: 81%|██████████████████████████████ | 60/74 [00:51<00:10, 1.38it/s]
epoch 84 | loss 1.008523941040039, f_iou 0.6332110166549683: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.37it/s]
epoch 84 | loss 6.565693378448486, f_iou 0.626470685005188: 82%|███████████████████████████████▎ | 61/74 [00:51<00:09, 1.37it/s]
epoch 84 | loss 6.565693378448486, f_iou 0.626470685005188: 84%|███████████████████████████████▊ | 62/74 [00:51<00:08, 1.38it/s]
epoch 84 | loss 1.6919186115264893, f_iou 0.6211532354354858: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 84 | loss 1.6919186115264893, f_iou 0.6211532354354858: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 84 | loss 0.9735839366912842, f_iou 0.6248946189880371: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 84 | loss 0.9735839366912842, f_iou 0.6248946189880371: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 84 | loss 0.5739067196846008, f_iou 0.6293205618858337: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 84 | loss 0.5739067196846008, f_iou 0.6293205618858337: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 84 | loss 1.9248429536819458, f_iou 0.6268774271011353: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 84 | loss 1.9248429536819458, f_iou 0.6268774271011353: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 84 | loss 0.4481717348098755, f_iou 0.6302202343940735: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 84 | loss 0.4481717348098755, f_iou 0.6302202343940735: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 84 | loss 1.0212950706481934, f_iou 0.6313560605049133: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.39it/s]
epoch 84 | loss 1.0212950706481934, f_iou 0.6313560605049133: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 84 | loss 0.8486634492874146, f_iou 0.6342695951461792: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 84 | loss 0.8486634492874146, f_iou 0.6342695951461792: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 84 | loss 0.49727579951286316, f_iou 0.6367510557174683: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.40it/s]
epoch 84 | loss 0.49727579951286316, f_iou 0.6367510557174683: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 84 | loss 1.048156499862671, f_iou 0.6292033195495605: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 84 | loss 1.048156499862671, f_iou 0.6292033195495605: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 84 | loss 1.1518481969833374, f_iou 0.6328895688056946: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 84 | loss 1.1518481969833374, f_iou 0.6328895688056946: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 84 | loss 2.6775259971618652, f_iou 0.6308600902557373: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 84 | loss 2.6775259971618652, f_iou 0.6308600902557373: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 84 | loss 0.6159164309501648, f_iou 0.6223470568656921: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 84 | loss 0.6159164309501648, f_iou 0.6223470568656921: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 84 | loss 0.6159164309501648, f_iou 0.6223470568656921: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 84 | valid.f_iou 0.7740700244903564, valid.f_f-score 0.88533: 0%| | 0/16 [00:05, ?it/s]
epoch 84 | valid.f_iou 0.7740700244903564, valid.f_f-score 0.88533: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 84 | valid.f_iou 0.7157999873161316, valid.f_f-score 0.8768: 6%|██ | 1/16 [00:05<01:21, 5.46s/it]
epoch 84 | valid.f_iou 0.7157999873161316, valid.f_f-score 0.8768: 12%|████ | 2/16 [00:05<00:35, 2.52s/it]
epoch 84 | valid.f_iou 0.5664700269699097, valid.f_f-score 0.77227: 12%|███▉ | 2/16 [00:06<00:35, 2.52s/it]
epoch 84 | valid.f_iou 0.5664700269699097, valid.f_f-score 0.77227: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 84 | valid.f_iou 0.6033599972724915, valid.f_f-score 0.76082: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 84 | valid.f_iou 0.6033599972724915, valid.f_f-score 0.76082: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 84 | valid.f_iou 0.5958700180053711, valid.f_f-score 0.75443: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 84 | valid.f_iou 0.5958700180053711, valid.f_f-score 0.75443: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 84 | valid.f_iou 0.5653700232505798, valid.f_f-score 0.72157: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 84 | valid.f_iou 0.5653700232505798, valid.f_f-score 0.72157: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 84 | valid.f_iou 0.5904499888420105, valid.f_f-score 0.742: 38%|████████████▍ | 6/16 [00:08<00:07, 1.36it/s]
epoch 84 | valid.f_iou 0.5904499888420105, valid.f_f-score 0.742: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.55it/s]
epoch 84 | valid.f_iou 0.5583999752998352, valid.f_f-score 0.7172: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 84 | valid.f_iou 0.5583999752998352, valid.f_f-score 0.7172: 50%|████████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 84 | valid.f_iou 0.5632699728012085, valid.f_f-score 0.71285: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 84 | valid.f_iou 0.5632699728012085, valid.f_f-score 0.71285: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 84 | valid.f_iou 0.5527300238609314, valid.f_f-score 0.71294: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.04it/s]
epoch 84 | valid.f_iou 0.5527300238609314, valid.f_f-score 0.71294: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.22it/s]
epoch 84 | valid.f_iou 0.5544000267982483, valid.f_f-score 0.71362: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.22it/s]
epoch 84 | valid.f_iou 0.5544000267982483, valid.f_f-score 0.71362: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 84 | valid.f_iou 0.5734000205993652, valid.f_f-score 0.72995: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.36it/s]
epoch 84 | valid.f_iou 0.5734000205993652, valid.f_f-score 0.72995: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 84 | valid.f_iou 0.5717700123786926, valid.f_f-score 0.7324: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.46it/s]
epoch 84 | valid.f_iou 0.5717700123786926, valid.f_f-score 0.7324: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.55it/s]
epoch 84 | valid.f_iou 0.5581099987030029, valid.f_f-score 0.72446: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.55it/s]
epoch 84 | valid.f_iou 0.5581099987030029, valid.f_f-score 0.72446: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 84 | valid.f_iou 0.5591099858283997, valid.f_f-score 0.72454: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.60it/s]
epoch 84 | valid.f_iou 0.5591099858283997, valid.f_f-score 0.72454: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 84 | valid.f_iou 0.560509979724884, valid.f_f-score 0.72195: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.63it/s]
epoch 84 | valid.f_iou 0.560509979724884, valid.f_f-score 0.72195: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 84 | valid.f_iou 0.560509979724884, valid.f_f-score 0.72195: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 84 | valid.f_iou 0.8297200202941895, valid.f_f-score 0.90106: 0%| | 0/16 [00:05, ?it/s]
epoch 84 | valid.f_iou 0.8297200202941895, valid.f_f-score 0.90106: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 84 | valid.f_iou 0.8438199758529663, valid.f_f-score 0.91938: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 84 | valid.f_iou 0.8438199758529663, valid.f_f-score 0.91938: 12%|███▉ | 2/16 [00:05<00:33, 2.37s/it]
epoch 84 | valid.f_iou 0.7630400061607361, valid.f_f-score 0.88169: 12%|███▉ | 2/16 [00:06<00:33, 2.37s/it]
epoch 84 | valid.f_iou 0.7630400061607361, valid.f_f-score 0.88169: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 84 | valid.f_iou 0.75177001953125, valid.f_f-score 0.84479: 19%|██████▏ | 3/16 [00:06<00:19, 1.50s/it]
epoch 84 | valid.f_iou 0.75177001953125, valid.f_f-score 0.84479: 25%|████████▎ | 4/16 [00:06<00:13, 1.08s/it]
epoch 84 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.79977: 25%|███████▊ | 4/16 [00:06<00:13, 1.08s/it]
epoch 84 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.79977: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 84 | valid.f_iou 0.6843400001525879, valid.f_f-score 0.7858: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 84 | valid.f_iou 0.6843400001525879, valid.f_f-score 0.7858: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 84 | valid.f_iou 0.7029899954795837, valid.f_f-score 0.8065: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 84 | valid.f_iou 0.7029899954795837, valid.f_f-score 0.8065: 44%|██████████████ | 7/16 [00:07<00:05, 1.60it/s]
epoch 84 | valid.f_iou 0.6853899955749512, valid.f_f-score 0.78828: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 84 | valid.f_iou 0.6853899955749512, valid.f_f-score 0.78828: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 84 | valid.f_iou 0.692300021648407, valid.f_f-score 0.79372: 50%|████████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 84 | valid.f_iou 0.692300021648407, valid.f_f-score 0.79372: 56%|██████████████████ | 9/16 [00:08<00:03, 1.92it/s]
epoch 84 | valid.f_iou 0.6965799927711487, valid.f_f-score 0.80433: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 84 | valid.f_iou 0.6965799927711487, valid.f_f-score 0.80433: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 84 | valid.f_iou 0.6868699789047241, valid.f_f-score 0.78526: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 84 | valid.f_iou 0.6868699789047241, valid.f_f-score 0.78526: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 84 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.79678: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 84 | valid.f_iou 0.6990500092506409, valid.f_f-score 0.79678: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.40it/s]
epoch 84 | valid.f_iou 0.7121400237083435, valid.f_f-score 0.80645: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 84 | valid.f_iou 0.7121400237083435, valid.f_f-score 0.80645: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 84 | valid.f_iou 0.7008000016212463, valid.f_f-score 0.79643: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 84 | valid.f_iou 0.7008000016212463, valid.f_f-score 0.79643: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 84 | valid.f_iou 0.7082200050354004, valid.f_f-score 0.80344: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 84 | valid.f_iou 0.7082200050354004, valid.f_f-score 0.80344: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 84 | valid.f_iou 0.7079899907112122, valid.f_f-score 0.80289: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 84 | valid.f_iou 0.7079899907112122, valid.f_f-score 0.80289: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 84 | valid.f_iou 0.7079899907112122, valid.f_f-score 0.80289: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 84 | valid.f_iou 0.8297200202941895, valid.f_f-score 0.90106: 0%| | 0/16 [00:04, ?it/s]
epoch 84 | valid.f_iou 0.8297200202941895, valid.f_f-score 0.90106: 6%|█▉ | 1/16 [00:04<01:08, 4.60s/it]
epoch 84 | valid.f_iou 0.8438199758529663, valid.f_f-score 0.91938: 6%|█▉ | 1/16 [00:05<01:08, 4.60s/it]
epoch 84 | valid.f_iou 0.8438199758529663, valid.f_f-score 0.91938: 12%|███▉ | 2/16 [00:05<00:30, 2.16s/it]
epoch 84 | valid.f_iou 0.7630400061607361, valid.f_f-score 0.88169: 12%|███▉ | 2/16 [00:05<00:30, 2.16s/it]
epoch 84 | valid.f_iou 0.7630400061607361, valid.f_f-score 0.88169: 19%|█████▊ | 3/16 [00:05<00:17, 1.38s/it]
epoch 84 | valid.f_iou 0.752020001411438, valid.f_f-score 0.84479: 19%|██████ | 3/16 [00:05<00:17, 1.38s/it]
epoch 84 | valid.f_iou 0.752020001411438, valid.f_f-score 0.84479: 25%|████████ | 4/16 [00:05<00:12, 1.01s/it]
epoch 84 | valid.f_iou 0.7069299817085266, valid.f_f-score 0.79977: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 84 | valid.f_iou 0.7069299817085266, valid.f_f-score 0.79977: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 84 | valid.f_iou 0.6909000277519226, valid.f_f-score 0.7858: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 84 | valid.f_iou 0.6909000277519226, valid.f_f-score 0.7858: 38%|████████████ | 6/16 [00:06<00:06, 1.48it/s]
epoch 84 | valid.f_iou 0.7103800177574158, valid.f_f-score 0.8065: 38%|████████████ | 6/16 [00:07<00:06, 1.48it/s]
epoch 84 | valid.f_iou 0.7103800177574158, valid.f_f-score 0.8065: 44%|██████████████ | 7/16 [00:07<00:05, 1.75it/s]
epoch 84 | valid.f_iou 0.691860020160675, valid.f_f-score 0.78828: 44%|██████████████ | 7/16 [00:07<00:05, 1.75it/s]
epoch 84 | valid.f_iou 0.691860020160675, valid.f_f-score 0.78828: 50%|████████████████ | 8/16 [00:07<00:04, 1.89it/s]
epoch 84 | valid.f_iou 0.7013499736785889, valid.f_f-score 0.79372: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 84 | valid.f_iou 0.7013499736785889, valid.f_f-score 0.79372: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.10it/s]
epoch 84 | valid.f_iou 0.7029799818992615, valid.f_f-score 0.80117: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 84 | valid.f_iou 0.7029799818992615, valid.f_f-score 0.80117: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 84 | valid.f_iou 0.6927000284194946, valid.f_f-score 0.78239: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.17it/s]
epoch 84 | valid.f_iou 0.6927000284194946, valid.f_f-score 0.78239: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.32it/s]
epoch 84 | valid.f_iou 0.7043899893760681, valid.f_f-score 0.79415: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.32it/s]
epoch 84 | valid.f_iou 0.7043899893760681, valid.f_f-score 0.79415: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 84 | valid.f_iou 0.7170699834823608, valid.f_f-score 0.80473: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 84 | valid.f_iou 0.7170699834823608, valid.f_f-score 0.80473: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 84 | valid.f_iou 0.7021200060844421, valid.f_f-score 0.79178: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 84 | valid.f_iou 0.7021200060844421, valid.f_f-score 0.79178: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.59it/s]
epoch 84 | valid.f_iou 0.7094600200653076, valid.f_f-score 0.7991: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.59it/s]
epoch 84 | valid.f_iou 0.7094600200653076, valid.f_f-score 0.7991: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.61it/s]
epoch 84 | valid.f_iou 0.709630012512207, valid.f_f-score 0.8: 94%|████████████████████████████████▊ | 15/16 [00:10<00:00, 2.61it/s]
epoch 84 | valid.f_iou 0.709630012512207, valid.f_f-score 0.8: 100%|███████████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 84 | valid.f_iou 0.709630012512207, valid.f_f-score 0.8: 100%|███████████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 85 | loss 1.0336298942565918, f_iou 0.23280417919158936: 0%| | 0/74 [00:05, ?it/s]
epoch 85 | loss 1.0336298942565918, f_iou 0.23280417919158936: 1%|▍ | 1/74 [00:05<06:46, 5.57s/it]
epoch 85 | loss 0.6638487577438354, f_iou 0.5585798621177673: 1%|▌ | 1/74 [00:06<06:46, 5.57s/it]
epoch 85 | loss 0.6638487577438354, f_iou 0.5585798621177673: 3%|█ | 2/74 [00:06<03:21, 2.79s/it]
epoch 85 | loss 0.9290428757667542, f_iou 0.4237346649169922: 3%|█ | 2/74 [00:07<03:21, 2.79s/it]
epoch 85 | loss 0.9290428757667542, f_iou 0.4237346649169922: 4%|█▌ | 3/74 [00:07<02:14, 1.89s/it]
epoch 85 | loss 1.324562668800354, f_iou 0.4660854935646057: 4%|█▌ | 3/74 [00:08<02:14, 1.89s/it]
epoch 85 | loss 1.324562668800354, f_iou 0.4660854935646057: 5%|██ | 4/74 [00:08<01:41, 1.45s/it]
epoch 85 | loss 0.943432092666626, f_iou 0.5375699400901794: 5%|██ | 4/74 [00:08<01:41, 1.45s/it]
epoch 85 | loss 0.943432092666626, f_iou 0.5375699400901794: 7%|██▌ | 5/74 [00:08<01:23, 1.22s/it]
epoch 85 | loss 0.8957996368408203, f_iou 0.5698680877685547: 7%|██▌ | 5/74 [00:09<01:23, 1.22s/it]
epoch 85 | loss 0.8957996368408203, f_iou 0.5698680877685547: 8%|███ | 6/74 [00:09<01:12, 1.07s/it]
epoch 85 | loss 0.7592057585716248, f_iou 0.48845839500427246: 8%|██▉ | 6/74 [00:10<01:12, 1.07s/it]
epoch 85 | loss 0.7592057585716248, f_iou 0.48845839500427246: 9%|███▍ | 7/74 [00:10<01:09, 1.03s/it]
epoch 85 | loss 3.249398946762085, f_iou 0.46143779158592224: 9%|███▌ | 7/74 [00:11<01:09, 1.03s/it]
epoch 85 | loss 3.249398946762085, f_iou 0.46143779158592224: 11%|████ | 8/74 [00:11<01:02, 1.05it/s]
epoch 85 | loss 1.5054244995117188, f_iou 0.4910312294960022: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 85 | loss 1.5054244995117188, f_iou 0.4910312294960022: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 85 | loss 1.0083787441253662, f_iou 0.5180212259292603: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 85 | loss 1.0083787441253662, f_iou 0.5180212259292603: 14%|████▊ | 10/74 [00:12<00:54, 1.18it/s]
epoch 85 | loss 0.1652941107749939, f_iou 0.5569120645523071: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 85 | loss 0.1652941107749939, f_iou 0.5569120645523071: 15%|█████▎ | 11/74 [00:13<00:51, 1.23it/s]
epoch 85 | loss 1.8594752550125122, f_iou 0.56204754114151: 15%|█████▋ | 11/74 [00:14<00:51, 1.23it/s]
epoch 85 | loss 1.8594752550125122, f_iou 0.56204754114151: 16%|██████▏ | 12/74 [00:14<00:48, 1.27it/s]
epoch 85 | loss 1.59469735622406, f_iou 0.5798810720443726: 16%|██████▏ | 12/74 [00:15<00:48, 1.27it/s]
epoch 85 | loss 1.59469735622406, f_iou 0.5798810720443726: 18%|██████▋ | 13/74 [00:15<00:46, 1.30it/s]
epoch 85 | loss 1.9956876039505005, f_iou 0.5552828907966614: 18%|██████▎ | 13/74 [00:15<00:46, 1.30it/s]
epoch 85 | loss 1.9956876039505005, f_iou 0.5552828907966614: 19%|██████▊ | 14/74 [00:15<00:45, 1.33it/s]
epoch 85 | loss 1.2651033401489258, f_iou 0.5780814290046692: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 85 | loss 1.2651033401489258, f_iou 0.5780814290046692: 20%|███████▎ | 15/74 [00:16<00:43, 1.35it/s]
epoch 85 | loss 0.5652162432670593, f_iou 0.5693926215171814: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 85 | loss 0.5652162432670593, f_iou 0.5693926215171814: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 85 | loss 0.888421893119812, f_iou 0.5820050835609436: 22%|████████ | 16/74 [00:17<00:42, 1.36it/s]
epoch 85 | loss 0.888421893119812, f_iou 0.5820050835609436: 23%|████████▌ | 17/74 [00:17<00:41, 1.37it/s]
epoch 85 | loss 0.36454302072525024, f_iou 0.6033778190612793: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 85 | loss 0.36454302072525024, f_iou 0.6033778190612793: 24%|████████▌ | 18/74 [00:18<00:40, 1.38it/s]
epoch 85 | loss 1.1915600299835205, f_iou 0.5924279689788818: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 85 | loss 1.1915600299835205, f_iou 0.5924279689788818: 26%|█████████▏ | 19/74 [00:19<00:39, 1.39it/s]
epoch 85 | loss 1.7383030652999878, f_iou 0.5778967142105103: 26%|█████████▏ | 19/74 [00:20<00:39, 1.39it/s]
epoch 85 | loss 1.7383030652999878, f_iou 0.5778967142105103: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 85 | loss 0.7784331440925598, f_iou 0.559303343296051: 27%|██████████ | 20/74 [00:20<00:38, 1.39it/s]
epoch 85 | loss 0.7784331440925598, f_iou 0.559303343296051: 28%|██████████▌ | 21/74 [00:20<00:38, 1.39it/s]
epoch 85 | loss 1.6637225151062012, f_iou 0.5680962800979614: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 85 | loss 1.6637225151062012, f_iou 0.5680962800979614: 30%|██████████▋ | 22/74 [00:21<00:37, 1.39it/s]
epoch 85 | loss 0.5440672039985657, f_iou 0.5838520526885986: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 85 | loss 0.5440672039985657, f_iou 0.5838520526885986: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 85 | loss 0.9546116590499878, f_iou 0.5936673879623413: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 85 | loss 0.9546116590499878, f_iou 0.5936673879623413: 32%|███████████▋ | 24/74 [00:22<00:36, 1.39it/s]
epoch 85 | loss 1.1147310733795166, f_iou 0.5912168025970459: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 85 | loss 1.1147310733795166, f_iou 0.5912168025970459: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 85 | loss 0.4764408767223358, f_iou 0.6051268577575684: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 85 | loss 0.4764408767223358, f_iou 0.6051268577575684: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 85 | loss 2.315704584121704, f_iou 0.5980082750320435: 35%|█████████████ | 26/74 [00:25<00:34, 1.39it/s]
epoch 85 | loss 2.315704584121704, f_iou 0.5980082750320435: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.38it/s]
epoch 85 | loss 1.2979031801223755, f_iou 0.6097766757011414: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.38it/s]
epoch 85 | loss 1.2979031801223755, f_iou 0.6097766757011414: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.39it/s]
epoch 85 | loss 0.0, f_iou 0.6230252385139465: 38%|███████████████████▎ | 28/74 [00:26<00:33, 1.39it/s]
epoch 85 | loss 0.0, f_iou 0.6230252385139465: 39%|███████████████████▉ | 29/74 [00:26<00:32, 1.39it/s]
epoch 85 | loss 0.3972482681274414, f_iou 0.6341580748558044: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 85 | loss 0.3972482681274414, f_iou 0.6341580748558044: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 85 | loss 0.8973800539970398, f_iou 0.6205199360847473: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 85 | loss 0.8973800539970398, f_iou 0.6205199360847473: 42%|███████████████ | 31/74 [00:27<00:30, 1.39it/s]
epoch 85 | loss 1.0330520868301392, f_iou 0.6251515746116638: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 85 | loss 1.0330520868301392, f_iou 0.6251515746116638: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.39it/s]
epoch 85 | loss 1.432199478149414, f_iou 0.6286182999610901: 43%|████████████████ | 32/74 [00:29<00:30, 1.39it/s]
epoch 85 | loss 1.432199478149414, f_iou 0.6286182999610901: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.38it/s]
epoch 85 | loss 0.3306761085987091, f_iou 0.6387352347373962: 45%|████████████████ | 33/74 [00:30<00:29, 1.38it/s]
epoch 85 | loss 0.3306761085987091, f_iou 0.6387352347373962: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.34it/s]
epoch 85 | loss 0.9601929187774658, f_iou 0.6444420218467712: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.34it/s]
epoch 85 | loss 0.9601929187774658, f_iou 0.6444420218467712: 47%|█████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 85 | loss 1.6786422729492188, f_iou 0.6427831649780273: 47%|█████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 85 | loss 1.6786422729492188, f_iou 0.6427831649780273: 49%|█████████████████▌ | 36/74 [00:31<00:29, 1.31it/s]
epoch 85 | loss 2.475120782852173, f_iou 0.6333868503570557: 49%|██████████████████ | 36/74 [00:32<00:29, 1.31it/s]
epoch 85 | loss 2.475120782852173, f_iou 0.6333868503570557: 50%|██████████████████▌ | 37/74 [00:32<00:27, 1.33it/s]
epoch 85 | loss 2.685335397720337, f_iou 0.631454348564148: 50%|███████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 85 | loss 2.685335397720337, f_iou 0.631454348564148: 51%|███████████████████▌ | 38/74 [00:33<00:26, 1.35it/s]
epoch 85 | loss 0.45477527379989624, f_iou 0.6342761516571045: 51%|█████████████████▉ | 38/74 [00:33<00:26, 1.35it/s]
epoch 85 | loss 0.45477527379989624, f_iou 0.6342761516571045: 53%|██████████████████▍ | 39/74 [00:33<00:25, 1.36it/s]
epoch 85 | loss 1.4230462312698364, f_iou 0.6251327991485596: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.36it/s]
epoch 85 | loss 1.4230462312698364, f_iou 0.6251327991485596: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.37it/s]
epoch 85 | loss 0.8470537066459656, f_iou 0.6328719854354858: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 85 | loss 0.8470537066459656, f_iou 0.6328719854354858: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 85 | loss 0.9050531983375549, f_iou 0.6387471556663513: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 85 | loss 0.9050531983375549, f_iou 0.6387471556663513: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.38it/s]
epoch 85 | loss 1.1707651615142822, f_iou 0.6439073085784912: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.38it/s]
epoch 85 | loss 1.1707651615142822, f_iou 0.6439073085784912: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.39it/s]
epoch 85 | loss 0.808219313621521, f_iou 0.6505617499351501: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.39it/s]
epoch 85 | loss 0.808219313621521, f_iou 0.6505617499351501: 59%|██████████████████████ | 44/74 [00:37<00:21, 1.38it/s]
epoch 85 | loss 0.8911198973655701, f_iou 0.6558793783187866: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 85 | loss 0.8911198973655701, f_iou 0.6558793783187866: 61%|█████████████████████▉ | 45/74 [00:38<00:22, 1.30it/s]
epoch 85 | loss 3.102020263671875, f_iou 0.6527224779129028: 61%|██████████████████████▌ | 45/74 [00:39<00:22, 1.30it/s]
epoch 85 | loss 3.102020263671875, f_iou 0.6527224779129028: 62%|███████████████████████ | 46/74 [00:39<00:21, 1.33it/s]
epoch 85 | loss 2.636852741241455, f_iou 0.6528226137161255: 62%|███████████████████████ | 46/74 [00:39<00:21, 1.33it/s]
epoch 85 | loss 2.636852741241455, f_iou 0.6528226137161255: 64%|███████████████████████▌ | 47/74 [00:39<00:20, 1.35it/s]
epoch 85 | loss 1.6555304527282715, f_iou 0.6587888598442078: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.35it/s]
epoch 85 | loss 1.6555304527282715, f_iou 0.6587888598442078: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.36it/s]
epoch 85 | loss 0.8124423027038574, f_iou 0.6629298329353333: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.36it/s]
epoch 85 | loss 0.8124423027038574, f_iou 0.6629298329353333: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 85 | loss 1.4116551876068115, f_iou 0.6606963872909546: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 85 | loss 1.4116551876068115, f_iou 0.6606963872909546: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 85 | loss 0.928754448890686, f_iou 0.6638911366462708: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.38it/s]
epoch 85 | loss 0.928754448890686, f_iou 0.6638911366462708: 69%|█████████████████████████▌ | 51/74 [00:42<00:16, 1.38it/s]
epoch 85 | loss 1.1562888622283936, f_iou 0.6671619415283203: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 85 | loss 1.1562888622283936, f_iou 0.6671619415283203: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 85 | loss 0.9995945692062378, f_iou 0.666080117225647: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 85 | loss 0.9995945692062378, f_iou 0.666080117225647: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 85 | loss 0.5394814014434814, f_iou 0.6714974641799927: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 85 | loss 0.5394814014434814, f_iou 0.6714974641799927: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.38it/s]
epoch 85 | loss 0.9225286245346069, f_iou 0.6763258576393127: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.38it/s]
epoch 85 | loss 0.9225286245346069, f_iou 0.6763258576393127: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 85 | loss 1.9960530996322632, f_iou 0.6673430800437927: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 85 | loss 1.9960530996322632, f_iou 0.6673430800437927: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 85 | loss 2.2160940170288086, f_iou 0.6667199730873108: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 85 | loss 2.2160940170288086, f_iou 0.6667199730873108: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 85 | loss 5.365139961242676, f_iou 0.6648461818695068: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.39it/s]
epoch 85 | loss 5.365139961242676, f_iou 0.6648461818695068: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.39it/s]
epoch 85 | loss 2.15260910987854, f_iou 0.6650117039680481: 78%|█████████████████████████████▊ | 58/74 [00:48<00:11, 1.39it/s]
epoch 85 | loss 2.15260910987854, f_iou 0.6650117039680481: 80%|██████████████████████████████▎ | 59/74 [00:48<00:10, 1.39it/s]
epoch 85 | loss 1.086836576461792, f_iou 0.6660526394844055: 80%|█████████████████████████████▌ | 59/74 [00:49<00:10, 1.39it/s]
epoch 85 | loss 1.086836576461792, f_iou 0.6660526394844055: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.39it/s]
epoch 85 | loss 1.216263771057129, f_iou 0.6677895188331604: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.39it/s]
epoch 85 | loss 1.216263771057129, f_iou 0.6677895188331604: 82%|██████████████████████████████▌ | 61/74 [00:49<00:09, 1.39it/s]
epoch 85 | loss 1.344660758972168, f_iou 0.666571319103241: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.39it/s]
epoch 85 | loss 1.344660758972168, f_iou 0.666571319103241: 84%|███████████████████████████████▊ | 62/74 [00:50<00:08, 1.39it/s]
epoch 85 | loss 2.799895763397217, f_iou 0.6614817976951599: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 85 | loss 2.799895763397217, f_iou 0.6614817976951599: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.39it/s]
epoch 85 | loss 1.1890108585357666, f_iou 0.6609047055244446: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 85 | loss 1.1890108585357666, f_iou 0.6609047055244446: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 85 | loss 0.6657788753509521, f_iou 0.6616134643554688: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 85 | loss 0.6657788753509521, f_iou 0.6616134643554688: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.37it/s]
epoch 85 | loss 1.2115492820739746, f_iou 0.6621280908584595: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 85 | loss 1.2115492820739746, f_iou 0.6621280908584595: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.34it/s]
epoch 85 | loss 2.229870557785034, f_iou 0.6587501764297485: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.34it/s]
epoch 85 | loss 2.229870557785034, f_iou 0.6587501764297485: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.32it/s]
epoch 85 | loss 0.40386441349983215, f_iou 0.6627247333526611: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.32it/s]
epoch 85 | loss 0.40386441349983215, f_iou 0.6627247333526611: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.31it/s]
epoch 85 | loss 0.6549559235572815, f_iou 0.6644203662872314: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.31it/s]
epoch 85 | loss 0.6549559235572815, f_iou 0.6644203662872314: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.34it/s]
epoch 85 | loss 2.6210057735443115, f_iou 0.6561322212219238: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.34it/s]
epoch 85 | loss 2.6210057735443115, f_iou 0.6561322212219238: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.35it/s]
epoch 85 | loss 2.1340904235839844, f_iou 0.6542806029319763: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.35it/s]
epoch 85 | loss 2.1340904235839844, f_iou 0.6542806029319763: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.36it/s]
epoch 85 | loss 0.5834313035011292, f_iou 0.658012866973877: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.36it/s]
epoch 85 | loss 0.5834313035011292, f_iou 0.658012866973877: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.38it/s]
epoch 85 | loss 0.6068387627601624, f_iou 0.6489991545677185: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.38it/s]
epoch 85 | loss 0.6068387627601624, f_iou 0.6489991545677185: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 85 | loss 0.6538118124008179, f_iou 0.6491816639900208: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 85 | loss 0.6538118124008179, f_iou 0.6491816639900208: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 85 | loss 0.6538118124008179, f_iou 0.6491816639900208: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 85 | valid.f_iou 0.7146999835968018, valid.f_f-score 0.87355: 0%| | 0/16 [00:05, ?it/s]
epoch 85 | valid.f_iou 0.7146999835968018, valid.f_f-score 0.87355: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 85 | valid.f_iou 0.7169399857521057, valid.f_f-score 0.89856: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 85 | valid.f_iou 0.7169399857521057, valid.f_f-score 0.89856: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 85 | valid.f_iou 0.5648099780082703, valid.f_f-score 0.78951: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 85 | valid.f_iou 0.5648099780082703, valid.f_f-score 0.78951: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 85 | valid.f_iou 0.5912799835205078, valid.f_f-score 0.76623: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 85 | valid.f_iou 0.5912799835205078, valid.f_f-score 0.76623: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 85 | valid.f_iou 0.5893399715423584, valid.f_f-score 0.76417: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 85 | valid.f_iou 0.5893399715423584, valid.f_f-score 0.76417: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 85 | valid.f_iou 0.5450999736785889, valid.f_f-score 0.71756: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 85 | valid.f_iou 0.5450999736785889, valid.f_f-score 0.71756: 38%|███████████▋ | 6/16 [00:07<00:07, 1.32it/s]
epoch 85 | valid.f_iou 0.5681700110435486, valid.f_f-score 0.73855: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 85 | valid.f_iou 0.5681700110435486, valid.f_f-score 0.73855: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 85 | valid.f_iou 0.5440199971199036, valid.f_f-score 0.72529: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 85 | valid.f_iou 0.5440199971199036, valid.f_f-score 0.72529: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 85 | valid.f_iou 0.5697299838066101, valid.f_f-score 0.74462: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.72it/s]
epoch 85 | valid.f_iou 0.5697299838066101, valid.f_f-score 0.74462: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 85 | valid.f_iou 0.5610899925231934, valid.f_f-score 0.74301: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 85 | valid.f_iou 0.5610899925231934, valid.f_f-score 0.74301: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 85 | valid.f_iou 0.564329981803894, valid.f_f-score 0.74366: 62%|███████████████████▍ | 10/16 [00:10<00:02, 2.02it/s]
epoch 85 | valid.f_iou 0.564329981803894, valid.f_f-score 0.74366: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.09it/s]
epoch 85 | valid.f_iou 0.5833699703216553, valid.f_f-score 0.7586: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.09it/s]
epoch 85 | valid.f_iou 0.5833699703216553, valid.f_f-score 0.7586: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.15it/s]
epoch 85 | valid.f_iou 0.5854300260543823, valid.f_f-score 0.7609: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.15it/s]
epoch 85 | valid.f_iou 0.5854300260543823, valid.f_f-score 0.7609: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.29it/s]
epoch 85 | valid.f_iou 0.5778300166130066, valid.f_f-score 0.75437: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.29it/s]
epoch 85 | valid.f_iou 0.5778300166130066, valid.f_f-score 0.75437: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.41it/s]
epoch 85 | valid.f_iou 0.5822299718856812, valid.f_f-score 0.75345: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.41it/s]
epoch 85 | valid.f_iou 0.5822299718856812, valid.f_f-score 0.75345: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.50it/s]
epoch 85 | valid.f_iou 0.5874999761581421, valid.f_f-score 0.75139: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.50it/s]
epoch 85 | valid.f_iou 0.5874999761581421, valid.f_f-score 0.75139: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 85 | valid.f_iou 0.5874999761581421, valid.f_f-score 0.75139: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 85 | valid.f_iou 0.8297299742698669, valid.f_f-score 0.90345: 0%| | 0/16 [00:04, ?it/s]
epoch 85 | valid.f_iou 0.8297299742698669, valid.f_f-score 0.90345: 6%|█▉ | 1/16 [00:04<01:01, 4.10s/it]
epoch 85 | valid.f_iou 0.8515700101852417, valid.f_f-score 0.9231: 6%|██ | 1/16 [00:05<01:01, 4.10s/it]
epoch 85 | valid.f_iou 0.8515700101852417, valid.f_f-score 0.9231: 12%|████ | 2/16 [00:05<00:32, 2.29s/it]
epoch 85 | valid.f_iou 0.7688199877738953, valid.f_f-score 0.88311: 12%|███▉ | 2/16 [00:05<00:32, 2.29s/it]
epoch 85 | valid.f_iou 0.7688199877738953, valid.f_f-score 0.88311: 19%|█████▊ | 3/16 [00:05<00:18, 1.46s/it]
epoch 85 | valid.f_iou 0.7554299831390381, valid.f_f-score 0.84062: 19%|█████▊ | 3/16 [00:06<00:18, 1.46s/it]
epoch 85 | valid.f_iou 0.7554299831390381, valid.f_f-score 0.84062: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 85 | valid.f_iou 0.7313500046730042, valid.f_f-score 0.82645: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 85 | valid.f_iou 0.7313500046730042, valid.f_f-score 0.82645: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 85 | valid.f_iou 0.7008600234985352, valid.f_f-score 0.80577: 31%|█████████▋ | 5/16 [00:06<00:09, 1.20it/s]
epoch 85 | valid.f_iou 0.7008600234985352, valid.f_f-score 0.80577: 38%|███████████▋ | 6/16 [00:06<00:07, 1.41it/s]
epoch 85 | valid.f_iou 0.7137500047683716, valid.f_f-score 0.82286: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 85 | valid.f_iou 0.7137500047683716, valid.f_f-score 0.82286: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 85 | valid.f_iou 0.7062100172042847, valid.f_f-score 0.82075: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.60it/s]
epoch 85 | valid.f_iou 0.7062100172042847, valid.f_f-score 0.82075: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.78it/s]
epoch 85 | valid.f_iou 0.7112600207328796, valid.f_f-score 0.8226: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 85 | valid.f_iou 0.7112600207328796, valid.f_f-score 0.8226: 56%|██████████████████ | 9/16 [00:08<00:03, 1.92it/s]
epoch 85 | valid.f_iou 0.7130799889564514, valid.f_f-score 0.83123: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 85 | valid.f_iou 0.7130799889564514, valid.f_f-score 0.83123: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.00it/s]
epoch 85 | valid.f_iou 0.7020000219345093, valid.f_f-score 0.81204: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 85 | valid.f_iou 0.7020000219345093, valid.f_f-score 0.81204: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 85 | valid.f_iou 0.7155100107192993, valid.f_f-score 0.82197: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 85 | valid.f_iou 0.7155100107192993, valid.f_f-score 0.82197: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 85 | valid.f_iou 0.7285199761390686, valid.f_f-score 0.83015: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 85 | valid.f_iou 0.7285199761390686, valid.f_f-score 0.83015: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.38it/s]
epoch 85 | valid.f_iou 0.7223899960517883, valid.f_f-score 0.82517: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 85 | valid.f_iou 0.7223899960517883, valid.f_f-score 0.82517: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 85 | valid.f_iou 0.7286400198936462, valid.f_f-score 0.83159: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 85 | valid.f_iou 0.7286400198936462, valid.f_f-score 0.83159: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.55it/s]
epoch 85 | valid.f_iou 0.7266600131988525, valid.f_f-score 0.82788: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.55it/s]
epoch 85 | valid.f_iou 0.7266600131988525, valid.f_f-score 0.82788: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.59it/s]
epoch 85 | valid.f_iou 0.7266600131988525, valid.f_f-score 0.82788: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 85 | valid.f_iou 0.7815300226211548, valid.f_f-score 0.87338: 0%| | 0/16 [00:05, ?it/s]
epoch 85 | valid.f_iou 0.7815300226211548, valid.f_f-score 0.87338: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 85 | valid.f_iou 0.8274700045585632, valid.f_f-score 0.90806: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 85 | valid.f_iou 0.8274700045585632, valid.f_f-score 0.90806: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 85 | valid.f_iou 0.7527499794960022, valid.f_f-score 0.87309: 12%|███▉ | 2/16 [00:06<00:34, 2.45s/it]
epoch 85 | valid.f_iou 0.7527499794960022, valid.f_f-score 0.87309: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 85 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.8331: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 85 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.8331: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 85 | valid.f_iou 0.7260599732398987, valid.f_f-score 0.82043: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 85 | valid.f_iou 0.7260599732398987, valid.f_f-score 0.82043: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 85 | valid.f_iou 0.6964499950408936, valid.f_f-score 0.80076: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 85 | valid.f_iou 0.6964499950408936, valid.f_f-score 0.80076: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 85 | valid.f_iou 0.7117300033569336, valid.f_f-score 0.81856: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 85 | valid.f_iou 0.7117300033569336, valid.f_f-score 0.81856: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 85 | valid.f_iou 0.7044500112533569, valid.f_f-score 0.81699: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 85 | valid.f_iou 0.7044500112533569, valid.f_f-score 0.81699: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 85 | valid.f_iou 0.71288001537323, valid.f_f-score 0.81926: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 85 | valid.f_iou 0.71288001537323, valid.f_f-score 0.81926: 56%|██████████████████▌ | 9/16 [00:08<00:03, 2.03it/s]
epoch 85 | valid.f_iou 0.7126200199127197, valid.f_f-score 0.82474: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.03it/s]
epoch 85 | valid.f_iou 0.7126200199127197, valid.f_f-score 0.82474: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 85 | valid.f_iou 0.6972900032997131, valid.f_f-score 0.80414: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 85 | valid.f_iou 0.6972900032997131, valid.f_f-score 0.80414: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.15it/s]
epoch 85 | valid.f_iou 0.7111899852752686, valid.f_f-score 0.81473: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.15it/s]
epoch 85 | valid.f_iou 0.7111899852752686, valid.f_f-score 0.81473: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.18it/s]
epoch 85 | valid.f_iou 0.7245299816131592, valid.f_f-score 0.82469: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.18it/s]
epoch 85 | valid.f_iou 0.7245299816131592, valid.f_f-score 0.82469: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.21it/s]
epoch 85 | valid.f_iou 0.7155900001525879, valid.f_f-score 0.81704: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.21it/s]
epoch 85 | valid.f_iou 0.7155900001525879, valid.f_f-score 0.81704: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.26it/s]
epoch 85 | valid.f_iou 0.7222899794578552, valid.f_f-score 0.82401: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.26it/s]
epoch 85 | valid.f_iou 0.7222899794578552, valid.f_f-score 0.82401: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.35it/s]
epoch 85 | valid.f_iou 0.7197200059890747, valid.f_f-score 0.81778: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.35it/s]
epoch 85 | valid.f_iou 0.7197200059890747, valid.f_f-score 0.81778: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.45it/s]
epoch 85 | valid.f_iou 0.7197200059890747, valid.f_f-score 0.81778: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 86 | loss 2.0913400650024414, f_iou 0.5249511003494263: 0%| | 0/74 [00:06, ?it/s]
epoch 86 | loss 2.0913400650024414, f_iou 0.5249511003494263: 1%|▌ | 1/74 [00:06<07:34, 6.22s/it]
epoch 86 | loss 0.9279502630233765, f_iou 0.6937320232391357: 1%|▌ | 1/74 [00:07<07:34, 6.22s/it]
epoch 86 | loss 0.9279502630233765, f_iou 0.6937320232391357: 3%|█ | 2/74 [00:07<03:37, 3.03s/it]
epoch 86 | loss 1.034407377243042, f_iou 0.6849220991134644: 3%|█ | 2/74 [00:07<03:37, 3.03s/it]
epoch 86 | loss 1.034407377243042, f_iou 0.6849220991134644: 4%|█▌ | 3/74 [00:07<02:22, 2.00s/it]
epoch 86 | loss 0.6447776556015015, f_iou 0.7334603667259216: 4%|█▌ | 3/74 [00:08<02:22, 2.00s/it]
epoch 86 | loss 0.6447776556015015, f_iou 0.7334603667259216: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 86 | loss 1.7087531089782715, f_iou 0.7076550722122192: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 86 | loss 1.7087531089782715, f_iou 0.7076550722122192: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 86 | loss 1.2322072982788086, f_iou 0.725996732711792: 7%|██▌ | 5/74 [00:10<01:26, 1.25s/it]
epoch 86 | loss 1.2322072982788086, f_iou 0.725996732711792: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 86 | loss 0.7508026361465454, f_iou 0.721746563911438: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 86 | loss 0.7508026361465454, f_iou 0.721746563911438: 9%|███▌ | 7/74 [00:10<01:06, 1.01it/s]
epoch 86 | loss 1.3623605966567993, f_iou 0.7007889151573181: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 86 | loss 1.3623605966567993, f_iou 0.7007889151573181: 11%|████ | 8/74 [00:11<00:59, 1.11it/s]
epoch 86 | loss 1.8957611322402954, f_iou 0.6995145082473755: 11%|████ | 8/74 [00:12<00:59, 1.11it/s]
epoch 86 | loss 1.8957611322402954, f_iou 0.6995145082473755: 12%|████▌ | 9/74 [00:12<00:55, 1.17it/s]
epoch 86 | loss 1.5231564044952393, f_iou 0.7056290507316589: 12%|████▌ | 9/74 [00:13<00:55, 1.17it/s]
epoch 86 | loss 1.5231564044952393, f_iou 0.7056290507316589: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 86 | loss 1.1346807479858398, f_iou 0.7071000933647156: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 86 | loss 1.1346807479858398, f_iou 0.7071000933647156: 15%|█████▎ | 11/74 [00:13<00:50, 1.24it/s]
epoch 86 | loss 0.9961304068565369, f_iou 0.7092666029930115: 15%|█████▎ | 11/74 [00:14<00:50, 1.24it/s]
epoch 86 | loss 0.9961304068565369, f_iou 0.7092666029930115: 16%|█████▊ | 12/74 [00:14<00:48, 1.27it/s]
epoch 86 | loss 0.7208648920059204, f_iou 0.7233161330223083: 16%|█████▊ | 12/74 [00:15<00:48, 1.27it/s]
epoch 86 | loss 0.7208648920059204, f_iou 0.7233161330223083: 18%|██████▎ | 13/74 [00:15<00:46, 1.30it/s]
epoch 86 | loss 1.820197582244873, f_iou 0.7106591463088989: 18%|██████▌ | 13/74 [00:16<00:46, 1.30it/s]
epoch 86 | loss 1.820197582244873, f_iou 0.7106591463088989: 19%|███████ | 14/74 [00:16<00:45, 1.33it/s]
epoch 86 | loss 1.4167530536651611, f_iou 0.7001734375953674: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 86 | loss 1.4167530536651611, f_iou 0.7001734375953674: 20%|███████▎ | 15/74 [00:16<00:43, 1.35it/s]
epoch 86 | loss 0.9585229158401489, f_iou 0.7120181918144226: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 86 | loss 0.9585229158401489, f_iou 0.7120181918144226: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 86 | loss 1.4199167490005493, f_iou 0.7153936624526978: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 86 | loss 1.4199167490005493, f_iou 0.7153936624526978: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 86 | loss 0.5784565210342407, f_iou 0.7242984771728516: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 86 | loss 0.5784565210342407, f_iou 0.7242984771728516: 24%|████████▊ | 18/74 [00:18<00:40, 1.37it/s]
epoch 86 | loss 0.9635158777236938, f_iou 0.7226110696792603: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 86 | loss 0.9635158777236938, f_iou 0.7226110696792603: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 86 | loss 1.6240148544311523, f_iou 0.7169349789619446: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 86 | loss 1.6240148544311523, f_iou 0.7169349789619446: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 86 | loss 1.5608587265014648, f_iou 0.7182896137237549: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 86 | loss 1.5608587265014648, f_iou 0.7182896137237549: 28%|██████████▏ | 21/74 [00:21<00:38, 1.39it/s]
epoch 86 | loss 1.578845739364624, f_iou 0.7208150029182434: 28%|██████████▌ | 21/74 [00:21<00:38, 1.39it/s]
epoch 86 | loss 1.578845739364624, f_iou 0.7208150029182434: 30%|███████████ | 22/74 [00:21<00:37, 1.38it/s]
epoch 86 | loss 1.2050329446792603, f_iou 0.7213074564933777: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 86 | loss 1.2050329446792603, f_iou 0.7213074564933777: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 86 | loss 0.6313538551330566, f_iou 0.7202156782150269: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 86 | loss 0.6313538551330566, f_iou 0.7202156782150269: 32%|███████████▋ | 24/74 [00:23<00:37, 1.34it/s]
epoch 86 | loss 1.9445182085037231, f_iou 0.7249310612678528: 32%|███████████▋ | 24/74 [00:24<00:37, 1.34it/s]
epoch 86 | loss 1.9445182085037231, f_iou 0.7249310612678528: 34%|████████████▏ | 25/74 [00:24<00:37, 1.32it/s]
epoch 86 | loss 0.4626429080963135, f_iou 0.7128312587738037: 34%|████████████▏ | 25/74 [00:24<00:37, 1.32it/s]
epoch 86 | loss 0.4626429080963135, f_iou 0.7128312587738037: 35%|████████████▋ | 26/74 [00:24<00:36, 1.30it/s]
epoch 86 | loss 2.872828483581543, f_iou 0.7002163529396057: 35%|█████████████ | 26/74 [00:25<00:36, 1.30it/s]
epoch 86 | loss 2.872828483581543, f_iou 0.7002163529396057: 36%|█████████████▌ | 27/74 [00:25<00:36, 1.29it/s]
epoch 86 | loss 0.7370843887329102, f_iou 0.7045075297355652: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.29it/s]
epoch 86 | loss 0.7370843887329102, f_iou 0.7045075297355652: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.29it/s]
epoch 86 | loss 0.5467494130134583, f_iou 0.7105751633644104: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.29it/s]
epoch 86 | loss 0.5467494130134583, f_iou 0.7105751633644104: 39%|██████████████ | 29/74 [00:27<00:34, 1.30it/s]
epoch 86 | loss 0.6779941320419312, f_iou 0.6987287998199463: 39%|██████████████ | 29/74 [00:27<00:34, 1.30it/s]
epoch 86 | loss 0.6779941320419312, f_iou 0.6987287998199463: 41%|██████████████▌ | 30/74 [00:27<00:33, 1.33it/s]
epoch 86 | loss 2.5285911560058594, f_iou 0.7020217776298523: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.33it/s]
epoch 86 | loss 2.5285911560058594, f_iou 0.7020217776298523: 42%|███████████████ | 31/74 [00:28<00:32, 1.33it/s]
epoch 86 | loss 0.5961024165153503, f_iou 0.7094156742095947: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 86 | loss 0.5961024165153503, f_iou 0.7094156742095947: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.33it/s]
epoch 86 | loss 2.346259355545044, f_iou 0.7039490342140198: 43%|████████████████ | 32/74 [00:30<00:31, 1.33it/s]
epoch 86 | loss 2.346259355545044, f_iou 0.7039490342140198: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.34it/s]
epoch 86 | loss 1.864683747291565, f_iou 0.7038291692733765: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.34it/s]
epoch 86 | loss 1.864683747291565, f_iou 0.7038291692733765: 46%|█████████████████ | 34/74 [00:30<00:30, 1.33it/s]
epoch 86 | loss 1.5587265491485596, f_iou 0.7048730254173279: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.33it/s]
epoch 86 | loss 1.5587265491485596, f_iou 0.7048730254173279: 47%|█████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 86 | loss 1.2249467372894287, f_iou 0.7081369161605835: 47%|█████████████████ | 35/74 [00:32<00:29, 1.32it/s]
epoch 86 | loss 1.2249467372894287, f_iou 0.7081369161605835: 49%|█████████████████▌ | 36/74 [00:32<00:29, 1.30it/s]
epoch 86 | loss 1.6283942461013794, f_iou 0.7081665396690369: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.30it/s]
epoch 86 | loss 1.6283942461013794, f_iou 0.7081665396690369: 50%|██████████████████ | 37/74 [00:33<00:28, 1.31it/s]
epoch 86 | loss 0.5447999238967896, f_iou 0.7119982242584229: 50%|██████████████████ | 37/74 [00:34<00:28, 1.31it/s]
epoch 86 | loss 0.5447999238967896, f_iou 0.7119982242584229: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.33it/s]
epoch 86 | loss 1.8535919189453125, f_iou 0.7124044299125671: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.33it/s]
epoch 86 | loss 1.8535919189453125, f_iou 0.7124044299125671: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.35it/s]
epoch 86 | loss 0.6086155772209167, f_iou 0.7168304920196533: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.35it/s]
epoch 86 | loss 0.6086155772209167, f_iou 0.7168304920196533: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.36it/s]
epoch 86 | loss 0.9668281674385071, f_iou 0.7225711941719055: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.36it/s]
epoch 86 | loss 0.9668281674385071, f_iou 0.7225711941719055: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 86 | loss 0.9851192235946655, f_iou 0.7192758321762085: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 86 | loss 0.9851192235946655, f_iou 0.7192758321762085: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 86 | loss 3.031345844268799, f_iou 0.7134262919425964: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.37it/s]
epoch 86 | loss 3.031345844268799, f_iou 0.7134262919425964: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.38it/s]
epoch 86 | loss 2.67708158493042, f_iou 0.7004255652427673: 58%|██████████████████████ | 43/74 [00:38<00:22, 1.38it/s]
epoch 86 | loss 2.67708158493042, f_iou 0.7004255652427673: 59%|██████████████████████▌ | 44/74 [00:38<00:21, 1.38it/s]
epoch 86 | loss 1.7424710988998413, f_iou 0.7036666870117188: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.38it/s]
epoch 86 | loss 1.7424710988998413, f_iou 0.7036666870117188: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 86 | loss 1.6038753986358643, f_iou 0.6951188445091248: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 86 | loss 1.6038753986358643, f_iou 0.6951188445091248: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 86 | loss 0.662002444267273, f_iou 0.6991335153579712: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 86 | loss 0.662002444267273, f_iou 0.6991335153579712: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.38it/s]
epoch 86 | loss 0.44366514682769775, f_iou 0.7049402594566345: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.38it/s]
epoch 86 | loss 0.44366514682769775, f_iou 0.7049402594566345: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.39it/s]
epoch 86 | loss 1.0870836973190308, f_iou 0.7067526578903198: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 86 | loss 1.0870836973190308, f_iou 0.7067526578903198: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 86 | loss 0.5695305466651917, f_iou 0.7114161252975464: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 86 | loss 0.5695305466651917, f_iou 0.7114161252975464: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 86 | loss 1.1616103649139404, f_iou 0.7086387872695923: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 86 | loss 1.1616103649139404, f_iou 0.7086387872695923: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 86 | loss 0.9364825487136841, f_iou 0.7112932205200195: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 86 | loss 0.9364825487136841, f_iou 0.7112932205200195: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 86 | loss 1.1693370342254639, f_iou 0.712133526802063: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 86 | loss 1.1693370342254639, f_iou 0.712133526802063: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.36it/s]
epoch 86 | loss 1.0814571380615234, f_iou 0.7133608460426331: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.36it/s]
epoch 86 | loss 1.0814571380615234, f_iou 0.7133608460426331: 73%|██████████████████████████▎ | 54/74 [00:45<00:15, 1.33it/s]
epoch 86 | loss 2.296647548675537, f_iou 0.7079977989196777: 73%|███████████████████████████ | 54/74 [00:46<00:15, 1.33it/s]
epoch 86 | loss 2.296647548675537, f_iou 0.7079977989196777: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.35it/s]
epoch 86 | loss 2.506269931793213, f_iou 0.7083786725997925: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.35it/s]
epoch 86 | loss 2.506269931793213, f_iou 0.7083786725997925: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.36it/s]
epoch 86 | loss 0.6030017733573914, f_iou 0.7118093967437744: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.36it/s]
epoch 86 | loss 0.6030017733573914, f_iou 0.7118093967437744: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.37it/s]
epoch 86 | loss 0.5588183403015137, f_iou 0.7065800428390503: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.37it/s]
epoch 86 | loss 0.5588183403015137, f_iou 0.7065800428390503: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 86 | loss 0.8768981695175171, f_iou 0.7089101076126099: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 86 | loss 0.8768981695175171, f_iou 0.7089101076126099: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 86 | loss 1.1274107694625854, f_iou 0.7119324207305908: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 86 | loss 1.1274107694625854, f_iou 0.7119324207305908: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 86 | loss 0.7169990539550781, f_iou 0.7074095606803894: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 86 | loss 0.7169990539550781, f_iou 0.7074095606803894: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 86 | loss 1.5032224655151367, f_iou 0.7076550126075745: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 86 | loss 1.5032224655151367, f_iou 0.7076550126075745: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 86 | loss 0.31866517663002014, f_iou 0.7119184732437134: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.39it/s]
epoch 86 | loss 0.31866517663002014, f_iou 0.7119184732437134: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.39it/s]
epoch 86 | loss 1.2800209522247314, f_iou 0.7124354243278503: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 86 | loss 1.2800209522247314, f_iou 0.7124354243278503: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 86 | loss 1.0434783697128296, f_iou 0.7146202325820923: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 86 | loss 1.0434783697128296, f_iou 0.7146202325820923: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 86 | loss 0.9790986180305481, f_iou 0.7178057432174683: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 86 | loss 0.9790986180305481, f_iou 0.7178057432174683: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 86 | loss 0.9491612911224365, f_iou 0.7191863059997559: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 86 | loss 0.9491612911224365, f_iou 0.7191863059997559: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 86 | loss 0.9666939973831177, f_iou 0.7198975086212158: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 86 | loss 0.9666939973831177, f_iou 0.7198975086212158: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 86 | loss 0.7724296450614929, f_iou 0.7201420068740845: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 86 | loss 0.7724296450614929, f_iou 0.7201420068740845: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 86 | loss 0.42928630113601685, f_iou 0.7233875393867493: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.40it/s]
epoch 86 | loss 0.42928630113601685, f_iou 0.7233875393867493: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 86 | loss 2.0417494773864746, f_iou 0.7239524722099304: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 86 | loss 2.0417494773864746, f_iou 0.7239524722099304: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 86 | loss 1.7394840717315674, f_iou 0.7239919900894165: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 86 | loss 1.7394840717315674, f_iou 0.7239919900894165: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 86 | loss 0.6403573751449585, f_iou 0.7197238206863403: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 86 | loss 0.6403573751449585, f_iou 0.7197238206863403: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 86 | loss 1.1951582431793213, f_iou 0.720138669013977: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 86 | loss 1.1951582431793213, f_iou 0.720138669013977: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 86 | loss 1.1951582431793213, f_iou 0.720138669013977: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 86 | valid.f_iou 0.7794299721717834, valid.f_f-score 0.85882: 0%| | 0/16 [00:05, ?it/s]
epoch 86 | valid.f_iou 0.7794299721717834, valid.f_f-score 0.85882: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 86 | valid.f_iou 0.7355200052261353, valid.f_f-score 0.8901: 6%|██ | 1/16 [00:05<01:22, 5.50s/it]
epoch 86 | valid.f_iou 0.7355200052261353, valid.f_f-score 0.8901: 12%|████ | 2/16 [00:05<00:35, 2.54s/it]
epoch 86 | valid.f_iou 0.5891900062561035, valid.f_f-score 0.79097: 12%|███▉ | 2/16 [00:06<00:35, 2.54s/it]
epoch 86 | valid.f_iou 0.5891900062561035, valid.f_f-score 0.79097: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 86 | valid.f_iou 0.6202200055122375, valid.f_f-score 0.77627: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 86 | valid.f_iou 0.6202200055122375, valid.f_f-score 0.77627: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 86 | valid.f_iou 0.616320013999939, valid.f_f-score 0.77253: 25%|████████ | 4/16 [00:07<00:13, 1.14s/it]
epoch 86 | valid.f_iou 0.616320013999939, valid.f_f-score 0.77253: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 86 | valid.f_iou 0.5762799978256226, valid.f_f-score 0.73302: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 86 | valid.f_iou 0.5762799978256226, valid.f_f-score 0.73302: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 86 | valid.f_iou 0.6014999747276306, valid.f_f-score 0.75292: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 86 | valid.f_iou 0.6014999747276306, valid.f_f-score 0.75292: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 86 | valid.f_iou 0.5769799947738647, valid.f_f-score 0.73868: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 86 | valid.f_iou 0.5769799947738647, valid.f_f-score 0.73868: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 86 | valid.f_iou 0.5898000001907349, valid.f_f-score 0.74119: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.73it/s]
epoch 86 | valid.f_iou 0.5898000001907349, valid.f_f-score 0.74119: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 86 | valid.f_iou 0.5796200037002563, valid.f_f-score 0.73991: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 86 | valid.f_iou 0.5796200037002563, valid.f_f-score 0.73991: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.06it/s]
epoch 86 | valid.f_iou 0.582099974155426, valid.f_f-score 0.74086: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.06it/s]
epoch 86 | valid.f_iou 0.582099974155426, valid.f_f-score 0.74086: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.10it/s]
epoch 86 | valid.f_iou 0.6033400297164917, valid.f_f-score 0.75672: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.10it/s]
epoch 86 | valid.f_iou 0.6033400297164917, valid.f_f-score 0.75672: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.26it/s]
epoch 86 | valid.f_iou 0.60725998878479, valid.f_f-score 0.76076: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.26it/s]
epoch 86 | valid.f_iou 0.60725998878479, valid.f_f-score 0.76076: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.39it/s]
epoch 86 | valid.f_iou 0.5979999899864197, valid.f_f-score 0.75511: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 86 | valid.f_iou 0.5979999899864197, valid.f_f-score 0.75511: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 86 | valid.f_iou 0.6007900238037109, valid.f_f-score 0.7547: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.48it/s]
epoch 86 | valid.f_iou 0.6007900238037109, valid.f_f-score 0.7547: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.56it/s]
epoch 86 | valid.f_iou 0.6031299829483032, valid.f_f-score 0.75171: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 86 | valid.f_iou 0.6031299829483032, valid.f_f-score 0.75171: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 86 | valid.f_iou 0.6031299829483032, valid.f_f-score 0.75171: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 86 | valid.f_iou 0.8173800110816956, valid.f_f-score 0.86628: 0%| | 0/16 [00:04, ?it/s]
epoch 86 | valid.f_iou 0.8173800110816956, valid.f_f-score 0.86628: 6%|█▉ | 1/16 [00:04<01:10, 4.71s/it]
epoch 86 | valid.f_iou 0.8470600247383118, valid.f_f-score 0.91: 6%|██▏ | 1/16 [00:05<01:10, 4.71s/it]
epoch 86 | valid.f_iou 0.8470600247383118, valid.f_f-score 0.91: 12%|████▎ | 2/16 [00:05<00:31, 2.23s/it]
epoch 86 | valid.f_iou 0.7150400280952454, valid.f_f-score 0.8261: 12%|████ | 2/16 [00:05<00:31, 2.23s/it]
epoch 86 | valid.f_iou 0.7150400280952454, valid.f_f-score 0.8261: 19%|██████ | 3/16 [00:05<00:18, 1.43s/it]
epoch 86 | valid.f_iou 0.6901299953460693, valid.f_f-score 0.77509: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 86 | valid.f_iou 0.6901299953460693, valid.f_f-score 0.77509: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 86 | valid.f_iou 0.6834099888801575, valid.f_f-score 0.78472: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 86 | valid.f_iou 0.6834099888801575, valid.f_f-score 0.78472: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 86 | valid.f_iou 0.676580011844635, valid.f_f-score 0.77811: 31%|██████████ | 5/16 [00:06<00:09, 1.22it/s]
epoch 86 | valid.f_iou 0.676580011844635, valid.f_f-score 0.77811: 38%|████████████ | 6/16 [00:06<00:06, 1.45it/s]
epoch 86 | valid.f_iou 0.6966699957847595, valid.f_f-score 0.80002: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 86 | valid.f_iou 0.6966699957847595, valid.f_f-score 0.80002: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 86 | valid.f_iou 0.695169985294342, valid.f_f-score 0.80381: 44%|██████████████ | 7/16 [00:07<00:05, 1.70it/s]
epoch 86 | valid.f_iou 0.695169985294342, valid.f_f-score 0.80381: 50%|████████████████ | 8/16 [00:07<00:04, 1.93it/s]
epoch 86 | valid.f_iou 0.7045699954032898, valid.f_f-score 0.81435: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.93it/s]
epoch 86 | valid.f_iou 0.7045699954032898, valid.f_f-score 0.81435: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 86 | valid.f_iou 0.7095400094985962, valid.f_f-score 0.82385: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 86 | valid.f_iou 0.7095400094985962, valid.f_f-score 0.82385: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.26it/s]
epoch 86 | valid.f_iou 0.7016100287437439, valid.f_f-score 0.80703: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.26it/s]
epoch 86 | valid.f_iou 0.7016100287437439, valid.f_f-score 0.80703: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.39it/s]
epoch 86 | valid.f_iou 0.7153800129890442, valid.f_f-score 0.81767: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 86 | valid.f_iou 0.7153800129890442, valid.f_f-score 0.81767: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 86 | valid.f_iou 0.7278900146484375, valid.f_f-score 0.826: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.49it/s]
epoch 86 | valid.f_iou 0.7278900146484375, valid.f_f-score 0.826: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.56it/s]
epoch 86 | valid.f_iou 0.72257000207901, valid.f_f-score 0.82273: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.56it/s]
epoch 86 | valid.f_iou 0.72257000207901, valid.f_f-score 0.82273: 88%|████████████████████████████ | 14/16 [00:09<00:00, 2.61it/s]
epoch 86 | valid.f_iou 0.7324100136756897, valid.f_f-score 0.83131: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 86 | valid.f_iou 0.7324100136756897, valid.f_f-score 0.83131: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 86 | valid.f_iou 0.7308300137519836, valid.f_f-score 0.82981: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 86 | valid.f_iou 0.7308300137519836, valid.f_f-score 0.82981: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 86 | valid.f_iou 0.7308300137519836, valid.f_f-score 0.82981: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 86 | valid.f_iou 0.8173800110816956, valid.f_f-score 0.86628: 0%| | 0/16 [00:04, ?it/s]
epoch 86 | valid.f_iou 0.8173800110816956, valid.f_f-score 0.86628: 6%|█▉ | 1/16 [00:05<01:15, 5.00s/it]
epoch 86 | valid.f_iou 0.8470600247383118, valid.f_f-score 0.91: 6%|██▏ | 1/16 [00:05<01:15, 5.00s/it]
epoch 86 | valid.f_iou 0.8470600247383118, valid.f_f-score 0.91: 12%|████▎ | 2/16 [00:05<00:32, 2.32s/it]
epoch 86 | valid.f_iou 0.7150400280952454, valid.f_f-score 0.8261: 12%|████ | 2/16 [00:05<00:32, 2.32s/it]
epoch 86 | valid.f_iou 0.7150400280952454, valid.f_f-score 0.8261: 19%|██████ | 3/16 [00:05<00:19, 1.47s/it]
epoch 86 | valid.f_iou 0.6858199834823608, valid.f_f-score 0.76294: 19%|█████▊ | 3/16 [00:06<00:19, 1.47s/it]
epoch 86 | valid.f_iou 0.6858199834823608, valid.f_f-score 0.76294: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 86 | valid.f_iou 0.6880199909210205, valid.f_f-score 0.775: 25%|████████▎ | 4/16 [00:06<00:12, 1.04s/it]
epoch 86 | valid.f_iou 0.6880199909210205, valid.f_f-score 0.775: 31%|██████████▎ | 5/16 [00:06<00:09, 1.20it/s]
epoch 86 | valid.f_iou 0.6804199814796448, valid.f_f-score 0.77001: 31%|█████████▋ | 5/16 [00:07<00:09, 1.20it/s]
epoch 86 | valid.f_iou 0.6804199814796448, valid.f_f-score 0.77001: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 86 | valid.f_iou 0.7016699910163879, valid.f_f-score 0.79308: 38%|███████████▋ | 6/16 [00:07<00:07, 1.43it/s]
epoch 86 | valid.f_iou 0.7016699910163879, valid.f_f-score 0.79308: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 86 | valid.f_iou 0.6995400190353394, valid.f_f-score 0.79774: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 86 | valid.f_iou 0.6995400190353394, valid.f_f-score 0.79774: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.85it/s]
epoch 86 | valid.f_iou 0.7123900055885315, valid.f_f-score 0.80895: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.85it/s]
epoch 86 | valid.f_iou 0.7123900055885315, valid.f_f-score 0.80895: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 86 | valid.f_iou 0.7143700122833252, valid.f_f-score 0.81565: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.03it/s]
epoch 86 | valid.f_iou 0.7143700122833252, valid.f_f-score 0.81565: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.20it/s]
epoch 86 | valid.f_iou 0.7059999704360962, valid.f_f-score 0.79959: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.20it/s]
epoch 86 | valid.f_iou 0.7059999704360962, valid.f_f-score 0.79959: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.33it/s]
epoch 86 | valid.f_iou 0.7194100022315979, valid.f_f-score 0.81084: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.33it/s]
epoch 86 | valid.f_iou 0.7194100022315979, valid.f_f-score 0.81084: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.44it/s]
epoch 86 | valid.f_iou 0.7315800189971924, valid.f_f-score 0.82066: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.44it/s]
epoch 86 | valid.f_iou 0.7315800189971924, valid.f_f-score 0.82066: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.52it/s]
epoch 86 | valid.f_iou 0.7259899973869324, valid.f_f-score 0.81778: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 86 | valid.f_iou 0.7259899973869324, valid.f_f-score 0.81778: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 86 | valid.f_iou 0.7356100082397461, valid.f_f-score 0.82669: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 86 | valid.f_iou 0.7356100082397461, valid.f_f-score 0.82669: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 86 | valid.f_iou 0.7343000173568726, valid.f_f-score 0.82548: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 86 | valid.f_iou 0.7343000173568726, valid.f_f-score 0.82548: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 86 | valid.f_iou 0.7343000173568726, valid.f_f-score 0.82548: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 87 | loss 0.520678699016571, f_iou 0.9661779403686523: 0%| | 0/74 [00:05, ?it/s]
epoch 87 | loss 0.520678699016571, f_iou 0.9661779403686523: 1%|▌ | 1/74 [00:05<06:31, 5.36s/it]
epoch 87 | loss 0.7327779531478882, f_iou 0.941185712814331: 1%|▌ | 1/74 [00:06<06:31, 5.36s/it]
epoch 87 | loss 0.7327779531478882, f_iou 0.941185712814331: 3%|█ | 2/74 [00:06<03:13, 2.68s/it]
epoch 87 | loss 3.381962537765503, f_iou 0.812761664390564: 3%|█ | 2/74 [00:06<03:13, 2.68s/it]
epoch 87 | loss 3.381962537765503, f_iou 0.812761664390564: 4%|█▌ | 3/74 [00:06<02:09, 1.82s/it]
epoch 87 | loss 0.8754110336303711, f_iou 0.7959869503974915: 4%|█▌ | 3/74 [00:07<02:09, 1.82s/it]
epoch 87 | loss 0.8754110336303711, f_iou 0.7959869503974915: 5%|██ | 4/74 [00:07<01:39, 1.42s/it]
epoch 87 | loss 1.8500311374664307, f_iou 0.782372772693634: 5%|██ | 4/74 [00:08<01:39, 1.42s/it]
epoch 87 | loss 1.8500311374664307, f_iou 0.782372772693634: 7%|██▌ | 5/74 [00:08<01:21, 1.19s/it]
epoch 87 | loss 0.7915738224983215, f_iou 0.7353488802909851: 7%|██▌ | 5/74 [00:09<01:21, 1.19s/it]
epoch 87 | loss 0.7915738224983215, f_iou 0.7353488802909851: 8%|███ | 6/74 [00:09<01:10, 1.04s/it]
epoch 87 | loss 0.7131158113479614, f_iou 0.7564926743507385: 8%|███ | 6/74 [00:10<01:10, 1.04s/it]
epoch 87 | loss 0.7131158113479614, f_iou 0.7564926743507385: 9%|███▌ | 7/74 [00:10<01:03, 1.05it/s]
epoch 87 | loss 0.0, f_iou 0.7850655317306519: 9%|████▉ | 7/74 [00:10<01:03, 1.05it/s]
epoch 87 | loss 0.0, f_iou 0.7850655317306519: 11%|█████▌ | 8/74 [00:10<00:58, 1.14it/s]
epoch 87 | loss 1.8928383588790894, f_iou 0.7555941343307495: 11%|████ | 8/74 [00:11<00:58, 1.14it/s]
epoch 87 | loss 1.8928383588790894, f_iou 0.7555941343307495: 12%|████▌ | 9/74 [00:11<00:53, 1.20it/s]
epoch 87 | loss 0.5979935526847839, f_iou 0.7207231521606445: 12%|████▌ | 9/74 [00:12<00:53, 1.20it/s]
epoch 87 | loss 0.5979935526847839, f_iou 0.7207231521606445: 14%|████▊ | 10/74 [00:12<00:50, 1.26it/s]
epoch 87 | loss 0.9155561327934265, f_iou 0.7369542121887207: 14%|████▊ | 10/74 [00:12<00:50, 1.26it/s]
epoch 87 | loss 0.9155561327934265, f_iou 0.7369542121887207: 15%|█████▎ | 11/74 [00:12<00:48, 1.29it/s]
epoch 87 | loss 1.6617382764816284, f_iou 0.7309879660606384: 15%|█████▎ | 11/74 [00:13<00:48, 1.29it/s]
epoch 87 | loss 1.6617382764816284, f_iou 0.7309879660606384: 16%|█████▊ | 12/74 [00:13<00:46, 1.32it/s]
epoch 87 | loss 0.39627644419670105, f_iou 0.7488736510276794: 16%|█████▋ | 12/74 [00:14<00:46, 1.32it/s]
epoch 87 | loss 0.39627644419670105, f_iou 0.7488736510276794: 18%|██████▏ | 13/74 [00:14<00:45, 1.34it/s]
epoch 87 | loss 0.5875189304351807, f_iou 0.758640706539154: 18%|██████▌ | 13/74 [00:15<00:45, 1.34it/s]
epoch 87 | loss 0.5875189304351807, f_iou 0.758640706539154: 19%|███████ | 14/74 [00:15<00:44, 1.35it/s]
epoch 87 | loss 2.0453524589538574, f_iou 0.763985812664032: 19%|███████ | 14/74 [00:15<00:44, 1.35it/s]
epoch 87 | loss 2.0453524589538574, f_iou 0.763985812664032: 20%|███████▌ | 15/74 [00:15<00:43, 1.36it/s]
epoch 87 | loss 1.6968868970870972, f_iou 0.7651217579841614: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 87 | loss 1.6968868970870972, f_iou 0.7651217579841614: 22%|███████▊ | 16/74 [00:16<00:42, 1.37it/s]
epoch 87 | loss 0.6270284056663513, f_iou 0.7740001678466797: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 87 | loss 0.6270284056663513, f_iou 0.7740001678466797: 23%|████████▎ | 17/74 [00:17<00:41, 1.38it/s]
epoch 87 | loss 1.0150213241577148, f_iou 0.7744442820549011: 23%|████████▎ | 17/74 [00:17<00:41, 1.38it/s]
epoch 87 | loss 1.0150213241577148, f_iou 0.7744442820549011: 24%|████████▊ | 18/74 [00:17<00:40, 1.39it/s]
epoch 87 | loss 1.2857518196105957, f_iou 0.7686272859573364: 24%|████████▊ | 18/74 [00:18<00:40, 1.39it/s]
epoch 87 | loss 1.2857518196105957, f_iou 0.7686272859573364: 26%|█████████▏ | 19/74 [00:18<00:39, 1.39it/s]
epoch 87 | loss 3.148571252822876, f_iou 0.7386605143547058: 26%|█████████▌ | 19/74 [00:19<00:39, 1.39it/s]
epoch 87 | loss 3.148571252822876, f_iou 0.7386605143547058: 27%|██████████ | 20/74 [00:19<00:38, 1.39it/s]
epoch 87 | loss 2.0143275260925293, f_iou 0.7367618083953857: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 87 | loss 2.0143275260925293, f_iou 0.7367618083953857: 28%|██████████▏ | 21/74 [00:20<00:37, 1.40it/s]
epoch 87 | loss 2.85292649269104, f_iou 0.7302872538566589: 28%|██████████▊ | 21/74 [00:20<00:37, 1.40it/s]
epoch 87 | loss 2.85292649269104, f_iou 0.7302872538566589: 30%|███████████▎ | 22/74 [00:20<00:37, 1.39it/s]
epoch 87 | loss 1.1451207399368286, f_iou 0.7365086674690247: 30%|██████████▋ | 22/74 [00:21<00:37, 1.39it/s]
epoch 87 | loss 1.1451207399368286, f_iou 0.7365086674690247: 31%|███████████▏ | 23/74 [00:21<00:37, 1.35it/s]
epoch 87 | loss 0.8206518292427063, f_iou 0.7375947833061218: 31%|███████████▏ | 23/74 [00:22<00:37, 1.35it/s]
epoch 87 | loss 0.8206518292427063, f_iou 0.7375947833061218: 32%|███████████▋ | 24/74 [00:22<00:37, 1.33it/s]
epoch 87 | loss 0.6365217566490173, f_iou 0.7446500062942505: 32%|███████████▋ | 24/74 [00:23<00:37, 1.33it/s]
epoch 87 | loss 0.6365217566490173, f_iou 0.7446500062942505: 34%|████████████▏ | 25/74 [00:23<00:37, 1.31it/s]
epoch 87 | loss 1.414299726486206, f_iou 0.7496255040168762: 34%|████████████▌ | 25/74 [00:23<00:37, 1.31it/s]
epoch 87 | loss 1.414299726486206, f_iou 0.7496255040168762: 35%|█████████████ | 26/74 [00:23<00:36, 1.33it/s]
epoch 87 | loss 0.6077593564987183, f_iou 0.7568060159683228: 35%|████████████▋ | 26/74 [00:24<00:36, 1.33it/s]
epoch 87 | loss 0.6077593564987183, f_iou 0.7568060159683228: 36%|█████████████▏ | 27/74 [00:24<00:34, 1.35it/s]
epoch 87 | loss 0.5143790245056152, f_iou 0.7644798159599304: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.35it/s]
epoch 87 | loss 0.5143790245056152, f_iou 0.7644798159599304: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.36it/s]
epoch 87 | loss 1.0892289876937866, f_iou 0.7695796489715576: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 87 | loss 1.0892289876937866, f_iou 0.7695796489715576: 39%|██████████████ | 29/74 [00:26<00:32, 1.37it/s]
epoch 87 | loss 2.9655373096466064, f_iou 0.7716233730316162: 39%|██████████████ | 29/74 [00:26<00:32, 1.37it/s]
epoch 87 | loss 2.9655373096466064, f_iou 0.7716233730316162: 41%|██████████████▌ | 30/74 [00:26<00:31, 1.38it/s]
epoch 87 | loss 0.38983017206192017, f_iou 0.7778371572494507: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.38it/s]
epoch 87 | loss 0.38983017206192017, f_iou 0.7778371572494507: 42%|██████████████▋ | 31/74 [00:27<00:31, 1.38it/s]
epoch 87 | loss 0.39018166065216064, f_iou 0.7839150428771973: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.38it/s]
epoch 87 | loss 0.39018166065216064, f_iou 0.7839150428771973: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.38it/s]
epoch 87 | loss 0.6319380402565002, f_iou 0.7892981171607971: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.38it/s]
epoch 87 | loss 0.6319380402565002, f_iou 0.7892981171607971: 45%|████████████████ | 33/74 [00:28<00:29, 1.38it/s]
epoch 87 | loss 0.9970163702964783, f_iou 0.7725318074226379: 45%|████████████████ | 33/74 [00:29<00:29, 1.38it/s]
epoch 87 | loss 0.9970163702964783, f_iou 0.7725318074226379: 46%|████████████████▌ | 34/74 [00:29<00:28, 1.39it/s]
epoch 87 | loss 0.4185486435890198, f_iou 0.7781203389167786: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 87 | loss 0.4185486435890198, f_iou 0.7781203389167786: 47%|█████████████████ | 35/74 [00:30<00:28, 1.39it/s]
epoch 87 | loss 1.0141500234603882, f_iou 0.7808428406715393: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 87 | loss 1.0141500234603882, f_iou 0.7808428406715393: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 87 | loss 0.745059609413147, f_iou 0.7845843434333801: 49%|██████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 87 | loss 0.745059609413147, f_iou 0.7845843434333801: 50%|██████████████████▌ | 37/74 [00:31<00:26, 1.39it/s]
epoch 87 | loss 1.2585084438323975, f_iou 0.7843307852745056: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 87 | loss 1.2585084438323975, f_iou 0.7843307852745056: 51%|██████████████████▍ | 38/74 [00:32<00:25, 1.39it/s]
epoch 87 | loss 0.7842793464660645, f_iou 0.7643008232116699: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 87 | loss 0.7842793464660645, f_iou 0.7643008232116699: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.38it/s]
epoch 87 | loss 0.3662676513195038, f_iou 0.7686254978179932: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 87 | loss 0.3662676513195038, f_iou 0.7686254978179932: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.38it/s]
epoch 87 | loss 0.999963641166687, f_iou 0.7569424510002136: 54%|████████████████████ | 40/74 [00:34<00:24, 1.38it/s]
epoch 87 | loss 0.999963641166687, f_iou 0.7569424510002136: 55%|████████████████████▌ | 41/74 [00:34<00:23, 1.38it/s]
epoch 87 | loss 0.7106696963310242, f_iou 0.7601209282875061: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 87 | loss 0.7106696963310242, f_iou 0.7601209282875061: 57%|████████████████████▍ | 42/74 [00:35<00:23, 1.38it/s]
epoch 87 | loss 2.0392141342163086, f_iou 0.7539583444595337: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.38it/s]
epoch 87 | loss 2.0392141342163086, f_iou 0.7539583444595337: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.38it/s]
epoch 87 | loss 0.3773003816604614, f_iou 0.7581318020820618: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.38it/s]
epoch 87 | loss 0.3773003816604614, f_iou 0.7581318020820618: 59%|█████████████████████▍ | 44/74 [00:36<00:21, 1.39it/s]
epoch 87 | loss 0.6305002570152283, f_iou 0.7614284157752991: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 87 | loss 0.6305002570152283, f_iou 0.7614284157752991: 61%|█████████████████████▉ | 45/74 [00:37<00:20, 1.39it/s]
epoch 87 | loss 1.425973653793335, f_iou 0.7606745362281799: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 87 | loss 1.425973653793335, f_iou 0.7606745362281799: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.39it/s]
epoch 87 | loss 1.090646505355835, f_iou 0.7647979259490967: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 87 | loss 1.090646505355835, f_iou 0.7647979259490967: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.37it/s]
epoch 87 | loss 1.778184413909912, f_iou 0.7586537599563599: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.37it/s]
epoch 87 | loss 1.778184413909912, f_iou 0.7586537599563599: 65%|████████████████████████ | 48/74 [00:39<00:19, 1.34it/s]
epoch 87 | loss 1.9866046905517578, f_iou 0.7543980479240417: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.34it/s]
epoch 87 | loss 1.9866046905517578, f_iou 0.7543980479240417: 66%|███████████████████████▊ | 49/74 [00:40<00:18, 1.32it/s]
epoch 87 | loss 0.5457282066345215, f_iou 0.757475733757019: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.32it/s]
epoch 87 | loss 0.5457282066345215, f_iou 0.757475733757019: 68%|█████████████████████████ | 50/74 [00:41<00:18, 1.31it/s]
epoch 87 | loss 0.9041732549667358, f_iou 0.7571598291397095: 68%|████████████████████████▎ | 50/74 [00:42<00:18, 1.31it/s]
epoch 87 | loss 0.9041732549667358, f_iou 0.7571598291397095: 69%|████████████████████████▊ | 51/74 [00:42<00:17, 1.30it/s]
epoch 87 | loss 1.12047278881073, f_iou 0.7577131986618042: 69%|██████████████████████████▏ | 51/74 [00:43<00:17, 1.30it/s]
epoch 87 | loss 1.12047278881073, f_iou 0.7577131986618042: 70%|██████████████████████████▋ | 52/74 [00:43<00:17, 1.29it/s]
epoch 87 | loss 1.5616201162338257, f_iou 0.7577778100967407: 70%|█████████████████████████▎ | 52/74 [00:43<00:17, 1.29it/s]
epoch 87 | loss 1.5616201162338257, f_iou 0.7577778100967407: 72%|█████████████████████████▊ | 53/74 [00:43<00:16, 1.29it/s]
epoch 87 | loss 1.0526254177093506, f_iou 0.7545498013496399: 72%|█████████████████████████▊ | 53/74 [00:44<00:16, 1.29it/s]
epoch 87 | loss 1.0526254177093506, f_iou 0.7545498013496399: 73%|██████████████████████████▎ | 54/74 [00:44<00:15, 1.28it/s]
epoch 87 | loss 1.0209956169128418, f_iou 0.7554745078086853: 73%|██████████████████████████▎ | 54/74 [00:45<00:15, 1.28it/s]
epoch 87 | loss 1.0209956169128418, f_iou 0.7554745078086853: 74%|██████████████████████████▊ | 55/74 [00:45<00:14, 1.28it/s]
epoch 87 | loss 0.6717754006385803, f_iou 0.7557710409164429: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.28it/s]
epoch 87 | loss 0.6717754006385803, f_iou 0.7557710409164429: 76%|███████████████████████████▏ | 56/74 [00:46<00:14, 1.28it/s]
epoch 87 | loss 0.664178729057312, f_iou 0.7425118684768677: 76%|████████████████████████████ | 56/74 [00:46<00:14, 1.28it/s]
epoch 87 | loss 0.664178729057312, f_iou 0.7425118684768677: 77%|████████████████████████████▌ | 57/74 [00:46<00:13, 1.29it/s]
epoch 87 | loss 1.2158000469207764, f_iou 0.7430990934371948: 77%|███████████████████████████▋ | 57/74 [00:47<00:13, 1.29it/s]
epoch 87 | loss 1.2158000469207764, f_iou 0.7430990934371948: 78%|████████████████████████████▏ | 58/74 [00:47<00:12, 1.29it/s]
epoch 87 | loss 1.642181634902954, f_iou 0.7452713847160339: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.29it/s]
epoch 87 | loss 1.642181634902954, f_iou 0.7452713847160339: 80%|█████████████████████████████▌ | 59/74 [00:48<00:11, 1.29it/s]
epoch 87 | loss 1.1755702495574951, f_iou 0.7434455752372742: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.29it/s]
epoch 87 | loss 1.1755702495574951, f_iou 0.7434455752372742: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.30it/s]
epoch 87 | loss 3.449221611022949, f_iou 0.7360807657241821: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.30it/s]
epoch 87 | loss 3.449221611022949, f_iou 0.7360807657241821: 82%|██████████████████████████████▌ | 61/74 [00:49<00:10, 1.29it/s]
epoch 87 | loss 1.4498072862625122, f_iou 0.736099898815155: 82%|██████████████████████████████▌ | 61/74 [00:50<00:10, 1.29it/s]
epoch 87 | loss 1.4498072862625122, f_iou 0.736099898815155: 84%|███████████████████████████████ | 62/74 [00:50<00:09, 1.30it/s]
epoch 87 | loss 1.7542725801467896, f_iou 0.7344995141029358: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.30it/s]
epoch 87 | loss 1.7542725801467896, f_iou 0.7344995141029358: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.30it/s]
epoch 87 | loss 0.0, f_iou 0.7384243607521057: 85%|███████████████████████████████████████████▍ | 63/74 [00:52<00:08, 1.30it/s]
epoch 87 | loss 0.0, f_iou 0.7384243607521057: 86%|████████████████████████████████████████████ | 64/74 [00:52<00:07, 1.30it/s]
epoch 87 | loss 1.045086145401001, f_iou 0.7379394769668579: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.30it/s]
epoch 87 | loss 1.045086145401001, f_iou 0.7379394769668579: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.30it/s]
epoch 87 | loss 0.7972128987312317, f_iou 0.738706648349762: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.30it/s]
epoch 87 | loss 0.7972128987312317, f_iou 0.738706648349762: 89%|█████████████████████████████████ | 66/74 [00:53<00:06, 1.30it/s]
epoch 87 | loss 0.9370840787887573, f_iou 0.740134060382843: 89%|█████████████████████████████████ | 66/74 [00:54<00:06, 1.30it/s]
epoch 87 | loss 0.9370840787887573, f_iou 0.740134060382843: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.31it/s]
epoch 87 | loss 0.8402698040008545, f_iou 0.7366769909858704: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.31it/s]
epoch 87 | loss 0.8402698040008545, f_iou 0.7366769909858704: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.31it/s]
epoch 87 | loss 1.4726108312606812, f_iou 0.7332144975662231: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.31it/s]
epoch 87 | loss 1.4726108312606812, f_iou 0.7332144975662231: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.31it/s]
epoch 87 | loss 1.3934115171432495, f_iou 0.7335314750671387: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.31it/s]
epoch 87 | loss 1.3934115171432495, f_iou 0.7335314750671387: 95%|██████████████████████████████████ | 70/74 [00:56<00:03, 1.31it/s]
epoch 87 | loss 1.8527320623397827, f_iou 0.7331123352050781: 95%|██████████████████████████████████ | 70/74 [00:57<00:03, 1.31it/s]
epoch 87 | loss 1.8527320623397827, f_iou 0.7331123352050781: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.31it/s]
epoch 87 | loss 1.034921646118164, f_iou 0.7343587279319763: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.31it/s]
epoch 87 | loss 1.034921646118164, f_iou 0.7343587279319763: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.33it/s]
epoch 87 | loss 1.0747112035751343, f_iou 0.7260123491287231: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.33it/s]
epoch 87 | loss 1.0747112035751343, f_iou 0.7260123491287231: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.35it/s]
epoch 87 | loss 2.2652125358581543, f_iou 0.7278225421905518: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.35it/s]
epoch 87 | loss 2.2652125358581543, f_iou 0.7278225421905518: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.37it/s]
epoch 87 | loss 2.2652125358581543, f_iou 0.7278225421905518: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 87 | valid.f_iou 0.7894700169563293, valid.f_f-score 0.89176: 0%| | 0/16 [00:05, ?it/s]
epoch 87 | valid.f_iou 0.7894700169563293, valid.f_f-score 0.89176: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 87 | valid.f_iou 0.7662299871444702, valid.f_f-score 0.91311: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 87 | valid.f_iou 0.7662299871444702, valid.f_f-score 0.91311: 12%|███▉ | 2/16 [00:05<00:35, 2.51s/it]
epoch 87 | valid.f_iou 0.6144099831581116, valid.f_f-score 0.81079: 12%|███▉ | 2/16 [00:06<00:35, 2.51s/it]
epoch 87 | valid.f_iou 0.6144099831581116, valid.f_f-score 0.81079: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 87 | valid.f_iou 0.6403099894523621, valid.f_f-score 0.78299: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 87 | valid.f_iou 0.6403099894523621, valid.f_f-score 0.78299: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 87 | valid.f_iou 0.643779993057251, valid.f_f-score 0.78513: 25%|████████ | 4/16 [00:07<00:13, 1.13s/it]
epoch 87 | valid.f_iou 0.643779993057251, valid.f_f-score 0.78513: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 87 | valid.f_iou 0.5993599891662598, valid.f_f-score 0.74622: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 87 | valid.f_iou 0.5993599891662598, valid.f_f-score 0.74622: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 87 | valid.f_iou 0.6208699941635132, valid.f_f-score 0.76421: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 87 | valid.f_iou 0.6208699941635132, valid.f_f-score 0.76421: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 87 | valid.f_iou 0.5965099930763245, valid.f_f-score 0.74458: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 87 | valid.f_iou 0.5965099930763245, valid.f_f-score 0.74458: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 87 | valid.f_iou 0.6147199869155884, valid.f_f-score 0.76098: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 87 | valid.f_iou 0.6147199869155884, valid.f_f-score 0.76098: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 87 | valid.f_iou 0.6191200017929077, valid.f_f-score 0.76906: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 87 | valid.f_iou 0.6191200017929077, valid.f_f-score 0.76906: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 87 | valid.f_iou 0.6177999973297119, valid.f_f-score 0.76824: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 87 | valid.f_iou 0.6177999973297119, valid.f_f-score 0.76824: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 87 | valid.f_iou 0.6372299790382385, valid.f_f-score 0.78175: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.19it/s]
epoch 87 | valid.f_iou 0.6372299790382385, valid.f_f-score 0.78175: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 87 | valid.f_iou 0.6408600211143494, valid.f_f-score 0.78853: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 87 | valid.f_iou 0.6408600211143494, valid.f_f-score 0.78853: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 87 | valid.f_iou 0.6340100169181824, valid.f_f-score 0.78383: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 87 | valid.f_iou 0.6340100169181824, valid.f_f-score 0.78383: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.51it/s]
epoch 87 | valid.f_iou 0.6355199813842773, valid.f_f-score 0.78223: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.51it/s]
epoch 87 | valid.f_iou 0.6355199813842773, valid.f_f-score 0.78223: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 87 | valid.f_iou 0.6366900205612183, valid.f_f-score 0.77808: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 87 | valid.f_iou 0.6366900205612183, valid.f_f-score 0.77808: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 87 | valid.f_iou 0.6366900205612183, valid.f_f-score 0.77808: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 87 | valid.f_iou 0.8449500203132629, valid.f_f-score 0.90806: 0%| | 0/16 [00:05, ?it/s]
epoch 87 | valid.f_iou 0.8449500203132629, valid.f_f-score 0.90806: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 87 | valid.f_iou 0.857010006904602, valid.f_f-score 0.92614: 6%|██ | 1/16 [00:05<01:21, 5.46s/it]
epoch 87 | valid.f_iou 0.857010006904602, valid.f_f-score 0.92614: 12%|████ | 2/16 [00:05<00:35, 2.51s/it]
epoch 87 | valid.f_iou 0.7870699763298035, valid.f_f-score 0.8896: 12%|████ | 2/16 [00:06<00:35, 2.51s/it]
epoch 87 | valid.f_iou 0.7870699763298035, valid.f_f-score 0.8896: 19%|██████ | 3/16 [00:06<00:20, 1.57s/it]
epoch 87 | valid.f_iou 0.7689300179481506, valid.f_f-score 0.84711: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 87 | valid.f_iou 0.7689300179481506, valid.f_f-score 0.84711: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 87 | valid.f_iou 0.7368599772453308, valid.f_f-score 0.83636: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 87 | valid.f_iou 0.7368599772453308, valid.f_f-score 0.83636: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 87 | valid.f_iou 0.7256199717521667, valid.f_f-score 0.82625: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 87 | valid.f_iou 0.7256199717521667, valid.f_f-score 0.82625: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 87 | valid.f_iou 0.7327200174331665, valid.f_f-score 0.83595: 38%|███████████▋ | 6/16 [00:08<00:07, 1.40it/s]
epoch 87 | valid.f_iou 0.7327200174331665, valid.f_f-score 0.83595: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 87 | valid.f_iou 0.727180004119873, valid.f_f-score 0.8357: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.61it/s]
epoch 87 | valid.f_iou 0.727180004119873, valid.f_f-score 0.8357: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 87 | valid.f_iou 0.7287099957466125, valid.f_f-score 0.83578: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 87 | valid.f_iou 0.7287099957466125, valid.f_f-score 0.83578: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 87 | valid.f_iou 0.7368599772453308, valid.f_f-score 0.84393: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 87 | valid.f_iou 0.7368599772453308, valid.f_f-score 0.84393: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 87 | valid.f_iou 0.7230100035667419, valid.f_f-score 0.8223: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.11it/s]
epoch 87 | valid.f_iou 0.7230100035667419, valid.f_f-score 0.8223: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.18it/s]
epoch 87 | valid.f_iou 0.7337300181388855, valid.f_f-score 0.83139: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.18it/s]
epoch 87 | valid.f_iou 0.7337300181388855, valid.f_f-score 0.83139: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 87 | valid.f_iou 0.747189998626709, valid.f_f-score 0.84159: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.22it/s]
epoch 87 | valid.f_iou 0.747189998626709, valid.f_f-score 0.84159: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.26it/s]
epoch 87 | valid.f_iou 0.7401700019836426, valid.f_f-score 0.8354: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.26it/s]
epoch 87 | valid.f_iou 0.7401700019836426, valid.f_f-score 0.8354: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.28it/s]
epoch 87 | valid.f_iou 0.7431100010871887, valid.f_f-score 0.83691: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.28it/s]
epoch 87 | valid.f_iou 0.7431100010871887, valid.f_f-score 0.83691: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.29it/s]
epoch 87 | valid.f_iou 0.737820029258728, valid.f_f-score 0.82821: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.29it/s]
epoch 87 | valid.f_iou 0.737820029258728, valid.f_f-score 0.82821: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.41it/s]
epoch 87 | valid.f_iou 0.737820029258728, valid.f_f-score 0.82821: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 87 | valid.f_iou 0.8449500203132629, valid.f_f-score 0.90806: 0%| | 0/16 [00:05, ?it/s]
epoch 87 | valid.f_iou 0.8449500203132629, valid.f_f-score 0.90806: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 87 | valid.f_iou 0.857010006904602, valid.f_f-score 0.92614: 6%|██ | 1/16 [00:05<01:19, 5.27s/it]
epoch 87 | valid.f_iou 0.857010006904602, valid.f_f-score 0.92614: 12%|████ | 2/16 [00:05<00:34, 2.45s/it]
epoch 87 | valid.f_iou 0.7870699763298035, valid.f_f-score 0.8896: 12%|████ | 2/16 [00:06<00:34, 2.45s/it]
epoch 87 | valid.f_iou 0.7870699763298035, valid.f_f-score 0.8896: 19%|██████ | 3/16 [00:06<00:20, 1.54s/it]
epoch 87 | valid.f_iou 0.7692899703979492, valid.f_f-score 0.84711: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 87 | valid.f_iou 0.7692899703979492, valid.f_f-score 0.84711: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 87 | valid.f_iou 0.7457399964332581, valid.f_f-score 0.83636: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 87 | valid.f_iou 0.7457399964332581, valid.f_f-score 0.83636: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 87 | valid.f_iou 0.7330099940299988, valid.f_f-score 0.82625: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 87 | valid.f_iou 0.7330099940299988, valid.f_f-score 0.82625: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 87 | valid.f_iou 0.7408000230789185, valid.f_f-score 0.83595: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 87 | valid.f_iou 0.7408000230789185, valid.f_f-score 0.83595: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 87 | valid.f_iou 0.734250009059906, valid.f_f-score 0.8357: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.65it/s]
epoch 87 | valid.f_iou 0.734250009059906, valid.f_f-score 0.8357: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.88it/s]
epoch 87 | valid.f_iou 0.7390900254249573, valid.f_f-score 0.83578: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.88it/s]
epoch 87 | valid.f_iou 0.7390900254249573, valid.f_f-score 0.83578: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.11it/s]
epoch 87 | valid.f_iou 0.7440999746322632, valid.f_f-score 0.84071: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.11it/s]
epoch 87 | valid.f_iou 0.7440999746322632, valid.f_f-score 0.84071: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.27it/s]
epoch 87 | valid.f_iou 0.7295799851417542, valid.f_f-score 0.81937: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.27it/s]
epoch 87 | valid.f_iou 0.7295799851417542, valid.f_f-score 0.81937: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 87 | valid.f_iou 0.7397599816322327, valid.f_f-score 0.82871: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 87 | valid.f_iou 0.7397599816322327, valid.f_f-score 0.82871: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.49it/s]
epoch 87 | valid.f_iou 0.7503200173377991, valid.f_f-score 0.83717: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.49it/s]
epoch 87 | valid.f_iou 0.7503200173377991, valid.f_f-score 0.83717: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 87 | valid.f_iou 0.7430800199508667, valid.f_f-score 0.83131: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.56it/s]
epoch 87 | valid.f_iou 0.7430800199508667, valid.f_f-score 0.83131: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 87 | valid.f_iou 0.7458299994468689, valid.f_f-score 0.83309: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.61it/s]
epoch 87 | valid.f_iou 0.7458299994468689, valid.f_f-score 0.83309: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 87 | valid.f_iou 0.741349995136261, valid.f_f-score 0.82587: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.64it/s]
epoch 87 | valid.f_iou 0.741349995136261, valid.f_f-score 0.82587: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 87 | valid.f_iou 0.741349995136261, valid.f_f-score 0.82587: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 88 | loss 0.9067515134811401, f_iou 0.855024516582489: 0%| | 0/74 [00:05, ?it/s]
epoch 88 | loss 0.9067515134811401, f_iou 0.855024516582489: 1%|▌ | 1/74 [00:05<06:45, 5.55s/it]
epoch 88 | loss 0.12253087759017944, f_iou 0.9016741514205933: 1%|▍ | 1/74 [00:06<06:45, 5.55s/it]
epoch 88 | loss 0.12253087759017944, f_iou 0.9016741514205933: 3%|▉ | 2/74 [00:06<03:21, 2.80s/it]
epoch 88 | loss 0.6465232372283936, f_iou 0.7329713702201843: 3%|█ | 2/74 [00:07<03:21, 2.80s/it]
epoch 88 | loss 0.6465232372283936, f_iou 0.7329713702201843: 4%|█▌ | 3/74 [00:07<02:16, 1.92s/it]
epoch 88 | loss 3.0817320346832275, f_iou 0.6148569583892822: 4%|█▌ | 3/74 [00:08<02:16, 1.92s/it]
epoch 88 | loss 3.0817320346832275, f_iou 0.6148569583892822: 5%|██ | 4/74 [00:08<01:43, 1.47s/it]
epoch 88 | loss 0.5224462151527405, f_iou 0.680246889591217: 5%|██ | 4/74 [00:08<01:43, 1.47s/it]
epoch 88 | loss 0.5224462151527405, f_iou 0.680246889591217: 7%|██▌ | 5/74 [00:08<01:24, 1.22s/it]
epoch 88 | loss 1.8253560066223145, f_iou 0.6361091136932373: 7%|██▌ | 5/74 [00:09<01:24, 1.22s/it]
epoch 88 | loss 1.8253560066223145, f_iou 0.6361091136932373: 8%|███ | 6/74 [00:09<01:11, 1.05s/it]
epoch 88 | loss 0.5160989165306091, f_iou 0.6792259812355042: 8%|███ | 6/74 [00:10<01:11, 1.05s/it]
epoch 88 | loss 0.5160989165306091, f_iou 0.6792259812355042: 9%|███▌ | 7/74 [00:10<01:03, 1.06it/s]
epoch 88 | loss 2.164710521697998, f_iou 0.6826797127723694: 9%|███▌ | 7/74 [00:11<01:03, 1.06it/s]
epoch 88 | loss 2.164710521697998, f_iou 0.6826797127723694: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 88 | loss 1.4972437620162964, f_iou 0.6403287649154663: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 88 | loss 1.4972437620162964, f_iou 0.6403287649154663: 12%|████▌ | 9/74 [00:11<00:54, 1.20it/s]
epoch 88 | loss 0.8275766968727112, f_iou 0.669579267501831: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 88 | loss 0.8275766968727112, f_iou 0.669579267501831: 14%|█████ | 10/74 [00:12<00:51, 1.25it/s]
epoch 88 | loss 0.0, f_iou 0.698429524898529: 14%|███████ | 10/74 [00:13<00:51, 1.25it/s]
epoch 88 | loss 0.0, f_iou 0.698429524898529: 15%|███████▋ | 11/74 [00:13<00:49, 1.27it/s]
epoch 88 | loss 1.7285257577896118, f_iou 0.6999558806419373: 15%|█████▎ | 11/74 [00:14<00:49, 1.27it/s]
epoch 88 | loss 1.7285257577896118, f_iou 0.6999558806419373: 16%|█████▊ | 12/74 [00:14<00:48, 1.28it/s]
epoch 88 | loss 0.7132394313812256, f_iou 0.717311441898346: 16%|██████ | 12/74 [00:14<00:48, 1.28it/s]
epoch 88 | loss 0.7132394313812256, f_iou 0.717311441898346: 18%|██████▌ | 13/74 [00:14<00:47, 1.29it/s]
epoch 88 | loss 1.8269193172454834, f_iou 0.693337619304657: 18%|██████▌ | 13/74 [00:15<00:47, 1.29it/s]
epoch 88 | loss 1.8269193172454834, f_iou 0.693337619304657: 19%|███████ | 14/74 [00:15<00:46, 1.30it/s]
epoch 88 | loss 3.973829984664917, f_iou 0.6811749935150146: 19%|███████ | 14/74 [00:16<00:46, 1.30it/s]
epoch 88 | loss 3.973829984664917, f_iou 0.6811749935150146: 20%|███████▌ | 15/74 [00:16<00:45, 1.30it/s]
epoch 88 | loss 0.8719707131385803, f_iou 0.6941505670547485: 20%|███████▎ | 15/74 [00:17<00:45, 1.30it/s]
epoch 88 | loss 0.8719707131385803, f_iou 0.6941505670547485: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 88 | loss 1.8725664615631104, f_iou 0.6979013681411743: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 88 | loss 1.8725664615631104, f_iou 0.6979013681411743: 23%|████████▎ | 17/74 [00:17<00:43, 1.30it/s]
epoch 88 | loss 1.8122349977493286, f_iou 0.6879217624664307: 23%|████████▎ | 17/74 [00:18<00:43, 1.30it/s]
epoch 88 | loss 1.8122349977493286, f_iou 0.6879217624664307: 24%|████████▊ | 18/74 [00:18<00:43, 1.30it/s]
epoch 88 | loss 1.89271879196167, f_iou 0.6591711044311523: 24%|█████████▏ | 18/74 [00:19<00:43, 1.30it/s]
epoch 88 | loss 1.89271879196167, f_iou 0.6591711044311523: 26%|█████████▊ | 19/74 [00:19<00:41, 1.32it/s]
epoch 88 | loss 0.624616265296936, f_iou 0.6697387099266052: 26%|█████████▌ | 19/74 [00:20<00:41, 1.32it/s]
epoch 88 | loss 0.624616265296936, f_iou 0.6697387099266052: 27%|██████████ | 20/74 [00:20<00:40, 1.34it/s]
epoch 88 | loss 0.4235481321811676, f_iou 0.6819924712181091: 27%|█████████▋ | 20/74 [00:20<00:40, 1.34it/s]
epoch 88 | loss 0.4235481321811676, f_iou 0.6819924712181091: 28%|██████████▏ | 21/74 [00:20<00:39, 1.36it/s]
epoch 88 | loss 1.034583330154419, f_iou 0.6917514801025391: 28%|██████████▌ | 21/74 [00:21<00:39, 1.36it/s]
epoch 88 | loss 1.034583330154419, f_iou 0.6917514801025391: 30%|███████████ | 22/74 [00:21<00:37, 1.37it/s]
epoch 88 | loss 0.7287081480026245, f_iou 0.6993098855018616: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 88 | loss 0.7287081480026245, f_iou 0.6993098855018616: 31%|███████████▏ | 23/74 [00:22<00:37, 1.38it/s]
epoch 88 | loss 0.8021697998046875, f_iou 0.7071287631988525: 31%|███████████▏ | 23/74 [00:22<00:37, 1.38it/s]
epoch 88 | loss 0.8021697998046875, f_iou 0.7071287631988525: 32%|███████████▋ | 24/74 [00:22<00:36, 1.38it/s]
epoch 88 | loss 0.724988579750061, f_iou 0.7115909457206726: 32%|████████████ | 24/74 [00:23<00:36, 1.38it/s]
epoch 88 | loss 0.724988579750061, f_iou 0.7115909457206726: 34%|████████████▌ | 25/74 [00:23<00:35, 1.38it/s]
epoch 88 | loss 1.5698686838150024, f_iou 0.6931904554367065: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 88 | loss 1.5698686838150024, f_iou 0.6931904554367065: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 88 | loss 0.9272785186767578, f_iou 0.6940933465957642: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 88 | loss 0.9272785186767578, f_iou 0.6940933465957642: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 88 | loss 1.082416296005249, f_iou 0.6761242747306824: 36%|█████████████▌ | 27/74 [00:25<00:33, 1.39it/s]
epoch 88 | loss 1.082416296005249, f_iou 0.6761242747306824: 38%|██████████████ | 28/74 [00:25<00:33, 1.37it/s]
epoch 88 | loss 1.8093019723892212, f_iou 0.674872875213623: 38%|██████████████ | 28/74 [00:26<00:33, 1.37it/s]
epoch 88 | loss 1.8093019723892212, f_iou 0.674872875213623: 39%|██████████████▌ | 29/74 [00:26<00:32, 1.38it/s]
epoch 88 | loss 0.7936791181564331, f_iou 0.6532223224639893: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 88 | loss 0.7936791181564331, f_iou 0.6532223224639893: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 88 | loss 0.6393464803695679, f_iou 0.6573169827461243: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 88 | loss 0.6393464803695679, f_iou 0.6573169827461243: 42%|███████████████ | 31/74 [00:28<00:31, 1.38it/s]
epoch 88 | loss 3.0955517292022705, f_iou 0.6532650589942932: 42%|███████████████ | 31/74 [00:28<00:31, 1.38it/s]
epoch 88 | loss 3.0955517292022705, f_iou 0.6532650589942932: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.38it/s]
epoch 88 | loss 0.8357174396514893, f_iou 0.65800541639328: 43%|████████████████▍ | 32/74 [00:29<00:30, 1.38it/s]
epoch 88 | loss 0.8357174396514893, f_iou 0.65800541639328: 45%|████████████████▉ | 33/74 [00:29<00:29, 1.39it/s]
epoch 88 | loss 0.590671181678772, f_iou 0.6637284755706787: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 88 | loss 0.590671181678772, f_iou 0.6637284755706787: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 88 | loss 0.580823540687561, f_iou 0.6710476279258728: 46%|█████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 88 | loss 0.580823540687561, f_iou 0.6710476279258728: 47%|█████████████████▌ | 35/74 [00:30<00:27, 1.39it/s]
epoch 88 | loss 1.362419843673706, f_iou 0.6731299161911011: 47%|█████████████████▌ | 35/74 [00:31<00:27, 1.39it/s]
epoch 88 | loss 1.362419843673706, f_iou 0.6731299161911011: 49%|██████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 88 | loss 1.3813514709472656, f_iou 0.6725436449050903: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 88 | loss 1.3813514709472656, f_iou 0.6725436449050903: 50%|██████████████████ | 37/74 [00:32<00:26, 1.39it/s]
epoch 88 | loss 0.8638219833374023, f_iou 0.6799136996269226: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 88 | loss 0.8638219833374023, f_iou 0.6799136996269226: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 88 | loss 1.1049543619155884, f_iou 0.6848966479301453: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 88 | loss 1.1049543619155884, f_iou 0.6848966479301453: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.39it/s]
epoch 88 | loss 1.6262788772583008, f_iou 0.6848201751708984: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 88 | loss 1.6262788772583008, f_iou 0.6848201751708984: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.40it/s]
epoch 88 | loss 1.2832616567611694, f_iou 0.6821795701980591: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.40it/s]
epoch 88 | loss 1.2832616567611694, f_iou 0.6821795701980591: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.40it/s]
epoch 88 | loss 1.1613341569900513, f_iou 0.6850838661193848: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.40it/s]
epoch 88 | loss 1.1613341569900513, f_iou 0.6850838661193848: 57%|████████████████████▍ | 42/74 [00:35<00:22, 1.40it/s]
epoch 88 | loss 0.73435378074646, f_iou 0.6691821813583374: 57%|█████████████████████▌ | 42/74 [00:36<00:22, 1.40it/s]
epoch 88 | loss 0.73435378074646, f_iou 0.6691821813583374: 58%|██████████████████████ | 43/74 [00:36<00:22, 1.40it/s]
epoch 88 | loss 0.7555944919586182, f_iou 0.6754862070083618: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.40it/s]
epoch 88 | loss 0.7555944919586182, f_iou 0.6754862070083618: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.40it/s]
epoch 88 | loss 2.457793712615967, f_iou 0.6778839230537415: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.40it/s]
epoch 88 | loss 2.457793712615967, f_iou 0.6778839230537415: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.40it/s]
epoch 88 | loss 0.6244800686836243, f_iou 0.6832383275032043: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.40it/s]
epoch 88 | loss 0.6244800686836243, f_iou 0.6832383275032043: 62%|██████████████████████▍ | 46/74 [00:38<00:20, 1.39it/s]
epoch 88 | loss 1.334691047668457, f_iou 0.67674320936203: 62%|████████████████████████▏ | 46/74 [00:39<00:20, 1.39it/s]
epoch 88 | loss 1.334691047668457, f_iou 0.67674320936203: 64%|████████████████████████▊ | 47/74 [00:39<00:19, 1.39it/s]
epoch 88 | loss 1.6993356943130493, f_iou 0.6799301505088806: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 88 | loss 1.6993356943130493, f_iou 0.6799301505088806: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.40it/s]
epoch 88 | loss 0.8613638877868652, f_iou 0.684314489364624: 65%|████████████████████████ | 48/74 [00:40<00:18, 1.40it/s]
epoch 88 | loss 0.8613638877868652, f_iou 0.684314489364624: 66%|████████████████████████▌ | 49/74 [00:40<00:18, 1.38it/s]
epoch 88 | loss 0.782916784286499, f_iou 0.6870747804641724: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.38it/s]
epoch 88 | loss 0.782916784286499, f_iou 0.6870747804641724: 68%|█████████████████████████ | 50/74 [00:41<00:17, 1.38it/s]
epoch 88 | loss 1.477445363998413, f_iou 0.67885422706604: 68%|██████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 88 | loss 1.477445363998413, f_iou 0.67885422706604: 69%|██████████████████████████▉ | 51/74 [00:42<00:16, 1.39it/s]
epoch 88 | loss 2.612567186355591, f_iou 0.6760749816894531: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 88 | loss 2.612567186355591, f_iou 0.6760749816894531: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.39it/s]
epoch 88 | loss 3.2663493156433105, f_iou 0.6730843186378479: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 88 | loss 3.2663493156433105, f_iou 0.6730843186378479: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.39it/s]
epoch 88 | loss 0.6654314398765564, f_iou 0.6749362945556641: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 88 | loss 0.6654314398765564, f_iou 0.6749362945556641: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.39it/s]
epoch 88 | loss 1.4610545635223389, f_iou 0.6718695759773254: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 88 | loss 1.4610545635223389, f_iou 0.6718695759773254: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 88 | loss 1.2891265153884888, f_iou 0.6731556057929993: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 88 | loss 1.2891265153884888, f_iou 0.6731556057929993: 76%|███████████████████████████▏ | 56/74 [00:45<00:12, 1.39it/s]
epoch 88 | loss 0.5090869665145874, f_iou 0.6616007685661316: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 88 | loss 0.5090869665145874, f_iou 0.6616007685661316: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.39it/s]
epoch 88 | loss 0.9826633930206299, f_iou 0.6656877994537354: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 88 | loss 0.9826633930206299, f_iou 0.6656877994537354: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 88 | loss 1.2700210809707642, f_iou 0.6700753569602966: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 88 | loss 1.2700210809707642, f_iou 0.6700753569602966: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 88 | loss 0.4255298972129822, f_iou 0.675070583820343: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.39it/s]
epoch 88 | loss 0.4255298972129822, f_iou 0.675070583820343: 81%|██████████████████████████████ | 60/74 [00:48<00:10, 1.39it/s]
epoch 88 | loss 1.3038303852081299, f_iou 0.6740977168083191: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 88 | loss 1.3038303852081299, f_iou 0.6740977168083191: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.40it/s]
epoch 88 | loss 1.6651555299758911, f_iou 0.6749672889709473: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.40it/s]
epoch 88 | loss 1.6651555299758911, f_iou 0.6749672889709473: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.40it/s]
epoch 88 | loss 0.6678725481033325, f_iou 0.6757226586341858: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.40it/s]
epoch 88 | loss 0.6678725481033325, f_iou 0.6757226586341858: 85%|██████████████████████████████▋ | 63/74 [00:50<00:07, 1.40it/s]
epoch 88 | loss 1.9037795066833496, f_iou 0.6750081777572632: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.40it/s]
epoch 88 | loss 1.9037795066833496, f_iou 0.6750081777572632: 86%|███████████████████████████████▏ | 64/74 [00:51<00:07, 1.40it/s]
epoch 88 | loss 0.46048206090927124, f_iou 0.676379382610321: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.40it/s]
epoch 88 | loss 0.46048206090927124, f_iou 0.676379382610321: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.40it/s]
epoch 88 | loss 0.36939603090286255, f_iou 0.677230715751648: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 88 | loss 0.36939603090286255, f_iou 0.677230715751648: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 88 | loss 1.6023167371749878, f_iou 0.6724714636802673: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.40it/s]
epoch 88 | loss 1.6023167371749878, f_iou 0.6724714636802673: 91%|████████████████████████████████▌ | 67/74 [00:53<00:05, 1.37it/s]
epoch 88 | loss 1.0021618604660034, f_iou 0.6744108200073242: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.37it/s]
epoch 88 | loss 1.0021618604660034, f_iou 0.6744108200073242: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.35it/s]
epoch 88 | loss 1.8865313529968262, f_iou 0.6651202440261841: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.35it/s]
epoch 88 | loss 1.8865313529968262, f_iou 0.6651202440261841: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.35it/s]
epoch 88 | loss 1.0994093418121338, f_iou 0.6677274703979492: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.35it/s]
epoch 88 | loss 1.0994093418121338, f_iou 0.6677274703979492: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.37it/s]
epoch 88 | loss 0.9045577049255371, f_iou 0.6697921752929688: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.37it/s]
epoch 88 | loss 0.9045577049255371, f_iou 0.6697921752929688: 96%|██████████████████████████████████▌ | 71/74 [00:56<00:02, 1.38it/s]
epoch 88 | loss 2.0706114768981934, f_iou 0.6663177609443665: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.38it/s]
epoch 88 | loss 2.0706114768981934, f_iou 0.6663177609443665: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.39it/s]
epoch 88 | loss 1.1951956748962402, f_iou 0.667797863483429: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 88 | loss 1.1951956748962402, f_iou 0.667797863483429: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 88 | loss 0.451772540807724, f_iou 0.670665979385376: 99%|█████████████████████████████████████▍| 73/74 [00:58<00:00, 1.39it/s]
epoch 88 | loss 0.451772540807724, f_iou 0.670665979385376: 100%|██████████████████████████████████████| 74/74 [00:58<00:00, 1.40it/s]
epoch 88 | loss 0.451772540807724, f_iou 0.670665979385376: 100%|██████████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 88 | valid.f_iou 0.7695299983024597, valid.f_f-score 0.87022: 0%| | 0/16 [00:05, ?it/s]
epoch 88 | valid.f_iou 0.7695299983024597, valid.f_f-score 0.87022: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 88 | valid.f_iou 0.6962100267410278, valid.f_f-score 0.83886: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 88 | valid.f_iou 0.6962100267410278, valid.f_f-score 0.83886: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 88 | valid.f_iou 0.5700299739837646, valid.f_f-score 0.75567: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 88 | valid.f_iou 0.5700299739837646, valid.f_f-score 0.75567: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 88 | valid.f_iou 0.6296399831771851, valid.f_f-score 0.78712: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 88 | valid.f_iou 0.6296399831771851, valid.f_f-score 0.78712: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 88 | valid.f_iou 0.632390022277832, valid.f_f-score 0.78783: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 88 | valid.f_iou 0.632390022277832, valid.f_f-score 0.78783: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 88 | valid.f_iou 0.5901100039482117, valid.f_f-score 0.74638: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 88 | valid.f_iou 0.5901100039482117, valid.f_f-score 0.74638: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 88 | valid.f_iou 0.6124899983406067, valid.f_f-score 0.76421: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 88 | valid.f_iou 0.6124899983406067, valid.f_f-score 0.76421: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 88 | valid.f_iou 0.5865200161933899, valid.f_f-score 0.74509: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 88 | valid.f_iou 0.5865200161933899, valid.f_f-score 0.74509: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 88 | valid.f_iou 0.5979800224304199, valid.f_f-score 0.74363: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 88 | valid.f_iou 0.5979800224304199, valid.f_f-score 0.74363: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 88 | valid.f_iou 0.5862799882888794, valid.f_f-score 0.74187: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 88 | valid.f_iou 0.5862799882888794, valid.f_f-score 0.74187: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 88 | valid.f_iou 0.5881699919700623, valid.f_f-score 0.74158: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 88 | valid.f_iou 0.5881699919700623, valid.f_f-score 0.74158: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 88 | valid.f_iou 0.609220027923584, valid.f_f-score 0.75729: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.25it/s]
epoch 88 | valid.f_iou 0.609220027923584, valid.f_f-score 0.75729: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.38it/s]
epoch 88 | valid.f_iou 0.6091399788856506, valid.f_f-score 0.75977: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 88 | valid.f_iou 0.6091399788856506, valid.f_f-score 0.75977: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 88 | valid.f_iou 0.6016600131988525, valid.f_f-score 0.75409: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 88 | valid.f_iou 0.6016600131988525, valid.f_f-score 0.75409: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 88 | valid.f_iou 0.6055399775505066, valid.f_f-score 0.75346: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.55it/s]
epoch 88 | valid.f_iou 0.6055399775505066, valid.f_f-score 0.75346: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 88 | valid.f_iou 0.6051300168037415, valid.f_f-score 0.74969: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 88 | valid.f_iou 0.6051300168037415, valid.f_f-score 0.74969: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 88 | valid.f_iou 0.6051300168037415, valid.f_f-score 0.74969: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 88 | valid.f_iou 0.8243100047111511, valid.f_f-score 0.88803: 0%| | 0/16 [00:04, ?it/s]
epoch 88 | valid.f_iou 0.8243100047111511, valid.f_f-score 0.88803: 6%|█▉ | 1/16 [00:04<01:05, 4.35s/it]
epoch 88 | valid.f_iou 0.8423500061035156, valid.f_f-score 0.90952: 6%|█▉ | 1/16 [00:04<01:05, 4.35s/it]
epoch 88 | valid.f_iou 0.8423500061035156, valid.f_f-score 0.90952: 12%|███▉ | 2/16 [00:04<00:28, 2.06s/it]
epoch 88 | valid.f_iou 0.7164300084114075, valid.f_f-score 0.82447: 12%|███▉ | 2/16 [00:05<00:28, 2.06s/it]
epoch 88 | valid.f_iou 0.7164300084114075, valid.f_f-score 0.82447: 19%|█████▊ | 3/16 [00:05<00:17, 1.34s/it]
epoch 88 | valid.f_iou 0.7005400061607361, valid.f_f-score 0.79627: 19%|█████▊ | 3/16 [00:05<00:17, 1.34s/it]
epoch 88 | valid.f_iou 0.7005400061607361, valid.f_f-score 0.79627: 25%|███████▊ | 4/16 [00:05<00:11, 1.04it/s]
epoch 88 | valid.f_iou 0.6568400263786316, valid.f_f-score 0.76341: 25%|███████▊ | 4/16 [00:06<00:11, 1.04it/s]
epoch 88 | valid.f_iou 0.6568400263786316, valid.f_f-score 0.76341: 31%|█████████▋ | 5/16 [00:06<00:08, 1.28it/s]
epoch 88 | valid.f_iou 0.6334400177001953, valid.f_f-score 0.73699: 31%|█████████▋ | 5/16 [00:06<00:08, 1.28it/s]
epoch 88 | valid.f_iou 0.6334400177001953, valid.f_f-score 0.73699: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 88 | valid.f_iou 0.6680999994277954, valid.f_f-score 0.771: 38%|████████████▍ | 6/16 [00:06<00:06, 1.49it/s]
epoch 88 | valid.f_iou 0.6680999994277954, valid.f_f-score 0.771: 44%|██████████████▍ | 7/16 [00:06<00:05, 1.73it/s]
epoch 88 | valid.f_iou 0.6634899973869324, valid.f_f-score 0.77391: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.73it/s]
epoch 88 | valid.f_iou 0.6634899973869324, valid.f_f-score 0.77391: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 88 | valid.f_iou 0.6797599792480469, valid.f_f-score 0.78754: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.89it/s]
epoch 88 | valid.f_iou 0.6797599792480469, valid.f_f-score 0.78754: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.06it/s]
epoch 88 | valid.f_iou 0.6887400150299072, valid.f_f-score 0.79965: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.06it/s]
epoch 88 | valid.f_iou 0.6887400150299072, valid.f_f-score 0.79965: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 88 | valid.f_iou 0.6883599758148193, valid.f_f-score 0.79694: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.10it/s]
epoch 88 | valid.f_iou 0.6883599758148193, valid.f_f-score 0.79694: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.14it/s]
epoch 88 | valid.f_iou 0.7024999856948853, valid.f_f-score 0.80833: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.14it/s]
epoch 88 | valid.f_iou 0.7024999856948853, valid.f_f-score 0.80833: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.29it/s]
epoch 88 | valid.f_iou 0.7158700227737427, valid.f_f-score 0.81728: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.29it/s]
epoch 88 | valid.f_iou 0.7158700227737427, valid.f_f-score 0.81728: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.41it/s]
epoch 88 | valid.f_iou 0.713379979133606, valid.f_f-score 0.81435: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.41it/s]
epoch 88 | valid.f_iou 0.713379979133606, valid.f_f-score 0.81435: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.49it/s]
epoch 88 | valid.f_iou 0.7212200164794922, valid.f_f-score 0.82307: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 88 | valid.f_iou 0.7212200164794922, valid.f_f-score 0.82307: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.57it/s]
epoch 88 | valid.f_iou 0.7202600240707397, valid.f_f-score 0.82064: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.57it/s]
epoch 88 | valid.f_iou 0.7202600240707397, valid.f_f-score 0.82064: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.62it/s]
epoch 88 | valid.f_iou 0.7202600240707397, valid.f_f-score 0.82064: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 88 | valid.f_iou 0.8243100047111511, valid.f_f-score 0.88803: 0%| | 0/16 [00:04, ?it/s]
epoch 88 | valid.f_iou 0.8243100047111511, valid.f_f-score 0.88803: 6%|█▉ | 1/16 [00:04<01:05, 4.34s/it]
epoch 88 | valid.f_iou 0.8423500061035156, valid.f_f-score 0.90952: 6%|█▉ | 1/16 [00:04<01:05, 4.34s/it]
epoch 88 | valid.f_iou 0.8423500061035156, valid.f_f-score 0.90952: 12%|███▉ | 2/16 [00:04<00:28, 2.05s/it]
epoch 88 | valid.f_iou 0.7164300084114075, valid.f_f-score 0.82447: 12%|███▉ | 2/16 [00:05<00:28, 2.05s/it]
epoch 88 | valid.f_iou 0.7164300084114075, valid.f_f-score 0.82447: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 88 | valid.f_iou 0.6984900236129761, valid.f_f-score 0.78162: 19%|█████▊ | 3/16 [00:05<00:17, 1.32s/it]
epoch 88 | valid.f_iou 0.6984900236129761, valid.f_f-score 0.78162: 25%|███████▊ | 4/16 [00:05<00:11, 1.03it/s]
epoch 88 | valid.f_iou 0.6632699966430664, valid.f_f-score 0.7517: 25%|████████ | 4/16 [00:06<00:11, 1.03it/s]
epoch 88 | valid.f_iou 0.6632699966430664, valid.f_f-score 0.7517: 31%|██████████ | 5/16 [00:06<00:08, 1.29it/s]
epoch 88 | valid.f_iou 0.6387900114059448, valid.f_f-score 0.72723: 31%|█████████▋ | 5/16 [00:06<00:08, 1.29it/s]
epoch 88 | valid.f_iou 0.6387900114059448, valid.f_f-score 0.72723: 38%|███████████▋ | 6/16 [00:06<00:06, 1.57it/s]
epoch 88 | valid.f_iou 0.6753000020980835, valid.f_f-score 0.76263: 38%|███████████▋ | 6/16 [00:06<00:06, 1.57it/s]
epoch 88 | valid.f_iou 0.6753000020980835, valid.f_f-score 0.76263: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.81it/s]
epoch 88 | valid.f_iou 0.6697900295257568, valid.f_f-score 0.76659: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.81it/s]
epoch 88 | valid.f_iou 0.6697900295257568, valid.f_f-score 0.76659: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.02it/s]
epoch 88 | valid.f_iou 0.6870399713516235, valid.f_f-score 0.78103: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.02it/s]
epoch 88 | valid.f_iou 0.6870399713516235, valid.f_f-score 0.78103: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.23it/s]
epoch 88 | valid.f_iou 0.6929100155830383, valid.f_f-score 0.79043: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.23it/s]
epoch 88 | valid.f_iou 0.6929100155830383, valid.f_f-score 0.79043: 62%|██████████████████▊ | 10/16 [00:07<00:02, 2.36it/s]
epoch 88 | valid.f_iou 0.6921600103378296, valid.f_f-score 0.78856: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.36it/s]
epoch 88 | valid.f_iou 0.6921600103378296, valid.f_f-score 0.78856: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.47it/s]
epoch 88 | valid.f_iou 0.7059800028800964, valid.f_f-score 0.80065: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.47it/s]
epoch 88 | valid.f_iou 0.7059800028800964, valid.f_f-score 0.80065: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.54it/s]
epoch 88 | valid.f_iou 0.7190799713134766, valid.f_f-score 0.81102: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 88 | valid.f_iou 0.7190799713134766, valid.f_f-score 0.81102: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 88 | valid.f_iou 0.7163500189781189, valid.f_f-score 0.80854: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 88 | valid.f_iou 0.7163500189781189, valid.f_f-score 0.80854: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.63it/s]
epoch 88 | valid.f_iou 0.7239999771118164, valid.f_f-score 0.81764: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.63it/s]
epoch 88 | valid.f_iou 0.7239999771118164, valid.f_f-score 0.81764: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.63it/s]
epoch 88 | valid.f_iou 0.7217900156974792, valid.f_f-score 0.81278: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 88 | valid.f_iou 0.7217900156974792, valid.f_f-score 0.81278: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 88 | valid.f_iou 0.7217900156974792, valid.f_f-score 0.81278: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.58it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 89 | loss 1.7637654542922974, f_iou 0.6685829162597656: 0%| | 0/74 [00:05, ?it/s]
epoch 89 | loss 1.7637654542922974, f_iou 0.6685829162597656: 1%|▌ | 1/74 [00:05<06:57, 5.72s/it]
epoch 89 | loss 0.6023277044296265, f_iou 0.7961030006408691: 1%|▌ | 1/74 [00:06<06:57, 5.72s/it]
epoch 89 | loss 0.6023277044296265, f_iou 0.7961030006408691: 3%|█ | 2/74 [00:06<03:25, 2.85s/it]
epoch 89 | loss 1.028280258178711, f_iou 0.819244384765625: 3%|█ | 2/74 [00:07<03:25, 2.85s/it]
epoch 89 | loss 1.028280258178711, f_iou 0.819244384765625: 4%|█▌ | 3/74 [00:07<02:20, 1.97s/it]
epoch 89 | loss 0.8383992314338684, f_iou 0.792810320854187: 4%|█▌ | 3/74 [00:08<02:20, 1.97s/it]
epoch 89 | loss 0.8383992314338684, f_iou 0.792810320854187: 5%|██ | 4/74 [00:08<01:48, 1.55s/it]
epoch 89 | loss 1.5860576629638672, f_iou 0.7898200750350952: 5%|██ | 4/74 [00:09<01:48, 1.55s/it]
epoch 89 | loss 1.5860576629638672, f_iou 0.7898200750350952: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 89 | loss 0.3496471643447876, f_iou 0.8126779794692993: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 89 | loss 0.3496471643447876, f_iou 0.8126779794692993: 8%|███ | 6/74 [00:09<01:15, 1.10s/it]
epoch 89 | loss 0.8904696702957153, f_iou 0.8133111596107483: 8%|███ | 6/74 [00:10<01:15, 1.10s/it]
epoch 89 | loss 0.8904696702957153, f_iou 0.8133111596107483: 9%|███▌ | 7/74 [00:10<01:07, 1.00s/it]
epoch 89 | loss 1.8069357872009277, f_iou 0.78685063123703: 9%|███▋ | 7/74 [00:11<01:07, 1.00s/it]
epoch 89 | loss 1.8069357872009277, f_iou 0.78685063123703: 11%|████▏ | 8/74 [00:11<01:00, 1.09it/s]
epoch 89 | loss 1.0698926448822021, f_iou 0.7948365807533264: 11%|████ | 8/74 [00:12<01:00, 1.09it/s]
epoch 89 | loss 1.0698926448822021, f_iou 0.7948365807533264: 12%|████▌ | 9/74 [00:12<00:55, 1.16it/s]
epoch 89 | loss 3.778541088104248, f_iou 0.7313429713249207: 12%|████▌ | 9/74 [00:12<00:55, 1.16it/s]
epoch 89 | loss 3.778541088104248, f_iou 0.7313429713249207: 14%|█████ | 10/74 [00:12<00:52, 1.22it/s]
epoch 89 | loss 1.552169680595398, f_iou 0.7202306985855103: 14%|█████ | 10/74 [00:13<00:52, 1.22it/s]
epoch 89 | loss 1.552169680595398, f_iou 0.7202306985855103: 15%|█████▌ | 11/74 [00:13<00:50, 1.26it/s]
epoch 89 | loss 0.866327166557312, f_iou 0.660211443901062: 15%|█████▋ | 11/74 [00:14<00:50, 1.26it/s]
epoch 89 | loss 0.866327166557312, f_iou 0.660211443901062: 16%|██████▏ | 12/74 [00:14<00:47, 1.30it/s]
epoch 89 | loss 0.8060132265090942, f_iou 0.6787171363830566: 16%|█████▊ | 12/74 [00:15<00:47, 1.30it/s]
epoch 89 | loss 0.8060132265090942, f_iou 0.6787171363830566: 18%|██████▎ | 13/74 [00:15<00:46, 1.32it/s]
epoch 89 | loss 0.924021303653717, f_iou 0.6927772760391235: 18%|██████▌ | 13/74 [00:15<00:46, 1.32it/s]
epoch 89 | loss 0.924021303653717, f_iou 0.6927772760391235: 19%|███████ | 14/74 [00:15<00:44, 1.35it/s]
epoch 89 | loss 1.2405728101730347, f_iou 0.6466460227966309: 19%|██████▊ | 14/74 [00:16<00:44, 1.35it/s]
epoch 89 | loss 1.2405728101730347, f_iou 0.6466460227966309: 20%|███████▎ | 15/74 [00:16<00:43, 1.36it/s]
epoch 89 | loss 0.5655596256256104, f_iou 0.6657227873802185: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 89 | loss 0.5655596256256104, f_iou 0.6657227873802185: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 89 | loss 0.7494320273399353, f_iou 0.6753940582275391: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 89 | loss 0.7494320273399353, f_iou 0.6753940582275391: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 89 | loss 1.8113296031951904, f_iou 0.6629201173782349: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 89 | loss 1.8113296031951904, f_iou 0.6629201173782349: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 89 | loss 1.140263557434082, f_iou 0.6608681082725525: 24%|█████████ | 18/74 [00:19<00:40, 1.38it/s]
epoch 89 | loss 1.140263557434082, f_iou 0.6608681082725525: 26%|█████████▌ | 19/74 [00:19<00:39, 1.38it/s]
epoch 89 | loss 0.8729519844055176, f_iou 0.654812753200531: 26%|█████████▌ | 19/74 [00:20<00:39, 1.38it/s]
epoch 89 | loss 0.8729519844055176, f_iou 0.654812753200531: 27%|██████████ | 20/74 [00:20<00:39, 1.38it/s]
epoch 89 | loss 0.6980912089347839, f_iou 0.667467474937439: 27%|██████████ | 20/74 [00:20<00:39, 1.38it/s]
epoch 89 | loss 0.6980912089347839, f_iou 0.667467474937439: 28%|██████████▌ | 21/74 [00:20<00:38, 1.37it/s]
epoch 89 | loss 1.3284581899642944, f_iou 0.6752035617828369: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 89 | loss 1.3284581899642944, f_iou 0.6752035617828369: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 89 | loss 1.6875550746917725, f_iou 0.6826779246330261: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 89 | loss 1.6875550746917725, f_iou 0.6826779246330261: 31%|███████████▏ | 23/74 [00:22<00:36, 1.38it/s]
epoch 89 | loss 3.0559160709381104, f_iou 0.6784869432449341: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 89 | loss 3.0559160709381104, f_iou 0.6784869432449341: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 89 | loss 1.066011905670166, f_iou 0.6892902851104736: 32%|████████████ | 24/74 [00:23<00:36, 1.39it/s]
epoch 89 | loss 1.066011905670166, f_iou 0.6892902851104736: 34%|████████████▌ | 25/74 [00:23<00:35, 1.38it/s]
epoch 89 | loss 0.9415420889854431, f_iou 0.6906389594078064: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 89 | loss 0.9415420889854431, f_iou 0.6906389594078064: 35%|████████████▋ | 26/74 [00:24<00:35, 1.35it/s]
epoch 89 | loss 1.2946316003799438, f_iou 0.6694666743278503: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 89 | loss 1.2946316003799438, f_iou 0.6694666743278503: 36%|█████████████▏ | 27/74 [00:25<00:35, 1.33it/s]
epoch 89 | loss 0.0, f_iou 0.6811034679412842: 36%|██████████████████▌ | 27/74 [00:26<00:35, 1.33it/s]
epoch 89 | loss 0.0, f_iou 0.6811034679412842: 38%|███████████████████▎ | 28/74 [00:26<00:35, 1.31it/s]
epoch 89 | loss 6.147164821624756, f_iou 0.6713442206382751: 38%|██████████████ | 28/74 [00:26<00:35, 1.31it/s]
epoch 89 | loss 6.147164821624756, f_iou 0.6713442206382751: 39%|██████████████▌ | 29/74 [00:26<00:34, 1.30it/s]
epoch 89 | loss 1.0618876218795776, f_iou 0.6657698154449463: 39%|██████████████ | 29/74 [00:27<00:34, 1.30it/s]
epoch 89 | loss 1.0618876218795776, f_iou 0.6657698154449463: 41%|██████████████▌ | 30/74 [00:27<00:33, 1.30it/s]
epoch 89 | loss 0.5366829633712769, f_iou 0.6757121086120605: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.30it/s]
epoch 89 | loss 0.5366829633712769, f_iou 0.6757121086120605: 42%|███████████████ | 31/74 [00:28<00:32, 1.32it/s]
epoch 89 | loss 0.6176118850708008, f_iou 0.6837735176086426: 42%|███████████████ | 31/74 [00:29<00:32, 1.32it/s]
epoch 89 | loss 0.6176118850708008, f_iou 0.6837735176086426: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.34it/s]
epoch 89 | loss 1.20292329788208, f_iou 0.6916966438293457: 43%|████████████████▍ | 32/74 [00:29<00:31, 1.34it/s]
epoch 89 | loss 1.20292329788208, f_iou 0.6916966438293457: 45%|████████████████▉ | 33/74 [00:29<00:30, 1.36it/s]
epoch 89 | loss 0.6143525838851929, f_iou 0.6969602108001709: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 89 | loss 0.6143525838851929, f_iou 0.6969602108001709: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.36it/s]
epoch 89 | loss 2.6574995517730713, f_iou 0.6858231425285339: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 89 | loss 2.6574995517730713, f_iou 0.6858231425285339: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 89 | loss 0.7149090766906738, f_iou 0.6667724847793579: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 89 | loss 0.7149090766906738, f_iou 0.6667724847793579: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 89 | loss 1.1534547805786133, f_iou 0.6648623943328857: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 89 | loss 1.1534547805786133, f_iou 0.6648623943328857: 50%|██████████████████ | 37/74 [00:32<00:26, 1.38it/s]
epoch 89 | loss 1.84147310256958, f_iou 0.6663292646408081: 50%|███████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 89 | loss 1.84147310256958, f_iou 0.6663292646408081: 51%|███████████████████▌ | 38/74 [00:33<00:26, 1.38it/s]
epoch 89 | loss 2.2691292762756348, f_iou 0.6619693636894226: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 89 | loss 2.2691292762756348, f_iou 0.6619693636894226: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 89 | loss 0.9486271142959595, f_iou 0.6593889594078064: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 89 | loss 0.9486271142959595, f_iou 0.6593889594078064: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.35it/s]
epoch 89 | loss 6.007645130157471, f_iou 0.6472585201263428: 54%|████████████████████ | 40/74 [00:35<00:25, 1.35it/s]
epoch 89 | loss 6.007645130157471, f_iou 0.6472585201263428: 55%|████████████████████▌ | 41/74 [00:35<00:24, 1.36it/s]
epoch 89 | loss 0.9823164939880371, f_iou 0.634559690952301: 55%|████████████████████▌ | 41/74 [00:36<00:24, 1.36it/s]
epoch 89 | loss 0.9823164939880371, f_iou 0.634559690952301: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.34it/s]
epoch 89 | loss 1.1224004030227661, f_iou 0.6303368806838989: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.34it/s]
epoch 89 | loss 1.1224004030227661, f_iou 0.6303368806838989: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.31it/s]
epoch 89 | loss 1.3401135206222534, f_iou 0.6294125318527222: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.31it/s]
epoch 89 | loss 1.3401135206222534, f_iou 0.6294125318527222: 59%|█████████████████████▍ | 44/74 [00:38<00:23, 1.30it/s]
epoch 89 | loss 2.1665709018707275, f_iou 0.6170031428337097: 59%|█████████████████████▍ | 44/74 [00:38<00:23, 1.30it/s]
epoch 89 | loss 2.1665709018707275, f_iou 0.6170031428337097: 61%|█████████████████████▉ | 45/74 [00:38<00:22, 1.32it/s]
epoch 89 | loss 1.5170032978057861, f_iou 0.6178303956985474: 61%|█████████████████████▉ | 45/74 [00:39<00:22, 1.32it/s]
epoch 89 | loss 1.5170032978057861, f_iou 0.6178303956985474: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.34it/s]
epoch 89 | loss 11.899786949157715, f_iou 0.6104310750961304: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.34it/s]
epoch 89 | loss 11.899786949157715, f_iou 0.6104310750961304: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.35it/s]
epoch 89 | loss 0.7238578200340271, f_iou 0.6008375883102417: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.35it/s]
epoch 89 | loss 0.7238578200340271, f_iou 0.6008375883102417: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.36it/s]
epoch 89 | loss 1.262619972229004, f_iou 0.5894402265548706: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.36it/s]
epoch 89 | loss 1.262619972229004, f_iou 0.5894402265548706: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.37it/s]
epoch 89 | loss 0.599440336227417, f_iou 0.5956300497055054: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.37it/s]
epoch 89 | loss 0.599440336227417, f_iou 0.5956300497055054: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.37it/s]
epoch 89 | loss 1.2014578580856323, f_iou 0.5949634909629822: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.37it/s]
epoch 89 | loss 1.2014578580856323, f_iou 0.5949634909629822: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 89 | loss 0.6928050518035889, f_iou 0.5841960310935974: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 89 | loss 0.6928050518035889, f_iou 0.5841960310935974: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.38it/s]
epoch 89 | loss 1.2589902877807617, f_iou 0.5873467922210693: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 89 | loss 1.2589902877807617, f_iou 0.5873467922210693: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.34it/s]
epoch 89 | loss 2.0743050575256348, f_iou 0.5879954695701599: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.34it/s]
epoch 89 | loss 2.0743050575256348, f_iou 0.5879954695701599: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.34it/s]
epoch 89 | loss 1.715590000152588, f_iou 0.5787767767906189: 73%|███████████████████████████ | 54/74 [00:46<00:14, 1.34it/s]
epoch 89 | loss 1.715590000152588, f_iou 0.5787767767906189: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.33it/s]
epoch 89 | loss 1.638038158416748, f_iou 0.5733703970909119: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.33it/s]
epoch 89 | loss 1.638038158416748, f_iou 0.5733703970909119: 76%|████████████████████████████ | 56/74 [00:46<00:13, 1.31it/s]
epoch 89 | loss 1.771490216255188, f_iou 0.5706430673599243: 76%|████████████████████████████ | 56/74 [00:47<00:13, 1.31it/s]
epoch 89 | loss 1.771490216255188, f_iou 0.5706430673599243: 77%|████████████████████████████▌ | 57/74 [00:47<00:13, 1.29it/s]
epoch 89 | loss 0.751034140586853, f_iou 0.5718814730644226: 77%|████████████████████████████▌ | 57/74 [00:48<00:13, 1.29it/s]
epoch 89 | loss 0.751034140586853, f_iou 0.5718814730644226: 78%|█████████████████████████████ | 58/74 [00:48<00:12, 1.29it/s]
epoch 89 | loss 1.7345516681671143, f_iou 0.5675872564315796: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.29it/s]
epoch 89 | loss 1.7345516681671143, f_iou 0.5675872564315796: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.30it/s]
epoch 89 | loss 2.4728024005889893, f_iou 0.5656536221504211: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.30it/s]
epoch 89 | loss 2.4728024005889893, f_iou 0.5656536221504211: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.30it/s]
epoch 89 | loss 1.0045415163040161, f_iou 0.5712931156158447: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.30it/s]
epoch 89 | loss 1.0045415163040161, f_iou 0.5712931156158447: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.32it/s]
epoch 89 | loss 1.5243299007415771, f_iou 0.5734197497367859: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.32it/s]
epoch 89 | loss 1.5243299007415771, f_iou 0.5734197497367859: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.33it/s]
epoch 89 | loss 2.9132578372955322, f_iou 0.5698572397232056: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.33it/s]
epoch 89 | loss 2.9132578372955322, f_iou 0.5698572397232056: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.35it/s]
epoch 89 | loss 0.5396755337715149, f_iou 0.5731857419013977: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.35it/s]
epoch 89 | loss 0.5396755337715149, f_iou 0.5731857419013977: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.36it/s]
epoch 89 | loss 0.6573519706726074, f_iou 0.5785214900970459: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.36it/s]
epoch 89 | loss 0.6573519706726074, f_iou 0.5785214900970459: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.34it/s]
epoch 89 | loss 2.580521583557129, f_iou 0.5771859288215637: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.34it/s]
epoch 89 | loss 2.580521583557129, f_iou 0.5771859288215637: 89%|█████████████████████████████████ | 66/74 [00:54<00:05, 1.35it/s]
epoch 89 | loss 0.4520834684371948, f_iou 0.5831997394561768: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.35it/s]
epoch 89 | loss 0.4520834684371948, f_iou 0.5831997394561768: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 89 | loss 0.3109956681728363, f_iou 0.5889000296592712: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.37it/s]
epoch 89 | loss 0.3109956681728363, f_iou 0.5889000296592712: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 89 | loss 1.0191501379013062, f_iou 0.5858557820320129: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 89 | loss 1.0191501379013062, f_iou 0.5858557820320129: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.38it/s]
epoch 89 | loss 0.5082148909568787, f_iou 0.5904585123062134: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.38it/s]
epoch 89 | loss 0.5082148909568787, f_iou 0.5904585123062134: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 89 | loss 1.723480224609375, f_iou 0.590364396572113: 95%|███████████████████████████████████▉ | 70/74 [00:57<00:02, 1.39it/s]
epoch 89 | loss 1.723480224609375, f_iou 0.590364396572113: 96%|████████████████████████████████████▍ | 71/74 [00:57<00:02, 1.40it/s]
epoch 89 | loss 3.0050458908081055, f_iou 0.5877469182014465: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 89 | loss 3.0050458908081055, f_iou 0.5877469182014465: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 89 | loss 0.3948846459388733, f_iou 0.5930215716362: 97%|█████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.40it/s]
epoch 89 | loss 0.3948846459388733, f_iou 0.5930215716362: 99%|██████████████████████████████████████▍| 73/74 [00:59<00:00, 1.40it/s]
epoch 89 | loss 0.22786356508731842, f_iou 0.5961920619010925: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 89 | loss 0.22786356508731842, f_iou 0.5961920619010925: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 89 | loss 0.22786356508731842, f_iou 0.5961920619010925: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 89 | valid.f_iou 0.6452299952507019, valid.f_f-score 0.84562: 0%| | 0/16 [00:05, ?it/s]
epoch 89 | valid.f_iou 0.6452299952507019, valid.f_f-score 0.84562: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 89 | valid.f_iou 0.5480999946594238, valid.f_f-score 0.81515: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 89 | valid.f_iou 0.5480999946594238, valid.f_f-score 0.81515: 12%|███▉ | 2/16 [00:05<00:35, 2.54s/it]
epoch 89 | valid.f_iou 0.45388999581336975, valid.f_f-score 0.75241: 12%|███▊ | 2/16 [00:06<00:35, 2.54s/it]
epoch 89 | valid.f_iou 0.45388999581336975, valid.f_f-score 0.75241: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 89 | valid.f_iou 0.4550899863243103, valid.f_f-score 0.73713: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 89 | valid.f_iou 0.4550899863243103, valid.f_f-score 0.73713: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 89 | valid.f_iou 0.47637999057769775, valid.f_f-score 0.74042: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 89 | valid.f_iou 0.47637999057769775, valid.f_f-score 0.74042: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 89 | valid.f_iou 0.4408400058746338, valid.f_f-score 0.68783: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 89 | valid.f_iou 0.4408400058746338, valid.f_f-score 0.68783: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 89 | valid.f_iou 0.4408400058746338, valid.f_f-score 0.70849: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 89 | valid.f_iou 0.4408400058746338, valid.f_f-score 0.70849: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 89 | valid.f_iou 0.426800012588501, valid.f_f-score 0.69113: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 89 | valid.f_iou 0.426800012588501, valid.f_f-score 0.69113: 50%|████████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 89 | valid.f_iou 0.45708000659942627, valid.f_f-score 0.69701: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 89 | valid.f_iou 0.45708000659942627, valid.f_f-score 0.69701: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.97it/s]
epoch 89 | valid.f_iou 0.45333999395370483, valid.f_f-score 0.69594: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 89 | valid.f_iou 0.45333999395370483, valid.f_f-score 0.69594: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 89 | valid.f_iou 0.4645799994468689, valid.f_f-score 0.69882: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 89 | valid.f_iou 0.4645799994468689, valid.f_f-score 0.69882: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 89 | valid.f_iou 0.4631499946117401, valid.f_f-score 0.71176: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.20it/s]
epoch 89 | valid.f_iou 0.4631499946117401, valid.f_f-score 0.71176: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 89 | valid.f_iou 0.4582200050354004, valid.f_f-score 0.71311: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.34it/s]
epoch 89 | valid.f_iou 0.4582200050354004, valid.f_f-score 0.71311: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.45it/s]
epoch 89 | valid.f_iou 0.45910999178886414, valid.f_f-score 0.70893: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.45it/s]
epoch 89 | valid.f_iou 0.45910999178886414, valid.f_f-score 0.70893: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.52it/s]
epoch 89 | valid.f_iou 0.4731599986553192, valid.f_f-score 0.71136: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 89 | valid.f_iou 0.4731599986553192, valid.f_f-score 0.71136: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 89 | valid.f_iou 0.4817799925804138, valid.f_f-score 0.71115: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 89 | valid.f_iou 0.4817799925804138, valid.f_f-score 0.71115: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.43it/s]
epoch 89 | valid.f_iou 0.4817799925804138, valid.f_f-score 0.71115: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 89 | valid.f_iou 0.7888200283050537, valid.f_f-score 0.84076: 0%| | 0/16 [00:05, ?it/s]
epoch 89 | valid.f_iou 0.7888200283050537, valid.f_f-score 0.84076: 6%|█▉ | 1/16 [00:05<01:18, 5.26s/it]
epoch 89 | valid.f_iou 0.8199899792671204, valid.f_f-score 0.88889: 6%|█▉ | 1/16 [00:05<01:18, 5.26s/it]
epoch 89 | valid.f_iou 0.8199899792671204, valid.f_f-score 0.88889: 12%|███▉ | 2/16 [00:05<00:34, 2.43s/it]
epoch 89 | valid.f_iou 0.7825400233268738, valid.f_f-score 0.88143: 12%|███▉ | 2/16 [00:06<00:34, 2.43s/it]
epoch 89 | valid.f_iou 0.7825400233268738, valid.f_f-score 0.88143: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 89 | valid.f_iou 0.7742499709129333, valid.f_f-score 0.8557: 19%|██████ | 3/16 [00:06<00:19, 1.54s/it]
epoch 89 | valid.f_iou 0.7742499709129333, valid.f_f-score 0.8557: 25%|████████ | 4/16 [00:06<00:13, 1.09s/it]
epoch 89 | valid.f_iou 0.7395099997520447, valid.f_f-score 0.83728: 25%|███████▊ | 4/16 [00:07<00:13, 1.09s/it]
epoch 89 | valid.f_iou 0.7395099997520447, valid.f_f-score 0.83728: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 89 | valid.f_iou 0.7080900073051453, valid.f_f-score 0.81491: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 89 | valid.f_iou 0.7080900073051453, valid.f_f-score 0.81491: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 89 | valid.f_iou 0.7242100238800049, valid.f_f-score 0.8322: 38%|████████████ | 6/16 [00:07<00:07, 1.38it/s]
epoch 89 | valid.f_iou 0.7242100238800049, valid.f_f-score 0.8322: 44%|██████████████ | 7/16 [00:07<00:05, 1.55it/s]
epoch 89 | valid.f_iou 0.7036399841308594, valid.f_f-score 0.82679: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 89 | valid.f_iou 0.7036399841308594, valid.f_f-score 0.82679: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 89 | valid.f_iou 0.7131500244140625, valid.f_f-score 0.83022: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 89 | valid.f_iou 0.7131500244140625, valid.f_f-score 0.83022: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.88it/s]
epoch 89 | valid.f_iou 0.7211199998855591, valid.f_f-score 0.83784: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 89 | valid.f_iou 0.7211199998855591, valid.f_f-score 0.83784: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 89 | valid.f_iou 0.7122499942779541, valid.f_f-score 0.81995: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 89 | valid.f_iou 0.7122499942779541, valid.f_f-score 0.81995: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 89 | valid.f_iou 0.7237100005149841, valid.f_f-score 0.82904: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.24it/s]
epoch 89 | valid.f_iou 0.7237100005149841, valid.f_f-score 0.82904: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.36it/s]
epoch 89 | valid.f_iou 0.7348700165748596, valid.f_f-score 0.83672: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.36it/s]
epoch 89 | valid.f_iou 0.7348700165748596, valid.f_f-score 0.83672: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 89 | valid.f_iou 0.7272700071334839, valid.f_f-score 0.82929: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 89 | valid.f_iou 0.7272700071334839, valid.f_f-score 0.82929: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 89 | valid.f_iou 0.7284299731254578, valid.f_f-score 0.83226: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 89 | valid.f_iou 0.7284299731254578, valid.f_f-score 0.83226: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 89 | valid.f_iou 0.7267400026321411, valid.f_f-score 0.82932: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 89 | valid.f_iou 0.7267400026321411, valid.f_f-score 0.82932: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 89 | valid.f_iou 0.7267400026321411, valid.f_f-score 0.82932: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 89 | valid.f_iou 0.7888200283050537, valid.f_f-score 0.84076: 0%| | 0/16 [00:05, ?it/s]
epoch 89 | valid.f_iou 0.7888200283050537, valid.f_f-score 0.84076: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 89 | valid.f_iou 0.8199899792671204, valid.f_f-score 0.88889: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 89 | valid.f_iou 0.8199899792671204, valid.f_f-score 0.88889: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 89 | valid.f_iou 0.7825400233268738, valid.f_f-score 0.88143: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 89 | valid.f_iou 0.7825400233268738, valid.f_f-score 0.88143: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 89 | valid.f_iou 0.7745000123977661, valid.f_f-score 0.8557: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 89 | valid.f_iou 0.7745000123977661, valid.f_f-score 0.8557: 25%|████████ | 4/16 [00:06<00:13, 1.11s/it]
epoch 89 | valid.f_iou 0.7457500100135803, valid.f_f-score 0.83728: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 89 | valid.f_iou 0.7457500100135803, valid.f_f-score 0.83728: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 89 | valid.f_iou 0.7132899761199951, valid.f_f-score 0.81491: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 89 | valid.f_iou 0.7132899761199951, valid.f_f-score 0.81491: 38%|███████████▋ | 6/16 [00:07<00:07, 1.39it/s]
epoch 89 | valid.f_iou 0.7304900288581848, valid.f_f-score 0.8322: 38%|████████████ | 6/16 [00:08<00:07, 1.39it/s]
epoch 89 | valid.f_iou 0.7304900288581848, valid.f_f-score 0.8322: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 89 | valid.f_iou 0.7091299891471863, valid.f_f-score 0.82679: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 89 | valid.f_iou 0.7091299891471863, valid.f_f-score 0.82679: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 89 | valid.f_iou 0.7227100133895874, valid.f_f-score 0.83022: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 89 | valid.f_iou 0.7227100133895874, valid.f_f-score 0.83022: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 89 | valid.f_iou 0.7266299724578857, valid.f_f-score 0.83464: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 89 | valid.f_iou 0.7266299724578857, valid.f_f-score 0.83464: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 89 | valid.f_iou 0.7172499895095825, valid.f_f-score 0.81705: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 89 | valid.f_iou 0.7172499895095825, valid.f_f-score 0.81705: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 89 | valid.f_iou 0.7282900214195251, valid.f_f-score 0.82637: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 89 | valid.f_iou 0.7282900214195251, valid.f_f-score 0.82637: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 89 | valid.f_iou 0.7384600043296814, valid.f_f-score 0.83367: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 89 | valid.f_iou 0.7384600043296814, valid.f_f-score 0.83367: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 89 | valid.f_iou 0.7305999994277954, valid.f_f-score 0.82646: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.47it/s]
epoch 89 | valid.f_iou 0.7305999994277954, valid.f_f-score 0.82646: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 89 | valid.f_iou 0.7315499782562256, valid.f_f-score 0.82962: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.54it/s]
epoch 89 | valid.f_iou 0.7315499782562256, valid.f_f-score 0.82962: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 89 | valid.f_iou 0.7284799814224243, valid.f_f-score 0.82378: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 89 | valid.f_iou 0.7284799814224243, valid.f_f-score 0.82378: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 89 | valid.f_iou 0.7284799814224243, valid.f_f-score 0.82378: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 90 | loss 2.2716917991638184, f_iou 0.37201130390167236: 0%| | 0/74 [00:05, ?it/s]
epoch 90 | loss 2.2716917991638184, f_iou 0.37201130390167236: 1%|▍ | 1/74 [00:05<06:33, 5.39s/it]
epoch 90 | loss 0.8724753260612488, f_iou 0.6462385654449463: 1%|▌ | 1/74 [00:06<06:33, 5.39s/it]
epoch 90 | loss 0.8724753260612488, f_iou 0.6462385654449463: 3%|█ | 2/74 [00:06<03:15, 2.72s/it]
epoch 90 | loss 1.5241544246673584, f_iou 0.72404545545578: 3%|█ | 2/74 [00:07<03:15, 2.72s/it]
epoch 90 | loss 1.5241544246673584, f_iou 0.72404545545578: 4%|█▌ | 3/74 [00:07<02:11, 1.85s/it]
epoch 90 | loss 1.080755591392517, f_iou 0.7572165727615356: 4%|█▌ | 3/74 [00:07<02:11, 1.85s/it]
epoch 90 | loss 1.080755591392517, f_iou 0.7572165727615356: 5%|██ | 4/74 [00:07<01:42, 1.46s/it]
epoch 90 | loss 1.4713225364685059, f_iou 0.6302773356437683: 5%|██ | 4/74 [00:08<01:42, 1.46s/it]
epoch 90 | loss 1.4713225364685059, f_iou 0.6302773356437683: 7%|██▌ | 5/74 [00:08<01:24, 1.22s/it]
epoch 90 | loss 1.0780065059661865, f_iou 0.6718754768371582: 7%|██▌ | 5/74 [00:09<01:24, 1.22s/it]
epoch 90 | loss 1.0780065059661865, f_iou 0.6718754768371582: 8%|███ | 6/74 [00:09<01:12, 1.07s/it]
epoch 90 | loss 1.1137586832046509, f_iou 0.6818419694900513: 8%|███ | 6/74 [00:10<01:12, 1.07s/it]
epoch 90 | loss 1.1137586832046509, f_iou 0.6818419694900513: 9%|███▌ | 7/74 [00:10<01:05, 1.02it/s]
epoch 90 | loss 2.068289279937744, f_iou 0.6808884143829346: 9%|███▌ | 7/74 [00:11<01:05, 1.02it/s]
epoch 90 | loss 2.068289279937744, f_iou 0.6808884143829346: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 90 | loss 0.9069312214851379, f_iou 0.6803701519966125: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 90 | loss 0.9069312214851379, f_iou 0.6803701519966125: 12%|████▌ | 9/74 [00:11<00:57, 1.14it/s]
epoch 90 | loss 0.6357752680778503, f_iou 0.7031539082527161: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 90 | loss 0.6357752680778503, f_iou 0.7031539082527161: 14%|████▊ | 10/74 [00:12<00:53, 1.19it/s]
epoch 90 | loss 1.8747880458831787, f_iou 0.6686872839927673: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 90 | loss 1.8747880458831787, f_iou 0.6686872839927673: 15%|█████▎ | 11/74 [00:13<00:50, 1.24it/s]
epoch 90 | loss 0.6578294038772583, f_iou 0.6272666454315186: 15%|█████▎ | 11/74 [00:14<00:50, 1.24it/s]
epoch 90 | loss 0.6578294038772583, f_iou 0.6272666454315186: 16%|█████▊ | 12/74 [00:14<00:48, 1.29it/s]
epoch 90 | loss 1.6560534238815308, f_iou 0.5967132449150085: 16%|█████▊ | 12/74 [00:14<00:48, 1.29it/s]
epoch 90 | loss 1.6560534238815308, f_iou 0.5967132449150085: 18%|██████▎ | 13/74 [00:14<00:46, 1.31it/s]
epoch 90 | loss 1.6939274072647095, f_iou 0.594836413860321: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 90 | loss 1.6939274072647095, f_iou 0.594836413860321: 19%|███████ | 14/74 [00:15<00:44, 1.34it/s]
epoch 90 | loss 1.2050158977508545, f_iou 0.576474666595459: 19%|███████ | 14/74 [00:16<00:44, 1.34it/s]
epoch 90 | loss 1.2050158977508545, f_iou 0.576474666595459: 20%|███████▌ | 15/74 [00:16<00:43, 1.36it/s]
epoch 90 | loss 1.8612675666809082, f_iou 0.554054319858551: 20%|███████▌ | 15/74 [00:16<00:43, 1.36it/s]
epoch 90 | loss 1.8612675666809082, f_iou 0.554054319858551: 22%|████████ | 16/74 [00:16<00:42, 1.37it/s]
epoch 90 | loss 3.052220106124878, f_iou 0.5470172166824341: 22%|████████ | 16/74 [00:17<00:42, 1.37it/s]
epoch 90 | loss 3.052220106124878, f_iou 0.5470172166824341: 23%|████████▌ | 17/74 [00:17<00:41, 1.37it/s]
epoch 90 | loss 1.0513087511062622, f_iou 0.5346539616584778: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 90 | loss 1.0513087511062622, f_iou 0.5346539616584778: 24%|████████▊ | 18/74 [00:18<00:43, 1.29it/s]
epoch 90 | loss 0.8226088881492615, f_iou 0.5302855968475342: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 90 | loss 0.8226088881492615, f_iou 0.5302855968475342: 26%|█████████▏ | 19/74 [00:19<00:41, 1.32it/s]
epoch 90 | loss 0.7846030592918396, f_iou 0.5510578155517578: 26%|█████████▏ | 19/74 [00:19<00:41, 1.32it/s]
epoch 90 | loss 0.7846030592918396, f_iou 0.5510578155517578: 27%|█████████▋ | 20/74 [00:19<00:40, 1.34it/s]
epoch 90 | loss 1.213038682937622, f_iou 0.552884578704834: 27%|██████████▎ | 20/74 [00:20<00:40, 1.34it/s]
epoch 90 | loss 1.213038682937622, f_iou 0.552884578704834: 28%|██████████▊ | 21/74 [00:20<00:39, 1.35it/s]
epoch 90 | loss 3.055020332336426, f_iou 0.5450905561447144: 28%|██████████▌ | 21/74 [00:21<00:39, 1.35it/s]
epoch 90 | loss 3.055020332336426, f_iou 0.5450905561447144: 30%|███████████ | 22/74 [00:21<00:38, 1.36it/s]
epoch 90 | loss 1.2619500160217285, f_iou 0.5424953103065491: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 90 | loss 1.2619500160217285, f_iou 0.5424953103065491: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 90 | loss 1.5179134607315063, f_iou 0.5543952584266663: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 90 | loss 1.5179134607315063, f_iou 0.5543952584266663: 32%|███████████▋ | 24/74 [00:22<00:36, 1.38it/s]
epoch 90 | loss 0.40199270844459534, f_iou 0.5710157752037048: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 90 | loss 0.40199270844459534, f_iou 0.5710157752037048: 34%|███████████▊ | 25/74 [00:23<00:35, 1.38it/s]
epoch 90 | loss 0.3865472972393036, f_iou 0.5821434259414673: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 90 | loss 0.3865472972393036, f_iou 0.5821434259414673: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 90 | loss 0.2929209768772125, f_iou 0.5870422720909119: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 90 | loss 0.2929209768772125, f_iou 0.5870422720909119: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 90 | loss 1.135683536529541, f_iou 0.579838752746582: 36%|█████████████▊ | 27/74 [00:25<00:33, 1.39it/s]
epoch 90 | loss 1.135683536529541, f_iou 0.579838752746582: 38%|██████████████▍ | 28/74 [00:25<00:33, 1.39it/s]
epoch 90 | loss 0.7757762670516968, f_iou 0.5849118232727051: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 90 | loss 0.7757762670516968, f_iou 0.5849118232727051: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 90 | loss 1.106179118156433, f_iou 0.5928452610969543: 39%|██████████████▌ | 29/74 [00:27<00:32, 1.39it/s]
epoch 90 | loss 1.106179118156433, f_iou 0.5928452610969543: 41%|███████████████ | 30/74 [00:27<00:31, 1.39it/s]
epoch 90 | loss 0.5161680579185486, f_iou 0.6020522117614746: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 90 | loss 0.5161680579185486, f_iou 0.6020522117614746: 42%|███████████████ | 31/74 [00:27<00:30, 1.39it/s]
epoch 90 | loss 1.4802747964859009, f_iou 0.597886860370636: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.39it/s]
epoch 90 | loss 1.4802747964859009, f_iou 0.597886860370636: 43%|████████████████ | 32/74 [00:28<00:30, 1.39it/s]
epoch 90 | loss 0.6394015550613403, f_iou 0.6086379885673523: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 90 | loss 0.6394015550613403, f_iou 0.6086379885673523: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 90 | loss 1.4606945514678955, f_iou 0.6086039543151855: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 90 | loss 1.4606945514678955, f_iou 0.6086039543151855: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 90 | loss 0.9232693910598755, f_iou 0.6182178854942322: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.39it/s]
epoch 90 | loss 0.9232693910598755, f_iou 0.6182178854942322: 47%|█████████████████ | 35/74 [00:30<00:28, 1.39it/s]
epoch 90 | loss 0.6349546909332275, f_iou 0.6169299483299255: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 90 | loss 0.6349546909332275, f_iou 0.6169299483299255: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 90 | loss 1.2016303539276123, f_iou 0.6220431327819824: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.39it/s]
epoch 90 | loss 1.2016303539276123, f_iou 0.6220431327819824: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 90 | loss 2.4139037132263184, f_iou 0.6311841011047363: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 90 | loss 2.4139037132263184, f_iou 0.6311841011047363: 51%|██████████████████▍ | 38/74 [00:32<00:25, 1.40it/s]
epoch 90 | loss 0.5669559836387634, f_iou 0.6384782195091248: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.40it/s]
epoch 90 | loss 0.5669559836387634, f_iou 0.6384782195091248: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.39it/s]
epoch 90 | loss 0.9395483732223511, f_iou 0.6455209851264954: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 90 | loss 0.9395483732223511, f_iou 0.6455209851264954: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 90 | loss 2.3376054763793945, f_iou 0.6409513354301453: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 90 | loss 2.3376054763793945, f_iou 0.6409513354301453: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.40it/s]
epoch 90 | loss 0.722572386264801, f_iou 0.6488387584686279: 55%|████████████████████▌ | 41/74 [00:35<00:23, 1.40it/s]
epoch 90 | loss 0.722572386264801, f_iou 0.6488387584686279: 57%|█████████████████████ | 42/74 [00:35<00:22, 1.40it/s]
epoch 90 | loss 3.334296464920044, f_iou 0.6461962461471558: 57%|█████████████████████ | 42/74 [00:36<00:22, 1.40it/s]
epoch 90 | loss 3.334296464920044, f_iou 0.6461962461471558: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.39it/s]
epoch 90 | loss 1.3284683227539062, f_iou 0.6456458568572998: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 90 | loss 1.3284683227539062, f_iou 0.6456458568572998: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 90 | loss 1.6227144002914429, f_iou 0.6493846774101257: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 90 | loss 1.6227144002914429, f_iou 0.6493846774101257: 61%|█████████████████████▉ | 45/74 [00:37<00:20, 1.39it/s]
epoch 90 | loss 1.095407485961914, f_iou 0.6534048318862915: 61%|██████████████████████▌ | 45/74 [00:38<00:20, 1.39it/s]
epoch 90 | loss 1.095407485961914, f_iou 0.6534048318862915: 62%|███████████████████████ | 46/74 [00:38<00:20, 1.39it/s]
epoch 90 | loss 0.3172228932380676, f_iou 0.6601549983024597: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 90 | loss 0.3172228932380676, f_iou 0.6601549983024597: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.39it/s]
epoch 90 | loss 0.7536412477493286, f_iou 0.6549833416938782: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 90 | loss 0.7536412477493286, f_iou 0.6549833416938782: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 90 | loss 2.649797201156616, f_iou 0.6531835794448853: 65%|████████████████████████ | 48/74 [00:40<00:18, 1.39it/s]
epoch 90 | loss 2.649797201156616, f_iou 0.6531835794448853: 66%|████████████████████████▌ | 49/74 [00:40<00:17, 1.40it/s]
epoch 90 | loss 0.301224946975708, f_iou 0.6594426035881042: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.40it/s]
epoch 90 | loss 0.301224946975708, f_iou 0.6594426035881042: 68%|█████████████████████████ | 50/74 [00:41<00:17, 1.40it/s]
epoch 90 | loss 0.5352995991706848, f_iou 0.66567063331604: 68%|█████████████████████████▋ | 50/74 [00:42<00:17, 1.40it/s]
epoch 90 | loss 0.5352995991706848, f_iou 0.66567063331604: 69%|██████████████████████████▏ | 51/74 [00:42<00:16, 1.40it/s]
epoch 90 | loss 2.0175414085388184, f_iou 0.6635546684265137: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.40it/s]
epoch 90 | loss 2.0175414085388184, f_iou 0.6635546684265137: 70%|█████████████████████████▎ | 52/74 [00:42<00:15, 1.40it/s]
epoch 90 | loss 1.0655112266540527, f_iou 0.6672044992446899: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.40it/s]
epoch 90 | loss 1.0655112266540527, f_iou 0.6672044992446899: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.39it/s]
epoch 90 | loss 3.248696804046631, f_iou 0.6635861396789551: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.39it/s]
epoch 90 | loss 3.248696804046631, f_iou 0.6635861396789551: 73%|███████████████████████████ | 54/74 [00:44<00:14, 1.40it/s]
epoch 90 | loss 1.8087306022644043, f_iou 0.6592649221420288: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 90 | loss 1.8087306022644043, f_iou 0.6592649221420288: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.40it/s]
epoch 90 | loss 0.7530947923660278, f_iou 0.6638240814208984: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.40it/s]
epoch 90 | loss 0.7530947923660278, f_iou 0.6638240814208984: 76%|███████████████████████████▏ | 56/74 [00:45<00:12, 1.40it/s]
epoch 90 | loss 4.297924041748047, f_iou 0.6584123969078064: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.40it/s]
epoch 90 | loss 4.297924041748047, f_iou 0.6584123969078064: 77%|████████████████████████████▌ | 57/74 [00:46<00:12, 1.40it/s]
epoch 90 | loss 1.5643589496612549, f_iou 0.660312294960022: 77%|████████████████████████████▌ | 57/74 [00:47<00:12, 1.40it/s]
epoch 90 | loss 1.5643589496612549, f_iou 0.660312294960022: 78%|█████████████████████████████ | 58/74 [00:47<00:11, 1.39it/s]
epoch 90 | loss 1.0003999471664429, f_iou 0.6513372659683228: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 90 | loss 1.0003999471664429, f_iou 0.6513372659683228: 80%|████████████████████████████▋ | 59/74 [00:47<00:10, 1.40it/s]
epoch 90 | loss 1.2799484729766846, f_iou 0.652106523513794: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.40it/s]
epoch 90 | loss 1.2799484729766846, f_iou 0.652106523513794: 81%|██████████████████████████████ | 60/74 [00:48<00:10, 1.40it/s]
epoch 90 | loss 0.7008649706840515, f_iou 0.656136155128479: 81%|██████████████████████████████ | 60/74 [00:49<00:10, 1.40it/s]
epoch 90 | loss 0.7008649706840515, f_iou 0.656136155128479: 82%|██████████████████████████████▌ | 61/74 [00:49<00:09, 1.40it/s]
epoch 90 | loss 2.9096550941467285, f_iou 0.6499138474464417: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.40it/s]
epoch 90 | loss 2.9096550941467285, f_iou 0.6499138474464417: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.40it/s]
epoch 90 | loss 1.4562222957611084, f_iou 0.6457164883613586: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.40it/s]
epoch 90 | loss 1.4562222957611084, f_iou 0.6457164883613586: 85%|██████████████████████████████▋ | 63/74 [00:50<00:07, 1.39it/s]
epoch 90 | loss 0.5188420414924622, f_iou 0.6495322585105896: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 90 | loss 0.5188420414924622, f_iou 0.6495322585105896: 86%|███████████████████████████████▏ | 64/74 [00:51<00:07, 1.39it/s]
epoch 90 | loss 1.7005549669265747, f_iou 0.6473208069801331: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 90 | loss 1.7005549669265747, f_iou 0.6473208069801331: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 90 | loss 0.6879749298095703, f_iou 0.6515482068061829: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 90 | loss 0.6879749298095703, f_iou 0.6515482068061829: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 90 | loss 1.1191039085388184, f_iou 0.6440548300743103: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 90 | loss 1.1191039085388184, f_iou 0.6440548300743103: 91%|████████████████████████████████▌ | 67/74 [00:53<00:05, 1.39it/s]
epoch 90 | loss 2.637326717376709, f_iou 0.6372936964035034: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 90 | loss 2.637326717376709, f_iou 0.6372936964035034: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.40it/s]
epoch 90 | loss 1.1041687726974487, f_iou 0.6298604607582092: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 90 | loss 1.1041687726974487, f_iou 0.6298604607582092: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 90 | loss 0.6418968439102173, f_iou 0.6294049620628357: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.40it/s]
epoch 90 | loss 0.6418968439102173, f_iou 0.6294049620628357: 95%|██████████████████████████████████ | 70/74 [00:55<00:02, 1.40it/s]
epoch 90 | loss 2.33662486076355, f_iou 0.626413106918335: 95%|████████████████████████████████████▉ | 70/74 [00:56<00:02, 1.40it/s]
epoch 90 | loss 2.33662486076355, f_iou 0.626413106918335: 96%|█████████████████████████████████████▍ | 71/74 [00:56<00:02, 1.40it/s]
epoch 90 | loss 0.4969480633735657, f_iou 0.6179985404014587: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 90 | loss 0.4969480633735657, f_iou 0.6179985404014587: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 90 | loss 1.3006010055541992, f_iou 0.6201630234718323: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 90 | loss 1.3006010055541992, f_iou 0.6201630234718323: 99%|███████████████████████████████████▌| 73/74 [00:57<00:00, 1.40it/s]
epoch 90 | loss 1.1891486644744873, f_iou 0.6219958066940308: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 90 | loss 1.1891486644744873, f_iou 0.6219958066940308: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.41it/s]
epoch 90 | loss 1.1891486644744873, f_iou 0.6219958066940308: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 90 | valid.f_iou 0.5883100032806396, valid.f_f-score 0.82015: 0%| | 0/16 [00:05, ?it/s]
epoch 90 | valid.f_iou 0.5883100032806396, valid.f_f-score 0.82015: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 90 | valid.f_iou 0.5419700145721436, valid.f_f-score 0.8368: 6%|██ | 1/16 [00:05<01:21, 5.43s/it]
epoch 90 | valid.f_iou 0.5419700145721436, valid.f_f-score 0.8368: 12%|████ | 2/16 [00:05<00:35, 2.50s/it]
epoch 90 | valid.f_iou 0.44102001190185547, valid.f_f-score 0.75058: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 90 | valid.f_iou 0.44102001190185547, valid.f_f-score 0.75058: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 90 | valid.f_iou 0.438289999961853, valid.f_f-score 0.71249: 19%|██████ | 3/16 [00:06<00:20, 1.57s/it]
epoch 90 | valid.f_iou 0.438289999961853, valid.f_f-score 0.71249: 25%|████████ | 4/16 [00:06<00:13, 1.13s/it]
epoch 90 | valid.f_iou 0.4625200033187866, valid.f_f-score 0.72297: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 90 | valid.f_iou 0.4625200033187866, valid.f_f-score 0.72297: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 90 | valid.f_iou 0.4262799918651581, valid.f_f-score 0.67268: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 90 | valid.f_iou 0.4262799918651581, valid.f_f-score 0.67268: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 90 | valid.f_iou 0.4321199953556061, valid.f_f-score 0.7011: 38%|████████████ | 6/16 [00:08<00:07, 1.36it/s]
epoch 90 | valid.f_iou 0.4321199953556061, valid.f_f-score 0.7011: 44%|██████████████ | 7/16 [00:08<00:05, 1.61it/s]
epoch 90 | valid.f_iou 0.4167500138282776, valid.f_f-score 0.68835: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 90 | valid.f_iou 0.4167500138282776, valid.f_f-score 0.68835: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 90 | valid.f_iou 0.4481799900531769, valid.f_f-score 0.69808: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 90 | valid.f_iou 0.4481799900531769, valid.f_f-score 0.69808: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 90 | valid.f_iou 0.4444800019264221, valid.f_f-score 0.69822: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 90 | valid.f_iou 0.4444800019264221, valid.f_f-score 0.69822: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.06it/s]
epoch 90 | valid.f_iou 0.456820011138916, valid.f_f-score 0.70206: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.06it/s]
epoch 90 | valid.f_iou 0.456820011138916, valid.f_f-score 0.70206: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.11it/s]
epoch 90 | valid.f_iou 0.4493600130081177, valid.f_f-score 0.7111: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.11it/s]
epoch 90 | valid.f_iou 0.4493600130081177, valid.f_f-score 0.7111: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.26it/s]
epoch 90 | valid.f_iou 0.4466699957847595, valid.f_f-score 0.71672: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.26it/s]
epoch 90 | valid.f_iou 0.4466699957847595, valid.f_f-score 0.71672: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 90 | valid.f_iou 0.4518899917602539, valid.f_f-score 0.71546: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.39it/s]
epoch 90 | valid.f_iou 0.4518899917602539, valid.f_f-score 0.71546: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 90 | valid.f_iou 0.46571001410484314, valid.f_f-score 0.7175: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 90 | valid.f_iou 0.46571001410484314, valid.f_f-score 0.7175: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 90 | valid.f_iou 0.4766800105571747, valid.f_f-score 0.71685: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 90 | valid.f_iou 0.4766800105571747, valid.f_f-score 0.71685: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 90 | valid.f_iou 0.4766800105571747, valid.f_f-score 0.71685: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 90 | valid.f_iou 0.8168399930000305, valid.f_f-score 0.8755: 0%| | 0/16 [00:04, ?it/s]
epoch 90 | valid.f_iou 0.8168399930000305, valid.f_f-score 0.8755: 6%|██ | 1/16 [00:04<01:13, 4.89s/it]
epoch 90 | valid.f_iou 0.8463900089263916, valid.f_f-score 0.91066: 6%|█▉ | 1/16 [00:05<01:13, 4.89s/it]
epoch 90 | valid.f_iou 0.8463900089263916, valid.f_f-score 0.91066: 12%|███▉ | 2/16 [00:05<00:31, 2.28s/it]
epoch 90 | valid.f_iou 0.775439977645874, valid.f_f-score 0.88055: 12%|████ | 2/16 [00:05<00:31, 2.28s/it]
epoch 90 | valid.f_iou 0.775439977645874, valid.f_f-score 0.88055: 19%|██████ | 3/16 [00:05<00:18, 1.44s/it]
epoch 90 | valid.f_iou 0.7579600214958191, valid.f_f-score 0.84008: 19%|█████▊ | 3/16 [00:06<00:18, 1.44s/it]
epoch 90 | valid.f_iou 0.7579600214958191, valid.f_f-score 0.84008: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 90 | valid.f_iou 0.7318199872970581, valid.f_f-score 0.83024: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 90 | valid.f_iou 0.7318199872970581, valid.f_f-score 0.83024: 31%|█████████▋ | 5/16 [00:06<00:09, 1.21it/s]
epoch 90 | valid.f_iou 0.7047299742698669, valid.f_f-score 0.81279: 31%|█████████▋ | 5/16 [00:07<00:09, 1.21it/s]
epoch 90 | valid.f_iou 0.7047299742698669, valid.f_f-score 0.81279: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 90 | valid.f_iou 0.7182899713516235, valid.f_f-score 0.82961: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 90 | valid.f_iou 0.7182899713516235, valid.f_f-score 0.82961: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 90 | valid.f_iou 0.70524001121521, valid.f_f-score 0.82739: 44%|██████████████▍ | 7/16 [00:07<00:05, 1.64it/s]
epoch 90 | valid.f_iou 0.70524001121521, valid.f_f-score 0.82739: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 90 | valid.f_iou 0.7098699808120728, valid.f_f-score 0.82844: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 90 | valid.f_iou 0.7098699808120728, valid.f_f-score 0.82844: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.99it/s]
epoch 90 | valid.f_iou 0.716920018196106, valid.f_f-score 0.8371: 56%|██████████████████▌ | 9/16 [00:08<00:03, 1.99it/s]
epoch 90 | valid.f_iou 0.716920018196106, valid.f_f-score 0.8371: 62%|████████████████████ | 10/16 [00:08<00:02, 2.07it/s]
epoch 90 | valid.f_iou 0.7089599967002869, valid.f_f-score 0.81934: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 90 | valid.f_iou 0.7089599967002869, valid.f_f-score 0.81934: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 90 | valid.f_iou 0.719730019569397, valid.f_f-score 0.82829: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.12it/s]
epoch 90 | valid.f_iou 0.719730019569397, valid.f_f-score 0.82829: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.16it/s]
epoch 90 | valid.f_iou 0.7345399856567383, valid.f_f-score 0.83857: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.16it/s]
epoch 90 | valid.f_iou 0.7345399856567383, valid.f_f-score 0.83857: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.20it/s]
epoch 90 | valid.f_iou 0.7246599793434143, valid.f_f-score 0.83162: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.20it/s]
epoch 90 | valid.f_iou 0.7246599793434143, valid.f_f-score 0.83162: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.27it/s]
epoch 90 | valid.f_iou 0.7336900234222412, valid.f_f-score 0.83966: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.27it/s]
epoch 90 | valid.f_iou 0.7336900234222412, valid.f_f-score 0.83966: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.27it/s]
epoch 90 | valid.f_iou 0.7297300100326538, valid.f_f-score 0.83586: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.27it/s]
epoch 90 | valid.f_iou 0.7297300100326538, valid.f_f-score 0.83586: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.26it/s]
epoch 90 | valid.f_iou 0.7297300100326538, valid.f_f-score 0.83586: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 90 | valid.f_iou 0.8168399930000305, valid.f_f-score 0.8755: 0%| | 0/16 [00:05, ?it/s]
epoch 90 | valid.f_iou 0.8168399930000305, valid.f_f-score 0.8755: 6%|██ | 1/16 [00:05<01:19, 5.30s/it]
epoch 90 | valid.f_iou 0.8463900089263916, valid.f_f-score 0.91066: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 90 | valid.f_iou 0.8463900089263916, valid.f_f-score 0.91066: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 90 | valid.f_iou 0.775439977645874, valid.f_f-score 0.88055: 12%|████ | 2/16 [00:06<00:34, 2.46s/it]
epoch 90 | valid.f_iou 0.775439977645874, valid.f_f-score 0.88055: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 90 | valid.f_iou 0.7581700086593628, valid.f_f-score 0.84008: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 90 | valid.f_iou 0.7581700086593628, valid.f_f-score 0.84008: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 90 | valid.f_iou 0.738290011882782, valid.f_f-score 0.83024: 25%|████████ | 4/16 [00:07<00:13, 1.12s/it]
epoch 90 | valid.f_iou 0.738290011882782, valid.f_f-score 0.83024: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 90 | valid.f_iou 0.7101200222969055, valid.f_f-score 0.81279: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 90 | valid.f_iou 0.7101200222969055, valid.f_f-score 0.81279: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 90 | valid.f_iou 0.7246900200843811, valid.f_f-score 0.82961: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 90 | valid.f_iou 0.7246900200843811, valid.f_f-score 0.82961: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 90 | valid.f_iou 0.7108500003814697, valid.f_f-score 0.82739: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 90 | valid.f_iou 0.7108500003814697, valid.f_f-score 0.82739: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 90 | valid.f_iou 0.7181599736213684, valid.f_f-score 0.82844: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 90 | valid.f_iou 0.7181599736213684, valid.f_f-score 0.82844: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 90 | valid.f_iou 0.7215800285339355, valid.f_f-score 0.83362: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.95it/s]
epoch 90 | valid.f_iou 0.7215800285339355, valid.f_f-score 0.83362: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 90 | valid.f_iou 0.7131999731063843, valid.f_f-score 0.81618: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.02it/s]
epoch 90 | valid.f_iou 0.7131999731063843, valid.f_f-score 0.81618: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.08it/s]
epoch 90 | valid.f_iou 0.723609983921051, valid.f_f-score 0.82539: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.08it/s]
epoch 90 | valid.f_iou 0.723609983921051, valid.f_f-score 0.82539: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.12it/s]
epoch 90 | valid.f_iou 0.7350999712944031, valid.f_f-score 0.83378: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.12it/s]
epoch 90 | valid.f_iou 0.7350999712944031, valid.f_f-score 0.83378: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.15it/s]
epoch 90 | valid.f_iou 0.7251799702644348, valid.f_f-score 0.82718: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.15it/s]
epoch 90 | valid.f_iou 0.7251799702644348, valid.f_f-score 0.82718: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.29it/s]
epoch 90 | valid.f_iou 0.7341700196266174, valid.f_f-score 0.83551: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.29it/s]
epoch 90 | valid.f_iou 0.7341700196266174, valid.f_f-score 0.83551: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.39it/s]
epoch 90 | valid.f_iou 0.7288100123405457, valid.f_f-score 0.82833: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.39it/s]
epoch 90 | valid.f_iou 0.7288100123405457, valid.f_f-score 0.82833: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.49it/s]
epoch 90 | valid.f_iou 0.7288100123405457, valid.f_f-score 0.82833: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 91 | loss 1.4578831195831299, f_iou 0.9430206418037415: 0%| | 0/74 [00:05, ?it/s]
epoch 91 | loss 1.4578831195831299, f_iou 0.9430206418037415: 1%|▌ | 1/74 [00:05<06:40, 5.48s/it]
epoch 91 | loss 0.7606493234634399, f_iou 0.87132728099823: 1%|▌ | 1/74 [00:06<06:40, 5.48s/it]
epoch 91 | loss 0.7606493234634399, f_iou 0.87132728099823: 3%|█ | 2/74 [00:06<03:16, 2.73s/it]
epoch 91 | loss 0.6006285548210144, f_iou 0.8943967819213867: 3%|█ | 2/74 [00:07<03:16, 2.73s/it]
epoch 91 | loss 0.6006285548210144, f_iou 0.8943967819213867: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 91 | loss 0.7345334887504578, f_iou 0.9023622870445251: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 91 | loss 0.7345334887504578, f_iou 0.9023622870445251: 5%|██ | 4/74 [00:07<01:42, 1.46s/it]
epoch 91 | loss 2.478938102722168, f_iou 0.7630638480186462: 5%|██ | 4/74 [00:08<01:42, 1.46s/it]
epoch 91 | loss 2.478938102722168, f_iou 0.7630638480186462: 7%|██▌ | 5/74 [00:08<01:26, 1.26s/it]
epoch 91 | loss 2.689270496368408, f_iou 0.7136673927307129: 7%|██▌ | 5/74 [00:09<01:26, 1.26s/it]
epoch 91 | loss 2.689270496368408, f_iou 0.7136673927307129: 8%|███ | 6/74 [00:09<01:15, 1.11s/it]
epoch 91 | loss 0.4000360071659088, f_iou 0.7503207325935364: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 91 | loss 0.4000360071659088, f_iou 0.7503207325935364: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 91 | loss 0.7867729663848877, f_iou 0.7739139795303345: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 91 | loss 0.7867729663848877, f_iou 0.7739139795303345: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 91 | loss 0.2622816264629364, f_iou 0.7934054732322693: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 91 | loss 0.2622816264629364, f_iou 0.7934054732322693: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 91 | loss 1.3330738544464111, f_iou 0.7718629240989685: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 91 | loss 1.3330738544464111, f_iou 0.7718629240989685: 14%|████▊ | 10/74 [00:12<00:55, 1.14it/s]
epoch 91 | loss 0.8628221750259399, f_iou 0.7690632939338684: 14%|████▊ | 10/74 [00:13<00:55, 1.14it/s]
epoch 91 | loss 0.8628221750259399, f_iou 0.7690632939338684: 15%|█████▎ | 11/74 [00:13<00:53, 1.18it/s]
epoch 91 | loss 1.9666953086853027, f_iou 0.7614808082580566: 15%|█████▎ | 11/74 [00:14<00:53, 1.18it/s]
epoch 91 | loss 1.9666953086853027, f_iou 0.7614808082580566: 16%|█████▊ | 12/74 [00:14<00:52, 1.18it/s]
epoch 91 | loss 1.4668776988983154, f_iou 0.7554060220718384: 16%|█████▊ | 12/74 [00:15<00:52, 1.18it/s]
epoch 91 | loss 1.4668776988983154, f_iou 0.7554060220718384: 18%|██████▎ | 13/74 [00:15<00:49, 1.23it/s]
epoch 91 | loss 1.035920262336731, f_iou 0.7604334950447083: 18%|██████▌ | 13/74 [00:15<00:49, 1.23it/s]
epoch 91 | loss 1.035920262336731, f_iou 0.7604334950447083: 19%|███████ | 14/74 [00:15<00:47, 1.27it/s]
epoch 91 | loss 1.813145399093628, f_iou 0.7572842240333557: 19%|███████ | 14/74 [00:16<00:47, 1.27it/s]
epoch 91 | loss 1.813145399093628, f_iou 0.7572842240333557: 20%|███████▌ | 15/74 [00:16<00:45, 1.31it/s]
epoch 91 | loss 1.4768235683441162, f_iou 0.7375122904777527: 20%|███████▎ | 15/74 [00:17<00:45, 1.31it/s]
epoch 91 | loss 1.4768235683441162, f_iou 0.7375122904777527: 22%|███████▊ | 16/74 [00:17<00:43, 1.32it/s]
epoch 91 | loss 0.5323493480682373, f_iou 0.7497215867042542: 22%|███████▊ | 16/74 [00:18<00:43, 1.32it/s]
epoch 91 | loss 0.5323493480682373, f_iou 0.7497215867042542: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 91 | loss 0.8904308080673218, f_iou 0.7459569573402405: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 91 | loss 0.8904308080673218, f_iou 0.7459569573402405: 24%|████████▊ | 18/74 [00:18<00:41, 1.34it/s]
epoch 91 | loss 1.5027803182601929, f_iou 0.7441433668136597: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 91 | loss 1.5027803182601929, f_iou 0.7441433668136597: 26%|█████████▏ | 19/74 [00:19<00:40, 1.35it/s]
epoch 91 | loss 1.3278110027313232, f_iou 0.7444753050804138: 26%|█████████▏ | 19/74 [00:20<00:40, 1.35it/s]
epoch 91 | loss 1.3278110027313232, f_iou 0.7444753050804138: 27%|█████████▋ | 20/74 [00:20<00:39, 1.36it/s]
epoch 91 | loss 0.8903024196624756, f_iou 0.7518730163574219: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 91 | loss 0.8903024196624756, f_iou 0.7518730163574219: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 91 | loss 1.8994827270507812, f_iou 0.7578713297843933: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 91 | loss 1.8994827270507812, f_iou 0.7578713297843933: 30%|██████████▋ | 22/74 [00:21<00:37, 1.37it/s]
epoch 91 | loss 1.192953109741211, f_iou 0.7595354914665222: 30%|███████████ | 22/74 [00:22<00:37, 1.37it/s]
epoch 91 | loss 1.192953109741211, f_iou 0.7595354914665222: 31%|███████████▌ | 23/74 [00:22<00:37, 1.37it/s]
epoch 91 | loss 0.4703943431377411, f_iou 0.7610289454460144: 31%|███████████▏ | 23/74 [00:23<00:37, 1.37it/s]
epoch 91 | loss 0.4703943431377411, f_iou 0.7610289454460144: 32%|███████████▋ | 24/74 [00:23<00:36, 1.38it/s]
epoch 91 | loss 1.8551297187805176, f_iou 0.7500554323196411: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 91 | loss 1.8551297187805176, f_iou 0.7500554323196411: 34%|████████████▏ | 25/74 [00:24<00:36, 1.35it/s]
epoch 91 | loss 1.0751926898956299, f_iou 0.7553226947784424: 34%|████████████▏ | 25/74 [00:24<00:36, 1.35it/s]
epoch 91 | loss 1.0751926898956299, f_iou 0.7553226947784424: 35%|████████████▋ | 26/74 [00:24<00:35, 1.35it/s]
epoch 91 | loss 1.6433463096618652, f_iou 0.7591519355773926: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 91 | loss 1.6433463096618652, f_iou 0.7591519355773926: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.35it/s]
epoch 91 | loss 1.334587812423706, f_iou 0.7567110657691956: 36%|█████████████▌ | 27/74 [00:26<00:34, 1.35it/s]
epoch 91 | loss 1.334587812423706, f_iou 0.7567110657691956: 38%|██████████████ | 28/74 [00:26<00:33, 1.36it/s]
epoch 91 | loss 1.7066316604614258, f_iou 0.7524787187576294: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 91 | loss 1.7066316604614258, f_iou 0.7524787187576294: 39%|██████████████ | 29/74 [00:26<00:33, 1.36it/s]
epoch 91 | loss 1.2187949419021606, f_iou 0.737544059753418: 39%|██████████████▌ | 29/74 [00:27<00:33, 1.36it/s]
epoch 91 | loss 1.2187949419021606, f_iou 0.737544059753418: 41%|███████████████ | 30/74 [00:27<00:32, 1.36it/s]
epoch 91 | loss 0.6048935055732727, f_iou 0.7422815561294556: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.36it/s]
epoch 91 | loss 0.6048935055732727, f_iou 0.7422815561294556: 42%|███████████████ | 31/74 [00:28<00:31, 1.37it/s]
epoch 91 | loss 0.4865117073059082, f_iou 0.7490571141242981: 42%|███████████████ | 31/74 [00:29<00:31, 1.37it/s]
epoch 91 | loss 0.4865117073059082, f_iou 0.7490571141242981: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 91 | loss 0.8966043591499329, f_iou 0.7550210356712341: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 91 | loss 0.8966043591499329, f_iou 0.7550210356712341: 45%|████████████████ | 33/74 [00:29<00:30, 1.35it/s]
epoch 91 | loss 1.4727652072906494, f_iou 0.7500283718109131: 45%|████████████████ | 33/74 [00:30<00:30, 1.35it/s]
epoch 91 | loss 1.4727652072906494, f_iou 0.7500283718109131: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.35it/s]
epoch 91 | loss 1.359687328338623, f_iou 0.751361608505249: 46%|█████████████████▍ | 34/74 [00:31<00:29, 1.35it/s]
epoch 91 | loss 1.359687328338623, f_iou 0.751361608505249: 47%|█████████████████▉ | 35/74 [00:31<00:28, 1.36it/s]
epoch 91 | loss 0.5176349878311157, f_iou 0.7573917508125305: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 91 | loss 0.5176349878311157, f_iou 0.7573917508125305: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 91 | loss 1.7434786558151245, f_iou 0.7384585738182068: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 91 | loss 1.7434786558151245, f_iou 0.7384585738182068: 50%|██████████████████ | 37/74 [00:32<00:27, 1.36it/s]
epoch 91 | loss 1.0437954664230347, f_iou 0.7420501708984375: 50%|██████████████████ | 37/74 [00:33<00:27, 1.36it/s]
epoch 91 | loss 1.0437954664230347, f_iou 0.7420501708984375: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.36it/s]
epoch 91 | loss 0.7559024095535278, f_iou 0.742194414138794: 51%|███████████████████ | 38/74 [00:34<00:26, 1.36it/s]
epoch 91 | loss 0.7559024095535278, f_iou 0.742194414138794: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.36it/s]
epoch 91 | loss 2.4560952186584473, f_iou 0.7283968925476074: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.36it/s]
epoch 91 | loss 2.4560952186584473, f_iou 0.7283968925476074: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 91 | loss 1.0008370876312256, f_iou 0.7166690230369568: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 91 | loss 1.0008370876312256, f_iou 0.7166690230369568: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.36it/s]
epoch 91 | loss 0.6172870993614197, f_iou 0.7003823518753052: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.36it/s]
epoch 91 | loss 0.6172870993614197, f_iou 0.7003823518753052: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 91 | loss 2.059826612472534, f_iou 0.6968558430671692: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.37it/s]
epoch 91 | loss 2.059826612472534, f_iou 0.6968558430671692: 58%|█████████████████████▍ | 43/74 [00:37<00:22, 1.37it/s]
epoch 91 | loss 1.2849087715148926, f_iou 0.6999319195747375: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 91 | loss 1.2849087715148926, f_iou 0.6999319195747375: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.38it/s]
epoch 91 | loss 1.288306713104248, f_iou 0.6986977458000183: 59%|██████████████████████ | 44/74 [00:38<00:21, 1.38it/s]
epoch 91 | loss 1.288306713104248, f_iou 0.6986977458000183: 61%|██████████████████████▌ | 45/74 [00:38<00:21, 1.38it/s]
epoch 91 | loss 1.1482433080673218, f_iou 0.6992285251617432: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 91 | loss 1.1482433080673218, f_iou 0.6992285251617432: 62%|██████████████████████▍ | 46/74 [00:39<00:21, 1.31it/s]
epoch 91 | loss 2.3875985145568848, f_iou 0.6940135955810547: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.31it/s]
epoch 91 | loss 2.3875985145568848, f_iou 0.6940135955810547: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.33it/s]
epoch 91 | loss 1.2621570825576782, f_iou 0.6845259666442871: 64%|██████████████████████▊ | 47/74 [00:40<00:20, 1.33it/s]
epoch 91 | loss 1.2621570825576782, f_iou 0.6845259666442871: 65%|███████████████████████▎ | 48/74 [00:40<00:19, 1.35it/s]
epoch 91 | loss 0.7915771007537842, f_iou 0.689828634262085: 65%|████████████████████████ | 48/74 [00:41<00:19, 1.35it/s]
epoch 91 | loss 0.7915771007537842, f_iou 0.689828634262085: 66%|████████████████████████▌ | 49/74 [00:41<00:18, 1.36it/s]
epoch 91 | loss 0.3700580596923828, f_iou 0.6775058507919312: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.36it/s]
epoch 91 | loss 0.3700580596923828, f_iou 0.6775058507919312: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.37it/s]
epoch 91 | loss 0.4685976803302765, f_iou 0.6817925572395325: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.37it/s]
epoch 91 | loss 0.4685976803302765, f_iou 0.6817925572395325: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.38it/s]
epoch 91 | loss 1.7615993022918701, f_iou 0.683802604675293: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.38it/s]
epoch 91 | loss 1.7615993022918701, f_iou 0.683802604675293: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.38it/s]
epoch 91 | loss 0.5173531174659729, f_iou 0.6777887940406799: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 91 | loss 0.5173531174659729, f_iou 0.6777887940406799: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 91 | loss 1.4527485370635986, f_iou 0.6758166551589966: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 91 | loss 1.4527485370635986, f_iou 0.6758166551589966: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 91 | loss 1.4203543663024902, f_iou 0.67333984375: 73%|█████████████████████████████▉ | 54/74 [00:46<00:14, 1.39it/s]
epoch 91 | loss 1.4203543663024902, f_iou 0.67333984375: 74%|██████████████████████████████▍ | 55/74 [00:46<00:13, 1.38it/s]
epoch 91 | loss 0.5763897895812988, f_iou 0.6775251030921936: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 91 | loss 0.5763897895812988, f_iou 0.6775251030921936: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.38it/s]
epoch 91 | loss 0.5257092714309692, f_iou 0.6822339296340942: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.38it/s]
epoch 91 | loss 0.5257092714309692, f_iou 0.6822339296340942: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 91 | loss 1.4990911483764648, f_iou 0.6858571171760559: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.38it/s]
epoch 91 | loss 1.4990911483764648, f_iou 0.6858571171760559: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 91 | loss 1.2469909191131592, f_iou 0.6869733929634094: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 91 | loss 1.2469909191131592, f_iou 0.6869733929634094: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 91 | loss 0.6607246398925781, f_iou 0.6914040446281433: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 91 | loss 0.6607246398925781, f_iou 0.6914040446281433: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 91 | loss 1.7957196235656738, f_iou 0.6930385231971741: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 91 | loss 1.7957196235656738, f_iou 0.6930385231971741: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 91 | loss 1.6986852884292603, f_iou 0.6893877387046814: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.39it/s]
epoch 91 | loss 1.6986852884292603, f_iou 0.6893877387046814: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 91 | loss 0.9877737760543823, f_iou 0.6919602751731873: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 91 | loss 0.9877737760543823, f_iou 0.6919602751731873: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 91 | loss 3.7629446983337402, f_iou 0.6908199191093445: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 91 | loss 3.7629446983337402, f_iou 0.6908199191093445: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.40it/s]
epoch 91 | loss 2.374929904937744, f_iou 0.6853412985801697: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.40it/s]
epoch 91 | loss 2.374929904937744, f_iou 0.6853412985801697: 88%|████████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 91 | loss 0.8078413605690002, f_iou 0.6857131123542786: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 91 | loss 0.8078413605690002, f_iou 0.6857131123542786: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 91 | loss 0.9089713096618652, f_iou 0.6784762740135193: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 91 | loss 0.9089713096618652, f_iou 0.6784762740135193: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 91 | loss 1.9675556421279907, f_iou 0.6815503835678101: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 91 | loss 1.9675556421279907, f_iou 0.6815503835678101: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 91 | loss 0.7545555830001831, f_iou 0.6813169121742249: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 91 | loss 0.7545555830001831, f_iou 0.6813169121742249: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 91 | loss 0.0, f_iou 0.6855157017707825: 93%|███████████████████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 91 | loss 0.0, f_iou 0.6855157017707825: 95%|████████████████████████████████████████████████▏ | 70/74 [00:56<00:02, 1.39it/s]
epoch 91 | loss 1.3654813766479492, f_iou 0.6879431009292603: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 91 | loss 1.3654813766479492, f_iou 0.6879431009292603: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 91 | loss 2.4176251888275146, f_iou 0.684535562992096: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 91 | loss 2.4176251888275146, f_iou 0.684535562992096: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 91 | loss 0.984619677066803, f_iou 0.6766417026519775: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 91 | loss 0.984619677066803, f_iou 0.6766417026519775: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 91 | loss 0.48043185472488403, f_iou 0.6805580258369446: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 91 | loss 0.48043185472488403, f_iou 0.6805580258369446: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 91 | loss 0.48043185472488403, f_iou 0.6805580258369446: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 91 | valid.f_iou 0.6963300108909607, valid.f_f-score 0.8495: 0%| | 0/16 [00:05, ?it/s]
epoch 91 | valid.f_iou 0.6963300108909607, valid.f_f-score 0.8495: 6%|██ | 1/16 [00:05<01:24, 5.65s/it]
epoch 91 | valid.f_iou 0.6591600179672241, valid.f_f-score 0.86008: 6%|█▉ | 1/16 [00:06<01:24, 5.65s/it]
epoch 91 | valid.f_iou 0.6591600179672241, valid.f_f-score 0.86008: 12%|███▉ | 2/16 [00:06<00:36, 2.59s/it]
epoch 91 | valid.f_iou 0.5439599752426147, valid.f_f-score 0.76966: 12%|███▉ | 2/16 [00:06<00:36, 2.59s/it]
epoch 91 | valid.f_iou 0.5439599752426147, valid.f_f-score 0.76966: 19%|█████▊ | 3/16 [00:06<00:21, 1.63s/it]
epoch 91 | valid.f_iou 0.5425500273704529, valid.f_f-score 0.74234: 19%|█████▊ | 3/16 [00:07<00:21, 1.63s/it]
epoch 91 | valid.f_iou 0.5425500273704529, valid.f_f-score 0.74234: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 91 | valid.f_iou 0.5631600022315979, valid.f_f-score 0.7496: 25%|████████ | 4/16 [00:07<00:13, 1.16s/it]
epoch 91 | valid.f_iou 0.5631600022315979, valid.f_f-score 0.7496: 31%|██████████ | 5/16 [00:07<00:09, 1.10it/s]
epoch 91 | valid.f_iou 0.5152599811553955, valid.f_f-score 0.70051: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 91 | valid.f_iou 0.5152599811553955, valid.f_f-score 0.70051: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 91 | valid.f_iou 0.5178300142288208, valid.f_f-score 0.71885: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 91 | valid.f_iou 0.5178300142288208, valid.f_f-score 0.71885: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 91 | valid.f_iou 0.5122600197792053, valid.f_f-score 0.71591: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 91 | valid.f_iou 0.5122600197792053, valid.f_f-score 0.71591: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 91 | valid.f_iou 0.5321000218391418, valid.f_f-score 0.71891: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.72it/s]
epoch 91 | valid.f_iou 0.5321000218391418, valid.f_f-score 0.71891: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 91 | valid.f_iou 0.5282300114631653, valid.f_f-score 0.72058: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 91 | valid.f_iou 0.5282300114631653, valid.f_f-score 0.72058: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.00it/s]
epoch 91 | valid.f_iou 0.5325000286102295, valid.f_f-score 0.7213: 62%|███████████████████▍ | 10/16 [00:10<00:02, 2.00it/s]
epoch 91 | valid.f_iou 0.5325000286102295, valid.f_f-score 0.7213: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.18it/s]
epoch 91 | valid.f_iou 0.5479699969291687, valid.f_f-score 0.73679: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.18it/s]
epoch 91 | valid.f_iou 0.5479699969291687, valid.f_f-score 0.73679: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 91 | valid.f_iou 0.5515999794006348, valid.f_f-score 0.74623: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.23it/s]
epoch 91 | valid.f_iou 0.5515999794006348, valid.f_f-score 0.74623: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.37it/s]
epoch 91 | valid.f_iou 0.5512099862098694, valid.f_f-score 0.74394: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.37it/s]
epoch 91 | valid.f_iou 0.5512099862098694, valid.f_f-score 0.74394: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.46it/s]
epoch 91 | valid.f_iou 0.558489978313446, valid.f_f-score 0.74405: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.46it/s]
epoch 91 | valid.f_iou 0.558489978313446, valid.f_f-score 0.74405: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.54it/s]
epoch 91 | valid.f_iou 0.5625699758529663, valid.f_f-score 0.74085: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 91 | valid.f_iou 0.5625699758529663, valid.f_f-score 0.74085: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 91 | valid.f_iou 0.5625699758529663, valid.f_f-score 0.74085: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 91 | valid.f_iou 0.7453600168228149, valid.f_f-score 0.81241: 0%| | 0/16 [00:04, ?it/s]
epoch 91 | valid.f_iou 0.7453600168228149, valid.f_f-score 0.81241: 6%|█▉ | 1/16 [00:04<01:07, 4.51s/it]
epoch 91 | valid.f_iou 0.8185300230979919, valid.f_f-score 0.88488: 6%|█▉ | 1/16 [00:04<01:07, 4.51s/it]
epoch 91 | valid.f_iou 0.8185300230979919, valid.f_f-score 0.88488: 12%|███▉ | 2/16 [00:04<00:29, 2.12s/it]
epoch 91 | valid.f_iou 0.7305899858474731, valid.f_f-score 0.8518: 12%|████ | 2/16 [00:05<00:29, 2.12s/it]
epoch 91 | valid.f_iou 0.7305899858474731, valid.f_f-score 0.8518: 19%|██████ | 3/16 [00:05<00:17, 1.35s/it]
epoch 91 | valid.f_iou 0.72816002368927, valid.f_f-score 0.81926: 19%|██████▏ | 3/16 [00:05<00:17, 1.35s/it]
epoch 91 | valid.f_iou 0.72816002368927, valid.f_f-score 0.81926: 25%|████████▎ | 4/16 [00:05<00:11, 1.00it/s]
epoch 91 | valid.f_iou 0.6681200265884399, valid.f_f-score 0.75624: 25%|███████▊ | 4/16 [00:06<00:11, 1.00it/s]
epoch 91 | valid.f_iou 0.6681200265884399, valid.f_f-score 0.75624: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 91 | valid.f_iou 0.6471899747848511, valid.f_f-score 0.73596: 31%|█████████▋ | 5/16 [00:06<00:08, 1.27it/s]
epoch 91 | valid.f_iou 0.6471899747848511, valid.f_f-score 0.73596: 38%|███████████▋ | 6/16 [00:06<00:06, 1.55it/s]
epoch 91 | valid.f_iou 0.6740800142288208, valid.f_f-score 0.76492: 38%|███████████▋ | 6/16 [00:06<00:06, 1.55it/s]
epoch 91 | valid.f_iou 0.6740800142288208, valid.f_f-score 0.76492: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.82it/s]
epoch 91 | valid.f_iou 0.6682100296020508, valid.f_f-score 0.76769: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.82it/s]
epoch 91 | valid.f_iou 0.6682100296020508, valid.f_f-score 0.76769: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.05it/s]
epoch 91 | valid.f_iou 0.6841599941253662, valid.f_f-score 0.77876: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.05it/s]
epoch 91 | valid.f_iou 0.6841599941253662, valid.f_f-score 0.77876: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.24it/s]
epoch 91 | valid.f_iou 0.6977999806404114, valid.f_f-score 0.79177: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.24it/s]
epoch 91 | valid.f_iou 0.6977999806404114, valid.f_f-score 0.79177: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.37it/s]
epoch 91 | valid.f_iou 0.6896700263023376, valid.f_f-score 0.77585: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.37it/s]
epoch 91 | valid.f_iou 0.6896700263023376, valid.f_f-score 0.77585: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.47it/s]
epoch 91 | valid.f_iou 0.7028800249099731, valid.f_f-score 0.78894: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.47it/s]
epoch 91 | valid.f_iou 0.7028800249099731, valid.f_f-score 0.78894: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.54it/s]
epoch 91 | valid.f_iou 0.7160500288009644, valid.f_f-score 0.79962: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 91 | valid.f_iou 0.7160500288009644, valid.f_f-score 0.79962: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 91 | valid.f_iou 0.7067000269889832, valid.f_f-score 0.79083: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 91 | valid.f_iou 0.7067000269889832, valid.f_f-score 0.79083: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.64it/s]
epoch 91 | valid.f_iou 0.7101699709892273, valid.f_f-score 0.79551: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.64it/s]
epoch 91 | valid.f_iou 0.7101699709892273, valid.f_f-score 0.79551: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.67it/s]
epoch 91 | valid.f_iou 0.7079499959945679, valid.f_f-score 0.79275: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 91 | valid.f_iou 0.7079499959945679, valid.f_f-score 0.79275: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 91 | valid.f_iou 0.7079499959945679, valid.f_f-score 0.79275: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.56it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 91 | valid.f_iou 0.7453600168228149, valid.f_f-score 0.81241: 0%| | 0/16 [00:04, ?it/s]
epoch 91 | valid.f_iou 0.7453600168228149, valid.f_f-score 0.81241: 6%|█▉ | 1/16 [00:04<01:12, 4.85s/it]
epoch 91 | valid.f_iou 0.8185300230979919, valid.f_f-score 0.88488: 6%|█▉ | 1/16 [00:05<01:12, 4.85s/it]
epoch 91 | valid.f_iou 0.8185300230979919, valid.f_f-score 0.88488: 12%|███▉ | 2/16 [00:05<00:31, 2.26s/it]
epoch 91 | valid.f_iou 0.7305899858474731, valid.f_f-score 0.8518: 12%|████ | 2/16 [00:05<00:31, 2.26s/it]
epoch 91 | valid.f_iou 0.7305899858474731, valid.f_f-score 0.8518: 19%|██████ | 3/16 [00:05<00:18, 1.42s/it]
epoch 91 | valid.f_iou 0.7283400297164917, valid.f_f-score 0.81926: 19%|█████▊ | 3/16 [00:06<00:18, 1.42s/it]
epoch 91 | valid.f_iou 0.7283400297164917, valid.f_f-score 0.81926: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 91 | valid.f_iou 0.6767399907112122, valid.f_f-score 0.75624: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 91 | valid.f_iou 0.6767399907112122, valid.f_f-score 0.75624: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 91 | valid.f_iou 0.6543800234794617, valid.f_f-score 0.73596: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 91 | valid.f_iou 0.6543800234794617, valid.f_f-score 0.73596: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 91 | valid.f_iou 0.6820200085639954, valid.f_f-score 0.76492: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 91 | valid.f_iou 0.6820200085639954, valid.f_f-score 0.76492: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 91 | valid.f_iou 0.6751599907875061, valid.f_f-score 0.76769: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 91 | valid.f_iou 0.6751599907875061, valid.f_f-score 0.76769: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 91 | valid.f_iou 0.6937199831008911, valid.f_f-score 0.77876: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.85it/s]
epoch 91 | valid.f_iou 0.6937199831008911, valid.f_f-score 0.77876: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 91 | valid.f_iou 0.7021099925041199, valid.f_f-score 0.7882: 56%|██████████████████ | 9/16 [00:08<00:03, 1.97it/s]
epoch 91 | valid.f_iou 0.7021099925041199, valid.f_f-score 0.7882: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.13it/s]
epoch 91 | valid.f_iou 0.693589985370636, valid.f_f-score 0.7726: 62%|████████████████████ | 10/16 [00:08<00:02, 2.13it/s]
epoch 91 | valid.f_iou 0.693589985370636, valid.f_f-score 0.7726: 69%|██████████████████████ | 11/16 [00:08<00:02, 2.27it/s]
epoch 91 | valid.f_iou 0.7064800262451172, valid.f_f-score 0.78597: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.27it/s]
epoch 91 | valid.f_iou 0.7064800262451172, valid.f_f-score 0.78597: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 91 | valid.f_iou 0.7166600227355957, valid.f_f-score 0.79473: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 91 | valid.f_iou 0.7166600227355957, valid.f_f-score 0.79473: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.48it/s]
epoch 91 | valid.f_iou 0.707260012626648, valid.f_f-score 0.7863: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.48it/s]
epoch 91 | valid.f_iou 0.707260012626648, valid.f_f-score 0.7863: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.55it/s]
epoch 91 | valid.f_iou 0.7106900215148926, valid.f_f-score 0.79128: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 91 | valid.f_iou 0.7106900215148926, valid.f_f-score 0.79128: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 91 | valid.f_iou 0.7075899839401245, valid.f_f-score 0.78641: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 91 | valid.f_iou 0.7075899839401245, valid.f_f-score 0.78641: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 91 | valid.f_iou 0.7075899839401245, valid.f_f-score 0.78641: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 92 | loss 0.6569961905479431, f_iou 0.7164469957351685: 0%| | 0/74 [00:05, ?it/s]
epoch 92 | loss 0.6569961905479431, f_iou 0.7164469957351685: 1%|▌ | 1/74 [00:05<06:42, 5.52s/it]
epoch 92 | loss 0.6388742327690125, f_iou 0.7847867012023926: 1%|▌ | 1/74 [00:06<06:42, 5.52s/it]
epoch 92 | loss 0.6388742327690125, f_iou 0.7847867012023926: 3%|█ | 2/74 [00:06<03:22, 2.81s/it]
epoch 92 | loss 1.4515457153320312, f_iou 0.785916805267334: 3%|█ | 2/74 [00:07<03:22, 2.81s/it]
epoch 92 | loss 1.4515457153320312, f_iou 0.785916805267334: 4%|█▌ | 3/74 [00:07<02:12, 1.87s/it]
epoch 92 | loss 2.038365602493286, f_iou 0.7085877656936646: 4%|█▌ | 3/74 [00:07<02:12, 1.87s/it]
epoch 92 | loss 2.038365602493286, f_iou 0.7085877656936646: 5%|██ | 4/74 [00:07<01:40, 1.44s/it]
epoch 92 | loss 1.133345365524292, f_iou 0.7494199275970459: 5%|██ | 4/74 [00:08<01:40, 1.44s/it]
epoch 92 | loss 1.133345365524292, f_iou 0.7494199275970459: 7%|██▌ | 5/74 [00:08<01:23, 1.21s/it]
epoch 92 | loss 0.616587221622467, f_iou 0.6954621076583862: 7%|██▌ | 5/74 [00:09<01:23, 1.21s/it]
epoch 92 | loss 0.616587221622467, f_iou 0.6954621076583862: 8%|███ | 6/74 [00:09<01:12, 1.07s/it]
epoch 92 | loss 1.517838716506958, f_iou 0.6386419534683228: 8%|███ | 6/74 [00:10<01:12, 1.07s/it]
epoch 92 | loss 1.517838716506958, f_iou 0.6386419534683228: 9%|███▌ | 7/74 [00:10<01:05, 1.03it/s]
epoch 92 | loss 0.6678509712219238, f_iou 0.6256571412086487: 9%|███▌ | 7/74 [00:11<01:05, 1.03it/s]
epoch 92 | loss 0.6678509712219238, f_iou 0.6256571412086487: 11%|████ | 8/74 [00:11<01:00, 1.10it/s]
epoch 92 | loss 1.263250708580017, f_iou 0.577541708946228: 11%|████▏ | 8/74 [00:11<01:00, 1.10it/s]
epoch 92 | loss 1.263250708580017, f_iou 0.577541708946228: 12%|████▋ | 9/74 [00:11<00:56, 1.14it/s]
epoch 92 | loss 1.3972175121307373, f_iou 0.5852574706077576: 12%|████▌ | 9/74 [00:12<00:56, 1.14it/s]
epoch 92 | loss 1.3972175121307373, f_iou 0.5852574706077576: 14%|████▊ | 10/74 [00:12<00:54, 1.18it/s]
epoch 92 | loss 1.2132883071899414, f_iou 0.5925451517105103: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 92 | loss 1.2132883071899414, f_iou 0.5925451517105103: 15%|█████▎ | 11/74 [00:13<00:52, 1.20it/s]
epoch 92 | loss 1.7657097578048706, f_iou 0.5557205677032471: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 92 | loss 1.7657097578048706, f_iou 0.5557205677032471: 16%|█████▊ | 12/74 [00:14<00:50, 1.22it/s]
epoch 92 | loss 2.28190279006958, f_iou 0.5733454823493958: 16%|██████▏ | 12/74 [00:15<00:50, 1.22it/s]
epoch 92 | loss 2.28190279006958, f_iou 0.5733454823493958: 18%|██████▋ | 13/74 [00:15<00:49, 1.24it/s]
epoch 92 | loss 1.0759012699127197, f_iou 0.5845276713371277: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 92 | loss 1.0759012699127197, f_iou 0.5845276713371277: 19%|██████▊ | 14/74 [00:15<00:47, 1.27it/s]
epoch 92 | loss 1.8891059160232544, f_iou 0.5904540419578552: 19%|██████▊ | 14/74 [00:16<00:47, 1.27it/s]
epoch 92 | loss 1.8891059160232544, f_iou 0.5904540419578552: 20%|███████▎ | 15/74 [00:16<00:46, 1.28it/s]
epoch 92 | loss 1.3127515316009521, f_iou 0.5940976738929749: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 92 | loss 1.3127515316009521, f_iou 0.5940976738929749: 22%|███████▊ | 16/74 [00:17<00:45, 1.28it/s]
epoch 92 | loss 0.8588663339614868, f_iou 0.5592178106307983: 22%|███████▊ | 16/74 [00:18<00:45, 1.28it/s]
epoch 92 | loss 0.8588663339614868, f_iou 0.5592178106307983: 23%|████████▎ | 17/74 [00:18<00:44, 1.29it/s]
epoch 92 | loss 0.8291321992874146, f_iou 0.5779860615730286: 23%|████████▎ | 17/74 [00:18<00:44, 1.29it/s]
epoch 92 | loss 0.8291321992874146, f_iou 0.5779860615730286: 24%|████████▊ | 18/74 [00:18<00:43, 1.29it/s]
epoch 92 | loss 0.5287654399871826, f_iou 0.5581763982772827: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 92 | loss 0.5287654399871826, f_iou 0.5581763982772827: 26%|█████████▏ | 19/74 [00:19<00:42, 1.30it/s]
epoch 92 | loss 1.196961760520935, f_iou 0.5333633422851562: 26%|█████████▌ | 19/74 [00:20<00:42, 1.30it/s]
epoch 92 | loss 1.196961760520935, f_iou 0.5333633422851562: 27%|██████████ | 20/74 [00:20<00:40, 1.32it/s]
epoch 92 | loss 2.516638994216919, f_iou 0.5318903923034668: 27%|██████████ | 20/74 [00:21<00:40, 1.32it/s]
epoch 92 | loss 2.516638994216919, f_iou 0.5318903923034668: 28%|██████████▌ | 21/74 [00:21<00:39, 1.34it/s]
epoch 92 | loss 0.8215932250022888, f_iou 0.5485739707946777: 28%|██████████▏ | 21/74 [00:21<00:39, 1.34it/s]
epoch 92 | loss 0.8215932250022888, f_iou 0.5485739707946777: 30%|██████████▋ | 22/74 [00:21<00:38, 1.36it/s]
epoch 92 | loss 1.4129598140716553, f_iou 0.5553070902824402: 30%|██████████▋ | 22/74 [00:22<00:38, 1.36it/s]
epoch 92 | loss 1.4129598140716553, f_iou 0.5553070902824402: 31%|███████████▏ | 23/74 [00:22<00:37, 1.37it/s]
epoch 92 | loss 1.302232265472412, f_iou 0.565622091293335: 31%|███████████▊ | 23/74 [00:23<00:37, 1.37it/s]
epoch 92 | loss 1.302232265472412, f_iou 0.565622091293335: 32%|████████████▎ | 24/74 [00:23<00:36, 1.37it/s]
epoch 92 | loss 2.7149734497070312, f_iou 0.5611024498939514: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 92 | loss 2.7149734497070312, f_iou 0.5611024498939514: 34%|████████████▏ | 25/74 [00:23<00:35, 1.38it/s]
epoch 92 | loss 0.30193448066711426, f_iou 0.5686222314834595: 34%|███████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 92 | loss 0.30193448066711426, f_iou 0.5686222314834595: 35%|████████████▎ | 26/74 [00:24<00:34, 1.38it/s]
epoch 92 | loss 0.8935998678207397, f_iou 0.5766366720199585: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 92 | loss 0.8935998678207397, f_iou 0.5766366720199585: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 92 | loss 0.6398133039474487, f_iou 0.5674185752868652: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 92 | loss 0.6398133039474487, f_iou 0.5674185752868652: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.39it/s]
epoch 92 | loss 1.722716212272644, f_iou 0.5750720500946045: 38%|██████████████ | 28/74 [00:26<00:33, 1.39it/s]
epoch 92 | loss 1.722716212272644, f_iou 0.5750720500946045: 39%|██████████████▌ | 29/74 [00:26<00:32, 1.39it/s]
epoch 92 | loss 1.0218350887298584, f_iou 0.5560564994812012: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 92 | loss 1.0218350887298584, f_iou 0.5560564994812012: 41%|██████████████▌ | 30/74 [00:27<00:31, 1.39it/s]
epoch 92 | loss 0.9606439471244812, f_iou 0.5578225255012512: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 92 | loss 0.9606439471244812, f_iou 0.5578225255012512: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 92 | loss 1.3919376134872437, f_iou 0.5459955334663391: 42%|███████████████ | 31/74 [00:28<00:30, 1.40it/s]
epoch 92 | loss 1.3919376134872437, f_iou 0.5459955334663391: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.39it/s]
epoch 92 | loss 2.6204240322113037, f_iou 0.5435739755630493: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 92 | loss 2.6204240322113037, f_iou 0.5435739755630493: 45%|████████████████ | 33/74 [00:29<00:29, 1.40it/s]
epoch 92 | loss 1.1403043270111084, f_iou 0.5513484477996826: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 92 | loss 1.1403043270111084, f_iou 0.5513484477996826: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.40it/s]
epoch 92 | loss 0.45460981130599976, f_iou 0.5514369010925293: 46%|████████████████ | 34/74 [00:31<00:28, 1.40it/s]
epoch 92 | loss 0.45460981130599976, f_iou 0.5514369010925293: 47%|████████████████▌ | 35/74 [00:31<00:27, 1.40it/s]
epoch 92 | loss 0.8546894788742065, f_iou 0.5472277402877808: 47%|█████████████████ | 35/74 [00:31<00:27, 1.40it/s]
epoch 92 | loss 0.8546894788742065, f_iou 0.5472277402877808: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.38it/s]
epoch 92 | loss 0.6295185089111328, f_iou 0.5573732852935791: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 92 | loss 0.6295185089111328, f_iou 0.5573732852935791: 50%|██████████████████ | 37/74 [00:32<00:26, 1.38it/s]
epoch 92 | loss 1.0749150514602661, f_iou 0.5626644492149353: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 92 | loss 1.0749150514602661, f_iou 0.5626644492149353: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 92 | loss 2.4429268836975098, f_iou 0.55231112241745: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.38it/s]
epoch 92 | loss 2.4429268836975098, f_iou 0.55231112241745: 53%|████████████████████ | 39/74 [00:34<00:25, 1.39it/s]
epoch 92 | loss 0.8120671510696411, f_iou 0.5612518191337585: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 92 | loss 0.8120671510696411, f_iou 0.5612518191337585: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 92 | loss 0.6459895372390747, f_iou 0.5659414529800415: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 92 | loss 0.6459895372390747, f_iou 0.5659414529800415: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 92 | loss 2.0430753231048584, f_iou 0.5672852396965027: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 92 | loss 2.0430753231048584, f_iou 0.5672852396965027: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 92 | loss 0.4104069173336029, f_iou 0.5763916373252869: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 92 | loss 0.4104069173336029, f_iou 0.5763916373252869: 58%|████████████████████▉ | 43/74 [00:36<00:22, 1.39it/s]
epoch 92 | loss 0.0, f_iou 0.5856925249099731: 58%|█████████████████████████████▋ | 43/74 [00:37<00:22, 1.39it/s]
epoch 92 | loss 0.0, f_iou 0.5856925249099731: 59%|██████████████████████████████▎ | 44/74 [00:37<00:21, 1.39it/s]
epoch 92 | loss 1.0510942935943604, f_iou 0.5862656235694885: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 92 | loss 1.0510942935943604, f_iou 0.5862656235694885: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.39it/s]
epoch 92 | loss 1.694783329963684, f_iou 0.5818879008293152: 61%|██████████████████████▌ | 45/74 [00:39<00:20, 1.39it/s]
epoch 92 | loss 1.694783329963684, f_iou 0.5818879008293152: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 92 | loss 1.1007483005523682, f_iou 0.5883415937423706: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 92 | loss 1.1007483005523682, f_iou 0.5883415937423706: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.39it/s]
epoch 92 | loss 1.1198558807373047, f_iou 0.5890021324157715: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 92 | loss 1.1198558807373047, f_iou 0.5890021324157715: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 92 | loss 0.9210461378097534, f_iou 0.593981921672821: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 92 | loss 0.9210461378097534, f_iou 0.593981921672821: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.39it/s]
epoch 92 | loss 0.7279366254806519, f_iou 0.5971541404724121: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 92 | loss 0.7279366254806519, f_iou 0.5971541404724121: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.39it/s]
epoch 92 | loss 0.9626802802085876, f_iou 0.6031895875930786: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 92 | loss 0.9626802802085876, f_iou 0.6031895875930786: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.40it/s]
epoch 92 | loss 0.8474940657615662, f_iou 0.6071043014526367: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.40it/s]
epoch 92 | loss 0.8474940657615662, f_iou 0.6071043014526367: 70%|█████████████████████████▎ | 52/74 [00:43<00:15, 1.39it/s]
epoch 92 | loss 0.455588698387146, f_iou 0.6114141941070557: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 92 | loss 0.455588698387146, f_iou 0.6114141941070557: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.40it/s]
epoch 92 | loss 1.4792102575302124, f_iou 0.6137742400169373: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.40it/s]
epoch 92 | loss 1.4792102575302124, f_iou 0.6137742400169373: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.39it/s]
epoch 92 | loss 0.4742450714111328, f_iou 0.6084417104721069: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 92 | loss 0.4742450714111328, f_iou 0.6084417104721069: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.40it/s]
epoch 92 | loss 0.9627848863601685, f_iou 0.6125593185424805: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 92 | loss 0.9627848863601685, f_iou 0.6125593185424805: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 92 | loss 0.5273091793060303, f_iou 0.6037742495536804: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 92 | loss 0.5273091793060303, f_iou 0.6037742495536804: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.40it/s]
epoch 92 | loss 1.5367496013641357, f_iou 0.6052506566047668: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.40it/s]
epoch 92 | loss 1.5367496013641357, f_iou 0.6052506566047668: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 92 | loss 0.5981009602546692, f_iou 0.6111032962799072: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 92 | loss 0.5981009602546692, f_iou 0.6111032962799072: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.38it/s]
epoch 92 | loss 0.6940475106239319, f_iou 0.6145743727684021: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 92 | loss 0.6940475106239319, f_iou 0.6145743727684021: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 92 | loss 0.3803321123123169, f_iou 0.6166049242019653: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 92 | loss 0.3803321123123169, f_iou 0.6166049242019653: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.38it/s]
epoch 92 | loss 0.7480247020721436, f_iou 0.6208266615867615: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 92 | loss 0.7480247020721436, f_iou 0.6208266615867615: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 92 | loss 0.782065749168396, f_iou 0.6251349449157715: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.39it/s]
epoch 92 | loss 0.782065749168396, f_iou 0.6251349449157715: 85%|███████████████████████████████▌ | 63/74 [00:51<00:07, 1.38it/s]
epoch 92 | loss 1.01193106174469, f_iou 0.6281599998474121: 85%|████████████████████████████████▎ | 63/74 [00:52<00:07, 1.38it/s]
epoch 92 | loss 1.01193106174469, f_iou 0.6281599998474121: 86%|████████████████████████████████▊ | 64/74 [00:52<00:07, 1.39it/s]
epoch 92 | loss 1.5916192531585693, f_iou 0.6243727803230286: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 92 | loss 1.5916192531585693, f_iou 0.6243727803230286: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.38it/s]
epoch 92 | loss 1.0174610614776611, f_iou 0.6294078826904297: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.38it/s]
epoch 92 | loss 1.0174610614776611, f_iou 0.6294078826904297: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 92 | loss 0.5983825325965881, f_iou 0.6339804530143738: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 92 | loss 0.5983825325965881, f_iou 0.6339804530143738: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 92 | loss 0.533639669418335, f_iou 0.6375017166137695: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 92 | loss 0.533639669418335, f_iou 0.6375017166137695: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.39it/s]
epoch 92 | loss 1.253174901008606, f_iou 0.6390698552131653: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 92 | loss 1.253174901008606, f_iou 0.6390698552131653: 93%|██████████████████████████████████▌ | 69/74 [00:55<00:03, 1.39it/s]
epoch 92 | loss 1.0764869451522827, f_iou 0.6406660676002502: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 92 | loss 1.0764869451522827, f_iou 0.6406660676002502: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 92 | loss 1.0462632179260254, f_iou 0.6452286243438721: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 92 | loss 1.0462632179260254, f_iou 0.6452286243438721: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 92 | loss 0.9195660352706909, f_iou 0.6410107016563416: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 92 | loss 0.9195660352706909, f_iou 0.6410107016563416: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.39it/s]
epoch 92 | loss 0.9695487022399902, f_iou 0.6441832780838013: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 92 | loss 0.9695487022399902, f_iou 0.6441832780838013: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 92 | loss 2.3538386821746826, f_iou 0.6470757722854614: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 92 | loss 2.3538386821746826, f_iou 0.6470757722854614: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 92 | loss 2.3538386821746826, f_iou 0.6470757722854614: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 92 | valid.f_iou 0.7195000052452087, valid.f_f-score 0.81926: 0%| | 0/16 [00:05, ?it/s]
epoch 92 | valid.f_iou 0.7195000052452087, valid.f_f-score 0.81926: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 92 | valid.f_iou 0.7062399983406067, valid.f_f-score 0.86852: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 92 | valid.f_iou 0.7062399983406067, valid.f_f-score 0.86852: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 92 | valid.f_iou 0.5747299790382385, valid.f_f-score 0.77848: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 92 | valid.f_iou 0.5747299790382385, valid.f_f-score 0.77848: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 92 | valid.f_iou 0.6030799746513367, valid.f_f-score 0.7591: 19%|██████ | 3/16 [00:06<00:21, 1.62s/it]
epoch 92 | valid.f_iou 0.6030799746513367, valid.f_f-score 0.7591: 25%|████████ | 4/16 [00:06<00:13, 1.14s/it]
epoch 92 | valid.f_iou 0.6122699975967407, valid.f_f-score 0.76337: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 92 | valid.f_iou 0.6122699975967407, valid.f_f-score 0.76337: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 92 | valid.f_iou 0.561460018157959, valid.f_f-score 0.71428: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 92 | valid.f_iou 0.561460018157959, valid.f_f-score 0.71428: 38%|████████████ | 6/16 [00:07<00:07, 1.34it/s]
epoch 92 | valid.f_iou 0.5599799752235413, valid.f_f-score 0.72846: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 92 | valid.f_iou 0.5599799752235413, valid.f_f-score 0.72846: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 92 | valid.f_iou 0.5408200025558472, valid.f_f-score 0.71957: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 92 | valid.f_iou 0.5408200025558472, valid.f_f-score 0.71957: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 92 | valid.f_iou 0.5563899874687195, valid.f_f-score 0.72727: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 92 | valid.f_iou 0.5563899874687195, valid.f_f-score 0.72727: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 92 | valid.f_iou 0.5555199980735779, valid.f_f-score 0.73233: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 92 | valid.f_iou 0.5555199980735779, valid.f_f-score 0.73233: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 92 | valid.f_iou 0.5585500001907349, valid.f_f-score 0.73368: 62%|██████████████████▊ | 10/16 [00:10<00:03, 1.96it/s]
epoch 92 | valid.f_iou 0.5585500001907349, valid.f_f-score 0.73368: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.04it/s]
epoch 92 | valid.f_iou 0.5786600112915039, valid.f_f-score 0.74958: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.04it/s]
epoch 92 | valid.f_iou 0.5786600112915039, valid.f_f-score 0.74958: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 92 | valid.f_iou 0.5868499875068665, valid.f_f-score 0.75642: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.15it/s]
epoch 92 | valid.f_iou 0.5868499875068665, valid.f_f-score 0.75642: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.29it/s]
epoch 92 | valid.f_iou 0.5807399749755859, valid.f_f-score 0.75301: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.29it/s]
epoch 92 | valid.f_iou 0.5807399749755859, valid.f_f-score 0.75301: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.41it/s]
epoch 92 | valid.f_iou 0.5883299708366394, valid.f_f-score 0.75403: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.41it/s]
epoch 92 | valid.f_iou 0.5883299708366394, valid.f_f-score 0.75403: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 92 | valid.f_iou 0.5925899744033813, valid.f_f-score 0.75138: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 92 | valid.f_iou 0.5925899744033813, valid.f_f-score 0.75138: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 92 | valid.f_iou 0.5925899744033813, valid.f_f-score 0.75138: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 92 | valid.f_iou 0.7854499816894531, valid.f_f-score 0.834: 0%| | 0/16 [00:05, ?it/s]
epoch 92 | valid.f_iou 0.7854499816894531, valid.f_f-score 0.834: 6%|██ | 1/16 [00:05<01:19, 5.30s/it]
epoch 92 | valid.f_iou 0.8220800161361694, valid.f_f-score 0.88217: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 92 | valid.f_iou 0.8220800161361694, valid.f_f-score 0.88217: 12%|███▉ | 2/16 [00:05<00:34, 2.45s/it]
epoch 92 | valid.f_iou 0.7350299954414368, valid.f_f-score 0.84193: 12%|███▉ | 2/16 [00:06<00:34, 2.45s/it]
epoch 92 | valid.f_iou 0.7350299954414368, valid.f_f-score 0.84193: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 92 | valid.f_iou 0.7109900116920471, valid.f_f-score 0.80558: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 92 | valid.f_iou 0.7109900116920471, valid.f_f-score 0.80558: 25%|███████▊ | 4/16 [00:06<00:13, 1.11s/it]
epoch 92 | valid.f_iou 0.6897299885749817, valid.f_f-score 0.79065: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 92 | valid.f_iou 0.6897299885749817, valid.f_f-score 0.79065: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 92 | valid.f_iou 0.6739100217819214, valid.f_f-score 0.78167: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 92 | valid.f_iou 0.6739100217819214, valid.f_f-score 0.78167: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 92 | valid.f_iou 0.694350004196167, valid.f_f-score 0.80314: 38%|████████████ | 6/16 [00:08<00:07, 1.35it/s]
epoch 92 | valid.f_iou 0.694350004196167, valid.f_f-score 0.80314: 44%|██████████████ | 7/16 [00:08<00:05, 1.55it/s]
epoch 92 | valid.f_iou 0.6890400052070618, valid.f_f-score 0.80148: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 92 | valid.f_iou 0.6890400052070618, valid.f_f-score 0.80148: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 92 | valid.f_iou 0.6968700289726257, valid.f_f-score 0.80489: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 92 | valid.f_iou 0.6968700289726257, valid.f_f-score 0.80489: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.98it/s]
epoch 92 | valid.f_iou 0.7063500285148621, valid.f_f-score 0.81355: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.98it/s]
epoch 92 | valid.f_iou 0.7063500285148621, valid.f_f-score 0.81355: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.15it/s]
epoch 92 | valid.f_iou 0.6975499987602234, valid.f_f-score 0.79587: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.15it/s]
epoch 92 | valid.f_iou 0.6975499987602234, valid.f_f-score 0.79587: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.30it/s]
epoch 92 | valid.f_iou 0.7112299799919128, valid.f_f-score 0.80733: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.30it/s]
epoch 92 | valid.f_iou 0.7112299799919128, valid.f_f-score 0.80733: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 92 | valid.f_iou 0.7240599989891052, valid.f_f-score 0.81658: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.41it/s]
epoch 92 | valid.f_iou 0.7240599989891052, valid.f_f-score 0.81658: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 92 | valid.f_iou 0.7104200124740601, valid.f_f-score 0.80414: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 92 | valid.f_iou 0.7104200124740601, valid.f_f-score 0.80414: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 92 | valid.f_iou 0.7151399850845337, valid.f_f-score 0.81235: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 92 | valid.f_iou 0.7151399850845337, valid.f_f-score 0.81235: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 92 | valid.f_iou 0.7105399966239929, valid.f_f-score 0.80809: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 92 | valid.f_iou 0.7105399966239929, valid.f_f-score 0.80809: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 92 | valid.f_iou 0.7105399966239929, valid.f_f-score 0.80809: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 92 | valid.f_iou 0.7854499816894531, valid.f_f-score 0.834: 0%| | 0/16 [00:04, ?it/s]
epoch 92 | valid.f_iou 0.7854499816894531, valid.f_f-score 0.834: 6%|██ | 1/16 [00:04<01:14, 5.00s/it]
epoch 92 | valid.f_iou 0.8220800161361694, valid.f_f-score 0.88217: 6%|█▉ | 1/16 [00:05<01:14, 5.00s/it]
epoch 92 | valid.f_iou 0.8220800161361694, valid.f_f-score 0.88217: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 92 | valid.f_iou 0.7350299954414368, valid.f_f-score 0.84193: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 92 | valid.f_iou 0.7350299954414368, valid.f_f-score 0.84193: 19%|█████▊ | 3/16 [00:05<00:18, 1.46s/it]
epoch 92 | valid.f_iou 0.7111799716949463, valid.f_f-score 0.80558: 19%|█████▊ | 3/16 [00:06<00:18, 1.46s/it]
epoch 92 | valid.f_iou 0.7111799716949463, valid.f_f-score 0.80558: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 92 | valid.f_iou 0.6976600289344788, valid.f_f-score 0.79065: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 92 | valid.f_iou 0.6976600289344788, valid.f_f-score 0.79065: 31%|█████████▋ | 5/16 [00:06<00:08, 1.23it/s]
epoch 92 | valid.f_iou 0.6805199980735779, valid.f_f-score 0.78167: 31%|█████████▋ | 5/16 [00:07<00:08, 1.23it/s]
epoch 92 | valid.f_iou 0.6805199980735779, valid.f_f-score 0.78167: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 92 | valid.f_iou 0.7017199993133545, valid.f_f-score 0.80314: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 92 | valid.f_iou 0.7017199993133545, valid.f_f-score 0.80314: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 92 | valid.f_iou 0.6954900026321411, valid.f_f-score 0.80148: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 92 | valid.f_iou 0.6954900026321411, valid.f_f-score 0.80148: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.82it/s]
epoch 92 | valid.f_iou 0.705839991569519, valid.f_f-score 0.80489: 50%|████████████████ | 8/16 [00:08<00:04, 1.82it/s]
epoch 92 | valid.f_iou 0.705839991569519, valid.f_f-score 0.80489: 56%|██████████████████ | 9/16 [00:08<00:03, 1.94it/s]
epoch 92 | valid.f_iou 0.7136399745941162, valid.f_f-score 0.81165: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 92 | valid.f_iou 0.7136399745941162, valid.f_f-score 0.81165: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.01it/s]
epoch 92 | valid.f_iou 0.7041800022125244, valid.f_f-score 0.79414: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.01it/s]
epoch 92 | valid.f_iou 0.7041800022125244, valid.f_f-score 0.79414: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.07it/s]
epoch 92 | valid.f_iou 0.7173100113868713, valid.f_f-score 0.80574: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.07it/s]
epoch 92 | valid.f_iou 0.7173100113868713, valid.f_f-score 0.80574: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.13it/s]
epoch 92 | valid.f_iou 0.7296599745750427, valid.f_f-score 0.81625: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.13it/s]
epoch 92 | valid.f_iou 0.7296599745750427, valid.f_f-score 0.81625: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.27it/s]
epoch 92 | valid.f_iou 0.7156199812889099, valid.f_f-score 0.80385: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.27it/s]
epoch 92 | valid.f_iou 0.7156199812889099, valid.f_f-score 0.80385: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.39it/s]
epoch 92 | valid.f_iou 0.7199900150299072, valid.f_f-score 0.81208: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.39it/s]
epoch 92 | valid.f_iou 0.7199900150299072, valid.f_f-score 0.81208: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.47it/s]
epoch 92 | valid.f_iou 0.7155600190162659, valid.f_f-score 0.80783: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 92 | valid.f_iou 0.7155600190162659, valid.f_f-score 0.80783: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.54it/s]
epoch 92 | valid.f_iou 0.7155600190162659, valid.f_f-score 0.80783: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 93 | loss 2.8266587257385254, f_iou 0.7388373017311096: 0%| | 0/74 [00:06, ?it/s]
epoch 93 | loss 2.8266587257385254, f_iou 0.7388373017311096: 1%|▌ | 1/74 [00:06<07:20, 6.03s/it]
epoch 93 | loss 1.2766571044921875, f_iou 0.8090423345565796: 1%|▌ | 1/74 [00:06<07:20, 6.03s/it]
epoch 93 | loss 1.2766571044921875, f_iou 0.8090423345565796: 3%|█ | 2/74 [00:06<03:38, 3.03s/it]
epoch 93 | loss 0.505009114742279, f_iou 0.848228394985199: 3%|█ | 2/74 [00:07<03:38, 3.03s/it]
epoch 93 | loss 0.505009114742279, f_iou 0.848228394985199: 4%|█▌ | 3/74 [00:07<02:23, 2.02s/it]
epoch 93 | loss 1.6874419450759888, f_iou 0.8328190445899963: 4%|█▌ | 3/74 [00:08<02:23, 2.02s/it]
epoch 93 | loss 1.6874419450759888, f_iou 0.8328190445899963: 5%|██ | 4/74 [00:08<01:49, 1.56s/it]
epoch 93 | loss 0.4335777759552002, f_iou 0.7259269952774048: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 93 | loss 0.4335777759552002, f_iou 0.7259269952774048: 7%|██▌ | 5/74 [00:09<01:30, 1.30s/it]
epoch 93 | loss 0.83913254737854, f_iou 0.7031945586204529: 7%|██▋ | 5/74 [00:10<01:30, 1.30s/it]
epoch 93 | loss 0.83913254737854, f_iou 0.7031945586204529: 8%|███▏ | 6/74 [00:10<01:17, 1.13s/it]
epoch 93 | loss 1.116621971130371, f_iou 0.7065375447273254: 8%|███ | 6/74 [00:11<01:17, 1.13s/it]
epoch 93 | loss 1.116621971130371, f_iou 0.7065375447273254: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 93 | loss 0.6347169876098633, f_iou 0.7360696196556091: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 93 | loss 0.6347169876098633, f_iou 0.7360696196556091: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 93 | loss 0.3768022060394287, f_iou 0.7624686360359192: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 93 | loss 0.3768022060394287, f_iou 0.7624686360359192: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 93 | loss 0.3798049986362457, f_iou 0.782676100730896: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 93 | loss 0.3798049986362457, f_iou 0.782676100730896: 14%|█████ | 10/74 [00:13<00:54, 1.17it/s]
epoch 93 | loss 2.222280979156494, f_iou 0.76848965883255: 14%|█████▎ | 10/74 [00:14<00:54, 1.17it/s]
epoch 93 | loss 2.222280979156494, f_iou 0.76848965883255: 15%|█████▊ | 11/74 [00:14<00:52, 1.20it/s]
epoch 93 | loss 1.1188075542449951, f_iou 0.7781964540481567: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 93 | loss 1.1188075542449951, f_iou 0.7781964540481567: 16%|█████▊ | 12/74 [00:14<00:50, 1.23it/s]
epoch 93 | loss 0.5460582375526428, f_iou 0.7923170328140259: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 93 | loss 0.5460582375526428, f_iou 0.7923170328140259: 18%|██████▎ | 13/74 [00:15<00:48, 1.25it/s]
epoch 93 | loss 1.8766508102416992, f_iou 0.7791873216629028: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 93 | loss 1.8766508102416992, f_iou 0.7791873216629028: 19%|██████▊ | 14/74 [00:16<00:47, 1.26it/s]
epoch 93 | loss 0.0, f_iou 0.7919386029243469: 19%|█████████▋ | 14/74 [00:17<00:47, 1.26it/s]
epoch 93 | loss 0.0, f_iou 0.7919386029243469: 20%|██████████▎ | 15/74 [00:17<00:46, 1.27it/s]
epoch 93 | loss 0.4275648891925812, f_iou 0.8006443977355957: 20%|███████▎ | 15/74 [00:17<00:46, 1.27it/s]
epoch 93 | loss 0.4275648891925812, f_iou 0.8006443977355957: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 93 | loss 0.3857567310333252, f_iou 0.8108130097389221: 22%|███████▊ | 16/74 [00:18<00:44, 1.30it/s]
epoch 93 | loss 0.3857567310333252, f_iou 0.8108130097389221: 23%|████████▎ | 17/74 [00:18<00:42, 1.33it/s]
epoch 93 | loss 1.6732105016708374, f_iou 0.798681378364563: 23%|████████▌ | 17/74 [00:19<00:42, 1.33it/s]
epoch 93 | loss 1.6732105016708374, f_iou 0.798681378364563: 24%|█████████ | 18/74 [00:19<00:41, 1.34it/s]
epoch 93 | loss 1.8277924060821533, f_iou 0.7952806949615479: 24%|████████▊ | 18/74 [00:20<00:41, 1.34it/s]
epoch 93 | loss 1.8277924060821533, f_iou 0.7952806949615479: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 93 | loss 1.4184157848358154, f_iou 0.8029605150222778: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 93 | loss 1.4184157848358154, f_iou 0.8029605150222778: 27%|█████████▋ | 20/74 [00:20<00:39, 1.36it/s]
epoch 93 | loss 0.4891710579395294, f_iou 0.8104719519615173: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 93 | loss 0.4891710579395294, f_iou 0.8104719519615173: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 93 | loss 0.9779293537139893, f_iou 0.8157710433006287: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 93 | loss 0.9779293537139893, f_iou 0.8157710433006287: 30%|██████████▋ | 22/74 [00:22<00:38, 1.35it/s]
epoch 93 | loss 0.5608947277069092, f_iou 0.8225249648094177: 30%|██████████▋ | 22/74 [00:23<00:38, 1.35it/s]
epoch 93 | loss 0.5608947277069092, f_iou 0.8225249648094177: 31%|███████████▏ | 23/74 [00:23<00:38, 1.34it/s]
epoch 93 | loss 2.2039356231689453, f_iou 0.815822958946228: 31%|███████████▌ | 23/74 [00:23<00:38, 1.34it/s]
epoch 93 | loss 2.2039356231689453, f_iou 0.815822958946228: 32%|████████████ | 24/74 [00:23<00:37, 1.32it/s]
epoch 93 | loss 0.5768029689788818, f_iou 0.80000239610672: 32%|████████████▎ | 24/74 [00:24<00:37, 1.32it/s]
epoch 93 | loss 0.5768029689788818, f_iou 0.80000239610672: 34%|████████████▊ | 25/74 [00:24<00:37, 1.32it/s]
epoch 93 | loss 0.8280141353607178, f_iou 0.8037497997283936: 34%|████████████▏ | 25/74 [00:25<00:37, 1.32it/s]
epoch 93 | loss 0.8280141353607178, f_iou 0.8037497997283936: 35%|████████████▋ | 26/74 [00:25<00:36, 1.32it/s]
epoch 93 | loss 0.7690223455429077, f_iou 0.7872546315193176: 35%|████████████▋ | 26/74 [00:26<00:36, 1.32it/s]
epoch 93 | loss 0.7690223455429077, f_iou 0.7872546315193176: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.34it/s]
epoch 93 | loss 0.7836458683013916, f_iou 0.7938689589500427: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.34it/s]
epoch 93 | loss 0.7836458683013916, f_iou 0.7938689589500427: 38%|█████████████▌ | 28/74 [00:26<00:34, 1.35it/s]
epoch 93 | loss 1.285673975944519, f_iou 0.7942430973052979: 38%|██████████████ | 28/74 [00:27<00:34, 1.35it/s]
epoch 93 | loss 1.285673975944519, f_iou 0.7942430973052979: 39%|██████████████▌ | 29/74 [00:27<00:33, 1.35it/s]
epoch 93 | loss 1.908057451248169, f_iou 0.7854669690132141: 39%|██████████████▌ | 29/74 [00:28<00:33, 1.35it/s]
epoch 93 | loss 1.908057451248169, f_iou 0.7854669690132141: 41%|███████████████ | 30/74 [00:28<00:32, 1.35it/s]
epoch 93 | loss 1.001514196395874, f_iou 0.7877629399299622: 41%|███████████████ | 30/74 [00:29<00:32, 1.35it/s]
epoch 93 | loss 1.001514196395874, f_iou 0.7877629399299622: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.36it/s]
epoch 93 | loss 0.6566563248634338, f_iou 0.7872949838638306: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 93 | loss 0.6566563248634338, f_iou 0.7872949838638306: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 93 | loss 1.333177089691162, f_iou 0.7882789969444275: 43%|████████████████ | 32/74 [00:30<00:30, 1.36it/s]
epoch 93 | loss 1.333177089691162, f_iou 0.7882789969444275: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.37it/s]
epoch 93 | loss 0.7323024272918701, f_iou 0.7929506897926331: 45%|████████████████ | 33/74 [00:31<00:29, 1.37it/s]
epoch 93 | loss 0.7323024272918701, f_iou 0.7929506897926331: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.38it/s]
epoch 93 | loss 1.0833113193511963, f_iou 0.7849995493888855: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.38it/s]
epoch 93 | loss 1.0833113193511963, f_iou 0.7849995493888855: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 93 | loss 0.5516809821128845, f_iou 0.7893412113189697: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 93 | loss 0.5516809821128845, f_iou 0.7893412113189697: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 93 | loss 0.4189620316028595, f_iou 0.7927753329277039: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 93 | loss 0.4189620316028595, f_iou 0.7927753329277039: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 93 | loss 0.17099955677986145, f_iou 0.7944725751876831: 50%|█████████████████▌ | 37/74 [00:34<00:26, 1.39it/s]
epoch 93 | loss 0.17099955677986145, f_iou 0.7944725751876831: 51%|█████████████████▉ | 38/74 [00:34<00:25, 1.39it/s]
epoch 93 | loss 2.2424137592315674, f_iou 0.7933942675590515: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.39it/s]
epoch 93 | loss 2.2424137592315674, f_iou 0.7933942675590515: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 93 | loss 0.8879885077476501, f_iou 0.7976163625717163: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.39it/s]
epoch 93 | loss 0.8879885077476501, f_iou 0.7976163625717163: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 93 | loss 0.986760675907135, f_iou 0.7973807454109192: 54%|████████████████████ | 40/74 [00:36<00:24, 1.39it/s]
epoch 93 | loss 0.986760675907135, f_iou 0.7973807454109192: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.38it/s]
epoch 93 | loss 0.7528322339057922, f_iou 0.7983649969100952: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.38it/s]
epoch 93 | loss 0.7528322339057922, f_iou 0.7983649969100952: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.39it/s]
epoch 93 | loss 0.5982575416564941, f_iou 0.7928189039230347: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 93 | loss 0.5982575416564941, f_iou 0.7928189039230347: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 93 | loss 0.0, f_iou 0.7953880429267883: 58%|█████████████████████████████▋ | 43/74 [00:38<00:22, 1.38it/s]
epoch 93 | loss 0.0, f_iou 0.7953880429267883: 59%|██████████████████████████████▎ | 44/74 [00:38<00:21, 1.39it/s]
epoch 93 | loss 0.32834529876708984, f_iou 0.7991334795951843: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.39it/s]
epoch 93 | loss 0.32834529876708984, f_iou 0.7991334795951843: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.38it/s]
epoch 93 | loss 1.1265859603881836, f_iou 0.8010416626930237: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 93 | loss 1.1265859603881836, f_iou 0.8010416626930237: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.38it/s]
epoch 93 | loss 1.8314975500106812, f_iou 0.7959151864051819: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 93 | loss 1.8314975500106812, f_iou 0.7959151864051819: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 93 | loss 0.7598525285720825, f_iou 0.7931515574455261: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.39it/s]
epoch 93 | loss 0.7598525285720825, f_iou 0.7931515574455261: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 93 | loss 0.34417852759361267, f_iou 0.7969462871551514: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.39it/s]
epoch 93 | loss 0.34417852759361267, f_iou 0.7969462871551514: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.39it/s]
epoch 93 | loss 1.309340476989746, f_iou 0.7926082611083984: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.39it/s]
epoch 93 | loss 1.309340476989746, f_iou 0.7926082611083984: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.38it/s]
epoch 93 | loss 0.7294648885726929, f_iou 0.7835915684700012: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 93 | loss 0.7294648885726929, f_iou 0.7835915684700012: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 93 | loss 5.351485729217529, f_iou 0.7710084319114685: 69%|█████████████████████████▌ | 51/74 [00:44<00:16, 1.39it/s]
epoch 93 | loss 5.351485729217529, f_iou 0.7710084319114685: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.39it/s]
epoch 93 | loss 1.3474568128585815, f_iou 0.77036452293396: 70%|██████████████████████████▋ | 52/74 [00:44<00:15, 1.39it/s]
epoch 93 | loss 1.3474568128585815, f_iou 0.77036452293396: 72%|███████████████████████████▏ | 53/74 [00:44<00:15, 1.39it/s]
epoch 93 | loss 3.0029828548431396, f_iou 0.7608302235603333: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 93 | loss 3.0029828548431396, f_iou 0.7608302235603333: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 93 | loss 1.4514274597167969, f_iou 0.7576066255569458: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 93 | loss 1.4514274597167969, f_iou 0.7576066255569458: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 93 | loss 1.1059495210647583, f_iou 0.7576239705085754: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 93 | loss 1.1059495210647583, f_iou 0.7576239705085754: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 93 | loss 0.5858480930328369, f_iou 0.7597140073776245: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 93 | loss 0.5858480930328369, f_iou 0.7597140073776245: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 93 | loss 1.4775797128677368, f_iou 0.761476993560791: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.39it/s]
epoch 93 | loss 1.4775797128677368, f_iou 0.761476993560791: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.40it/s]
epoch 93 | loss 0.8361791372299194, f_iou 0.7637747526168823: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.40it/s]
epoch 93 | loss 0.8361791372299194, f_iou 0.7637747526168823: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 93 | loss 2.8124072551727295, f_iou 0.7599620223045349: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 93 | loss 2.8124072551727295, f_iou 0.7599620223045349: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.40it/s]
epoch 93 | loss 1.2928855419158936, f_iou 0.761061429977417: 81%|██████████████████████████████ | 60/74 [00:50<00:10, 1.40it/s]
epoch 93 | loss 1.2928855419158936, f_iou 0.761061429977417: 82%|██████████████████████████████▌ | 61/74 [00:50<00:09, 1.40it/s]
epoch 93 | loss 1.205132007598877, f_iou 0.7606800198554993: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.40it/s]
epoch 93 | loss 1.205132007598877, f_iou 0.7606800198554993: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.40it/s]
epoch 93 | loss 2.7911195755004883, f_iou 0.7519263029098511: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.40it/s]
epoch 93 | loss 2.7911195755004883, f_iou 0.7519263029098511: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.40it/s]
epoch 93 | loss 1.037729024887085, f_iou 0.7491117715835571: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.40it/s]
epoch 93 | loss 1.037729024887085, f_iou 0.7491117715835571: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.40it/s]
epoch 93 | loss 1.202195644378662, f_iou 0.750230073928833: 86%|████████████████████████████████▊ | 64/74 [00:53<00:07, 1.40it/s]
epoch 93 | loss 1.202195644378662, f_iou 0.750230073928833: 88%|█████████████████████████████████▍ | 65/74 [00:53<00:06, 1.40it/s]
epoch 93 | loss 0.8505041003227234, f_iou 0.7526529431343079: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.40it/s]
epoch 93 | loss 0.8505041003227234, f_iou 0.7526529431343079: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 93 | loss 4.6678009033203125, f_iou 0.7474393844604492: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 93 | loss 4.6678009033203125, f_iou 0.7474393844604492: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 93 | loss 1.7200448513031006, f_iou 0.7480304837226868: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 93 | loss 1.7200448513031006, f_iou 0.7480304837226868: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 93 | loss 0.4104415774345398, f_iou 0.7496973276138306: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 93 | loss 0.4104415774345398, f_iou 0.7496973276138306: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 93 | loss 1.6706687211990356, f_iou 0.7517780065536499: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.40it/s]
epoch 93 | loss 1.6706687211990356, f_iou 0.7517780065536499: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 93 | loss 1.211991548538208, f_iou 0.7432011365890503: 95%|███████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 93 | loss 1.211991548538208, f_iou 0.7432011365890503: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 93 | loss 1.2084546089172363, f_iou 0.7339642643928528: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 93 | loss 1.2084546089172363, f_iou 0.7339642643928528: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 93 | loss 1.1402474641799927, f_iou 0.7294156551361084: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 93 | loss 1.1402474641799927, f_iou 0.7294156551361084: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 93 | loss 0.8311361074447632, f_iou 0.7206370830535889: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 93 | loss 0.8311361074447632, f_iou 0.7206370830535889: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 93 | loss 0.8311361074447632, f_iou 0.7206370830535889: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 93 | valid.f_iou 0.7387700080871582, valid.f_f-score 0.80564: 0%| | 0/16 [00:05, ?it/s]
epoch 93 | valid.f_iou 0.7387700080871582, valid.f_f-score 0.80564: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 93 | valid.f_iou 0.677649974822998, valid.f_f-score 0.83239: 6%|██ | 1/16 [00:05<01:20, 5.35s/it]
epoch 93 | valid.f_iou 0.677649974822998, valid.f_f-score 0.83239: 12%|████ | 2/16 [00:05<00:34, 2.47s/it]
epoch 93 | valid.f_iou 0.5753999948501587, valid.f_f-score 0.77633: 12%|███▉ | 2/16 [00:06<00:34, 2.47s/it]
epoch 93 | valid.f_iou 0.5753999948501587, valid.f_f-score 0.77633: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 93 | valid.f_iou 0.5971599817276001, valid.f_f-score 0.77093: 19%|█████▊ | 3/16 [00:06<00:19, 1.54s/it]
epoch 93 | valid.f_iou 0.5971599817276001, valid.f_f-score 0.77093: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 93 | valid.f_iou 0.600059986114502, valid.f_f-score 0.77156: 25%|████████ | 4/16 [00:06<00:12, 1.08s/it]
epoch 93 | valid.f_iou 0.600059986114502, valid.f_f-score 0.77156: 31%|██████████ | 5/16 [00:06<00:09, 1.21it/s]
epoch 93 | valid.f_iou 0.5584200024604797, valid.f_f-score 0.72394: 31%|█████████▋ | 5/16 [00:07<00:09, 1.21it/s]
epoch 93 | valid.f_iou 0.5584200024604797, valid.f_f-score 0.72394: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 93 | valid.f_iou 0.5616700053215027, valid.f_f-score 0.74012: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 93 | valid.f_iou 0.5616700053215027, valid.f_f-score 0.74012: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.76it/s]
epoch 93 | valid.f_iou 0.544730007648468, valid.f_f-score 0.73273: 44%|██████████████ | 7/16 [00:08<00:05, 1.76it/s]
epoch 93 | valid.f_iou 0.544730007648468, valid.f_f-score 0.73273: 50%|████████████████ | 8/16 [00:08<00:04, 1.96it/s]
epoch 93 | valid.f_iou 0.5594499707221985, valid.f_f-score 0.73354: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.96it/s]
epoch 93 | valid.f_iou 0.5594499707221985, valid.f_f-score 0.73354: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 93 | valid.f_iou 0.5423399806022644, valid.f_f-score 0.73174: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.18it/s]
epoch 93 | valid.f_iou 0.5423399806022644, valid.f_f-score 0.73174: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 93 | valid.f_iou 0.5471900105476379, valid.f_f-score 0.73262: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.33it/s]
epoch 93 | valid.f_iou 0.5471900105476379, valid.f_f-score 0.73262: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 93 | valid.f_iou 0.5686100125312805, valid.f_f-score 0.74911: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 93 | valid.f_iou 0.5686100125312805, valid.f_f-score 0.74911: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 93 | valid.f_iou 0.5694500207901001, valid.f_f-score 0.75354: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.25it/s]
epoch 93 | valid.f_iou 0.5694500207901001, valid.f_f-score 0.75354: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 93 | valid.f_iou 0.5625500082969666, valid.f_f-score 0.74557: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.38it/s]
epoch 93 | valid.f_iou 0.5625500082969666, valid.f_f-score 0.74557: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 93 | valid.f_iou 0.5684700012207031, valid.f_f-score 0.74613: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.48it/s]
epoch 93 | valid.f_iou 0.5684700012207031, valid.f_f-score 0.74613: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.55it/s]
epoch 93 | valid.f_iou 0.5733000040054321, valid.f_f-score 0.74332: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 93 | valid.f_iou 0.5733000040054321, valid.f_f-score 0.74332: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 93 | valid.f_iou 0.5733000040054321, valid.f_f-score 0.74332: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.43it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 93 | valid.f_iou 0.736739993095398, valid.f_f-score 0.79741: 0%| | 0/16 [00:03, ?it/s]
epoch 93 | valid.f_iou 0.736739993095398, valid.f_f-score 0.79741: 6%|██ | 1/16 [00:03<00:58, 3.91s/it]
epoch 93 | valid.f_iou 0.8112199902534485, valid.f_f-score 0.87334: 6%|█▉ | 1/16 [00:04<00:58, 3.91s/it]
epoch 93 | valid.f_iou 0.8112199902534485, valid.f_f-score 0.87334: 12%|███▉ | 2/16 [00:04<00:30, 2.17s/it]
epoch 93 | valid.f_iou 0.7904700040817261, valid.f_f-score 0.87973: 12%|███▉ | 2/16 [00:05<00:30, 2.17s/it]
epoch 93 | valid.f_iou 0.7904700040817261, valid.f_f-score 0.87973: 19%|█████▊ | 3/16 [00:05<00:17, 1.38s/it]
epoch 93 | valid.f_iou 0.7435899972915649, valid.f_f-score 0.80425: 19%|█████▊ | 3/16 [00:05<00:17, 1.38s/it]
epoch 93 | valid.f_iou 0.7435899972915649, valid.f_f-score 0.80425: 25%|███████▊ | 4/16 [00:05<00:11, 1.02it/s]
epoch 93 | valid.f_iou 0.7180799841880798, valid.f_f-score 0.79975: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 93 | valid.f_iou 0.7180799841880798, valid.f_f-score 0.79975: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 93 | valid.f_iou 0.698639988899231, valid.f_f-score 0.78919: 31%|██████████ | 5/16 [00:06<00:08, 1.25it/s]
epoch 93 | valid.f_iou 0.698639988899231, valid.f_f-score 0.78919: 38%|████████████ | 6/16 [00:06<00:06, 1.49it/s]
epoch 93 | valid.f_iou 0.7148500084877014, valid.f_f-score 0.80952: 38%|███████████▋ | 6/16 [00:07<00:06, 1.49it/s]
epoch 93 | valid.f_iou 0.7148500084877014, valid.f_f-score 0.80952: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 93 | valid.f_iou 0.7069799900054932, valid.f_f-score 0.8065: 44%|██████████████ | 7/16 [00:07<00:05, 1.68it/s]
epoch 93 | valid.f_iou 0.7069799900054932, valid.f_f-score 0.8065: 50%|████████████████ | 8/16 [00:07<00:04, 1.85it/s]
epoch 93 | valid.f_iou 0.7108799815177917, valid.f_f-score 0.80949: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 93 | valid.f_iou 0.7108799815177917, valid.f_f-score 0.80949: 56%|█████████████████▍ | 9/16 [00:07<00:03, 1.97it/s]
epoch 93 | valid.f_iou 0.7141000032424927, valid.f_f-score 0.81978: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.97it/s]
epoch 93 | valid.f_iou 0.7141000032424927, valid.f_f-score 0.81978: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.07it/s]
epoch 93 | valid.f_iou 0.714739978313446, valid.f_f-score 0.81657: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.07it/s]
epoch 93 | valid.f_iou 0.714739978313446, valid.f_f-score 0.81657: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.22it/s]
epoch 93 | valid.f_iou 0.7268900275230408, valid.f_f-score 0.82629: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.22it/s]
epoch 93 | valid.f_iou 0.7268900275230408, valid.f_f-score 0.82629: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 93 | valid.f_iou 0.7390599846839905, valid.f_f-score 0.83414: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.25it/s]
epoch 93 | valid.f_iou 0.7390599846839905, valid.f_f-score 0.83414: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.38it/s]
epoch 93 | valid.f_iou 0.7322400212287903, valid.f_f-score 0.82782: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.38it/s]
epoch 93 | valid.f_iou 0.7322400212287903, valid.f_f-score 0.82782: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.48it/s]
epoch 93 | valid.f_iou 0.7409600019454956, valid.f_f-score 0.836: 88%|████████████████████████████ | 14/16 [00:10<00:00, 2.48it/s]
epoch 93 | valid.f_iou 0.7409600019454956, valid.f_f-score 0.836: 94%|██████████████████████████████ | 15/16 [00:10<00:00, 2.56it/s]
epoch 93 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.83416: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.56it/s]
epoch 93 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.83416: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.62it/s]
epoch 93 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.83416: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 93 | valid.f_iou 0.6936600208282471, valid.f_f-score 0.75189: 0%| | 0/16 [00:04, ?it/s]
epoch 93 | valid.f_iou 0.6936600208282471, valid.f_f-score 0.75189: 6%|█▉ | 1/16 [00:04<01:14, 5.00s/it]
epoch 93 | valid.f_iou 0.789680004119873, valid.f_f-score 0.85058: 6%|██ | 1/16 [00:05<01:14, 5.00s/it]
epoch 93 | valid.f_iou 0.789680004119873, valid.f_f-score 0.85058: 12%|████ | 2/16 [00:05<00:32, 2.33s/it]
epoch 93 | valid.f_iou 0.7761200070381165, valid.f_f-score 0.86456: 12%|███▉ | 2/16 [00:05<00:32, 2.33s/it]
epoch 93 | valid.f_iou 0.7761200070381165, valid.f_f-score 0.86456: 19%|█████▊ | 3/16 [00:05<00:19, 1.48s/it]
epoch 93 | valid.f_iou 0.7330300211906433, valid.f_f-score 0.79287: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 93 | valid.f_iou 0.7330300211906433, valid.f_f-score 0.79287: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 93 | valid.f_iou 0.7170699834823608, valid.f_f-score 0.79064: 25%|███████▊ | 4/16 [00:06<00:12, 1.04s/it]
epoch 93 | valid.f_iou 0.7170699834823608, valid.f_f-score 0.79064: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 93 | valid.f_iou 0.6977900266647339, valid.f_f-score 0.78161: 31%|█████████▋ | 5/16 [00:07<00:09, 1.22it/s]
epoch 93 | valid.f_iou 0.6977900266647339, valid.f_f-score 0.78161: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 93 | valid.f_iou 0.7158700227737427, valid.f_f-score 0.80302: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 93 | valid.f_iou 0.7158700227737427, valid.f_f-score 0.80302: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 93 | valid.f_iou 0.7078700065612793, valid.f_f-score 0.80081: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.67it/s]
epoch 93 | valid.f_iou 0.7078700065612793, valid.f_f-score 0.80081: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.92it/s]
epoch 93 | valid.f_iou 0.7149099707603455, valid.f_f-score 0.80443: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.92it/s]
epoch 93 | valid.f_iou 0.7149099707603455, valid.f_f-score 0.80443: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 93 | valid.f_iou 0.7169100046157837, valid.f_f-score 0.81217: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.14it/s]
epoch 93 | valid.f_iou 0.7169100046157837, valid.f_f-score 0.81217: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 93 | valid.f_iou 0.7172899842262268, valid.f_f-score 0.80965: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.30it/s]
epoch 93 | valid.f_iou 0.7172899842262268, valid.f_f-score 0.80965: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 93 | valid.f_iou 0.7292199730873108, valid.f_f-score 0.81995: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.42it/s]
epoch 93 | valid.f_iou 0.7292199730873108, valid.f_f-score 0.81995: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 93 | valid.f_iou 0.7412099838256836, valid.f_f-score 0.82961: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 93 | valid.f_iou 0.7412099838256836, valid.f_f-score 0.82961: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.57it/s]
epoch 93 | valid.f_iou 0.7311400175094604, valid.f_f-score 0.82064: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 93 | valid.f_iou 0.7311400175094604, valid.f_f-score 0.82064: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 93 | valid.f_iou 0.7399299740791321, valid.f_f-score 0.8293: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.62it/s]
epoch 93 | valid.f_iou 0.7399299740791321, valid.f_f-score 0.8293: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.67it/s]
epoch 93 | valid.f_iou 0.7392600178718567, valid.f_f-score 0.82895: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 93 | valid.f_iou 0.7392600178718567, valid.f_f-score 0.82895: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 93 | valid.f_iou 0.7392600178718567, valid.f_f-score 0.82895: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 94 | loss 2.4974844455718994, f_iou 0.5477723479270935: 0%| | 0/74 [00:05, ?it/s]
epoch 94 | loss 2.4974844455718994, f_iou 0.5477723479270935: 1%|▌ | 1/74 [00:05<06:31, 5.36s/it]
epoch 94 | loss 2.632835865020752, f_iou 0.5600972175598145: 1%|▌ | 1/74 [00:06<06:31, 5.36s/it]
epoch 94 | loss 2.632835865020752, f_iou 0.5600972175598145: 3%|█ | 2/74 [00:06<03:15, 2.71s/it]
epoch 94 | loss 1.7102562189102173, f_iou 0.6345121264457703: 3%|█ | 2/74 [00:07<03:15, 2.71s/it]
epoch 94 | loss 1.7102562189102173, f_iou 0.6345121264457703: 4%|█▌ | 3/74 [00:07<02:13, 1.88s/it]
epoch 94 | loss 1.4247097969055176, f_iou 0.6674215793609619: 4%|█▌ | 3/74 [00:07<02:13, 1.88s/it]
epoch 94 | loss 1.4247097969055176, f_iou 0.6674215793609619: 5%|██ | 4/74 [00:07<01:42, 1.46s/it]
epoch 94 | loss 0.658711850643158, f_iou 0.6214510202407837: 5%|██ | 4/74 [00:09<01:42, 1.46s/it]
epoch 94 | loss 0.658711850643158, f_iou 0.6214510202407837: 7%|██▌ | 5/74 [00:09<01:31, 1.32s/it]
epoch 94 | loss 0.742546021938324, f_iou 0.6774062514305115: 7%|██▌ | 5/74 [00:09<01:31, 1.32s/it]
epoch 94 | loss 0.742546021938324, f_iou 0.6774062514305115: 8%|███ | 6/74 [00:09<01:17, 1.13s/it]
epoch 94 | loss 0.7091912031173706, f_iou 0.7021483182907104: 8%|███ | 6/74 [00:10<01:17, 1.13s/it]
epoch 94 | loss 0.7091912031173706, f_iou 0.7021483182907104: 9%|███▌ | 7/74 [00:10<01:08, 1.02s/it]
epoch 94 | loss 0.8336367607116699, f_iou 0.7154294848442078: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 94 | loss 0.8336367607116699, f_iou 0.7154294848442078: 11%|████ | 8/74 [00:11<01:02, 1.06it/s]
epoch 94 | loss 0.9168980717658997, f_iou 0.7285553216934204: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 94 | loss 0.9168980717658997, f_iou 0.7285553216934204: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 94 | loss 0.46328333020210266, f_iou 0.745503306388855: 12%|████▌ | 9/74 [00:12<00:57, 1.12it/s]
epoch 94 | loss 0.46328333020210266, f_iou 0.745503306388855: 14%|████▊ | 10/74 [00:12<00:54, 1.18it/s]
epoch 94 | loss 0.34637773036956787, f_iou 0.7659144401550293: 14%|████▋ | 10/74 [00:13<00:54, 1.18it/s]
epoch 94 | loss 0.34637773036956787, f_iou 0.7659144401550293: 15%|█████▏ | 11/74 [00:13<00:51, 1.21it/s]
epoch 94 | loss 2.44332218170166, f_iou 0.7788970470428467: 15%|█████▋ | 11/74 [00:14<00:51, 1.21it/s]
epoch 94 | loss 2.44332218170166, f_iou 0.7788970470428467: 16%|██████▏ | 12/74 [00:14<00:49, 1.26it/s]
epoch 94 | loss 0.501366376876831, f_iou 0.7938016057014465: 16%|██████ | 12/74 [00:15<00:49, 1.26it/s]
epoch 94 | loss 0.501366376876831, f_iou 0.7938016057014465: 18%|██████▌ | 13/74 [00:15<00:47, 1.29it/s]
epoch 94 | loss 1.0008642673492432, f_iou 0.790898859500885: 18%|██████▌ | 13/74 [00:15<00:47, 1.29it/s]
epoch 94 | loss 1.0008642673492432, f_iou 0.790898859500885: 19%|███████ | 14/74 [00:15<00:45, 1.32it/s]
epoch 94 | loss 0.7643274068832397, f_iou 0.8013824224472046: 19%|██████▊ | 14/74 [00:16<00:45, 1.32it/s]
epoch 94 | loss 0.7643274068832397, f_iou 0.8013824224472046: 20%|███████▎ | 15/74 [00:16<00:44, 1.34it/s]
epoch 94 | loss 3.2260851860046387, f_iou 0.7719739079475403: 20%|███████▎ | 15/74 [00:17<00:44, 1.34it/s]
epoch 94 | loss 3.2260851860046387, f_iou 0.7719739079475403: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 94 | loss 0.7018833756446838, f_iou 0.7820098400115967: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 94 | loss 0.7018833756446838, f_iou 0.7820098400115967: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 94 | loss 0.9824233055114746, f_iou 0.791192889213562: 23%|████████▌ | 17/74 [00:18<00:41, 1.37it/s]
epoch 94 | loss 0.9824233055114746, f_iou 0.791192889213562: 24%|█████████ | 18/74 [00:18<00:41, 1.36it/s]
epoch 94 | loss 0.3282899260520935, f_iou 0.7982348799705505: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 94 | loss 0.3282899260520935, f_iou 0.7982348799705505: 26%|█████████▏ | 19/74 [00:19<00:40, 1.37it/s]
epoch 94 | loss 1.6572976112365723, f_iou 0.7627903819084167: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 94 | loss 1.6572976112365723, f_iou 0.7627903819084167: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 94 | loss 2.0207269191741943, f_iou 0.7460975050926208: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 94 | loss 2.0207269191741943, f_iou 0.7460975050926208: 28%|██████████▏ | 21/74 [00:20<00:38, 1.38it/s]
epoch 94 | loss 2.6787853240966797, f_iou 0.7366607785224915: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 94 | loss 2.6787853240966797, f_iou 0.7366607785224915: 30%|██████████▋ | 22/74 [00:21<00:37, 1.40it/s]
epoch 94 | loss 2.139650344848633, f_iou 0.7330373525619507: 30%|███████████ | 22/74 [00:22<00:37, 1.40it/s]
epoch 94 | loss 2.139650344848633, f_iou 0.7330373525619507: 31%|███████████▌ | 23/74 [00:22<00:36, 1.39it/s]
epoch 94 | loss 0.6290597915649414, f_iou 0.7189976572990417: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 94 | loss 0.6290597915649414, f_iou 0.7189976572990417: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 94 | loss 1.2765854597091675, f_iou 0.726538896560669: 32%|████████████ | 24/74 [00:23<00:35, 1.39it/s]
epoch 94 | loss 1.2765854597091675, f_iou 0.726538896560669: 34%|████████████▌ | 25/74 [00:23<00:35, 1.39it/s]
epoch 94 | loss 0.682557225227356, f_iou 0.7322870492935181: 34%|████████████▌ | 25/74 [00:24<00:35, 1.39it/s]
epoch 94 | loss 0.682557225227356, f_iou 0.7322870492935181: 35%|█████████████ | 26/74 [00:24<00:34, 1.40it/s]
epoch 94 | loss 0.8687704801559448, f_iou 0.7349535822868347: 35%|████████████▋ | 26/74 [00:25<00:34, 1.40it/s]
epoch 94 | loss 0.8687704801559448, f_iou 0.7349535822868347: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 94 | loss 0.7963368892669678, f_iou 0.7391706705093384: 36%|█████████████▏ | 27/74 [00:25<00:33, 1.39it/s]
epoch 94 | loss 0.7963368892669678, f_iou 0.7391706705093384: 38%|█████████████▌ | 28/74 [00:25<00:33, 1.38it/s]
epoch 94 | loss 1.2073211669921875, f_iou 0.7392982840538025: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.38it/s]
epoch 94 | loss 1.2073211669921875, f_iou 0.7392982840538025: 39%|██████████████ | 29/74 [00:26<00:32, 1.39it/s]
epoch 94 | loss 2.557865619659424, f_iou 0.737649142742157: 39%|██████████████▉ | 29/74 [00:27<00:32, 1.39it/s]
epoch 94 | loss 2.557865619659424, f_iou 0.737649142742157: 41%|███████████████▍ | 30/74 [00:27<00:31, 1.39it/s]
epoch 94 | loss 0.6394256353378296, f_iou 0.7446984052658081: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 94 | loss 0.6394256353378296, f_iou 0.7446984052658081: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 94 | loss 1.670357346534729, f_iou 0.7486562728881836: 42%|███████████████▌ | 31/74 [00:28<00:30, 1.39it/s]
epoch 94 | loss 1.670357346534729, f_iou 0.7486562728881836: 43%|████████████████ | 32/74 [00:28<00:30, 1.39it/s]
epoch 94 | loss 1.3980287313461304, f_iou 0.7444906234741211: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 94 | loss 1.3980287313461304, f_iou 0.7444906234741211: 45%|████████████████ | 33/74 [00:29<00:29, 1.39it/s]
epoch 94 | loss 2.9816460609436035, f_iou 0.7420931458473206: 45%|████████████████ | 33/74 [00:30<00:29, 1.39it/s]
epoch 94 | loss 2.9816460609436035, f_iou 0.7420931458473206: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.38it/s]
epoch 94 | loss 1.7089784145355225, f_iou 0.7358012199401855: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.38it/s]
epoch 94 | loss 1.7089784145355225, f_iou 0.7358012199401855: 47%|█████████████████ | 35/74 [00:30<00:28, 1.38it/s]
epoch 94 | loss 1.6215258836746216, f_iou 0.7377703785896301: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 94 | loss 1.6215258836746216, f_iou 0.7377703785896301: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 94 | loss 1.894660234451294, f_iou 0.7411448359489441: 49%|██████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 94 | loss 1.894660234451294, f_iou 0.7411448359489441: 50%|██████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 94 | loss 0.9506260752677917, f_iou 0.7446249127388: 50%|███████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 94 | loss 0.9506260752677917, f_iou 0.7446249127388: 51%|████████████████████ | 38/74 [00:33<00:26, 1.38it/s]
epoch 94 | loss 1.0290048122406006, f_iou 0.7459366917610168: 51%|██████████████████▍ | 38/74 [00:33<00:26, 1.38it/s]
epoch 94 | loss 1.0290048122406006, f_iou 0.7459366917610168: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.37it/s]
epoch 94 | loss 1.8192055225372314, f_iou 0.7422710061073303: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.37it/s]
epoch 94 | loss 1.8192055225372314, f_iou 0.7422710061073303: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.34it/s]
epoch 94 | loss 2.2094829082489014, f_iou 0.7288951873779297: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.34it/s]
epoch 94 | loss 2.2094829082489014, f_iou 0.7288951873779297: 55%|███████████████████▉ | 41/74 [00:35<00:25, 1.32it/s]
epoch 94 | loss 0.9140537977218628, f_iou 0.7303481101989746: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.32it/s]
epoch 94 | loss 0.9140537977218628, f_iou 0.7303481101989746: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.30it/s]
epoch 94 | loss 1.1363749504089355, f_iou 0.7312275171279907: 57%|████████████████████▍ | 42/74 [00:36<00:24, 1.30it/s]
epoch 94 | loss 1.1363749504089355, f_iou 0.7312275171279907: 58%|████████████████████▉ | 43/74 [00:36<00:23, 1.32it/s]
epoch 94 | loss 1.5375784635543823, f_iou 0.7290820479393005: 58%|████████████████████▉ | 43/74 [00:37<00:23, 1.32it/s]
epoch 94 | loss 1.5375784635543823, f_iou 0.7290820479393005: 59%|█████████████████████▍ | 44/74 [00:37<00:22, 1.34it/s]
epoch 94 | loss 0.8316980004310608, f_iou 0.7170028686523438: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 94 | loss 0.8316980004310608, f_iou 0.7170028686523438: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.36it/s]
epoch 94 | loss 1.1173350811004639, f_iou 0.7184992432594299: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.36it/s]
epoch 94 | loss 1.1173350811004639, f_iou 0.7184992432594299: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.36it/s]
epoch 94 | loss 2.437211513519287, f_iou 0.7197033166885376: 62%|███████████████████████ | 46/74 [00:39<00:20, 1.36it/s]
epoch 94 | loss 2.437211513519287, f_iou 0.7197033166885376: 64%|███████████████████████▌ | 47/74 [00:39<00:19, 1.37it/s]
epoch 94 | loss 0.8977870941162109, f_iou 0.7235250473022461: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 94 | loss 0.8977870941162109, f_iou 0.7235250473022461: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.38it/s]
epoch 94 | loss 1.2625316381454468, f_iou 0.7251750826835632: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 94 | loss 1.2625316381454468, f_iou 0.7251750826835632: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.35it/s]
epoch 94 | loss 0.0, f_iou 0.7302538752555847: 66%|█████████████████████████████████▊ | 49/74 [00:42<00:18, 1.35it/s]
epoch 94 | loss 0.0, f_iou 0.7302538752555847: 68%|██████████████████████████████████▍ | 50/74 [00:42<00:18, 1.30it/s]
epoch 94 | loss 0.45304834842681885, f_iou 0.7350811958312988: 68%|███████████████████████▋ | 50/74 [00:42<00:18, 1.30it/s]
epoch 94 | loss 0.45304834842681885, f_iou 0.7350811958312988: 69%|████████████████████████ | 51/74 [00:42<00:17, 1.29it/s]
epoch 94 | loss 1.5304306745529175, f_iou 0.7356396913528442: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.29it/s]
epoch 94 | loss 1.5304306745529175, f_iou 0.7356396913528442: 70%|█████████████████████████▎ | 52/74 [00:43<00:17, 1.29it/s]
epoch 94 | loss 0.9910410046577454, f_iou 0.7366728782653809: 70%|█████████████████████████▎ | 52/74 [00:44<00:17, 1.29it/s]
epoch 94 | loss 0.9910410046577454, f_iou 0.7366728782653809: 72%|█████████████████████████▊ | 53/74 [00:44<00:16, 1.28it/s]
epoch 94 | loss 0.8209324479103088, f_iou 0.7329457402229309: 72%|█████████████████████████▊ | 53/74 [00:45<00:16, 1.28it/s]
epoch 94 | loss 0.8209324479103088, f_iou 0.7329457402229309: 73%|██████████████████████████▎ | 54/74 [00:45<00:15, 1.27it/s]
epoch 94 | loss 2.259488821029663, f_iou 0.7297654151916504: 73%|███████████████████████████ | 54/74 [00:46<00:15, 1.27it/s]
epoch 94 | loss 2.259488821029663, f_iou 0.7297654151916504: 74%|███████████████████████████▌ | 55/74 [00:46<00:14, 1.30it/s]
epoch 94 | loss 0.7553408145904541, f_iou 0.7334669232368469: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.30it/s]
epoch 94 | loss 0.7553408145904541, f_iou 0.7334669232368469: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.32it/s]
epoch 94 | loss 1.4073278903961182, f_iou 0.7356564998626709: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.32it/s]
epoch 94 | loss 1.4073278903961182, f_iou 0.7356564998626709: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.34it/s]
epoch 94 | loss 0.9066449403762817, f_iou 0.7288715839385986: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.34it/s]
epoch 94 | loss 0.9066449403762817, f_iou 0.7288715839385986: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 94 | loss 2.4272279739379883, f_iou 0.7198794484138489: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 94 | loss 2.4272279739379883, f_iou 0.7198794484138489: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.37it/s]
epoch 94 | loss 1.2576124668121338, f_iou 0.7123081684112549: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.37it/s]
epoch 94 | loss 1.2576124668121338, f_iou 0.7123081684112549: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.37it/s]
epoch 94 | loss 1.20769202709198, f_iou 0.7071647047996521: 81%|██████████████████████████████▊ | 60/74 [00:50<00:10, 1.37it/s]
epoch 94 | loss 1.20769202709198, f_iou 0.7071647047996521: 82%|███████████████████████████████▎ | 61/74 [00:50<00:09, 1.37it/s]
epoch 94 | loss 2.1024820804595947, f_iou 0.7092392444610596: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.37it/s]
epoch 94 | loss 2.1024820804595947, f_iou 0.7092392444610596: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 94 | loss 0.4660585820674896, f_iou 0.7114759683609009: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 94 | loss 0.4660585820674896, f_iou 0.7114759683609009: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.38it/s]
epoch 94 | loss 1.051842451095581, f_iou 0.7103700637817383: 85%|███████████████████████████████▌ | 63/74 [00:52<00:07, 1.38it/s]
epoch 94 | loss 1.051842451095581, f_iou 0.7103700637817383: 86%|████████████████████████████████ | 64/74 [00:52<00:07, 1.38it/s]
epoch 94 | loss 1.3702843189239502, f_iou 0.7076442241668701: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 94 | loss 1.3702843189239502, f_iou 0.7076442241668701: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 94 | loss 2.6119940280914307, f_iou 0.7023339867591858: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 94 | loss 2.6119940280914307, f_iou 0.7023339867591858: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 94 | loss 2.790602922439575, f_iou 0.697485089302063: 89%|█████████████████████████████████▉ | 66/74 [00:54<00:05, 1.39it/s]
epoch 94 | loss 2.790602922439575, f_iou 0.697485089302063: 91%|██████████████████████████████████▍ | 67/74 [00:54<00:05, 1.40it/s]
epoch 94 | loss 0.2860819399356842, f_iou 0.6980421543121338: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.40it/s]
epoch 94 | loss 0.2860819399356842, f_iou 0.6980421543121338: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 94 | loss 0.5907094478607178, f_iou 0.7020631432533264: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 94 | loss 0.5907094478607178, f_iou 0.7020631432533264: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 94 | loss 1.0847909450531006, f_iou 0.7051244974136353: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 94 | loss 1.0847909450531006, f_iou 0.7051244974136353: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 94 | loss 1.2714736461639404, f_iou 0.7047476172447205: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 94 | loss 1.2714736461639404, f_iou 0.7047476172447205: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 94 | loss 0.6072730422019958, f_iou 0.7083467245101929: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 94 | loss 0.6072730422019958, f_iou 0.7083467245101929: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 94 | loss 0.621884822845459, f_iou 0.7067618370056152: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 94 | loss 0.621884822845459, f_iou 0.7067618370056152: 99%|████████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 94 | loss 1.027644157409668, f_iou 0.7026676535606384: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 94 | loss 1.027644157409668, f_iou 0.7026676535606384: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 94 | loss 1.027644157409668, f_iou 0.7026676535606384: 100%|█████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 94 | valid.f_iou 0.5598300099372864, valid.f_f-score 0.75326: 0%| | 0/16 [00:05, ?it/s]
epoch 94 | valid.f_iou 0.5598300099372864, valid.f_f-score 0.75326: 6%|█▉ | 1/16 [00:05<01:25, 5.67s/it]
epoch 94 | valid.f_iou 0.5981900095939636, valid.f_f-score 0.83771: 6%|█▉ | 1/16 [00:06<01:25, 5.67s/it]
epoch 94 | valid.f_iou 0.5981900095939636, valid.f_f-score 0.83771: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 94 | valid.f_iou 0.4722299873828888, valid.f_f-score 0.75429: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 94 | valid.f_iou 0.4722299873828888, valid.f_f-score 0.75429: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 94 | valid.f_iou 0.4876300096511841, valid.f_f-score 0.73224: 19%|█████▊ | 3/16 [00:07<00:21, 1.62s/it]
epoch 94 | valid.f_iou 0.4876300096511841, valid.f_f-score 0.73224: 25%|███████▊ | 4/16 [00:07<00:13, 1.16s/it]
epoch 94 | valid.f_iou 0.49706000089645386, valid.f_f-score 0.73144: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 94 | valid.f_iou 0.49706000089645386, valid.f_f-score 0.73144: 31%|█████████▍ | 5/16 [00:07<00:09, 1.10it/s]
epoch 94 | valid.f_iou 0.4567199945449829, valid.f_f-score 0.67977: 31%|█████████▋ | 5/16 [00:07<00:09, 1.10it/s]
epoch 94 | valid.f_iou 0.4567199945449829, valid.f_f-score 0.67977: 38%|███████████▋ | 6/16 [00:07<00:07, 1.31it/s]
epoch 94 | valid.f_iou 0.46599000692367554, valid.f_f-score 0.70488: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 94 | valid.f_iou 0.46599000692367554, valid.f_f-score 0.70488: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.51it/s]
epoch 94 | valid.f_iou 0.44773998856544495, valid.f_f-score 0.69693: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.51it/s]
epoch 94 | valid.f_iou 0.44773998856544495, valid.f_f-score 0.69693: 50%|███████████████ | 8/16 [00:08<00:04, 1.69it/s]
epoch 94 | valid.f_iou 0.479449987411499, valid.f_f-score 0.71064: 50%|████████████████ | 8/16 [00:09<00:04, 1.69it/s]
epoch 94 | valid.f_iou 0.479449987411499, valid.f_f-score 0.71064: 56%|██████████████████ | 9/16 [00:09<00:03, 1.94it/s]
epoch 94 | valid.f_iou 0.46904000639915466, valid.f_f-score 0.70903: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.94it/s]
epoch 94 | valid.f_iou 0.46904000639915466, valid.f_f-score 0.70903: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 94 | valid.f_iou 0.47909000515937805, valid.f_f-score 0.71141: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.03it/s]
epoch 94 | valid.f_iou 0.47909000515937805, valid.f_f-score 0.71141: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.10it/s]
epoch 94 | valid.f_iou 0.48927998542785645, valid.f_f-score 0.72387: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.10it/s]
epoch 94 | valid.f_iou 0.48927998542785645, valid.f_f-score 0.72387: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.15it/s]
epoch 94 | valid.f_iou 0.48405998945236206, valid.f_f-score 0.72381: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.15it/s]
epoch 94 | valid.f_iou 0.48405998945236206, valid.f_f-score 0.72381: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.19it/s]
epoch 94 | valid.f_iou 0.4826599955558777, valid.f_f-score 0.72207: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.19it/s]
epoch 94 | valid.f_iou 0.4826599955558777, valid.f_f-score 0.72207: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.26it/s]
epoch 94 | valid.f_iou 0.4983699917793274, valid.f_f-score 0.72788: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.26it/s]
epoch 94 | valid.f_iou 0.4983699917793274, valid.f_f-score 0.72788: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.26it/s]
epoch 94 | valid.f_iou 0.5075100064277649, valid.f_f-score 0.72859: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.26it/s]
epoch 94 | valid.f_iou 0.5075100064277649, valid.f_f-score 0.72859: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.32it/s]
epoch 94 | valid.f_iou 0.5075100064277649, valid.f_f-score 0.72859: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.31it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 94 | valid.f_iou 0.7676500082015991, valid.f_f-score 0.77909: 0%| | 0/16 [00:05, ?it/s]
epoch 94 | valid.f_iou 0.7676500082015991, valid.f_f-score 0.77909: 6%|█▉ | 1/16 [00:05<01:18, 5.25s/it]
epoch 94 | valid.f_iou 0.8095300197601318, valid.f_f-score 0.85484: 6%|█▉ | 1/16 [00:05<01:18, 5.25s/it]
epoch 94 | valid.f_iou 0.8095300197601318, valid.f_f-score 0.85484: 12%|███▉ | 2/16 [00:05<00:34, 2.44s/it]
epoch 94 | valid.f_iou 0.7446500062942505, valid.f_f-score 0.84097: 12%|███▉ | 2/16 [00:06<00:34, 2.44s/it]
epoch 94 | valid.f_iou 0.7446500062942505, valid.f_f-score 0.84097: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 94 | valid.f_iou 0.7410500049591064, valid.f_f-score 0.8125: 19%|██████ | 3/16 [00:06<00:20, 1.54s/it]
epoch 94 | valid.f_iou 0.7410500049591064, valid.f_f-score 0.8125: 25%|████████ | 4/16 [00:06<00:13, 1.11s/it]
epoch 94 | valid.f_iou 0.6982399821281433, valid.f_f-score 0.78657: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 94 | valid.f_iou 0.6982399821281433, valid.f_f-score 0.78657: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 94 | valid.f_iou 0.6788899898529053, valid.f_f-score 0.77463: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 94 | valid.f_iou 0.6788899898529053, valid.f_f-score 0.77463: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 94 | valid.f_iou 0.6958699822425842, valid.f_f-score 0.79674: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 94 | valid.f_iou 0.6958699822425842, valid.f_f-score 0.79674: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.57it/s]
epoch 94 | valid.f_iou 0.6933000087738037, valid.f_f-score 0.79781: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 94 | valid.f_iou 0.6933000087738037, valid.f_f-score 0.79781: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 94 | valid.f_iou 0.7067800164222717, valid.f_f-score 0.8055: 50%|████████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 94 | valid.f_iou 0.7067800164222717, valid.f_f-score 0.8055: 56%|██████████████████ | 9/16 [00:08<00:03, 1.88it/s]
epoch 94 | valid.f_iou 0.7168099880218506, valid.f_f-score 0.81675: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 94 | valid.f_iou 0.7168099880218506, valid.f_f-score 0.81675: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 94 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.81323: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 94 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.81323: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.07it/s]
epoch 94 | valid.f_iou 0.7210299968719482, valid.f_f-score 0.82103: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.07it/s]
epoch 94 | valid.f_iou 0.7210299968719482, valid.f_f-score 0.82103: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.13it/s]
epoch 94 | valid.f_iou 0.7332299947738647, valid.f_f-score 0.82896: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.13it/s]
epoch 94 | valid.f_iou 0.7332299947738647, valid.f_f-score 0.82896: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.18it/s]
epoch 94 | valid.f_iou 0.7193599939346313, valid.f_f-score 0.81692: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.18it/s]
epoch 94 | valid.f_iou 0.7193599939346313, valid.f_f-score 0.81692: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.32it/s]
epoch 94 | valid.f_iou 0.7259699702262878, valid.f_f-score 0.82259: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.32it/s]
epoch 94 | valid.f_iou 0.7259699702262878, valid.f_f-score 0.82259: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 94 | valid.f_iou 0.7246800065040588, valid.f_f-score 0.82037: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 94 | valid.f_iou 0.7246800065040588, valid.f_f-score 0.82037: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.50it/s]
epoch 94 | valid.f_iou 0.7246800065040588, valid.f_f-score 0.82037: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 94 | valid.f_iou 0.7676500082015991, valid.f_f-score 0.77909: 0%| | 0/16 [00:05, ?it/s]
epoch 94 | valid.f_iou 0.7676500082015991, valid.f_f-score 0.77909: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 94 | valid.f_iou 0.8095300197601318, valid.f_f-score 0.85484: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 94 | valid.f_iou 0.8095300197601318, valid.f_f-score 0.85484: 12%|███▉ | 2/16 [00:05<00:33, 2.42s/it]
epoch 94 | valid.f_iou 0.7446500062942505, valid.f_f-score 0.84097: 12%|███▉ | 2/16 [00:06<00:33, 2.42s/it]
epoch 94 | valid.f_iou 0.7446500062942505, valid.f_f-score 0.84097: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 94 | valid.f_iou 0.7411199808120728, valid.f_f-score 0.81252: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 94 | valid.f_iou 0.7411199808120728, valid.f_f-score 0.81252: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 94 | valid.f_iou 0.70455002784729, valid.f_f-score 0.78659: 25%|████████▎ | 4/16 [00:06<00:13, 1.09s/it]
epoch 94 | valid.f_iou 0.70455002784729, valid.f_f-score 0.78659: 31%|██████████▎ | 5/16 [00:06<00:09, 1.19it/s]
epoch 94 | valid.f_iou 0.684149980545044, valid.f_f-score 0.77464: 31%|██████████ | 5/16 [00:07<00:09, 1.19it/s]
epoch 94 | valid.f_iou 0.684149980545044, valid.f_f-score 0.77464: 38%|████████████ | 6/16 [00:07<00:06, 1.47it/s]
epoch 94 | valid.f_iou 0.7021099925041199, valid.f_f-score 0.79675: 38%|███████████▋ | 6/16 [00:07<00:06, 1.47it/s]
epoch 94 | valid.f_iou 0.7021099925041199, valid.f_f-score 0.79675: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.74it/s]
epoch 94 | valid.f_iou 0.6987599730491638, valid.f_f-score 0.79782: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.74it/s]
epoch 94 | valid.f_iou 0.6987599730491638, valid.f_f-score 0.79782: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.97it/s]
epoch 94 | valid.f_iou 0.7145199775695801, valid.f_f-score 0.80551: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.97it/s]
epoch 94 | valid.f_iou 0.7145199775695801, valid.f_f-score 0.80551: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 94 | valid.f_iou 0.7208799719810486, valid.f_f-score 0.81326: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.19it/s]
epoch 94 | valid.f_iou 0.7208799719810486, valid.f_f-score 0.81326: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.33it/s]
epoch 94 | valid.f_iou 0.7134299874305725, valid.f_f-score 0.80804: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.33it/s]
epoch 94 | valid.f_iou 0.7134299874305725, valid.f_f-score 0.80804: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 94 | valid.f_iou 0.7204899787902832, valid.f_f-score 0.81627: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.43it/s]
epoch 94 | valid.f_iou 0.7204899787902832, valid.f_f-score 0.81627: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 94 | valid.f_iou 0.7327100038528442, valid.f_f-score 0.82578: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 94 | valid.f_iou 0.7327100038528442, valid.f_f-score 0.82578: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.58it/s]
epoch 94 | valid.f_iou 0.7188799977302551, valid.f_f-score 0.81398: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.58it/s]
epoch 94 | valid.f_iou 0.7188799977302551, valid.f_f-score 0.81398: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 94 | valid.f_iou 0.7255200147628784, valid.f_f-score 0.81984: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.62it/s]
epoch 94 | valid.f_iou 0.7255200147628784, valid.f_f-score 0.81984: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 94 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.81465: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 94 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.81465: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 94 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.81465: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 95 | loss 1.7533214092254639, f_iou 0.4095028340816498: 0%| | 0/74 [00:05, ?it/s]
epoch 95 | loss 1.7533214092254639, f_iou 0.4095028340816498: 1%|▌ | 1/74 [00:05<06:44, 5.54s/it]
epoch 95 | loss 1.6877812147140503, f_iou 0.5361160039901733: 1%|▌ | 1/74 [00:06<06:44, 5.54s/it]
epoch 95 | loss 1.6877812147140503, f_iou 0.5361160039901733: 3%|█ | 2/74 [00:06<03:15, 2.72s/it]
epoch 95 | loss 0.6846879720687866, f_iou 0.6431941390037537: 3%|█ | 2/74 [00:07<03:15, 2.72s/it]
epoch 95 | loss 0.6846879720687866, f_iou 0.6431941390037537: 4%|█▌ | 3/74 [00:07<02:10, 1.83s/it]
epoch 95 | loss 0.881245493888855, f_iou 0.6678451299667358: 4%|█▌ | 3/74 [00:07<02:10, 1.83s/it]
epoch 95 | loss 0.881245493888855, f_iou 0.6678451299667358: 5%|██ | 4/74 [00:07<01:42, 1.47s/it]
epoch 95 | loss 0.4593525230884552, f_iou 0.7039462924003601: 5%|██ | 4/74 [00:08<01:42, 1.47s/it]
epoch 95 | loss 0.4593525230884552, f_iou 0.7039462924003601: 7%|██▌ | 5/74 [00:08<01:26, 1.25s/it]
epoch 95 | loss 0.9503371715545654, f_iou 0.6222931146621704: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 95 | loss 0.9503371715545654, f_iou 0.6222931146621704: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 95 | loss 1.031011700630188, f_iou 0.6020869016647339: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 95 | loss 1.031011700630188, f_iou 0.6020869016647339: 9%|███▌ | 7/74 [00:10<01:04, 1.03it/s]
epoch 95 | loss 0.6295945048332214, f_iou 0.5363142490386963: 9%|███▌ | 7/74 [00:11<01:04, 1.03it/s]
epoch 95 | loss 0.6295945048332214, f_iou 0.5363142490386963: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 95 | loss 0.5673828721046448, f_iou 0.4767237901687622: 11%|████ | 8/74 [00:11<00:58, 1.13it/s]
epoch 95 | loss 0.5673828721046448, f_iou 0.4767237901687622: 12%|████▌ | 9/74 [00:11<00:54, 1.20it/s]
epoch 95 | loss 1.173267126083374, f_iou 0.4874208867549896: 12%|████▌ | 9/74 [00:12<00:54, 1.20it/s]
epoch 95 | loss 1.173267126083374, f_iou 0.4874208867549896: 14%|█████ | 10/74 [00:12<00:52, 1.21it/s]
epoch 95 | loss 0.7989997267723083, f_iou 0.5136417150497437: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 95 | loss 0.7989997267723083, f_iou 0.5136417150497437: 15%|█████▎ | 11/74 [00:13<00:49, 1.26it/s]
epoch 95 | loss 2.3415403366088867, f_iou 0.506894588470459: 15%|█████▌ | 11/74 [00:13<00:49, 1.26it/s]
epoch 95 | loss 2.3415403366088867, f_iou 0.506894588470459: 16%|██████ | 12/74 [00:13<00:47, 1.30it/s]
epoch 95 | loss 1.6845654249191284, f_iou 0.5108913779258728: 16%|█████▊ | 12/74 [00:14<00:47, 1.30it/s]
epoch 95 | loss 1.6845654249191284, f_iou 0.5108913779258728: 18%|██████▎ | 13/74 [00:14<00:46, 1.32it/s]
epoch 95 | loss 1.1467304229736328, f_iou 0.5125089883804321: 18%|██████▎ | 13/74 [00:15<00:46, 1.32it/s]
epoch 95 | loss 1.1467304229736328, f_iou 0.5125089883804321: 19%|██████▊ | 14/74 [00:15<00:44, 1.33it/s]
epoch 95 | loss 0.9332152605056763, f_iou 0.510062575340271: 19%|███████ | 14/74 [00:16<00:44, 1.33it/s]
epoch 95 | loss 0.9332152605056763, f_iou 0.510062575340271: 20%|███████▌ | 15/74 [00:16<00:43, 1.35it/s]
epoch 95 | loss 0.0, f_iou 0.5394620299339294: 20%|██████████▎ | 15/74 [00:16<00:43, 1.35it/s]
epoch 95 | loss 0.0, f_iou 0.5394620299339294: 22%|███████████ | 16/74 [00:16<00:42, 1.36it/s]
epoch 95 | loss 0.7664186954498291, f_iou 0.5488094091415405: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 95 | loss 0.7664186954498291, f_iou 0.5488094091415405: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 95 | loss 2.704566717147827, f_iou 0.5406012535095215: 23%|████████▌ | 17/74 [00:18<00:41, 1.37it/s]
epoch 95 | loss 2.704566717147827, f_iou 0.5406012535095215: 24%|█████████ | 18/74 [00:18<00:41, 1.34it/s]
epoch 95 | loss 1.1798746585845947, f_iou 0.5343398451805115: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 95 | loss 1.1798746585845947, f_iou 0.5343398451805115: 26%|█████████▏ | 19/74 [00:19<00:41, 1.33it/s]
epoch 95 | loss 1.2962390184402466, f_iou 0.5110308527946472: 26%|█████████▏ | 19/74 [00:19<00:41, 1.33it/s]
epoch 95 | loss 1.2962390184402466, f_iou 0.5110308527946472: 27%|█████████▋ | 20/74 [00:19<00:40, 1.32it/s]
epoch 95 | loss 1.3969260454177856, f_iou 0.5208119750022888: 27%|█████████▋ | 20/74 [00:20<00:40, 1.32it/s]
epoch 95 | loss 1.3969260454177856, f_iou 0.5208119750022888: 28%|██████████▏ | 21/74 [00:20<00:40, 1.32it/s]
epoch 95 | loss 0.7649656534194946, f_iou 0.535457968711853: 28%|██████████▌ | 21/74 [00:21<00:40, 1.32it/s]
epoch 95 | loss 0.7649656534194946, f_iou 0.535457968711853: 30%|███████████ | 22/74 [00:21<00:39, 1.32it/s]
epoch 95 | loss 1.5824369192123413, f_iou 0.5210660696029663: 30%|██████████▋ | 22/74 [00:22<00:39, 1.32it/s]
epoch 95 | loss 1.5824369192123413, f_iou 0.5210660696029663: 31%|███████████▏ | 23/74 [00:22<00:38, 1.33it/s]
epoch 95 | loss 1.9576196670532227, f_iou 0.5218738913536072: 31%|███████████▏ | 23/74 [00:22<00:38, 1.33it/s]
epoch 95 | loss 1.9576196670532227, f_iou 0.5218738913536072: 32%|███████████▋ | 24/74 [00:22<00:37, 1.35it/s]
epoch 95 | loss 0.6868078112602234, f_iou 0.5192526578903198: 32%|███████████▋ | 24/74 [00:23<00:37, 1.35it/s]
epoch 95 | loss 0.6868078112602234, f_iou 0.5192526578903198: 34%|████████████▏ | 25/74 [00:23<00:35, 1.36it/s]
epoch 95 | loss 2.645414113998413, f_iou 0.5188699960708618: 34%|████████████▌ | 25/74 [00:24<00:35, 1.36it/s]
epoch 95 | loss 2.645414113998413, f_iou 0.5188699960708618: 35%|█████████████ | 26/74 [00:24<00:34, 1.37it/s]
epoch 95 | loss 2.1157145500183105, f_iou 0.5133429765701294: 35%|████████████▋ | 26/74 [00:25<00:34, 1.37it/s]
epoch 95 | loss 2.1157145500183105, f_iou 0.5133429765701294: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 95 | loss 0.8534831404685974, f_iou 0.5281332731246948: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.38it/s]
epoch 95 | loss 0.8534831404685974, f_iou 0.5281332731246948: 38%|█████████████▌ | 28/74 [00:25<00:34, 1.35it/s]
epoch 95 | loss 1.2540225982666016, f_iou 0.5306633710861206: 38%|█████████████▌ | 28/74 [00:26<00:34, 1.35it/s]
epoch 95 | loss 1.2540225982666016, f_iou 0.5306633710861206: 39%|██████████████ | 29/74 [00:26<00:34, 1.32it/s]
epoch 95 | loss 1.6471576690673828, f_iou 0.5359610915184021: 39%|██████████████ | 29/74 [00:27<00:34, 1.32it/s]
epoch 95 | loss 1.6471576690673828, f_iou 0.5359610915184021: 41%|██████████████▌ | 30/74 [00:27<00:33, 1.32it/s]
epoch 95 | loss 1.10844087600708, f_iou 0.5488626956939697: 41%|███████████████▍ | 30/74 [00:28<00:33, 1.32it/s]
epoch 95 | loss 1.10844087600708, f_iou 0.5488626956939697: 42%|███████████████▉ | 31/74 [00:28<00:32, 1.34it/s]
epoch 95 | loss 0.6199190020561218, f_iou 0.5435949563980103: 42%|███████████████ | 31/74 [00:28<00:32, 1.34it/s]
epoch 95 | loss 0.6199190020561218, f_iou 0.5435949563980103: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.36it/s]
epoch 95 | loss 1.6179808378219604, f_iou 0.5331125855445862: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 95 | loss 1.6179808378219604, f_iou 0.5331125855445862: 45%|████████████████ | 33/74 [00:29<00:29, 1.37it/s]
epoch 95 | loss 0.8168378472328186, f_iou 0.541896641254425: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.37it/s]
epoch 95 | loss 0.8168378472328186, f_iou 0.541896641254425: 46%|█████████████████ | 34/74 [00:30<00:29, 1.37it/s]
epoch 95 | loss 0.8525913953781128, f_iou 0.5482015609741211: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 95 | loss 0.8525913953781128, f_iou 0.5482015609741211: 47%|█████████████████ | 35/74 [00:31<00:29, 1.34it/s]
epoch 95 | loss 1.1231751441955566, f_iou 0.5400696992874146: 47%|█████████████████ | 35/74 [00:31<00:29, 1.34it/s]
epoch 95 | loss 1.1231751441955566, f_iou 0.5400696992874146: 49%|█████████████████▌ | 36/74 [00:31<00:28, 1.32it/s]
epoch 95 | loss 0.4250671863555908, f_iou 0.5514494776725769: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.32it/s]
epoch 95 | loss 0.4250671863555908, f_iou 0.5514494776725769: 50%|██████████████████ | 37/74 [00:32<00:28, 1.30it/s]
epoch 95 | loss 0.7390555739402771, f_iou 0.5603609681129456: 50%|██████████████████ | 37/74 [00:33<00:28, 1.30it/s]
epoch 95 | loss 0.7390555739402771, f_iou 0.5603609681129456: 51%|██████████████████▍ | 38/74 [00:33<00:27, 1.32it/s]
epoch 95 | loss 2.284407615661621, f_iou 0.5632545351982117: 51%|███████████████████ | 38/74 [00:34<00:27, 1.32it/s]
epoch 95 | loss 2.284407615661621, f_iou 0.5632545351982117: 53%|███████████████████▍ | 39/74 [00:34<00:25, 1.35it/s]
epoch 95 | loss 0.8533706665039062, f_iou 0.5700191855430603: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.35it/s]
epoch 95 | loss 0.8533706665039062, f_iou 0.5700191855430603: 54%|███████████████████▍ | 40/74 [00:34<00:25, 1.36it/s]
epoch 95 | loss 0.8814782500267029, f_iou 0.5779851675033569: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.36it/s]
epoch 95 | loss 0.8814782500267029, f_iou 0.5779851675033569: 55%|███████████████████▉ | 41/74 [00:35<00:24, 1.37it/s]
epoch 95 | loss 0.9374443292617798, f_iou 0.5869941115379333: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 95 | loss 0.9374443292617798, f_iou 0.5869941115379333: 57%|████████████████████▍ | 42/74 [00:36<00:23, 1.37it/s]
epoch 95 | loss 0.921963095664978, f_iou 0.5940763354301453: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.37it/s]
epoch 95 | loss 0.921963095664978, f_iou 0.5940763354301453: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.38it/s]
epoch 95 | loss 0.7151120901107788, f_iou 0.5931140780448914: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 95 | loss 0.7151120901107788, f_iou 0.5931140780448914: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 95 | loss 2.3906517028808594, f_iou 0.5905686616897583: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 95 | loss 2.3906517028808594, f_iou 0.5905686616897583: 61%|█████████████████████▉ | 45/74 [00:38<00:21, 1.38it/s]
epoch 95 | loss 1.0324065685272217, f_iou 0.5958452820777893: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 95 | loss 1.0324065685272217, f_iou 0.5958452820777893: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 95 | loss 2.8562095165252686, f_iou 0.5966495871543884: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 95 | loss 2.8562095165252686, f_iou 0.5966495871543884: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.39it/s]
epoch 95 | loss 1.2130433320999146, f_iou 0.601739764213562: 64%|███████████████████████▌ | 47/74 [00:40<00:19, 1.39it/s]
epoch 95 | loss 1.2130433320999146, f_iou 0.601739764213562: 65%|████████████████████████ | 48/74 [00:40<00:18, 1.40it/s]
epoch 95 | loss 0.6155655980110168, f_iou 0.5927246809005737: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.40it/s]
epoch 95 | loss 0.6155655980110168, f_iou 0.5927246809005737: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 95 | loss 0.916999101638794, f_iou 0.5985888242721558: 66%|████████████████████████▌ | 49/74 [00:41<00:17, 1.39it/s]
epoch 95 | loss 0.916999101638794, f_iou 0.5985888242721558: 68%|█████████████████████████ | 50/74 [00:41<00:17, 1.39it/s]
epoch 95 | loss 1.6039633750915527, f_iou 0.6019790768623352: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 95 | loss 1.6039633750915527, f_iou 0.6019790768623352: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.39it/s]
epoch 95 | loss 0.46637865900993347, f_iou 0.6084821224212646: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.39it/s]
epoch 95 | loss 0.46637865900993347, f_iou 0.6084821224212646: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.39it/s]
epoch 95 | loss 0.8493546843528748, f_iou 0.6140434145927429: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 95 | loss 0.8493546843528748, f_iou 0.6140434145927429: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 95 | loss 1.8359007835388184, f_iou 0.6165074706077576: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.39it/s]
epoch 95 | loss 1.8359007835388184, f_iou 0.6165074706077576: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.39it/s]
epoch 95 | loss 1.0696499347686768, f_iou 0.6203024983406067: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 95 | loss 1.0696499347686768, f_iou 0.6203024983406067: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.39it/s]
epoch 95 | loss 0.657084047794342, f_iou 0.6258772015571594: 74%|███████████████████████████▌ | 55/74 [00:46<00:13, 1.39it/s]
epoch 95 | loss 0.657084047794342, f_iou 0.6258772015571594: 76%|████████████████████████████ | 56/74 [00:46<00:12, 1.39it/s]
epoch 95 | loss 1.8561055660247803, f_iou 0.6247346997261047: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 95 | loss 1.8561055660247803, f_iou 0.6247346997261047: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.39it/s]
epoch 95 | loss 0.9098196029663086, f_iou 0.6262004971504211: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 95 | loss 0.9098196029663086, f_iou 0.6262004971504211: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.39it/s]
epoch 95 | loss 1.1160897016525269, f_iou 0.6247559189796448: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 95 | loss 1.1160897016525269, f_iou 0.6247559189796448: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 95 | loss 0.8224343061447144, f_iou 0.6241291761398315: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 95 | loss 0.8224343061447144, f_iou 0.6241291761398315: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 95 | loss 0.929599404335022, f_iou 0.624255895614624: 81%|██████████████████████████████▊ | 60/74 [00:49<00:10, 1.39it/s]
epoch 95 | loss 0.929599404335022, f_iou 0.624255895614624: 82%|███████████████████████████████▎ | 61/74 [00:49<00:09, 1.39it/s]
epoch 95 | loss 1.2832590341567993, f_iou 0.6185052990913391: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.39it/s]
epoch 95 | loss 1.2832590341567993, f_iou 0.6185052990913391: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 95 | loss 1.1296839714050293, f_iou 0.6203644871711731: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 95 | loss 1.1296839714050293, f_iou 0.6203644871711731: 85%|██████████████████████████████▋ | 63/74 [00:51<00:07, 1.39it/s]
epoch 95 | loss 0.7974182963371277, f_iou 0.6221550107002258: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 95 | loss 0.7974182963371277, f_iou 0.6221550107002258: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 95 | loss 0.8273813724517822, f_iou 0.6263819932937622: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.39it/s]
epoch 95 | loss 0.8273813724517822, f_iou 0.6263819932937622: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.39it/s]
epoch 95 | loss 1.6674096584320068, f_iou 0.6189239025115967: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.39it/s]
epoch 95 | loss 1.6674096584320068, f_iou 0.6189239025115967: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.39it/s]
epoch 95 | loss 1.5546884536743164, f_iou 0.6223335862159729: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.39it/s]
epoch 95 | loss 1.5546884536743164, f_iou 0.6223335862159729: 91%|████████████████████████████████▌ | 67/74 [00:54<00:04, 1.40it/s]
epoch 95 | loss 1.4536563158035278, f_iou 0.6234607696533203: 91%|████████████████████████████████▌ | 67/74 [00:54<00:04, 1.40it/s]
epoch 95 | loss 1.4536563158035278, f_iou 0.6234607696533203: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.40it/s]
epoch 95 | loss 2.559722661972046, f_iou 0.6214178204536438: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.40it/s]
epoch 95 | loss 2.559722661972046, f_iou 0.6214178204536438: 93%|██████████████████████████████████▌ | 69/74 [00:55<00:03, 1.41it/s]
epoch 95 | loss 1.7463659048080444, f_iou 0.6152641177177429: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 95 | loss 1.7463659048080444, f_iou 0.6152641177177429: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 95 | loss 1.0760966539382935, f_iou 0.6084710955619812: 95%|██████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 95 | loss 1.0760966539382935, f_iou 0.6084710955619812: 96%|██████████████████████████████████▌ | 71/74 [00:56<00:02, 1.41it/s]
epoch 95 | loss 1.254473090171814, f_iou 0.6115398406982422: 96%|███████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 95 | loss 1.254473090171814, f_iou 0.6115398406982422: 97%|████████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 95 | loss 0.37986359000205994, f_iou 0.6164578199386597: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 95 | loss 0.37986359000205994, f_iou 0.6164578199386597: 99%|██████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 95 | loss 0.8680791258811951, f_iou 0.6153952479362488: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 95 | loss 0.8680791258811951, f_iou 0.6153952479362488: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 95 | loss 0.8680791258811951, f_iou 0.6153952479362488: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 95 | valid.f_iou 0.6815599799156189, valid.f_f-score 0.805: 0%| | 0/16 [00:05, ?it/s]
epoch 95 | valid.f_iou 0.6815599799156189, valid.f_f-score 0.805: 6%|██ | 1/16 [00:05<01:24, 5.65s/it]
epoch 95 | valid.f_iou 0.6045899987220764, valid.f_f-score 0.7995: 6%|██ | 1/16 [00:06<01:24, 5.65s/it]
epoch 95 | valid.f_iou 0.6045899987220764, valid.f_f-score 0.7995: 12%|████ | 2/16 [00:06<00:36, 2.60s/it]
epoch 95 | valid.f_iou 0.5153399705886841, valid.f_f-score 0.73235: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 95 | valid.f_iou 0.5153399705886841, valid.f_f-score 0.73235: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 95 | valid.f_iou 0.5583999752998352, valid.f_f-score 0.73542: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 95 | valid.f_iou 0.5583999752998352, valid.f_f-score 0.73542: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 95 | valid.f_iou 0.569350004196167, valid.f_f-score 0.74289: 25%|████████ | 4/16 [00:07<00:13, 1.15s/it]
epoch 95 | valid.f_iou 0.569350004196167, valid.f_f-score 0.74289: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 95 | valid.f_iou 0.5289099812507629, valid.f_f-score 0.69873: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 95 | valid.f_iou 0.5289099812507629, valid.f_f-score 0.69873: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 95 | valid.f_iou 0.5314000248908997, valid.f_f-score 0.71428: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 95 | valid.f_iou 0.5314000248908997, valid.f_f-score 0.71428: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 95 | valid.f_iou 0.5109500288963318, valid.f_f-score 0.7039: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 95 | valid.f_iou 0.5109500288963318, valid.f_f-score 0.7039: 50%|████████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 95 | valid.f_iou 0.5358099937438965, valid.f_f-score 0.71595: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 95 | valid.f_iou 0.5358099937438965, valid.f_f-score 0.71595: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 95 | valid.f_iou 0.525600016117096, valid.f_f-score 0.71528: 56%|██████████████████ | 9/16 [00:09<00:03, 1.97it/s]
epoch 95 | valid.f_iou 0.525600016117096, valid.f_f-score 0.71528: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.16it/s]
epoch 95 | valid.f_iou 0.5330600142478943, valid.f_f-score 0.71745: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.16it/s]
epoch 95 | valid.f_iou 0.5330600142478943, valid.f_f-score 0.71745: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.31it/s]
epoch 95 | valid.f_iou 0.5539699792861938, valid.f_f-score 0.73417: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.31it/s]
epoch 95 | valid.f_iou 0.5539699792861938, valid.f_f-score 0.73417: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 95 | valid.f_iou 0.5445299744606018, valid.f_f-score 0.73143: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.43it/s]
epoch 95 | valid.f_iou 0.5445299744606018, valid.f_f-score 0.73143: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 95 | valid.f_iou 0.5432199835777283, valid.f_f-score 0.72971: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 95 | valid.f_iou 0.5432199835777283, valid.f_f-score 0.72971: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 95 | valid.f_iou 0.5534600019454956, valid.f_f-score 0.73371: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.58it/s]
epoch 95 | valid.f_iou 0.5534600019454956, valid.f_f-score 0.73371: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 95 | valid.f_iou 0.5554199814796448, valid.f_f-score 0.73229: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 95 | valid.f_iou 0.5554199814796448, valid.f_f-score 0.73229: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 95 | valid.f_iou 0.5554199814796448, valid.f_f-score 0.73229: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 95 | valid.f_iou 0.7434999942779541, valid.f_f-score 0.79792: 0%| | 0/16 [00:04, ?it/s]
epoch 95 | valid.f_iou 0.7434999942779541, valid.f_f-score 0.79792: 6%|█▉ | 1/16 [00:04<01:03, 4.24s/it]
epoch 95 | valid.f_iou 0.7735999822616577, valid.f_f-score 0.83044: 6%|█▉ | 1/16 [00:04<01:03, 4.24s/it]
epoch 95 | valid.f_iou 0.7735999822616577, valid.f_f-score 0.83044: 12%|███▉ | 2/16 [00:04<00:27, 2.00s/it]
epoch 95 | valid.f_iou 0.7325699925422668, valid.f_f-score 0.82738: 12%|███▉ | 2/16 [00:05<00:27, 2.00s/it]
epoch 95 | valid.f_iou 0.7325699925422668, valid.f_f-score 0.82738: 19%|█████▊ | 3/16 [00:05<00:16, 1.29s/it]
epoch 95 | valid.f_iou 0.7485499978065491, valid.f_f-score 0.83417: 19%|█████▊ | 3/16 [00:05<00:16, 1.29s/it]
epoch 95 | valid.f_iou 0.7485499978065491, valid.f_f-score 0.83417: 25%|███████▊ | 4/16 [00:05<00:11, 1.05it/s]
epoch 95 | valid.f_iou 0.7217000126838684, valid.f_f-score 0.82641: 25%|███████▊ | 4/16 [00:05<00:11, 1.05it/s]
epoch 95 | valid.f_iou 0.7217000126838684, valid.f_f-score 0.82641: 31%|█████████▋ | 5/16 [00:05<00:08, 1.35it/s]
epoch 95 | valid.f_iou 0.7079300284385681, valid.f_f-score 0.81504: 31%|█████████▋ | 5/16 [00:06<00:08, 1.35it/s]
epoch 95 | valid.f_iou 0.7079300284385681, valid.f_f-score 0.81504: 38%|███████████▋ | 6/16 [00:06<00:06, 1.62it/s]
epoch 95 | valid.f_iou 0.7256100177764893, valid.f_f-score 0.8326: 38%|████████████ | 6/16 [00:06<00:06, 1.62it/s]
epoch 95 | valid.f_iou 0.7256100177764893, valid.f_f-score 0.8326: 44%|██████████████ | 7/16 [00:06<00:04, 1.88it/s]
epoch 95 | valid.f_iou 0.7091100215911865, valid.f_f-score 0.82523: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.88it/s]
epoch 95 | valid.f_iou 0.7091100215911865, valid.f_f-score 0.82523: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.08it/s]
epoch 95 | valid.f_iou 0.7156199812889099, valid.f_f-score 0.82632: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.08it/s]
epoch 95 | valid.f_iou 0.7156199812889099, valid.f_f-score 0.82632: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.27it/s]
epoch 95 | valid.f_iou 0.7279700040817261, valid.f_f-score 0.83518: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.27it/s]
epoch 95 | valid.f_iou 0.7279700040817261, valid.f_f-score 0.83518: 62%|██████████████████▊ | 10/16 [00:07<00:02, 2.40it/s]
epoch 95 | valid.f_iou 0.7281100153923035, valid.f_f-score 0.83293: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.40it/s]
epoch 95 | valid.f_iou 0.7281100153923035, valid.f_f-score 0.83293: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.51it/s]
epoch 95 | valid.f_iou 0.7381700277328491, valid.f_f-score 0.84103: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.51it/s]
epoch 95 | valid.f_iou 0.7381700277328491, valid.f_f-score 0.84103: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.56it/s]
epoch 95 | valid.f_iou 0.7458000183105469, valid.f_f-score 0.8439: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.56it/s]
epoch 95 | valid.f_iou 0.7458000183105469, valid.f_f-score 0.8439: 81%|█████████████████████████▏ | 13/16 [00:08<00:01, 2.61it/s]
epoch 95 | valid.f_iou 0.7403900027275085, valid.f_f-score 0.84078: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 95 | valid.f_iou 0.7403900027275085, valid.f_f-score 0.84078: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 95 | valid.f_iou 0.7479699850082397, valid.f_f-score 0.84789: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 95 | valid.f_iou 0.7479699850082397, valid.f_f-score 0.84789: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.66it/s]
epoch 95 | valid.f_iou 0.7433500289916992, valid.f_f-score 0.84293: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.66it/s]
epoch 95 | valid.f_iou 0.7433500289916992, valid.f_f-score 0.84293: 100%|██████████████████████████████| 16/16 [00:09<00:00, 2.69it/s]
epoch 95 | valid.f_iou 0.7433500289916992, valid.f_f-score 0.84293: 100%|██████████████████████████████| 16/16 [00:09<00:00, 1.61it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 95 | valid.f_iou 0.7434999942779541, valid.f_f-score 0.83726: 0%| | 0/16 [00:04, ?it/s]
epoch 95 | valid.f_iou 0.7434999942779541, valid.f_f-score 0.83726: 6%|█▉ | 1/16 [00:04<01:11, 4.75s/it]
epoch 95 | valid.f_iou 0.705020010471344, valid.f_f-score 0.79357: 6%|██ | 1/16 [00:05<01:11, 4.75s/it]
epoch 95 | valid.f_iou 0.705020010471344, valid.f_f-score 0.79357: 12%|████ | 2/16 [00:05<00:30, 2.17s/it]
epoch 95 | valid.f_iou 0.6868500113487244, valid.f_f-score 0.8028: 12%|████ | 2/16 [00:05<00:30, 2.17s/it]
epoch 95 | valid.f_iou 0.6868500113487244, valid.f_f-score 0.8028: 19%|██████ | 3/16 [00:05<00:17, 1.35s/it]
epoch 95 | valid.f_iou 0.7113100290298462, valid.f_f-score 0.80974: 19%|█████▊ | 3/16 [00:05<00:17, 1.35s/it]
epoch 95 | valid.f_iou 0.7113100290298462, valid.f_f-score 0.80974: 25%|███████▊ | 4/16 [00:05<00:11, 1.04it/s]
epoch 95 | valid.f_iou 0.6960499882698059, valid.f_f-score 0.80686: 25%|███████▊ | 4/16 [00:06<00:11, 1.04it/s]
epoch 95 | valid.f_iou 0.6960499882698059, valid.f_f-score 0.80686: 31%|█████████▋ | 5/16 [00:06<00:08, 1.33it/s]
epoch 95 | valid.f_iou 0.6873499751091003, valid.f_f-score 0.79875: 31%|█████████▋ | 5/16 [00:06<00:08, 1.33it/s]
epoch 95 | valid.f_iou 0.6873499751091003, valid.f_f-score 0.79875: 38%|███████████▋ | 6/16 [00:06<00:06, 1.59it/s]
epoch 95 | valid.f_iou 0.7113400101661682, valid.f_f-score 0.81864: 38%|███████████▋ | 6/16 [00:06<00:06, 1.59it/s]
epoch 95 | valid.f_iou 0.7113400101661682, valid.f_f-score 0.81864: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.85it/s]
epoch 95 | valid.f_iou 0.6966300010681152, valid.f_f-score 0.81301: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.85it/s]
epoch 95 | valid.f_iou 0.6966300010681152, valid.f_f-score 0.81301: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 95 | valid.f_iou 0.7061100006103516, valid.f_f-score 0.81546: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.04it/s]
epoch 95 | valid.f_iou 0.7061100006103516, valid.f_f-score 0.81546: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.24it/s]
epoch 95 | valid.f_iou 0.7160900235176086, valid.f_f-score 0.82193: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.24it/s]
epoch 95 | valid.f_iou 0.7160900235176086, valid.f_f-score 0.82193: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.37it/s]
epoch 95 | valid.f_iou 0.7025700211524963, valid.f_f-score 0.81022: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.37it/s]
epoch 95 | valid.f_iou 0.7025700211524963, valid.f_f-score 0.81022: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.47it/s]
epoch 95 | valid.f_iou 0.7147600054740906, valid.f_f-score 0.8202: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.47it/s]
epoch 95 | valid.f_iou 0.7147600054740906, valid.f_f-score 0.8202: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.55it/s]
epoch 95 | valid.f_iou 0.72079998254776, valid.f_f-score 0.82511: 75%|████████████████████████ | 12/16 [00:09<00:01, 2.55it/s]
epoch 95 | valid.f_iou 0.72079998254776, valid.f_f-score 0.82511: 81%|██████████████████████████ | 13/16 [00:09<00:01, 2.60it/s]
epoch 95 | valid.f_iou 0.7128999829292297, valid.f_f-score 0.81746: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.60it/s]
epoch 95 | valid.f_iou 0.7128999829292297, valid.f_f-score 0.81746: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.64it/s]
epoch 95 | valid.f_iou 0.722320020198822, valid.f_f-score 0.82613: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.64it/s]
epoch 95 | valid.f_iou 0.722320020198822, valid.f_f-score 0.82613: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.68it/s]
epoch 95 | valid.f_iou 0.717490017414093, valid.f_f-score 0.81893: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.68it/s]
epoch 95 | valid.f_iou 0.717490017414093, valid.f_f-score 0.81893: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 95 | valid.f_iou 0.717490017414093, valid.f_f-score 0.81893: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.56it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 96 | loss 0.47333765029907227, f_iou 0.9440288543701172: 0%| | 0/74 [00:06, ?it/s]
epoch 96 | loss 0.47333765029907227, f_iou 0.9440288543701172: 1%|▍ | 1/74 [00:06<07:22, 6.07s/it]
epoch 96 | loss 0.7927680611610413, f_iou 0.7012854814529419: 1%|▌ | 1/74 [00:06<07:22, 6.07s/it]
epoch 96 | loss 0.7927680611610413, f_iou 0.7012854814529419: 3%|█ | 2/74 [00:06<03:35, 2.99s/it]
epoch 96 | loss 0.49273645877838135, f_iou 0.755372941493988: 3%|█ | 2/74 [00:07<03:35, 2.99s/it]
epoch 96 | loss 0.49273645877838135, f_iou 0.755372941493988: 4%|█▌ | 3/74 [00:07<02:20, 1.99s/it]
epoch 96 | loss 2.9174277782440186, f_iou 0.6801576614379883: 4%|█▌ | 3/74 [00:08<02:20, 1.99s/it]
epoch 96 | loss 2.9174277782440186, f_iou 0.6801576614379883: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 96 | loss 1.1816474199295044, f_iou 0.6628848910331726: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 96 | loss 1.1816474199295044, f_iou 0.6628848910331726: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 96 | loss 0.2617288827896118, f_iou 0.5588644742965698: 7%|██▌ | 5/74 [00:10<01:27, 1.27s/it]
epoch 96 | loss 0.2617288827896118, f_iou 0.5588644742965698: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 96 | loss 1.1960546970367432, f_iou 0.592507004737854: 8%|███ | 6/74 [00:10<01:16, 1.12s/it]
epoch 96 | loss 1.1960546970367432, f_iou 0.592507004737854: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 96 | loss 1.530104637145996, f_iou 0.5695657134056091: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 96 | loss 1.530104637145996, f_iou 0.5695657134056091: 11%|████ | 8/74 [00:11<01:03, 1.05it/s]
epoch 96 | loss 0.5783936977386475, f_iou 0.6093746423721313: 11%|████ | 8/74 [00:12<01:03, 1.05it/s]
epoch 96 | loss 0.5783936977386475, f_iou 0.6093746423721313: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 96 | loss 0.7507656216621399, f_iou 0.6407251358032227: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 96 | loss 0.7507656216621399, f_iou 0.6407251358032227: 14%|████▊ | 10/74 [00:13<00:56, 1.13it/s]
epoch 96 | loss 1.4482094049453735, f_iou 0.66502445936203: 14%|█████▏ | 10/74 [00:14<00:56, 1.13it/s]
epoch 96 | loss 1.4482094049453735, f_iou 0.66502445936203: 15%|█████▋ | 11/74 [00:14<00:54, 1.16it/s]
epoch 96 | loss 1.9614522457122803, f_iou 0.6562350988388062: 15%|█████▎ | 11/74 [00:15<00:54, 1.16it/s]
epoch 96 | loss 1.9614522457122803, f_iou 0.6562350988388062: 16%|█████▊ | 12/74 [00:15<00:52, 1.19it/s]
epoch 96 | loss 1.183888554573059, f_iou 0.6651268005371094: 16%|██████ | 12/74 [00:15<00:52, 1.19it/s]
epoch 96 | loss 1.183888554573059, f_iou 0.6651268005371094: 18%|██████▌ | 13/74 [00:15<00:50, 1.20it/s]
epoch 96 | loss 1.1370015144348145, f_iou 0.651017963886261: 18%|██████▌ | 13/74 [00:16<00:50, 1.20it/s]
epoch 96 | loss 1.1370015144348145, f_iou 0.651017963886261: 19%|███████ | 14/74 [00:16<00:48, 1.25it/s]
epoch 96 | loss 0.8931522965431213, f_iou 0.6634274125099182: 19%|██████▊ | 14/74 [00:17<00:48, 1.25it/s]
epoch 96 | loss 0.8931522965431213, f_iou 0.6634274125099182: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 96 | loss 0.9433532953262329, f_iou 0.6656023263931274: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 96 | loss 0.9433532953262329, f_iou 0.6656023263931274: 22%|███████▊ | 16/74 [00:17<00:44, 1.31it/s]
epoch 96 | loss 1.0190644264221191, f_iou 0.666259229183197: 22%|████████ | 16/74 [00:18<00:44, 1.31it/s]
epoch 96 | loss 1.0190644264221191, f_iou 0.666259229183197: 23%|████████▌ | 17/74 [00:18<00:42, 1.34it/s]
epoch 96 | loss 0.1911279857158661, f_iou 0.6806764006614685: 23%|████████▎ | 17/74 [00:19<00:42, 1.34it/s]
epoch 96 | loss 0.1911279857158661, f_iou 0.6806764006614685: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 96 | loss 0.4152255058288574, f_iou 0.6473817825317383: 24%|████████▊ | 18/74 [00:20<00:41, 1.36it/s]
epoch 96 | loss 0.4152255058288574, f_iou 0.6473817825317383: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 96 | loss 1.2209839820861816, f_iou 0.6502023935317993: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 96 | loss 1.2209839820861816, f_iou 0.6502023935317993: 27%|█████████▋ | 20/74 [00:20<00:39, 1.36it/s]
epoch 96 | loss 0.8161742687225342, f_iou 0.6304722428321838: 27%|█████████▋ | 20/74 [00:21<00:39, 1.36it/s]
epoch 96 | loss 0.8161742687225342, f_iou 0.6304722428321838: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 96 | loss 0.8943672776222229, f_iou 0.642638623714447: 28%|██████████▌ | 21/74 [00:22<00:40, 1.32it/s]
epoch 96 | loss 0.8943672776222229, f_iou 0.642638623714447: 30%|███████████ | 22/74 [00:22<00:39, 1.30it/s]
epoch 96 | loss 0.6396718621253967, f_iou 0.6513994932174683: 30%|██████████▋ | 22/74 [00:23<00:39, 1.30it/s]
epoch 96 | loss 0.6396718621253967, f_iou 0.6513994932174683: 31%|███████████▏ | 23/74 [00:23<00:39, 1.30it/s]
epoch 96 | loss 0.8624919056892395, f_iou 0.6505907773971558: 31%|███████████▏ | 23/74 [00:24<00:39, 1.30it/s]
epoch 96 | loss 0.8624919056892395, f_iou 0.6505907773971558: 32%|███████████▋ | 24/74 [00:24<00:38, 1.30it/s]
epoch 96 | loss 1.1372277736663818, f_iou 0.6496595740318298: 32%|███████████▋ | 24/74 [00:24<00:38, 1.30it/s]
epoch 96 | loss 1.1372277736663818, f_iou 0.6496595740318298: 34%|████████████▏ | 25/74 [00:24<00:38, 1.29it/s]
epoch 96 | loss 0.41610556840896606, f_iou 0.6257804036140442: 34%|███████████▊ | 25/74 [00:25<00:38, 1.29it/s]
epoch 96 | loss 0.41610556840896606, f_iou 0.6257804036140442: 35%|████████████▎ | 26/74 [00:25<00:36, 1.30it/s]
epoch 96 | loss 0.4665548801422119, f_iou 0.6303455233573914: 35%|████████████▋ | 26/74 [00:26<00:36, 1.30it/s]
epoch 96 | loss 0.4665548801422119, f_iou 0.6303455233573914: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.32it/s]
epoch 96 | loss 2.8185677528381348, f_iou 0.6233367323875427: 36%|█████████████▏ | 27/74 [00:27<00:35, 1.32it/s]
epoch 96 | loss 2.8185677528381348, f_iou 0.6233367323875427: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.34it/s]
epoch 96 | loss 0.4134751558303833, f_iou 0.6306408643722534: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.34it/s]
epoch 96 | loss 0.4134751558303833, f_iou 0.6306408643722534: 39%|██████████████ | 29/74 [00:27<00:34, 1.32it/s]
epoch 96 | loss 1.1274280548095703, f_iou 0.6320313215255737: 39%|██████████████ | 29/74 [00:28<00:34, 1.32it/s]
epoch 96 | loss 1.1274280548095703, f_iou 0.6320313215255737: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.31it/s]
epoch 96 | loss 1.261224627494812, f_iou 0.6419142484664917: 41%|███████████████ | 30/74 [00:29<00:33, 1.31it/s]
epoch 96 | loss 1.261224627494812, f_iou 0.6419142484664917: 42%|███████████████▌ | 31/74 [00:29<00:33, 1.30it/s]
epoch 96 | loss 0.49491146206855774, f_iou 0.652174711227417: 42%|███████████████ | 31/74 [00:30<00:33, 1.30it/s]
epoch 96 | loss 0.49491146206855774, f_iou 0.652174711227417: 43%|███████████████▌ | 32/74 [00:30<00:32, 1.29it/s]
epoch 96 | loss 1.0387146472930908, f_iou 0.6583088040351868: 43%|███████████████▌ | 32/74 [00:30<00:32, 1.29it/s]
epoch 96 | loss 1.0387146472930908, f_iou 0.6583088040351868: 45%|████████████████ | 33/74 [00:30<00:31, 1.29it/s]
epoch 96 | loss 0.8170269727706909, f_iou 0.6625845432281494: 45%|████████████████ | 33/74 [00:31<00:31, 1.29it/s]
epoch 96 | loss 0.8170269727706909, f_iou 0.6625845432281494: 46%|████████████████▌ | 34/74 [00:31<00:31, 1.28it/s]
epoch 96 | loss 1.6652483940124512, f_iou 0.6603009104728699: 46%|████████████████▌ | 34/74 [00:32<00:31, 1.28it/s]
epoch 96 | loss 1.6652483940124512, f_iou 0.6603009104728699: 47%|█████████████████ | 35/74 [00:32<00:30, 1.28it/s]
epoch 96 | loss 0.6764740943908691, f_iou 0.6637457013130188: 47%|█████████████████ | 35/74 [00:33<00:30, 1.28it/s]
epoch 96 | loss 0.6764740943908691, f_iou 0.6637457013130188: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.29it/s]
epoch 96 | loss 1.385133147239685, f_iou 0.670307457447052: 49%|██████████████████▍ | 36/74 [00:33<00:29, 1.29it/s]
epoch 96 | loss 1.385133147239685, f_iou 0.670307457447052: 50%|███████████████████ | 37/74 [00:33<00:28, 1.32it/s]
epoch 96 | loss 1.2597123384475708, f_iou 0.6717687845230103: 50%|██████████████████ | 37/74 [00:34<00:28, 1.32it/s]
epoch 96 | loss 1.2597123384475708, f_iou 0.6717687845230103: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 96 | loss 1.1118090152740479, f_iou 0.6768758893013: 51%|████████████████████ | 38/74 [00:35<00:26, 1.34it/s]
epoch 96 | loss 1.1118090152740479, f_iou 0.6768758893013: 53%|████████████████████▌ | 39/74 [00:35<00:26, 1.35it/s]
epoch 96 | loss 0.7782246470451355, f_iou 0.681049108505249: 53%|███████████████████▍ | 39/74 [00:36<00:26, 1.35it/s]
epoch 96 | loss 0.7782246470451355, f_iou 0.681049108505249: 54%|████████████████████ | 40/74 [00:36<00:24, 1.36it/s]
epoch 96 | loss 0.8754724264144897, f_iou 0.6795123219490051: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.36it/s]
epoch 96 | loss 0.8754724264144897, f_iou 0.6795123219490051: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 96 | loss 0.45205533504486084, f_iou 0.6862004995346069: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.37it/s]
epoch 96 | loss 0.45205533504486084, f_iou 0.6862004995346069: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.37it/s]
epoch 96 | loss 1.2149511575698853, f_iou 0.6868589520454407: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.37it/s]
epoch 96 | loss 1.2149511575698853, f_iou 0.6868589520454407: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.39it/s]
epoch 96 | loss 1.20646333694458, f_iou 0.6806972622871399: 58%|██████████████████████ | 43/74 [00:39<00:22, 1.39it/s]
epoch 96 | loss 1.20646333694458, f_iou 0.6806972622871399: 59%|██████████████████████▌ | 44/74 [00:39<00:21, 1.39it/s]
epoch 96 | loss 1.3984705209732056, f_iou 0.6788972020149231: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 96 | loss 1.3984705209732056, f_iou 0.6788972020149231: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 96 | loss 0.8419359922409058, f_iou 0.6786970496177673: 61%|█████████████████████▉ | 45/74 [00:40<00:20, 1.39it/s]
epoch 96 | loss 0.8419359922409058, f_iou 0.6786970496177673: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 96 | loss 0.7610764503479004, f_iou 0.683474063873291: 62%|███████████████████████ | 46/74 [00:41<00:20, 1.38it/s]
epoch 96 | loss 0.7610764503479004, f_iou 0.683474063873291: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.39it/s]
epoch 96 | loss 0.779910683631897, f_iou 0.6879379153251648: 64%|███████████████████████▌ | 47/74 [00:41<00:19, 1.39it/s]
epoch 96 | loss 0.779910683631897, f_iou 0.6879379153251648: 65%|████████████████████████ | 48/74 [00:41<00:18, 1.39it/s]
epoch 96 | loss 1.4024467468261719, f_iou 0.6870035529136658: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.39it/s]
epoch 96 | loss 1.4024467468261719, f_iou 0.6870035529136658: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 96 | loss 2.2115366458892822, f_iou 0.6846803426742554: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.38it/s]
epoch 96 | loss 2.2115366458892822, f_iou 0.6846803426742554: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.38it/s]
epoch 96 | loss 0.49906405806541443, f_iou 0.6897682547569275: 68%|███████████████████████▋ | 50/74 [00:44<00:17, 1.38it/s]
epoch 96 | loss 0.49906405806541443, f_iou 0.6897682547569275: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.39it/s]
epoch 96 | loss 1.0911920070648193, f_iou 0.6936525702476501: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 96 | loss 1.0911920070648193, f_iou 0.6936525702476501: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 96 | loss 0.9758633375167847, f_iou 0.6962016820907593: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 96 | loss 0.9758633375167847, f_iou 0.6962016820907593: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.37it/s]
epoch 96 | loss 1.7497975826263428, f_iou 0.6884105801582336: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.37it/s]
epoch 96 | loss 1.7497975826263428, f_iou 0.6884105801582336: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.35it/s]
epoch 96 | loss 1.4634087085723877, f_iou 0.685528039932251: 73%|███████████████████████████ | 54/74 [00:47<00:14, 1.35it/s]
epoch 96 | loss 1.4634087085723877, f_iou 0.685528039932251: 74%|███████████████████████████▌ | 55/74 [00:47<00:14, 1.33it/s]
epoch 96 | loss 1.1471811532974243, f_iou 0.6874807476997375: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.33it/s]
epoch 96 | loss 1.1471811532974243, f_iou 0.6874807476997375: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.32it/s]
epoch 96 | loss 1.6549098491668701, f_iou 0.6855592131614685: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.32it/s]
epoch 96 | loss 1.6549098491668701, f_iou 0.6855592131614685: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.31it/s]
epoch 96 | loss 0.689744234085083, f_iou 0.6869190335273743: 77%|████████████████████████████▌ | 57/74 [00:49<00:12, 1.31it/s]
epoch 96 | loss 0.689744234085083, f_iou 0.6869190335273743: 78%|█████████████████████████████ | 58/74 [00:49<00:12, 1.29it/s]
epoch 96 | loss 0.8494717478752136, f_iou 0.6779497265815735: 78%|████████████████████████████▏ | 58/74 [00:50<00:12, 1.29it/s]
epoch 96 | loss 0.8494717478752136, f_iou 0.6779497265815735: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.29it/s]
epoch 96 | loss 0.6442689895629883, f_iou 0.6808887124061584: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.29it/s]
epoch 96 | loss 0.6442689895629883, f_iou 0.6808887124061584: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.31it/s]
epoch 96 | loss 0.6058624982833862, f_iou 0.6753295660018921: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.31it/s]
epoch 96 | loss 0.6058624982833862, f_iou 0.6753295660018921: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.34it/s]
epoch 96 | loss 0.3407408893108368, f_iou 0.6802440881729126: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.34it/s]
epoch 96 | loss 0.3407408893108368, f_iou 0.6802440881729126: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.35it/s]
epoch 96 | loss 1.4714411497116089, f_iou 0.6829298734664917: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.35it/s]
epoch 96 | loss 1.4714411497116089, f_iou 0.6829298734664917: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.37it/s]
epoch 96 | loss 2.903569221496582, f_iou 0.6813716888427734: 85%|███████████████████████████████▌ | 63/74 [00:53<00:08, 1.37it/s]
epoch 96 | loss 2.903569221496582, f_iou 0.6813716888427734: 86%|████████████████████████████████ | 64/74 [00:53<00:07, 1.37it/s]
epoch 96 | loss 0.9969183802604675, f_iou 0.679684579372406: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.37it/s]
epoch 96 | loss 0.9969183802604675, f_iou 0.679684579372406: 88%|████████████████████████████████▌ | 65/74 [00:54<00:06, 1.38it/s]
epoch 96 | loss 0.7536680698394775, f_iou 0.6727880239486694: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.38it/s]
epoch 96 | loss 0.7536680698394775, f_iou 0.6727880239486694: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.38it/s]
epoch 96 | loss 5.80850887298584, f_iou 0.6720567345619202: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:05, 1.38it/s]
epoch 96 | loss 5.80850887298584, f_iou 0.6720567345619202: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.38it/s]
epoch 96 | loss 0.8953762054443359, f_iou 0.6690196990966797: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 96 | loss 0.8953762054443359, f_iou 0.6690196990966797: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.39it/s]
epoch 96 | loss 0.40008649230003357, f_iou 0.6728198528289795: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.39it/s]
epoch 96 | loss 0.40008649230003357, f_iou 0.6728198528289795: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.40it/s]
epoch 96 | loss 1.0846346616744995, f_iou 0.6744560599327087: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.40it/s]
epoch 96 | loss 1.0846346616744995, f_iou 0.6744560599327087: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 96 | loss 2.3512070178985596, f_iou 0.671615481376648: 95%|███████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 96 | loss 2.3512070178985596, f_iou 0.671615481376648: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 96 | loss 0.7775812745094299, f_iou 0.6624836325645447: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.41it/s]
epoch 96 | loss 0.7775812745094299, f_iou 0.6624836325645447: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 96 | loss 1.0779004096984863, f_iou 0.6624242663383484: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.41it/s]
epoch 96 | loss 1.0779004096984863, f_iou 0.6624242663383484: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 96 | loss 1.1162946224212646, f_iou 0.6611440777778625: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 96 | loss 1.1162946224212646, f_iou 0.6611440777778625: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 96 | loss 1.1162946224212646, f_iou 0.6611440777778625: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 96 | valid.f_iou 0.7293300032615662, valid.f_f-score 0.83388: 0%| | 0/16 [00:05, ?it/s]
epoch 96 | valid.f_iou 0.7293300032615662, valid.f_f-score 0.83388: 6%|█▉ | 1/16 [00:05<01:24, 5.61s/it]
epoch 96 | valid.f_iou 0.6094200015068054, valid.f_f-score 0.81082: 6%|█▉ | 1/16 [00:06<01:24, 5.61s/it]
epoch 96 | valid.f_iou 0.6094200015068054, valid.f_f-score 0.81082: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 96 | valid.f_iou 0.4938200116157532, valid.f_f-score 0.73441: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 96 | valid.f_iou 0.4938200116157532, valid.f_f-score 0.73441: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 96 | valid.f_iou 0.5334699749946594, valid.f_f-score 0.73717: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 96 | valid.f_iou 0.5334699749946594, valid.f_f-score 0.73717: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 96 | valid.f_iou 0.5339400172233582, valid.f_f-score 0.74252: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 96 | valid.f_iou 0.5339400172233582, valid.f_f-score 0.74252: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 96 | valid.f_iou 0.49685999751091003, valid.f_f-score 0.6936: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 96 | valid.f_iou 0.49685999751091003, valid.f_f-score 0.6936: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 96 | valid.f_iou 0.511900007724762, valid.f_f-score 0.71634: 38%|████████████ | 6/16 [00:08<00:07, 1.33it/s]
epoch 96 | valid.f_iou 0.511900007724762, valid.f_f-score 0.71634: 44%|██████████████ | 7/16 [00:08<00:05, 1.59it/s]
epoch 96 | valid.f_iou 0.48949000239372253, valid.f_f-score 0.70486: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 96 | valid.f_iou 0.48949000239372253, valid.f_f-score 0.70486: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 96 | valid.f_iou 0.5021499991416931, valid.f_f-score 0.69411: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.72it/s]
epoch 96 | valid.f_iou 0.5021499991416931, valid.f_f-score 0.69411: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.84it/s]
epoch 96 | valid.f_iou 0.4897800087928772, valid.f_f-score 0.69606: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.84it/s]
epoch 96 | valid.f_iou 0.4897800087928772, valid.f_f-score 0.69606: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.95it/s]
epoch 96 | valid.f_iou 0.4976400136947632, valid.f_f-score 0.70004: 62%|██████████████████▊ | 10/16 [00:10<00:03, 1.95it/s]
epoch 96 | valid.f_iou 0.4976400136947632, valid.f_f-score 0.70004: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.03it/s]
epoch 96 | valid.f_iou 0.5189599990844727, valid.f_f-score 0.71779: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.03it/s]
epoch 96 | valid.f_iou 0.5189599990844727, valid.f_f-score 0.71779: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 96 | valid.f_iou 0.5171700119972229, valid.f_f-score 0.72099: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 96 | valid.f_iou 0.5171700119972229, valid.f_f-score 0.72099: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.14it/s]
epoch 96 | valid.f_iou 0.511389970779419, valid.f_f-score 0.71484: 81%|█████████████████████████▏ | 13/16 [00:11<00:01, 2.14it/s]
epoch 96 | valid.f_iou 0.511389970779419, valid.f_f-score 0.71484: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.27it/s]
epoch 96 | valid.f_iou 0.5113800168037415, valid.f_f-score 0.71092: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.27it/s]
epoch 96 | valid.f_iou 0.5113800168037415, valid.f_f-score 0.71092: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.39it/s]
epoch 96 | valid.f_iou 0.5170199871063232, valid.f_f-score 0.70763: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.39it/s]
epoch 96 | valid.f_iou 0.5170199871063232, valid.f_f-score 0.70763: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.49it/s]
epoch 96 | valid.f_iou 0.5170199871063232, valid.f_f-score 0.70763: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 96 | valid.f_iou 0.7966499924659729, valid.f_f-score 0.81914: 0%| | 0/16 [00:05, ?it/s]
epoch 96 | valid.f_iou 0.7966499924659729, valid.f_f-score 0.81914: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 96 | valid.f_iou 0.832260012626648, valid.f_f-score 0.88217: 6%|██ | 1/16 [00:05<01:20, 5.34s/it]
epoch 96 | valid.f_iou 0.832260012626648, valid.f_f-score 0.88217: 12%|████ | 2/16 [00:05<00:34, 2.47s/it]
epoch 96 | valid.f_iou 0.773419976234436, valid.f_f-score 0.86466: 12%|████ | 2/16 [00:06<00:34, 2.47s/it]
epoch 96 | valid.f_iou 0.773419976234436, valid.f_f-score 0.86466: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 96 | valid.f_iou 0.758650004863739, valid.f_f-score 0.83096: 19%|██████ | 3/16 [00:06<00:20, 1.56s/it]
epoch 96 | valid.f_iou 0.758650004863739, valid.f_f-score 0.83096: 25%|████████ | 4/16 [00:06<00:13, 1.12s/it]
epoch 96 | valid.f_iou 0.7362599968910217, valid.f_f-score 0.82636: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 96 | valid.f_iou 0.7362599968910217, valid.f_f-score 0.82636: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 96 | valid.f_iou 0.7126500010490417, valid.f_f-score 0.80732: 31%|█████████▋ | 5/16 [00:07<00:09, 1.15it/s]
epoch 96 | valid.f_iou 0.7126500010490417, valid.f_f-score 0.80732: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 96 | valid.f_iou 0.7221199870109558, valid.f_f-score 0.81813: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 96 | valid.f_iou 0.7221199870109558, valid.f_f-score 0.81813: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 96 | valid.f_iou 0.7104099988937378, valid.f_f-score 0.81518: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 96 | valid.f_iou 0.7104099988937378, valid.f_f-score 0.81518: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 96 | valid.f_iou 0.7158300280570984, valid.f_f-score 0.81482: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 96 | valid.f_iou 0.7158300280570984, valid.f_f-score 0.81482: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 96 | valid.f_iou 0.7320600152015686, valid.f_f-score 0.8265: 56%|██████████████████ | 9/16 [00:09<00:03, 1.90it/s]
epoch 96 | valid.f_iou 0.7320600152015686, valid.f_f-score 0.8265: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.08it/s]
epoch 96 | valid.f_iou 0.7264400124549866, valid.f_f-score 0.82141: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 96 | valid.f_iou 0.7264400124549866, valid.f_f-score 0.82141: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.25it/s]
epoch 96 | valid.f_iou 0.7375800013542175, valid.f_f-score 0.83059: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.25it/s]
epoch 96 | valid.f_iou 0.7375800013542175, valid.f_f-score 0.83059: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.39it/s]
epoch 96 | valid.f_iou 0.7484899759292603, valid.f_f-score 0.83793: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.39it/s]
epoch 96 | valid.f_iou 0.7484899759292603, valid.f_f-score 0.83793: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 96 | valid.f_iou 0.7387800216674805, valid.f_f-score 0.82855: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 96 | valid.f_iou 0.7387800216674805, valid.f_f-score 0.82855: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 96 | valid.f_iou 0.7444900274276733, valid.f_f-score 0.83443: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 96 | valid.f_iou 0.7444900274276733, valid.f_f-score 0.83443: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 96 | valid.f_iou 0.7398099899291992, valid.f_f-score 0.83026: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 96 | valid.f_iou 0.7398099899291992, valid.f_f-score 0.83026: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 96 | valid.f_iou 0.7398099899291992, valid.f_f-score 0.83026: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 96 | valid.f_iou 0.7966499924659729, valid.f_f-score 0.81914: 0%| | 0/16 [00:05, ?it/s]
epoch 96 | valid.f_iou 0.7966499924659729, valid.f_f-score 0.81914: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 96 | valid.f_iou 0.832260012626648, valid.f_f-score 0.88217: 6%|██ | 1/16 [00:05<01:22, 5.53s/it]
epoch 96 | valid.f_iou 0.832260012626648, valid.f_f-score 0.88217: 12%|████ | 2/16 [00:05<00:35, 2.51s/it]
epoch 96 | valid.f_iou 0.773419976234436, valid.f_f-score 0.86466: 12%|████ | 2/16 [00:06<00:35, 2.51s/it]
epoch 96 | valid.f_iou 0.773419976234436, valid.f_f-score 0.86466: 19%|██████ | 3/16 [00:06<00:19, 1.53s/it]
epoch 96 | valid.f_iou 0.7587900161743164, valid.f_f-score 0.83096: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 96 | valid.f_iou 0.7587900161743164, valid.f_f-score 0.83096: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 96 | valid.f_iou 0.7416899800300598, valid.f_f-score 0.82636: 25%|███████▊ | 4/16 [00:07<00:12, 1.08s/it]
epoch 96 | valid.f_iou 0.7416899800300598, valid.f_f-score 0.82636: 31%|█████████▋ | 5/16 [00:07<00:09, 1.21it/s]
epoch 96 | valid.f_iou 0.717170000076294, valid.f_f-score 0.80732: 31%|██████████ | 5/16 [00:07<00:09, 1.21it/s]
epoch 96 | valid.f_iou 0.717170000076294, valid.f_f-score 0.80732: 38%|████████████ | 6/16 [00:07<00:06, 1.48it/s]
epoch 96 | valid.f_iou 0.7270900011062622, valid.f_f-score 0.81813: 38%|███████████▋ | 6/16 [00:07<00:06, 1.48it/s]
epoch 96 | valid.f_iou 0.7270900011062622, valid.f_f-score 0.81813: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.72it/s]
epoch 96 | valid.f_iou 0.7147600054740906, valid.f_f-score 0.81518: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.72it/s]
epoch 96 | valid.f_iou 0.7147600054740906, valid.f_f-score 0.81518: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.93it/s]
epoch 96 | valid.f_iou 0.7205100059509277, valid.f_f-score 0.81482: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.93it/s]
epoch 96 | valid.f_iou 0.7205100059509277, valid.f_f-score 0.81482: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.15it/s]
epoch 96 | valid.f_iou 0.7323399782180786, valid.f_f-score 0.82297: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.15it/s]
epoch 96 | valid.f_iou 0.7323399782180786, valid.f_f-score 0.82297: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 96 | valid.f_iou 0.7267000079154968, valid.f_f-score 0.8182: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.31it/s]
epoch 96 | valid.f_iou 0.7267000079154968, valid.f_f-score 0.8182: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.44it/s]
epoch 96 | valid.f_iou 0.737820029258728, valid.f_f-score 0.82765: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.44it/s]
epoch 96 | valid.f_iou 0.737820029258728, valid.f_f-score 0.82765: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.52it/s]
epoch 96 | valid.f_iou 0.7487000226974487, valid.f_f-score 0.83615: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.52it/s]
epoch 96 | valid.f_iou 0.7487000226974487, valid.f_f-score 0.83615: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.60it/s]
epoch 96 | valid.f_iou 0.7389699816703796, valid.f_f-score 0.82691: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.60it/s]
epoch 96 | valid.f_iou 0.7389699816703796, valid.f_f-score 0.82691: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.65it/s]
epoch 96 | valid.f_iou 0.7446699738502502, valid.f_f-score 0.8329: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.65it/s]
epoch 96 | valid.f_iou 0.7446699738502502, valid.f_f-score 0.8329: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.68it/s]
epoch 96 | valid.f_iou 0.7404500246047974, valid.f_f-score 0.82882: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.68it/s]
epoch 96 | valid.f_iou 0.7404500246047974, valid.f_f-score 0.82882: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.70it/s]
epoch 96 | valid.f_iou 0.7404500246047974, valid.f_f-score 0.82882: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 97 | loss 0.618562638759613, f_iou 0.413401335477829: 0%| | 0/74 [00:06, ?it/s]
epoch 97 | loss 0.618562638759613, f_iou 0.413401335477829: 1%|▌ | 1/74 [00:06<07:50, 6.45s/it]
epoch 97 | loss 0.7556911706924438, f_iou 0.67937171459198: 1%|▌ | 1/74 [00:07<07:50, 6.45s/it]
epoch 97 | loss 0.7556911706924438, f_iou 0.67937171459198: 3%|█ | 2/74 [00:07<03:48, 3.17s/it]
epoch 97 | loss 1.3795045614242554, f_iou 0.7675101161003113: 3%|█ | 2/74 [00:08<03:48, 3.17s/it]
epoch 97 | loss 1.3795045614242554, f_iou 0.7675101161003113: 4%|█▌ | 3/74 [00:08<02:27, 2.08s/it]
epoch 97 | loss 0.6123982667922974, f_iou 0.7920986413955688: 4%|█▌ | 3/74 [00:08<02:27, 2.08s/it]
epoch 97 | loss 0.6123982667922974, f_iou 0.7920986413955688: 5%|██ | 4/74 [00:08<01:48, 1.56s/it]
epoch 97 | loss 1.7730324268341064, f_iou 0.7800530791282654: 5%|██ | 4/74 [00:09<01:48, 1.56s/it]
epoch 97 | loss 1.7730324268341064, f_iou 0.7800530791282654: 7%|██▌ | 5/74 [00:09<01:27, 1.27s/it]
epoch 97 | loss 0.9351846575737, f_iou 0.7838863134384155: 7%|██▋ | 5/74 [00:10<01:27, 1.27s/it]
epoch 97 | loss 0.9351846575737, f_iou 0.7838863134384155: 8%|███▏ | 6/74 [00:10<01:15, 1.11s/it]
epoch 97 | loss 1.2211410999298096, f_iou 0.8009941577911377: 8%|███ | 6/74 [00:11<01:15, 1.11s/it]
epoch 97 | loss 1.2211410999298096, f_iou 0.8009941577911377: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 97 | loss 0.9573855400085449, f_iou 0.7761881351470947: 9%|███▌ | 7/74 [00:12<01:08, 1.02s/it]
epoch 97 | loss 0.9573855400085449, f_iou 0.7761881351470947: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 97 | loss 0.0, f_iou 0.7998954653739929: 11%|█████▌ | 8/74 [00:12<01:02, 1.06it/s]
epoch 97 | loss 0.0, f_iou 0.7998954653739929: 12%|██████▎ | 9/74 [00:12<00:57, 1.12it/s]
epoch 97 | loss 0.8772702813148499, f_iou 0.7962443232536316: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 97 | loss 0.8772702813148499, f_iou 0.7962443232536316: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 97 | loss 1.081503987312317, f_iou 0.7908496856689453: 14%|█████ | 10/74 [00:14<00:54, 1.17it/s]
epoch 97 | loss 1.081503987312317, f_iou 0.7908496856689453: 15%|█████▌ | 11/74 [00:14<00:52, 1.20it/s]
epoch 97 | loss 0.8995690941810608, f_iou 0.7877835035324097: 15%|█████▎ | 11/74 [00:15<00:52, 1.20it/s]
epoch 97 | loss 0.8995690941810608, f_iou 0.7877835035324097: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 97 | loss 1.2900400161743164, f_iou 0.7758914828300476: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 97 | loss 1.2900400161743164, f_iou 0.7758914828300476: 18%|██████▎ | 13/74 [00:15<00:48, 1.25it/s]
epoch 97 | loss 0.5838075280189514, f_iou 0.7448264360427856: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 97 | loss 0.5838075280189514, f_iou 0.7448264360427856: 19%|██████▊ | 14/74 [00:16<00:48, 1.25it/s]
epoch 97 | loss 1.2538659572601318, f_iou 0.7333410382270813: 19%|██████▊ | 14/74 [00:17<00:48, 1.25it/s]
epoch 97 | loss 1.2538659572601318, f_iou 0.7333410382270813: 20%|███████▎ | 15/74 [00:17<00:47, 1.25it/s]
epoch 97 | loss 0.6263256072998047, f_iou 0.7441564202308655: 20%|███████▎ | 15/74 [00:18<00:47, 1.25it/s]
epoch 97 | loss 0.6263256072998047, f_iou 0.7441564202308655: 22%|███████▊ | 16/74 [00:18<00:46, 1.26it/s]
epoch 97 | loss 1.0793547630310059, f_iou 0.7315996289253235: 22%|███████▊ | 16/74 [00:19<00:46, 1.26it/s]
epoch 97 | loss 1.0793547630310059, f_iou 0.7315996289253235: 23%|████████▎ | 17/74 [00:19<00:44, 1.29it/s]
epoch 97 | loss 0.5887150168418884, f_iou 0.7329384684562683: 23%|████████▎ | 17/74 [00:19<00:44, 1.29it/s]
epoch 97 | loss 0.5887150168418884, f_iou 0.7329384684562683: 24%|████████▊ | 18/74 [00:19<00:42, 1.32it/s]
epoch 97 | loss 0.9538784623146057, f_iou 0.7399865388870239: 24%|████████▊ | 18/74 [00:20<00:42, 1.32it/s]
epoch 97 | loss 0.9538784623146057, f_iou 0.7399865388870239: 26%|█████████▏ | 19/74 [00:20<00:41, 1.34it/s]
epoch 97 | loss 0.3657515048980713, f_iou 0.7477635741233826: 26%|█████████▏ | 19/74 [00:21<00:41, 1.34it/s]
epoch 97 | loss 0.3657515048980713, f_iou 0.7477635741233826: 27%|█████████▋ | 20/74 [00:21<00:39, 1.35it/s]
epoch 97 | loss 0.954749584197998, f_iou 0.7122020125389099: 27%|██████████ | 20/74 [00:21<00:39, 1.35it/s]
epoch 97 | loss 0.954749584197998, f_iou 0.7122020125389099: 28%|██████████▌ | 21/74 [00:21<00:38, 1.36it/s]
epoch 97 | loss 1.9212411642074585, f_iou 0.7064995765686035: 28%|██████████▏ | 21/74 [00:22<00:38, 1.36it/s]
epoch 97 | loss 1.9212411642074585, f_iou 0.7064995765686035: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 97 | loss 1.3458627462387085, f_iou 0.7110618352890015: 30%|██████████▋ | 22/74 [00:23<00:37, 1.37it/s]
epoch 97 | loss 1.3458627462387085, f_iou 0.7110618352890015: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 97 | loss 0.5060715079307556, f_iou 0.7147201299667358: 31%|███████████▏ | 23/74 [00:24<00:36, 1.38it/s]
epoch 97 | loss 0.5060715079307556, f_iou 0.7147201299667358: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 97 | loss 2.3852744102478027, f_iou 0.7129985690116882: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 97 | loss 2.3852744102478027, f_iou 0.7129985690116882: 34%|████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 97 | loss 1.3716176748275757, f_iou 0.7019765377044678: 34%|████████████▏ | 25/74 [00:25<00:35, 1.39it/s]
epoch 97 | loss 1.3716176748275757, f_iou 0.7019765377044678: 35%|████████████▋ | 26/74 [00:25<00:36, 1.30it/s]
epoch 97 | loss 1.0459942817687988, f_iou 0.6763132810592651: 35%|████████████▋ | 26/74 [00:26<00:36, 1.30it/s]
epoch 97 | loss 1.0459942817687988, f_iou 0.6763132810592651: 36%|█████████████▏ | 27/74 [00:26<00:35, 1.32it/s]
epoch 97 | loss 0.7758846879005432, f_iou 0.6845261454582214: 36%|█████████████▏ | 27/74 [00:27<00:35, 1.32it/s]
epoch 97 | loss 0.7758846879005432, f_iou 0.6845261454582214: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.34it/s]
epoch 97 | loss 2.225229263305664, f_iou 0.6806432604789734: 38%|██████████████ | 28/74 [00:27<00:34, 1.34it/s]
epoch 97 | loss 2.225229263305664, f_iou 0.6806432604789734: 39%|██████████████▌ | 29/74 [00:27<00:33, 1.35it/s]
epoch 97 | loss 1.6648591756820679, f_iou 0.6662995219230652: 39%|██████████████ | 29/74 [00:28<00:33, 1.35it/s]
epoch 97 | loss 1.6648591756820679, f_iou 0.6662995219230652: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.36it/s]
epoch 97 | loss 1.6681064367294312, f_iou 0.6628029942512512: 41%|██████████████▌ | 30/74 [00:29<00:32, 1.36it/s]
epoch 97 | loss 1.6681064367294312, f_iou 0.6628029942512512: 42%|███████████████ | 31/74 [00:29<00:31, 1.35it/s]
epoch 97 | loss 1.4950497150421143, f_iou 0.6618558764457703: 42%|███████████████ | 31/74 [00:30<00:31, 1.35it/s]
epoch 97 | loss 1.4950497150421143, f_iou 0.6618558764457703: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.34it/s]
epoch 97 | loss 1.8566482067108154, f_iou 0.6614862680435181: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.34it/s]
epoch 97 | loss 1.8566482067108154, f_iou 0.6614862680435181: 45%|████████████████ | 33/74 [00:30<00:30, 1.33it/s]
epoch 97 | loss 0.6471693515777588, f_iou 0.6449679136276245: 45%|████████████████ | 33/74 [00:31<00:30, 1.33it/s]
epoch 97 | loss 0.6471693515777588, f_iou 0.6449679136276245: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.35it/s]
epoch 97 | loss 1.1905617713928223, f_iou 0.6471401453018188: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.35it/s]
epoch 97 | loss 1.1905617713928223, f_iou 0.6471401453018188: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 97 | loss 1.4577208757400513, f_iou 0.6371420621871948: 47%|█████████████████ | 35/74 [00:32<00:28, 1.36it/s]
epoch 97 | loss 1.4577208757400513, f_iou 0.6371420621871948: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.37it/s]
epoch 97 | loss 1.0253829956054688, f_iou 0.6409878730773926: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 97 | loss 1.0253829956054688, f_iou 0.6409878730773926: 50%|██████████████████ | 37/74 [00:33<00:26, 1.38it/s]
epoch 97 | loss 1.1886574029922485, f_iou 0.6462444067001343: 50%|██████████████████ | 37/74 [00:34<00:26, 1.38it/s]
epoch 97 | loss 1.1886574029922485, f_iou 0.6462444067001343: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 97 | loss 0.5132294297218323, f_iou 0.653455913066864: 51%|███████████████████ | 38/74 [00:35<00:26, 1.38it/s]
epoch 97 | loss 0.5132294297218323, f_iou 0.653455913066864: 53%|███████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 97 | loss 0.8811477422714233, f_iou 0.6371328234672546: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.39it/s]
epoch 97 | loss 0.8811477422714233, f_iou 0.6371328234672546: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 97 | loss 0.9509533047676086, f_iou 0.6233940720558167: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.39it/s]
epoch 97 | loss 0.9509533047676086, f_iou 0.6233940720558167: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 97 | loss 0.8063988089561462, f_iou 0.6304280757904053: 55%|███████████████████▉ | 41/74 [00:37<00:23, 1.39it/s]
epoch 97 | loss 0.8063988089561462, f_iou 0.6304280757904053: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 97 | loss 1.924831509590149, f_iou 0.6265861392021179: 57%|█████████████████████ | 42/74 [00:38<00:23, 1.39it/s]
epoch 97 | loss 1.924831509590149, f_iou 0.6265861392021179: 58%|█████████████████████▍ | 43/74 [00:38<00:22, 1.39it/s]
epoch 97 | loss 0.7302751541137695, f_iou 0.6187906265258789: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.39it/s]
epoch 97 | loss 0.7302751541137695, f_iou 0.6187906265258789: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 97 | loss 0.9264709949493408, f_iou 0.6104724407196045: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.39it/s]
epoch 97 | loss 0.9264709949493408, f_iou 0.6104724407196045: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.39it/s]
epoch 97 | loss 0.4765641391277313, f_iou 0.6182992458343506: 61%|█████████████████████▉ | 45/74 [00:40<00:20, 1.39it/s]
epoch 97 | loss 0.4765641391277313, f_iou 0.6182992458343506: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 97 | loss 1.0228092670440674, f_iou 0.62087082862854: 62%|███████████████████████▌ | 46/74 [00:40<00:20, 1.39it/s]
epoch 97 | loss 1.0228092670440674, f_iou 0.62087082862854: 64%|████████████████████████▏ | 47/74 [00:40<00:19, 1.40it/s]
epoch 97 | loss 1.0210832357406616, f_iou 0.6129363775253296: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.40it/s]
epoch 97 | loss 1.0210832357406616, f_iou 0.6129363775253296: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 97 | loss 0.8972080945968628, f_iou 0.6189346313476562: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.39it/s]
epoch 97 | loss 0.8972080945968628, f_iou 0.6189346313476562: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.39it/s]
epoch 97 | loss 1.493850827217102, f_iou 0.621494472026825: 66%|█████████████████████████▏ | 49/74 [00:43<00:18, 1.39it/s]
epoch 97 | loss 1.493850827217102, f_iou 0.621494472026825: 68%|█████████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 97 | loss 0.5707691311836243, f_iou 0.6093083620071411: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 97 | loss 0.5707691311836243, f_iou 0.6093083620071411: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.39it/s]
epoch 97 | loss 0.7573135495185852, f_iou 0.6116540431976318: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 97 | loss 0.7573135495185852, f_iou 0.6116540431976318: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 97 | loss 0.8853822350502014, f_iou 0.617601215839386: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.39it/s]
epoch 97 | loss 0.8853822350502014, f_iou 0.617601215839386: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.39it/s]
epoch 97 | loss 0.6817249059677124, f_iou 0.6198943257331848: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 97 | loss 0.6817249059677124, f_iou 0.6198943257331848: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 97 | loss 0.3432364761829376, f_iou 0.6222730875015259: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 97 | loss 0.3432364761829376, f_iou 0.6222730875015259: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 97 | loss 1.396209478378296, f_iou 0.6188673973083496: 74%|███████████████████████████▌ | 55/74 [00:47<00:13, 1.39it/s]
epoch 97 | loss 1.396209478378296, f_iou 0.6188673973083496: 76%|████████████████████████████ | 56/74 [00:47<00:12, 1.39it/s]
epoch 97 | loss 2.3592796325683594, f_iou 0.616378664970398: 76%|████████████████████████████ | 56/74 [00:48<00:12, 1.39it/s]
epoch 97 | loss 2.3592796325683594, f_iou 0.616378664970398: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.39it/s]
epoch 97 | loss 1.0512293577194214, f_iou 0.621863067150116: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.39it/s]
epoch 97 | loss 1.0512293577194214, f_iou 0.621863067150116: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.39it/s]
epoch 97 | loss 0.6815252304077148, f_iou 0.6265352368354797: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 97 | loss 0.6815252304077148, f_iou 0.6265352368354797: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 97 | loss 0.0, f_iou 0.6326118111610413: 80%|████████████████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 97 | loss 0.0, f_iou 0.6326118111610413: 81%|█████████████████████████████████████████▎ | 60/74 [00:50<00:10, 1.40it/s]
epoch 97 | loss 0.8449220657348633, f_iou 0.6335824728012085: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.40it/s]
epoch 97 | loss 0.8449220657348633, f_iou 0.6335824728012085: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.40it/s]
epoch 97 | loss 0.5445863604545593, f_iou 0.6387725472450256: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.40it/s]
epoch 97 | loss 0.5445863604545593, f_iou 0.6387725472450256: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.40it/s]
epoch 97 | loss 1.0824711322784424, f_iou 0.6299245953559875: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.40it/s]
epoch 97 | loss 1.0824711322784424, f_iou 0.6299245953559875: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 97 | loss 0.27865028381347656, f_iou 0.6344357132911682: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.39it/s]
epoch 97 | loss 0.27865028381347656, f_iou 0.6344357132911682: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.40it/s]
epoch 97 | loss 1.2925896644592285, f_iou 0.6310330033302307: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.40it/s]
epoch 97 | loss 1.2925896644592285, f_iou 0.6310330033302307: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 97 | loss 1.9861717224121094, f_iou 0.6244086027145386: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.40it/s]
epoch 97 | loss 1.9861717224121094, f_iou 0.6244086027145386: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.40it/s]
epoch 97 | loss 1.1182477474212646, f_iou 0.6283713579177856: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.40it/s]
epoch 97 | loss 1.1182477474212646, f_iou 0.6283713579177856: 91%|████████████████████████████████▌ | 67/74 [00:55<00:04, 1.40it/s]
epoch 97 | loss 1.5736515522003174, f_iou 0.626964807510376: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:04, 1.40it/s]
epoch 97 | loss 1.5736515522003174, f_iou 0.626964807510376: 92%|██████████████████████████████████ | 68/74 [00:55<00:04, 1.41it/s]
epoch 97 | loss 1.006957769393921, f_iou 0.6307957172393799: 92%|██████████████████████████████████ | 68/74 [00:56<00:04, 1.41it/s]
epoch 97 | loss 1.006957769393921, f_iou 0.6307957172393799: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.41it/s]
epoch 97 | loss 1.0782591104507446, f_iou 0.6312042474746704: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.41it/s]
epoch 97 | loss 1.0782591104507446, f_iou 0.6312042474746704: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 97 | loss 0.7370815873146057, f_iou 0.6329385042190552: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 97 | loss 0.7370815873146057, f_iou 0.6329385042190552: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 97 | loss 1.5211740732192993, f_iou 0.6334865689277649: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 97 | loss 1.5211740732192993, f_iou 0.6334865689277649: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 97 | loss 0.6900067329406738, f_iou 0.6376913189888: 97%|█████████████████████████████████████▉ | 72/74 [00:59<00:01, 1.41it/s]
epoch 97 | loss 0.6900067329406738, f_iou 0.6376913189888: 99%|██████████████████████████████████████▍| 73/74 [00:59<00:00, 1.41it/s]
epoch 97 | loss 3.2531909942626953, f_iou 0.636256754398346: 99%|████████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 97 | loss 3.2531909942626953, f_iou 0.636256754398346: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 97 | loss 3.2531909942626953, f_iou 0.636256754398346: 100%|█████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 97 | valid.f_iou 0.7589300274848938, valid.f_f-score 0.84885: 0%| | 0/16 [00:05, ?it/s]
epoch 97 | valid.f_iou 0.7589300274848938, valid.f_f-score 0.84885: 6%|█▉ | 1/16 [00:05<01:16, 5.08s/it]
epoch 97 | valid.f_iou 0.7434300184249878, valid.f_f-score 0.89092: 6%|█▉ | 1/16 [00:05<01:16, 5.08s/it]
epoch 97 | valid.f_iou 0.7434300184249878, valid.f_f-score 0.89092: 12%|███▉ | 2/16 [00:05<00:33, 2.38s/it]
epoch 97 | valid.f_iou 0.6021599769592285, valid.f_f-score 0.78901: 12%|███▉ | 2/16 [00:06<00:33, 2.38s/it]
epoch 97 | valid.f_iou 0.6021599769592285, valid.f_f-score 0.78901: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 97 | valid.f_iou 0.6225200295448303, valid.f_f-score 0.77135: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 97 | valid.f_iou 0.6225200295448303, valid.f_f-score 0.77135: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 97 | valid.f_iou 0.6272100210189819, valid.f_f-score 0.77617: 25%|███████▊ | 4/16 [00:06<00:13, 1.09s/it]
epoch 97 | valid.f_iou 0.6272100210189819, valid.f_f-score 0.77617: 31%|█████████▋ | 5/16 [00:06<00:09, 1.17it/s]
epoch 97 | valid.f_iou 0.577430009841919, valid.f_f-score 0.72818: 31%|██████████ | 5/16 [00:07<00:09, 1.17it/s]
epoch 97 | valid.f_iou 0.577430009841919, valid.f_f-score 0.72818: 38%|████████████ | 6/16 [00:07<00:06, 1.43it/s]
epoch 97 | valid.f_iou 0.5977500081062317, valid.f_f-score 0.74936: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 97 | valid.f_iou 0.5977500081062317, valid.f_f-score 0.74936: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 97 | valid.f_iou 0.5882599949836731, valid.f_f-score 0.74699: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 97 | valid.f_iou 0.5882599949836731, valid.f_f-score 0.74699: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 97 | valid.f_iou 0.6000699996948242, valid.f_f-score 0.74484: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 97 | valid.f_iou 0.6000699996948242, valid.f_f-score 0.74484: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 97 | valid.f_iou 0.5843600034713745, valid.f_f-score 0.74266: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 97 | valid.f_iou 0.5843600034713745, valid.f_f-score 0.74266: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.20it/s]
epoch 97 | valid.f_iou 0.5893399715423584, valid.f_f-score 0.74344: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.20it/s]
epoch 97 | valid.f_iou 0.5893399715423584, valid.f_f-score 0.74344: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 97 | valid.f_iou 0.608709990978241, valid.f_f-score 0.75889: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.34it/s]
epoch 97 | valid.f_iou 0.608709990978241, valid.f_f-score 0.75889: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.45it/s]
epoch 97 | valid.f_iou 0.6204400062561035, valid.f_f-score 0.7669: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.45it/s]
epoch 97 | valid.f_iou 0.6204400062561035, valid.f_f-score 0.7669: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.54it/s]
epoch 97 | valid.f_iou 0.6186100244522095, valid.f_f-score 0.76475: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.54it/s]
epoch 97 | valid.f_iou 0.6186100244522095, valid.f_f-score 0.76475: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 97 | valid.f_iou 0.6168000102043152, valid.f_f-score 0.75925: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.60it/s]
epoch 97 | valid.f_iou 0.6168000102043152, valid.f_f-score 0.75925: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 97 | valid.f_iou 0.6198099851608276, valid.f_f-score 0.75644: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 97 | valid.f_iou 0.6198099851608276, valid.f_f-score 0.75644: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 97 | valid.f_iou 0.6198099851608276, valid.f_f-score 0.75644: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 97 | valid.f_iou 0.7872999906539917, valid.f_f-score 0.84893: 0%| | 0/16 [00:04, ?it/s]
epoch 97 | valid.f_iou 0.7872999906539917, valid.f_f-score 0.84893: 6%|█▉ | 1/16 [00:04<01:08, 4.58s/it]
epoch 97 | valid.f_iou 0.8281300067901611, valid.f_f-score 0.89299: 6%|█▉ | 1/16 [00:05<01:08, 4.58s/it]
epoch 97 | valid.f_iou 0.8281300067901611, valid.f_f-score 0.89299: 12%|███▉ | 2/16 [00:05<00:30, 2.16s/it]
epoch 97 | valid.f_iou 0.7651000022888184, valid.f_f-score 0.86495: 12%|███▉ | 2/16 [00:05<00:30, 2.16s/it]
epoch 97 | valid.f_iou 0.7651000022888184, valid.f_f-score 0.86495: 19%|█████▊ | 3/16 [00:05<00:17, 1.37s/it]
epoch 97 | valid.f_iou 0.7537299990653992, valid.f_f-score 0.8263: 19%|██████ | 3/16 [00:05<00:17, 1.37s/it]
epoch 97 | valid.f_iou 0.7537299990653992, valid.f_f-score 0.8263: 25%|████████ | 4/16 [00:05<00:11, 1.00it/s]
epoch 97 | valid.f_iou 0.7279199957847595, valid.f_f-score 0.8191: 25%|████████ | 4/16 [00:06<00:11, 1.00it/s]
epoch 97 | valid.f_iou 0.7279199957847595, valid.f_f-score 0.8191: 31%|██████████ | 5/16 [00:06<00:08, 1.26it/s]
epoch 97 | valid.f_iou 0.7126100063323975, valid.f_f-score 0.80803: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 97 | valid.f_iou 0.7126100063323975, valid.f_f-score 0.80803: 38%|███████████▋ | 6/16 [00:06<00:06, 1.51it/s]
epoch 97 | valid.f_iou 0.7279000282287598, valid.f_f-score 0.82616: 38%|███████████▋ | 6/16 [00:07<00:06, 1.51it/s]
epoch 97 | valid.f_iou 0.7279000282287598, valid.f_f-score 0.82616: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.71it/s]
epoch 97 | valid.f_iou 0.7140300273895264, valid.f_f-score 0.82037: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.71it/s]
epoch 97 | valid.f_iou 0.7140300273895264, valid.f_f-score 0.82037: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 97 | valid.f_iou 0.7185699939727783, valid.f_f-score 0.81983: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.85it/s]
epoch 97 | valid.f_iou 0.7185699939727783, valid.f_f-score 0.81983: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.08it/s]
epoch 97 | valid.f_iou 0.7257599830627441, valid.f_f-score 0.82765: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.08it/s]
epoch 97 | valid.f_iou 0.7257599830627441, valid.f_f-score 0.82765: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.24it/s]
epoch 97 | valid.f_iou 0.7134799957275391, valid.f_f-score 0.80714: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.24it/s]
epoch 97 | valid.f_iou 0.7134799957275391, valid.f_f-score 0.80714: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.37it/s]
epoch 97 | valid.f_iou 0.7256699800491333, valid.f_f-score 0.81762: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.37it/s]
epoch 97 | valid.f_iou 0.7256699800491333, valid.f_f-score 0.81762: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 97 | valid.f_iou 0.7350900173187256, valid.f_f-score 0.82321: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 97 | valid.f_iou 0.7350900173187256, valid.f_f-score 0.82321: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.53it/s]
epoch 97 | valid.f_iou 0.724370002746582, valid.f_f-score 0.81399: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.53it/s]
epoch 97 | valid.f_iou 0.724370002746582, valid.f_f-score 0.81399: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.58it/s]
epoch 97 | valid.f_iou 0.7237799763679504, valid.f_f-score 0.81501: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.58it/s]
epoch 97 | valid.f_iou 0.7237799763679504, valid.f_f-score 0.81501: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 97 | valid.f_iou 0.7203599810600281, valid.f_f-score 0.8077: 94%|█████████████████████████████ | 15/16 [00:10<00:00, 2.63it/s]
epoch 97 | valid.f_iou 0.7203599810600281, valid.f_f-score 0.8077: 100%|███████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 97 | valid.f_iou 0.7203599810600281, valid.f_f-score 0.8077: 100%|███████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 97 | valid.f_iou 0.7872999906539917, valid.f_f-score 0.84893: 0%| | 0/16 [00:05, ?it/s]
epoch 97 | valid.f_iou 0.7872999906539917, valid.f_f-score 0.84893: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 97 | valid.f_iou 0.8281300067901611, valid.f_f-score 0.89299: 6%|█▉ | 1/16 [00:05<01:19, 5.30s/it]
epoch 97 | valid.f_iou 0.8281300067901611, valid.f_f-score 0.89299: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 97 | valid.f_iou 0.7651000022888184, valid.f_f-score 0.86495: 12%|███▉ | 2/16 [00:06<00:34, 2.46s/it]
epoch 97 | valid.f_iou 0.7651000022888184, valid.f_f-score 0.86495: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 97 | valid.f_iou 0.7537299990653992, valid.f_f-score 0.8263: 19%|██████ | 3/16 [00:06<00:20, 1.54s/it]
epoch 97 | valid.f_iou 0.7537299990653992, valid.f_f-score 0.8263: 25%|████████ | 4/16 [00:06<00:13, 1.11s/it]
epoch 97 | valid.f_iou 0.7348700165748596, valid.f_f-score 0.8191: 25%|████████ | 4/16 [00:07<00:13, 1.11s/it]
epoch 97 | valid.f_iou 0.7348700165748596, valid.f_f-score 0.8191: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 97 | valid.f_iou 0.7184000015258789, valid.f_f-score 0.80803: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 97 | valid.f_iou 0.7184000015258789, valid.f_f-score 0.80803: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 97 | valid.f_iou 0.736050009727478, valid.f_f-score 0.82616: 38%|████████████ | 6/16 [00:08<00:07, 1.37it/s]
epoch 97 | valid.f_iou 0.736050009727478, valid.f_f-score 0.82616: 44%|██████████████ | 7/16 [00:08<00:05, 1.57it/s]
epoch 97 | valid.f_iou 0.7211700081825256, valid.f_f-score 0.82037: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 97 | valid.f_iou 0.7211700081825256, valid.f_f-score 0.82037: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 97 | valid.f_iou 0.7258099913597107, valid.f_f-score 0.81983: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 97 | valid.f_iou 0.7258099913597107, valid.f_f-score 0.81983: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.89it/s]
epoch 97 | valid.f_iou 0.7313600182533264, valid.f_f-score 0.82514: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 97 | valid.f_iou 0.7313600182533264, valid.f_f-score 0.82514: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 97 | valid.f_iou 0.7185699939727783, valid.f_f-score 0.80486: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 97 | valid.f_iou 0.7185699939727783, valid.f_f-score 0.80486: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.05it/s]
epoch 97 | valid.f_iou 0.7303400039672852, valid.f_f-score 0.81553: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.05it/s]
epoch 97 | valid.f_iou 0.7303400039672852, valid.f_f-score 0.81553: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 97 | valid.f_iou 0.7393800020217896, valid.f_f-score 0.82248: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 97 | valid.f_iou 0.7393800020217896, valid.f_f-score 0.82248: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.20it/s]
epoch 97 | valid.f_iou 0.7283599972724915, valid.f_f-score 0.81332: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.20it/s]
epoch 97 | valid.f_iou 0.7283599972724915, valid.f_f-score 0.81332: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.32it/s]
epoch 97 | valid.f_iou 0.7274900078773499, valid.f_f-score 0.81439: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.32it/s]
epoch 97 | valid.f_iou 0.7274900078773499, valid.f_f-score 0.81439: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 97 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.80711: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 97 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.80711: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.49it/s]
epoch 97 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.80711: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 98 | loss 0.5485705733299255, f_iou 0.8893739581108093: 0%| | 0/74 [00:06, ?it/s]
epoch 98 | loss 0.5485705733299255, f_iou 0.8893739581108093: 1%|▌ | 1/74 [00:06<08:01, 6.59s/it]
epoch 98 | loss 3.105139970779419, f_iou 0.6829630136489868: 1%|▌ | 1/74 [00:07<08:01, 6.59s/it]
epoch 98 | loss 3.105139970779419, f_iou 0.6829630136489868: 3%|█ | 2/74 [00:07<03:48, 3.18s/it]
epoch 98 | loss 2.0027072429656982, f_iou 0.5208253264427185: 3%|█ | 2/74 [00:08<03:48, 3.18s/it]
epoch 98 | loss 2.0027072429656982, f_iou 0.5208253264427185: 4%|█▌ | 3/74 [00:08<02:30, 2.12s/it]
epoch 98 | loss 0.5657604336738586, f_iou 0.6333783268928528: 4%|█▌ | 3/74 [00:09<02:30, 2.12s/it]
epoch 98 | loss 0.5657604336738586, f_iou 0.6333783268928528: 5%|██ | 4/74 [00:09<01:51, 1.59s/it]
epoch 98 | loss 0.458016037940979, f_iou 0.6799156069755554: 5%|██ | 4/74 [00:09<01:51, 1.59s/it]
epoch 98 | loss 0.458016037940979, f_iou 0.6799156069755554: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 98 | loss 1.1154649257659912, f_iou 0.7108465433120728: 7%|██▌ | 5/74 [00:10<01:30, 1.31s/it]
epoch 98 | loss 1.1154649257659912, f_iou 0.7108465433120728: 8%|███ | 6/74 [00:10<01:17, 1.13s/it]
epoch 98 | loss 1.0508360862731934, f_iou 0.6932090520858765: 8%|███ | 6/74 [00:11<01:17, 1.13s/it]
epoch 98 | loss 1.0508360862731934, f_iou 0.6932090520858765: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 98 | loss 0.2769574820995331, f_iou 0.7291420102119446: 9%|███▌ | 7/74 [00:12<01:08, 1.02s/it]
epoch 98 | loss 0.2769574820995331, f_iou 0.7291420102119446: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 98 | loss 1.4230279922485352, f_iou 0.6854797601699829: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 98 | loss 1.4230279922485352, f_iou 0.6854797601699829: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 98 | loss 0.5662648677825928, f_iou 0.7118188738822937: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 98 | loss 0.5662648677825928, f_iou 0.7118188738822937: 14%|████▊ | 10/74 [00:13<00:54, 1.18it/s]
epoch 98 | loss 0.7173810005187988, f_iou 0.7321969866752625: 14%|████▊ | 10/74 [00:14<00:54, 1.18it/s]
epoch 98 | loss 0.7173810005187988, f_iou 0.7321969866752625: 15%|█████▎ | 11/74 [00:14<00:51, 1.23it/s]
epoch 98 | loss 0.6555832028388977, f_iou 0.7454322576522827: 15%|█████▎ | 11/74 [00:15<00:51, 1.23it/s]
epoch 98 | loss 0.6555832028388977, f_iou 0.7454322576522827: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 98 | loss 0.5386230945587158, f_iou 0.758899986743927: 16%|██████ | 12/74 [00:15<00:48, 1.28it/s]
epoch 98 | loss 0.5386230945587158, f_iou 0.758899986743927: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 98 | loss 0.7474274039268494, f_iou 0.7605445384979248: 18%|██████▎ | 13/74 [00:16<00:46, 1.31it/s]
epoch 98 | loss 0.7474274039268494, f_iou 0.7605445384979248: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 98 | loss 0.930067777633667, f_iou 0.7241086363792419: 19%|███████ | 14/74 [00:17<00:44, 1.34it/s]
epoch 98 | loss 0.930067777633667, f_iou 0.7241086363792419: 20%|███████▌ | 15/74 [00:17<00:43, 1.35it/s]
epoch 98 | loss 0.7016608119010925, f_iou 0.7247871160507202: 20%|███████▎ | 15/74 [00:18<00:43, 1.35it/s]
epoch 98 | loss 0.7016608119010925, f_iou 0.7247871160507202: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 98 | loss 1.4709758758544922, f_iou 0.7094653248786926: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 98 | loss 1.4709758758544922, f_iou 0.7094653248786926: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 98 | loss 0.6438845992088318, f_iou 0.7228227257728577: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 98 | loss 0.6438845992088318, f_iou 0.7228227257728577: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 98 | loss 1.1052323579788208, f_iou 0.6862963438034058: 24%|████████▊ | 18/74 [00:20<00:40, 1.37it/s]
epoch 98 | loss 1.1052323579788208, f_iou 0.6862963438034058: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 98 | loss 1.2699899673461914, f_iou 0.6875104308128357: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 98 | loss 1.2699899673461914, f_iou 0.6875104308128357: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 98 | loss 1.0293679237365723, f_iou 0.6547718048095703: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 98 | loss 1.0293679237365723, f_iou 0.6547718048095703: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 98 | loss 0.49294787645339966, f_iou 0.6676773428916931: 28%|█████████▉ | 21/74 [00:22<00:38, 1.38it/s]
epoch 98 | loss 0.49294787645339966, f_iou 0.6676773428916931: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 98 | loss 1.2314815521240234, f_iou 0.6743070483207703: 30%|██████████▋ | 22/74 [00:23<00:37, 1.38it/s]
epoch 98 | loss 1.2314815521240234, f_iou 0.6743070483207703: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 98 | loss 0.9571205377578735, f_iou 0.6678227186203003: 31%|███████████▏ | 23/74 [00:23<00:36, 1.38it/s]
epoch 98 | loss 0.9571205377578735, f_iou 0.6678227186203003: 32%|███████████▋ | 24/74 [00:23<00:37, 1.35it/s]
epoch 98 | loss 0.8474882245063782, f_iou 0.6760759353637695: 32%|███████████▋ | 24/74 [00:24<00:37, 1.35it/s]
epoch 98 | loss 0.8474882245063782, f_iou 0.6760759353637695: 34%|████████████▏ | 25/74 [00:24<00:35, 1.36it/s]
epoch 98 | loss 1.1636466979980469, f_iou 0.6824491620063782: 34%|████████████▏ | 25/74 [00:25<00:35, 1.36it/s]
epoch 98 | loss 1.1636466979980469, f_iou 0.6824491620063782: 35%|████████████▋ | 26/74 [00:25<00:34, 1.37it/s]
epoch 98 | loss 0.6318729519844055, f_iou 0.6780866980552673: 35%|████████████▋ | 26/74 [00:26<00:34, 1.37it/s]
epoch 98 | loss 0.6318729519844055, f_iou 0.6780866980552673: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 98 | loss 0.8767304420471191, f_iou 0.6834229230880737: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.38it/s]
epoch 98 | loss 0.8767304420471191, f_iou 0.6834229230880737: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.38it/s]
epoch 98 | loss 2.4992356300354004, f_iou 0.6815595030784607: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 98 | loss 2.4992356300354004, f_iou 0.6815595030784607: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 98 | loss 2.5611519813537598, f_iou 0.6742053031921387: 39%|██████████████ | 29/74 [00:28<00:32, 1.39it/s]
epoch 98 | loss 2.5611519813537598, f_iou 0.6742053031921387: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.35it/s]
epoch 98 | loss 1.2009855508804321, f_iou 0.6751846671104431: 41%|██████████████▌ | 30/74 [00:29<00:32, 1.35it/s]
epoch 98 | loss 1.2009855508804321, f_iou 0.6751846671104431: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 98 | loss 1.3797950744628906, f_iou 0.6733211278915405: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 98 | loss 1.3797950744628906, f_iou 0.6733211278915405: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.35it/s]
epoch 98 | loss 1.461061716079712, f_iou 0.6737803220748901: 43%|████████████████ | 32/74 [00:30<00:31, 1.35it/s]
epoch 98 | loss 1.461061716079712, f_iou 0.6737803220748901: 45%|████████████████▌ | 33/74 [00:30<00:30, 1.36it/s]
epoch 98 | loss 0.7507284283638, f_iou 0.6766636967658997: 45%|█████████████████▍ | 33/74 [00:31<00:30, 1.36it/s]
epoch 98 | loss 0.7507284283638, f_iou 0.6766636967658997: 46%|█████████████████▉ | 34/74 [00:31<00:29, 1.35it/s]
epoch 98 | loss 0.5663966536521912, f_iou 0.6675421595573425: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.35it/s]
epoch 98 | loss 0.5663966536521912, f_iou 0.6675421595573425: 47%|█████████████████ | 35/74 [00:31<00:29, 1.33it/s]
epoch 98 | loss 1.7821396589279175, f_iou 0.6543697118759155: 47%|█████████████████ | 35/74 [00:32<00:29, 1.33it/s]
epoch 98 | loss 1.7821396589279175, f_iou 0.6543697118759155: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.31it/s]
epoch 98 | loss 1.1541118621826172, f_iou 0.6602134108543396: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.31it/s]
epoch 98 | loss 1.1541118621826172, f_iou 0.6602134108543396: 50%|██████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 98 | loss 1.3528258800506592, f_iou 0.6670405268669128: 50%|██████████████████ | 37/74 [00:34<00:27, 1.33it/s]
epoch 98 | loss 1.3528258800506592, f_iou 0.6670405268669128: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.34it/s]
epoch 98 | loss 1.09356689453125, f_iou 0.6636915802955627: 51%|███████████████████▌ | 38/74 [00:34<00:26, 1.34it/s]
epoch 98 | loss 1.09356689453125, f_iou 0.6636915802955627: 53%|████████████████████ | 39/74 [00:34<00:25, 1.36it/s]
epoch 98 | loss 1.5632996559143066, f_iou 0.6603912711143494: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.36it/s]
epoch 98 | loss 1.5632996559143066, f_iou 0.6603912711143494: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.37it/s]
epoch 98 | loss 0.2284589409828186, f_iou 0.6633579134941101: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.37it/s]
epoch 98 | loss 0.2284589409828186, f_iou 0.6633579134941101: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.37it/s]
epoch 98 | loss 1.0518189668655396, f_iou 0.6568592190742493: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.37it/s]
epoch 98 | loss 1.0518189668655396, f_iou 0.6568592190742493: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 98 | loss 1.9902732372283936, f_iou 0.6545473337173462: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 98 | loss 1.9902732372283936, f_iou 0.6545473337173462: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 98 | loss 0.9046475887298584, f_iou 0.6512889862060547: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 98 | loss 0.9046475887298584, f_iou 0.6512889862060547: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.38it/s]
epoch 98 | loss 0.7522909641265869, f_iou 0.6460826396942139: 59%|█████████████████████▍ | 44/74 [00:39<00:21, 1.38it/s]
epoch 98 | loss 0.7522909641265869, f_iou 0.6460826396942139: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.38it/s]
epoch 98 | loss 0.42711734771728516, f_iou 0.6524781584739685: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.38it/s]
epoch 98 | loss 0.42711734771728516, f_iou 0.6524781584739685: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.38it/s]
epoch 98 | loss 0.4011339843273163, f_iou 0.6591443419456482: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.38it/s]
epoch 98 | loss 0.4011339843273163, f_iou 0.6591443419456482: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.38it/s]
epoch 98 | loss 4.07412052154541, f_iou 0.6539082527160645: 64%|████████████████████████▏ | 47/74 [00:41<00:19, 1.38it/s]
epoch 98 | loss 4.07412052154541, f_iou 0.6539082527160645: 65%|████████████████████████▋ | 48/74 [00:41<00:18, 1.38it/s]
epoch 98 | loss 0.538626492023468, f_iou 0.6583638191223145: 65%|████████████████████████ | 48/74 [00:42<00:18, 1.38it/s]
epoch 98 | loss 0.538626492023468, f_iou 0.6583638191223145: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 98 | loss 0.652306079864502, f_iou 0.6601364016532898: 66%|████████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 98 | loss 0.652306079864502, f_iou 0.6601364016532898: 68%|█████████████████████████ | 50/74 [00:42<00:17, 1.39it/s]
epoch 98 | loss 1.073307991027832, f_iou 0.6640666127204895: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 98 | loss 1.073307991027832, f_iou 0.6640666127204895: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 98 | loss 2.21414852142334, f_iou 0.6647404432296753: 69%|██████████████████████████▏ | 51/74 [00:44<00:16, 1.39it/s]
epoch 98 | loss 2.21414852142334, f_iou 0.6647404432296753: 70%|██████████████████████████▋ | 52/74 [00:44<00:15, 1.39it/s]
epoch 98 | loss 0.9403895139694214, f_iou 0.6666046380996704: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 98 | loss 0.9403895139694214, f_iou 0.6666046380996704: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 98 | loss 1.376347541809082, f_iou 0.658981442451477: 72%|███████████████████████████▏ | 53/74 [00:45<00:15, 1.39it/s]
epoch 98 | loss 1.376347541809082, f_iou 0.658981442451477: 73%|███████████████████████████▋ | 54/74 [00:45<00:14, 1.39it/s]
epoch 98 | loss 0.5188901424407959, f_iou 0.6645215749740601: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 98 | loss 0.5188901424407959, f_iou 0.6645215749740601: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.36it/s]
epoch 98 | loss 0.5675923824310303, f_iou 0.6688855290412903: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.36it/s]
epoch 98 | loss 0.5675923824310303, f_iou 0.6688855290412903: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.34it/s]
epoch 98 | loss 0.795292854309082, f_iou 0.673447847366333: 76%|████████████████████████████▊ | 56/74 [00:48<00:13, 1.34it/s]
epoch 98 | loss 0.795292854309082, f_iou 0.673447847366333: 77%|█████████████████████████████▎ | 57/74 [00:48<00:12, 1.34it/s]
epoch 98 | loss 0.9331803321838379, f_iou 0.6707795262336731: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.34it/s]
epoch 98 | loss 0.9331803321838379, f_iou 0.6707795262336731: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 98 | loss 1.3590974807739258, f_iou 0.6670255661010742: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.35it/s]
epoch 98 | loss 1.3590974807739258, f_iou 0.6670255661010742: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.37it/s]
epoch 98 | loss 1.1504679918289185, f_iou 0.6672607660293579: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.37it/s]
epoch 98 | loss 1.1504679918289185, f_iou 0.6672607660293579: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 98 | loss 0.6916744112968445, f_iou 0.6700037121772766: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 98 | loss 0.6916744112968445, f_iou 0.6700037121772766: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 98 | loss 0.7642897963523865, f_iou 0.6606910228729248: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.38it/s]
epoch 98 | loss 0.7642897963523865, f_iou 0.6606910228729248: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.38it/s]
epoch 98 | loss 0.9265642762184143, f_iou 0.6601028442382812: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 98 | loss 0.9265642762184143, f_iou 0.6601028442382812: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 98 | loss 1.1847476959228516, f_iou 0.6602992415428162: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 98 | loss 1.1847476959228516, f_iou 0.6602992415428162: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 98 | loss 1.5772346258163452, f_iou 0.6533165574073792: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 98 | loss 1.5772346258163452, f_iou 0.6533165574073792: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.34it/s]
epoch 98 | loss 1.4542460441589355, f_iou 0.6503487229347229: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.34it/s]
epoch 98 | loss 1.4542460441589355, f_iou 0.6503487229347229: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.32it/s]
epoch 98 | loss 1.0163993835449219, f_iou 0.65248703956604: 89%|█████████████████████████████████▉ | 66/74 [00:55<00:06, 1.32it/s]
epoch 98 | loss 1.0163993835449219, f_iou 0.65248703956604: 91%|██████████████████████████████████▍ | 67/74 [00:55<00:05, 1.31it/s]
epoch 98 | loss 0.958192765712738, f_iou 0.645532488822937: 91%|██████████████████████████████████▍ | 67/74 [00:56<00:05, 1.31it/s]
epoch 98 | loss 0.958192765712738, f_iou 0.645532488822937: 92%|██████████████████████████████████▉ | 68/74 [00:56<00:04, 1.33it/s]
epoch 98 | loss 0.5602748394012451, f_iou 0.6473208665847778: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.33it/s]
epoch 98 | loss 0.5602748394012451, f_iou 0.6473208665847778: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.36it/s]
epoch 98 | loss 2.3631556034088135, f_iou 0.6439679265022278: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.36it/s]
epoch 98 | loss 2.3631556034088135, f_iou 0.6439679265022278: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 98 | loss 0.8232614398002625, f_iou 0.6441815495491028: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.38it/s]
epoch 98 | loss 0.8232614398002625, f_iou 0.6441815495491028: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 98 | loss 0.8303706645965576, f_iou 0.6470654606819153: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 98 | loss 0.8303706645965576, f_iou 0.6470654606819153: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 98 | loss 0.962265133857727, f_iou 0.6502337455749512: 97%|████████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 98 | loss 0.962265133857727, f_iou 0.6502337455749512: 99%|████████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 98 | loss 0.9532028436660767, f_iou 0.6540350317955017: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 98 | loss 0.9532028436660767, f_iou 0.6540350317955017: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 98 | loss 0.9532028436660767, f_iou 0.6540350317955017: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 98 | valid.f_iou 0.7537699937820435, valid.f_f-score 0.85791: 0%| | 0/16 [00:05, ?it/s]
epoch 98 | valid.f_iou 0.7537699937820435, valid.f_f-score 0.85791: 6%|█▉ | 1/16 [00:05<01:24, 5.61s/it]
epoch 98 | valid.f_iou 0.667930006980896, valid.f_f-score 0.83716: 6%|██ | 1/16 [00:06<01:24, 5.61s/it]
epoch 98 | valid.f_iou 0.667930006980896, valid.f_f-score 0.83716: 12%|████ | 2/16 [00:06<00:36, 2.58s/it]
epoch 98 | valid.f_iou 0.5470200181007385, valid.f_f-score 0.75063: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 98 | valid.f_iou 0.5470200181007385, valid.f_f-score 0.75063: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 98 | valid.f_iou 0.5859400033950806, valid.f_f-score 0.74418: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 98 | valid.f_iou 0.5859400033950806, valid.f_f-score 0.74418: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 98 | valid.f_iou 0.5969499945640564, valid.f_f-score 0.75307: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 98 | valid.f_iou 0.5969499945640564, valid.f_f-score 0.75307: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 98 | valid.f_iou 0.555649995803833, valid.f_f-score 0.70762: 31%|██████████ | 5/16 [00:07<00:09, 1.13it/s]
epoch 98 | valid.f_iou 0.555649995803833, valid.f_f-score 0.70762: 38%|████████████ | 6/16 [00:07<00:07, 1.36it/s]
epoch 98 | valid.f_iou 0.5800099968910217, valid.f_f-score 0.7313: 38%|████████████ | 6/16 [00:08<00:07, 1.36it/s]
epoch 98 | valid.f_iou 0.5800099968910217, valid.f_f-score 0.7313: 44%|██████████████ | 7/16 [00:08<00:05, 1.61it/s]
epoch 98 | valid.f_iou 0.569920003414154, valid.f_f-score 0.72677: 44%|██████████████ | 7/16 [00:08<00:05, 1.61it/s]
epoch 98 | valid.f_iou 0.569920003414154, valid.f_f-score 0.72677: 50%|████████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 98 | valid.f_iou 0.5825700163841248, valid.f_f-score 0.72708: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 98 | valid.f_iou 0.5825700163841248, valid.f_f-score 0.72708: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 98 | valid.f_iou 0.5691099762916565, valid.f_f-score 0.72597: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 98 | valid.f_iou 0.5691099762916565, valid.f_f-score 0.72597: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 98 | valid.f_iou 0.5726100206375122, valid.f_f-score 0.72853: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 98 | valid.f_iou 0.5726100206375122, valid.f_f-score 0.72853: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 98 | valid.f_iou 0.5958399772644043, valid.f_f-score 0.74536: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.12it/s]
epoch 98 | valid.f_iou 0.5958399772644043, valid.f_f-score 0.74536: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.17it/s]
epoch 98 | valid.f_iou 0.5992199778556824, valid.f_f-score 0.74994: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.17it/s]
epoch 98 | valid.f_iou 0.5992199778556824, valid.f_f-score 0.74994: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.21it/s]
epoch 98 | valid.f_iou 0.5920799970626831, valid.f_f-score 0.74551: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.21it/s]
epoch 98 | valid.f_iou 0.5920799970626831, valid.f_f-score 0.74551: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.34it/s]
epoch 98 | valid.f_iou 0.5946599841117859, valid.f_f-score 0.74558: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.34it/s]
epoch 98 | valid.f_iou 0.5946599841117859, valid.f_f-score 0.74558: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.46it/s]
epoch 98 | valid.f_iou 0.5979200005531311, valid.f_f-score 0.74288: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.46it/s]
epoch 98 | valid.f_iou 0.5979200005531311, valid.f_f-score 0.74288: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.54it/s]
epoch 98 | valid.f_iou 0.5979200005531311, valid.f_f-score 0.74288: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 98 | valid.f_iou 0.7986099720001221, valid.f_f-score 0.7986: 0%| | 0/16 [00:04, ?it/s]
epoch 98 | valid.f_iou 0.7986099720001221, valid.f_f-score 0.7986: 6%|██ | 1/16 [00:04<01:08, 4.57s/it]
epoch 98 | valid.f_iou 0.8333500027656555, valid.f_f-score 0.86613: 6%|█▉ | 1/16 [00:05<01:08, 4.57s/it]
epoch 98 | valid.f_iou 0.8333500027656555, valid.f_f-score 0.86613: 12%|███▉ | 2/16 [00:05<00:30, 2.15s/it]
epoch 98 | valid.f_iou 0.7374200224876404, valid.f_f-score 0.8158: 12%|████ | 2/16 [00:05<00:30, 2.15s/it]
epoch 98 | valid.f_iou 0.7374200224876404, valid.f_f-score 0.8158: 19%|██████ | 3/16 [00:05<00:17, 1.38s/it]
epoch 98 | valid.f_iou 0.714460015296936, valid.f_f-score 0.78097: 19%|██████ | 3/16 [00:05<00:17, 1.38s/it]
epoch 98 | valid.f_iou 0.714460015296936, valid.f_f-score 0.78097: 25%|████████ | 4/16 [00:05<00:11, 1.02it/s]
epoch 98 | valid.f_iou 0.6962900161743164, valid.f_f-score 0.78004: 25%|███████▊ | 4/16 [00:06<00:11, 1.02it/s]
epoch 98 | valid.f_iou 0.6962900161743164, valid.f_f-score 0.78004: 31%|█████████▋ | 5/16 [00:06<00:08, 1.32it/s]
epoch 98 | valid.f_iou 0.6873499751091003, valid.f_f-score 0.77438: 31%|█████████▋ | 5/16 [00:06<00:08, 1.32it/s]
epoch 98 | valid.f_iou 0.6873499751091003, valid.f_f-score 0.77438: 38%|███████████▋ | 6/16 [00:06<00:06, 1.60it/s]
epoch 98 | valid.f_iou 0.7053300142288208, valid.f_f-score 0.797: 38%|████████████▍ | 6/16 [00:06<00:06, 1.60it/s]
epoch 98 | valid.f_iou 0.7053300142288208, valid.f_f-score 0.797: 44%|██████████████▍ | 7/16 [00:06<00:04, 1.86it/s]
epoch 98 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.80246: 44%|█████████████▌ | 7/16 [00:07<00:04, 1.86it/s]
epoch 98 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.80246: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.06it/s]
epoch 98 | valid.f_iou 0.7098900079727173, valid.f_f-score 0.80628: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.06it/s]
epoch 98 | valid.f_iou 0.7098900079727173, valid.f_f-score 0.80628: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.25it/s]
epoch 98 | valid.f_iou 0.7252600193023682, valid.f_f-score 0.81728: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.25it/s]
epoch 98 | valid.f_iou 0.7252600193023682, valid.f_f-score 0.81728: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.38it/s]
epoch 98 | valid.f_iou 0.7228500247001648, valid.f_f-score 0.81398: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.38it/s]
epoch 98 | valid.f_iou 0.7228500247001648, valid.f_f-score 0.81398: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.48it/s]
epoch 98 | valid.f_iou 0.7344599962234497, valid.f_f-score 0.824: 69%|██████████████████████ | 11/16 [00:08<00:02, 2.48it/s]
epoch 98 | valid.f_iou 0.7344599962234497, valid.f_f-score 0.824: 75%|████████████████████████ | 12/16 [00:08<00:01, 2.55it/s]
epoch 98 | valid.f_iou 0.7449600100517273, valid.f_f-score 0.83159: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.55it/s]
epoch 98 | valid.f_iou 0.7449600100517273, valid.f_f-score 0.83159: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 98 | valid.f_iou 0.7336500287055969, valid.f_f-score 0.82013: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.61it/s]
epoch 98 | valid.f_iou 0.7336500287055969, valid.f_f-score 0.82013: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 98 | valid.f_iou 0.7367900013923645, valid.f_f-score 0.82262: 88%|██████████████████████████▎ | 14/16 [00:09<00:00, 2.65it/s]
epoch 98 | valid.f_iou 0.7367900013923645, valid.f_f-score 0.82262: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.68it/s]
epoch 98 | valid.f_iou 0.7313799858093262, valid.f_f-score 0.81491: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 98 | valid.f_iou 0.7313799858093262, valid.f_f-score 0.81491: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.69it/s]
epoch 98 | valid.f_iou 0.7313799858093262, valid.f_f-score 0.81491: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.56it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 98 | valid.f_iou 0.7986099720001221, valid.f_f-score 0.7986: 0%| | 0/16 [00:04, ?it/s]
epoch 98 | valid.f_iou 0.7986099720001221, valid.f_f-score 0.7986: 6%|██ | 1/16 [00:04<01:04, 4.28s/it]
epoch 98 | valid.f_iou 0.8333500027656555, valid.f_f-score 0.86613: 6%|█▉ | 1/16 [00:04<01:04, 4.28s/it]
epoch 98 | valid.f_iou 0.8333500027656555, valid.f_f-score 0.86613: 12%|███▉ | 2/16 [00:04<00:28, 2.06s/it]
epoch 98 | valid.f_iou 0.7374200224876404, valid.f_f-score 0.8158: 12%|████ | 2/16 [00:05<00:28, 2.06s/it]
epoch 98 | valid.f_iou 0.7374200224876404, valid.f_f-score 0.8158: 19%|██████ | 3/16 [00:05<00:16, 1.29s/it]
epoch 98 | valid.f_iou 0.714460015296936, valid.f_f-score 0.77596: 19%|██████ | 3/16 [00:05<00:16, 1.29s/it]
epoch 98 | valid.f_iou 0.714460015296936, valid.f_f-score 0.77596: 25%|████████ | 4/16 [00:05<00:11, 1.08it/s]
epoch 98 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.77603: 25%|███████▊ | 4/16 [00:05<00:11, 1.08it/s]
epoch 98 | valid.f_iou 0.7042800188064575, valid.f_f-score 0.77603: 31%|█████████▋ | 5/16 [00:05<00:07, 1.38it/s]
epoch 98 | valid.f_iou 0.6940100193023682, valid.f_f-score 0.77104: 31%|█████████▋ | 5/16 [00:06<00:07, 1.38it/s]
epoch 98 | valid.f_iou 0.6940100193023682, valid.f_f-score 0.77104: 38%|███████████▋ | 6/16 [00:06<00:06, 1.66it/s]
epoch 98 | valid.f_iou 0.7127500176429749, valid.f_f-score 0.79413: 38%|███████████▋ | 6/16 [00:06<00:06, 1.66it/s]
epoch 98 | valid.f_iou 0.7127500176429749, valid.f_f-score 0.79413: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.91it/s]
epoch 98 | valid.f_iou 0.7107700109481812, valid.f_f-score 0.79995: 44%|█████████████▌ | 7/16 [00:06<00:04, 1.91it/s]
epoch 98 | valid.f_iou 0.7107700109481812, valid.f_f-score 0.79995: 50%|███████████████▌ | 8/16 [00:06<00:03, 2.11it/s]
epoch 98 | valid.f_iou 0.7181000113487244, valid.f_f-score 0.80405: 50%|███████████████▌ | 8/16 [00:07<00:03, 2.11it/s]
epoch 98 | valid.f_iou 0.7181000113487244, valid.f_f-score 0.80405: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.30it/s]
epoch 98 | valid.f_iou 0.7284299731254578, valid.f_f-score 0.81173: 56%|█████████████████▍ | 9/16 [00:07<00:03, 2.30it/s]
epoch 98 | valid.f_iou 0.7284299731254578, valid.f_f-score 0.81173: 62%|██████████████████▊ | 10/16 [00:07<00:02, 2.43it/s]
epoch 98 | valid.f_iou 0.7257300019264221, valid.f_f-score 0.80893: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.43it/s]
epoch 98 | valid.f_iou 0.7257300019264221, valid.f_f-score 0.80893: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.52it/s]
epoch 98 | valid.f_iou 0.7371000051498413, valid.f_f-score 0.81938: 69%|████████████████████▋ | 11/16 [00:08<00:01, 2.52it/s]
epoch 98 | valid.f_iou 0.7371000051498413, valid.f_f-score 0.81938: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.59it/s]
epoch 98 | valid.f_iou 0.7473899722099304, valid.f_f-score 0.8281: 75%|███████████████████████▎ | 12/16 [00:08<00:01, 2.59it/s]
epoch 98 | valid.f_iou 0.7473899722099304, valid.f_f-score 0.8281: 81%|█████████████████████████▏ | 13/16 [00:08<00:01, 2.64it/s]
epoch 98 | valid.f_iou 0.7358999848365784, valid.f_f-score 0.8169: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.64it/s]
epoch 98 | valid.f_iou 0.7358999848365784, valid.f_f-score 0.8169: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.67it/s]
epoch 98 | valid.f_iou 0.7388899922370911, valid.f_f-score 0.8196: 88%|███████████████████████████▏ | 14/16 [00:09<00:00, 2.67it/s]
epoch 98 | valid.f_iou 0.7388899922370911, valid.f_f-score 0.8196: 94%|█████████████████████████████ | 15/16 [00:09<00:00, 2.70it/s]
epoch 98 | valid.f_iou 0.7339699864387512, valid.f_f-score 0.81208: 94%|████████████████████████████▏ | 15/16 [00:09<00:00, 2.70it/s]
epoch 98 | valid.f_iou 0.7339699864387512, valid.f_f-score 0.81208: 100%|██████████████████████████████| 16/16 [00:09<00:00, 2.70it/s]
epoch 98 | valid.f_iou 0.7339699864387512, valid.f_f-score 0.81208: 100%|██████████████████████████████| 16/16 [00:09<00:00, 1.62it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 99 | loss 0.6196629405021667, f_iou 0.8905496597290039: 0%| | 0/74 [00:05, ?it/s]
epoch 99 | loss 0.6196629405021667, f_iou 0.8905496597290039: 1%|▌ | 1/74 [00:05<06:52, 5.65s/it]
epoch 99 | loss 0.9424689412117004, f_iou 0.8703136444091797: 1%|▌ | 1/74 [00:06<06:52, 5.65s/it]
epoch 99 | loss 0.9424689412117004, f_iou 0.8703136444091797: 3%|█ | 2/74 [00:06<03:24, 2.84s/it]
epoch 99 | loss 1.8603885173797607, f_iou 0.8268853425979614: 3%|█ | 2/74 [00:07<03:24, 2.84s/it]
epoch 99 | loss 1.8603885173797607, f_iou 0.8268853425979614: 4%|█▌ | 3/74 [00:07<02:16, 1.92s/it]
epoch 99 | loss 1.1100406646728516, f_iou 0.8175028562545776: 4%|█▌ | 3/74 [00:08<02:16, 1.92s/it]
epoch 99 | loss 1.1100406646728516, f_iou 0.8175028562545776: 5%|██ | 4/74 [00:08<01:45, 1.51s/it]
epoch 99 | loss 0.6721459031105042, f_iou 0.7460612654685974: 5%|██ | 4/74 [00:09<01:45, 1.51s/it]
epoch 99 | loss 0.6721459031105042, f_iou 0.7460612654685974: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 99 | loss 0.6695337295532227, f_iou 0.6562967896461487: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 99 | loss 0.6695337295532227, f_iou 0.6562967896461487: 8%|███ | 6/74 [00:09<01:15, 1.11s/it]
epoch 99 | loss 1.3710687160491943, f_iou 0.6576034426689148: 8%|███ | 6/74 [00:10<01:15, 1.11s/it]
epoch 99 | loss 1.3710687160491943, f_iou 0.6576034426689148: 9%|███▌ | 7/74 [00:10<01:07, 1.01s/it]
epoch 99 | loss 1.0174026489257812, f_iou 0.6771748065948486: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 99 | loss 1.0174026489257812, f_iou 0.6771748065948486: 11%|████ | 8/74 [00:11<01:01, 1.07it/s]
epoch 99 | loss 1.7232909202575684, f_iou 0.6257737278938293: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 99 | loss 1.7232909202575684, f_iou 0.6257737278938293: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 99 | loss 1.2941762208938599, f_iou 0.5796613693237305: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 99 | loss 1.2941762208938599, f_iou 0.5796613693237305: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 99 | loss 0.7677834033966064, f_iou 0.5989227294921875: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 99 | loss 0.7677834033966064, f_iou 0.5989227294921875: 15%|█████▎ | 11/74 [00:13<00:51, 1.22it/s]
epoch 99 | loss 0.7686651945114136, f_iou 0.6084671020507812: 15%|█████▎ | 11/74 [00:14<00:51, 1.22it/s]
epoch 99 | loss 0.7686651945114136, f_iou 0.6084671020507812: 16%|█████▊ | 12/74 [00:14<00:48, 1.27it/s]
epoch 99 | loss 0.6733889579772949, f_iou 0.6362186074256897: 16%|█████▊ | 12/74 [00:15<00:48, 1.27it/s]
epoch 99 | loss 0.6733889579772949, f_iou 0.6362186074256897: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 99 | loss 1.508279800415039, f_iou 0.6240909099578857: 18%|██████▌ | 13/74 [00:15<00:46, 1.31it/s]
epoch 99 | loss 1.508279800415039, f_iou 0.6240909099578857: 19%|███████ | 14/74 [00:15<00:45, 1.33it/s]
epoch 99 | loss 2.651719570159912, f_iou 0.6055562496185303: 19%|███████ | 14/74 [00:16<00:45, 1.33it/s]
epoch 99 | loss 2.651719570159912, f_iou 0.6055562496185303: 20%|███████▌ | 15/74 [00:16<00:43, 1.35it/s]
epoch 99 | loss 0.19857214391231537, f_iou 0.615479052066803: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 99 | loss 0.19857214391231537, f_iou 0.615479052066803: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 99 | loss 1.8363151550292969, f_iou 0.6121103763580322: 22%|███████▊ | 16/74 [00:18<00:42, 1.37it/s]
epoch 99 | loss 1.8363151550292969, f_iou 0.6121103763580322: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 99 | loss 2.0968141555786133, f_iou 0.6062619686126709: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 99 | loss 2.0968141555786133, f_iou 0.6062619686126709: 24%|████████▊ | 18/74 [00:18<00:40, 1.38it/s]
epoch 99 | loss 1.9542903900146484, f_iou 0.6125123500823975: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 99 | loss 1.9542903900146484, f_iou 0.6125123500823975: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 99 | loss 1.3493144512176514, f_iou 0.6172274351119995: 26%|█████████▏ | 19/74 [00:20<00:39, 1.38it/s]
epoch 99 | loss 1.3493144512176514, f_iou 0.6172274351119995: 27%|█████████▋ | 20/74 [00:20<00:38, 1.39it/s]
epoch 99 | loss 2.797297716140747, f_iou 0.6133050322532654: 27%|██████████ | 20/74 [00:20<00:38, 1.39it/s]
epoch 99 | loss 2.797297716140747, f_iou 0.6133050322532654: 28%|██████████▌ | 21/74 [00:20<00:38, 1.39it/s]
epoch 99 | loss 2.080195426940918, f_iou 0.6067331433296204: 28%|██████████▌ | 21/74 [00:21<00:38, 1.39it/s]
epoch 99 | loss 2.080195426940918, f_iou 0.6067331433296204: 30%|███████████ | 22/74 [00:21<00:37, 1.39it/s]
epoch 99 | loss 1.409233808517456, f_iou 0.6019488573074341: 30%|███████████ | 22/74 [00:22<00:37, 1.39it/s]
epoch 99 | loss 1.409233808517456, f_iou 0.6019488573074341: 31%|███████████▌ | 23/74 [00:22<00:37, 1.35it/s]
epoch 99 | loss 0.7633864879608154, f_iou 0.5893076658248901: 31%|███████████▏ | 23/74 [00:23<00:37, 1.35it/s]
epoch 99 | loss 0.7633864879608154, f_iou 0.5893076658248901: 32%|███████████▋ | 24/74 [00:23<00:37, 1.33it/s]
epoch 99 | loss 0.33016476035118103, f_iou 0.6046591401100159: 32%|███████████▎ | 24/74 [00:24<00:37, 1.33it/s]
epoch 99 | loss 0.33016476035118103, f_iou 0.6046591401100159: 34%|███████████▊ | 25/74 [00:24<00:37, 1.31it/s]
epoch 99 | loss 1.5836392641067505, f_iou 0.612034022808075: 34%|████████████▌ | 25/74 [00:24<00:37, 1.31it/s]
epoch 99 | loss 1.5836392641067505, f_iou 0.612034022808075: 35%|█████████████ | 26/74 [00:24<00:37, 1.30it/s]
epoch 99 | loss 0.7624529004096985, f_iou 0.6236310005187988: 35%|████████████▋ | 26/74 [00:25<00:37, 1.30it/s]
epoch 99 | loss 0.7624529004096985, f_iou 0.6236310005187988: 36%|█████████████▏ | 27/74 [00:25<00:36, 1.29it/s]
epoch 99 | loss 0.3961409032344818, f_iou 0.6062921285629272: 36%|█████████████▏ | 27/74 [00:26<00:36, 1.29it/s]
epoch 99 | loss 0.3961409032344818, f_iou 0.6062921285629272: 38%|█████████████▌ | 28/74 [00:26<00:35, 1.28it/s]
epoch 99 | loss 1.0231928825378418, f_iou 0.6093102097511292: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.28it/s]
epoch 99 | loss 1.0231928825378418, f_iou 0.6093102097511292: 39%|██████████████ | 29/74 [00:27<00:34, 1.31it/s]
epoch 99 | loss 0.843113899230957, f_iou 0.6115460991859436: 39%|██████████████▌ | 29/74 [00:27<00:34, 1.31it/s]
epoch 99 | loss 0.843113899230957, f_iou 0.6115460991859436: 41%|███████████████ | 30/74 [00:27<00:32, 1.33it/s]
epoch 99 | loss 1.1057134866714478, f_iou 0.6210760474205017: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.33it/s]
epoch 99 | loss 1.1057134866714478, f_iou 0.6210760474205017: 42%|███████████████ | 31/74 [00:28<00:31, 1.35it/s]
epoch 99 | loss 0.805936872959137, f_iou 0.6293222904205322: 42%|███████████████▌ | 31/74 [00:29<00:31, 1.35it/s]
epoch 99 | loss 0.805936872959137, f_iou 0.6293222904205322: 43%|████████████████ | 32/74 [00:29<00:30, 1.36it/s]
epoch 99 | loss 1.289648175239563, f_iou 0.6378816366195679: 43%|████████████████ | 32/74 [00:29<00:30, 1.36it/s]
epoch 99 | loss 1.289648175239563, f_iou 0.6378816366195679: 45%|████████████████▌ | 33/74 [00:29<00:29, 1.37it/s]
epoch 99 | loss 0.7116601467132568, f_iou 0.6440184712409973: 45%|████████████████ | 33/74 [00:30<00:29, 1.37it/s]
epoch 99 | loss 0.7116601467132568, f_iou 0.6440184712409973: 46%|████████████████▌ | 34/74 [00:30<00:29, 1.38it/s]
epoch 99 | loss 0.7989532947540283, f_iou 0.650397777557373: 46%|█████████████████ | 34/74 [00:31<00:29, 1.38it/s]
epoch 99 | loss 0.7989532947540283, f_iou 0.650397777557373: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.38it/s]
epoch 99 | loss 0.7931841611862183, f_iou 0.6573102474212646: 47%|█████████████████ | 35/74 [00:32<00:28, 1.38it/s]
epoch 99 | loss 0.7931841611862183, f_iou 0.6573102474212646: 49%|█████████████████▌ | 36/74 [00:32<00:27, 1.38it/s]
epoch 99 | loss 0.42903125286102295, f_iou 0.6514487266540527: 49%|█████████████████ | 36/74 [00:32<00:27, 1.38it/s]
epoch 99 | loss 0.42903125286102295, f_iou 0.6514487266540527: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 99 | loss 0.6950925588607788, f_iou 0.6545866131782532: 50%|██████████████████ | 37/74 [00:33<00:26, 1.39it/s]
epoch 99 | loss 0.6950925588607788, f_iou 0.6545866131782532: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 99 | loss 0.646122932434082, f_iou 0.66261225938797: 51%|████████████████████ | 38/74 [00:34<00:25, 1.39it/s]
epoch 99 | loss 0.646122932434082, f_iou 0.66261225938797: 53%|████████████████████▌ | 39/74 [00:34<00:25, 1.39it/s]
epoch 99 | loss 1.5828957557678223, f_iou 0.6647575497627258: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 99 | loss 1.5828957557678223, f_iou 0.6647575497627258: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 99 | loss 1.8319838047027588, f_iou 0.6564751267433167: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 99 | loss 1.8319838047027588, f_iou 0.6564751267433167: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 99 | loss 2.705352306365967, f_iou 0.6488887071609497: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 99 | loss 2.705352306365967, f_iou 0.6488887071609497: 57%|█████████████████████ | 42/74 [00:36<00:22, 1.39it/s]
epoch 99 | loss 0.6668562889099121, f_iou 0.6520048379898071: 57%|████████████████████▍ | 42/74 [00:37<00:22, 1.39it/s]
epoch 99 | loss 0.6668562889099121, f_iou 0.6520048379898071: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 99 | loss 0.6172776818275452, f_iou 0.6553011536598206: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 99 | loss 0.6172776818275452, f_iou 0.6553011536598206: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.39it/s]
epoch 99 | loss 1.2116031646728516, f_iou 0.6599875688552856: 59%|█████████████████████▍ | 44/74 [00:38<00:21, 1.39it/s]
epoch 99 | loss 1.2116031646728516, f_iou 0.6599875688552856: 61%|█████████████████████▉ | 45/74 [00:38<00:20, 1.40it/s]
epoch 99 | loss 1.3101189136505127, f_iou 0.6645746231079102: 61%|█████████████████████▉ | 45/74 [00:39<00:20, 1.40it/s]
epoch 99 | loss 1.3101189136505127, f_iou 0.6645746231079102: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.39it/s]
epoch 99 | loss 0.3279649615287781, f_iou 0.6712802648544312: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.39it/s]
epoch 99 | loss 0.3279649615287781, f_iou 0.6712802648544312: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 99 | loss 1.4230577945709229, f_iou 0.6573613882064819: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.39it/s]
epoch 99 | loss 1.4230577945709229, f_iou 0.6573613882064819: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 99 | loss 0.3321770429611206, f_iou 0.6637494564056396: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 99 | loss 0.3321770429611206, f_iou 0.6637494564056396: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 99 | loss 0.5598641633987427, f_iou 0.6609609127044678: 66%|███████████████████████▊ | 49/74 [00:42<00:17, 1.39it/s]
epoch 99 | loss 0.5598641633987427, f_iou 0.6609609127044678: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 99 | loss 1.3922245502471924, f_iou 0.6646398901939392: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 99 | loss 1.3922245502471924, f_iou 0.6646398901939392: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.40it/s]
epoch 99 | loss 0.611811101436615, f_iou 0.6681827902793884: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.40it/s]
epoch 99 | loss 0.611811101436615, f_iou 0.6681827902793884: 70%|██████████████████████████ | 52/74 [00:43<00:15, 1.40it/s]
epoch 99 | loss 0.7110543251037598, f_iou 0.6723410487174988: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.40it/s]
epoch 99 | loss 0.7110543251037598, f_iou 0.6723410487174988: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.40it/s]
epoch 99 | loss 0.7751113176345825, f_iou 0.676064133644104: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.40it/s]
epoch 99 | loss 0.7751113176345825, f_iou 0.676064133644104: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.40it/s]
epoch 99 | loss 0.6651750802993774, f_iou 0.6780043840408325: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.40it/s]
epoch 99 | loss 0.6651750802993774, f_iou 0.6780043840408325: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.40it/s]
epoch 99 | loss 1.3408076763153076, f_iou 0.6807574033737183: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 99 | loss 1.3408076763153076, f_iou 0.6807574033737183: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.39it/s]
epoch 99 | loss 1.0014842748641968, f_iou 0.6841750741004944: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 99 | loss 1.0014842748641968, f_iou 0.6841750741004944: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.40it/s]
epoch 99 | loss 2.0893900394439697, f_iou 0.6844986081123352: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.40it/s]
epoch 99 | loss 2.0893900394439697, f_iou 0.6844986081123352: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.40it/s]
epoch 99 | loss 0.43681639432907104, f_iou 0.6871277689933777: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.40it/s]
epoch 99 | loss 0.43681639432907104, f_iou 0.6871277689933777: 80%|███████████████████████████▉ | 59/74 [00:48<00:10, 1.40it/s]
epoch 99 | loss 1.0871187448501587, f_iou 0.6854382157325745: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 99 | loss 1.0871187448501587, f_iou 0.6854382157325745: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 99 | loss 0.7319400310516357, f_iou 0.6885090470314026: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 99 | loss 0.7319400310516357, f_iou 0.6885090470314026: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.30it/s]
epoch 99 | loss 0.3785894811153412, f_iou 0.6850007772445679: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.30it/s]
epoch 99 | loss 0.3785894811153412, f_iou 0.6850007772445679: 84%|██████████████████████████████▏ | 62/74 [00:50<00:09, 1.33it/s]
epoch 99 | loss 1.3415746688842773, f_iou 0.6835454702377319: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.33it/s]
epoch 99 | loss 1.3415746688842773, f_iou 0.6835454702377319: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.35it/s]
epoch 99 | loss 0.0, f_iou 0.6880452632904053: 85%|███████████████████████████████████████████▍ | 63/74 [00:52<00:08, 1.35it/s]
epoch 99 | loss 0.0, f_iou 0.6880452632904053: 86%|████████████████████████████████████████████ | 64/74 [00:52<00:07, 1.36it/s]
epoch 99 | loss 1.4697704315185547, f_iou 0.6817824244499207: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.36it/s]
epoch 99 | loss 1.4697704315185547, f_iou 0.6817824244499207: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 99 | loss 0.6028724908828735, f_iou 0.6822908520698547: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.37it/s]
epoch 99 | loss 0.6028724908828735, f_iou 0.6822908520698547: 89%|████████████████████████████████ | 66/74 [00:53<00:05, 1.38it/s]
epoch 99 | loss 1.5443273782730103, f_iou 0.6831072568893433: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.38it/s]
epoch 99 | loss 1.5443273782730103, f_iou 0.6831072568893433: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 99 | loss 1.0865991115570068, f_iou 0.6844736933708191: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.39it/s]
epoch 99 | loss 1.0865991115570068, f_iou 0.6844736933708191: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 99 | loss 0.7242767214775085, f_iou 0.6862850189208984: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.39it/s]
epoch 99 | loss 0.7242767214775085, f_iou 0.6862850189208984: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.39it/s]
epoch 99 | loss 0.736527681350708, f_iou 0.6886612772941589: 93%|██████████████████████████████████▌ | 69/74 [00:56<00:03, 1.39it/s]
epoch 99 | loss 0.736527681350708, f_iou 0.6886612772941589: 95%|███████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 99 | loss 0.6995706558227539, f_iou 0.6878178119659424: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 99 | loss 0.6995706558227539, f_iou 0.6878178119659424: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 99 | loss 2.180570125579834, f_iou 0.6896081566810608: 96%|███████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 99 | loss 2.180570125579834, f_iou 0.6896081566810608: 97%|████████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 99 | loss 0.3566936254501343, f_iou 0.6929261088371277: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 99 | loss 0.3566936254501343, f_iou 0.6929261088371277: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 99 | loss 0.7006632089614868, f_iou 0.6950133442878723: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 99 | loss 0.7006632089614868, f_iou 0.6950133442878723: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 99 | loss 0.7006632089614868, f_iou 0.6950133442878723: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 99 | valid.f_iou 0.7531099915504456, valid.f_f-score 0.8707: 0%| | 0/16 [00:05, ?it/s]
epoch 99 | valid.f_iou 0.7531099915504456, valid.f_f-score 0.8707: 6%|██ | 1/16 [00:05<01:22, 5.53s/it]
epoch 99 | valid.f_iou 0.6473399996757507, valid.f_f-score 0.84572: 6%|█▉ | 1/16 [00:05<01:22, 5.53s/it]
epoch 99 | valid.f_iou 0.6473399996757507, valid.f_f-score 0.84572: 12%|███▉ | 2/16 [00:05<00:35, 2.55s/it]
epoch 99 | valid.f_iou 0.5263699889183044, valid.f_f-score 0.75827: 12%|███▉ | 2/16 [00:06<00:35, 2.55s/it]
epoch 99 | valid.f_iou 0.5263699889183044, valid.f_f-score 0.75827: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 99 | valid.f_iou 0.5624300241470337, valid.f_f-score 0.73534: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 99 | valid.f_iou 0.5624300241470337, valid.f_f-score 0.73534: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 99 | valid.f_iou 0.5751500129699707, valid.f_f-score 0.74348: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 99 | valid.f_iou 0.5751500129699707, valid.f_f-score 0.74348: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 99 | valid.f_iou 0.5383899807929993, valid.f_f-score 0.70137: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 99 | valid.f_iou 0.5383899807929993, valid.f_f-score 0.70137: 38%|███████████▋ | 6/16 [00:07<00:07, 1.33it/s]
epoch 99 | valid.f_iou 0.5550000071525574, valid.f_f-score 0.72473: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 99 | valid.f_iou 0.5550000071525574, valid.f_f-score 0.72473: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 99 | valid.f_iou 0.536080002784729, valid.f_f-score 0.7124: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.58it/s]
epoch 99 | valid.f_iou 0.536080002784729, valid.f_f-score 0.7124: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 99 | valid.f_iou 0.5521299839019775, valid.f_f-score 0.71459: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 99 | valid.f_iou 0.5521299839019775, valid.f_f-score 0.71459: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 99 | valid.f_iou 0.5399399995803833, valid.f_f-score 0.71403: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.94it/s]
epoch 99 | valid.f_iou 0.5399399995803833, valid.f_f-score 0.71403: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 99 | valid.f_iou 0.5430799722671509, valid.f_f-score 0.71571: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 99 | valid.f_iou 0.5430799722671509, valid.f_f-score 0.71571: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.12it/s]
epoch 99 | valid.f_iou 0.5670199990272522, valid.f_f-score 0.7334: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.12it/s]
epoch 99 | valid.f_iou 0.5670199990272522, valid.f_f-score 0.7334: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.28it/s]
epoch 99 | valid.f_iou 0.5692999958992004, valid.f_f-score 0.73657: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.28it/s]
epoch 99 | valid.f_iou 0.5692999958992004, valid.f_f-score 0.73657: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 99 | valid.f_iou 0.5614100098609924, valid.f_f-score 0.73061: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.40it/s]
epoch 99 | valid.f_iou 0.5614100098609924, valid.f_f-score 0.73061: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 99 | valid.f_iou 0.5641999840736389, valid.f_f-score 0.73086: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.48it/s]
epoch 99 | valid.f_iou 0.5641999840736389, valid.f_f-score 0.73086: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 99 | valid.f_iou 0.5683500170707703, valid.f_f-score 0.72865: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 99 | valid.f_iou 0.5683500170707703, valid.f_f-score 0.72865: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 99 | valid.f_iou 0.5683500170707703, valid.f_f-score 0.72865: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 99 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86569: 0%| | 0/16 [00:05, ?it/s]
epoch 99 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86569: 6%|█▉ | 1/16 [00:05<01:22, 5.48s/it]
epoch 99 | valid.f_iou 0.84197998046875, valid.f_f-score 0.89624: 6%|██ | 1/16 [00:05<01:22, 5.48s/it]
epoch 99 | valid.f_iou 0.84197998046875, valid.f_f-score 0.89624: 12%|████▏ | 2/16 [00:05<00:35, 2.52s/it]
epoch 99 | valid.f_iou 0.7636100053787231, valid.f_f-score 0.85917: 12%|███▉ | 2/16 [00:06<00:35, 2.52s/it]
epoch 99 | valid.f_iou 0.7636100053787231, valid.f_f-score 0.85917: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 99 | valid.f_iou 0.7555299997329712, valid.f_f-score 0.82744: 19%|█████▊ | 3/16 [00:06<00:20, 1.58s/it]
epoch 99 | valid.f_iou 0.7555299997329712, valid.f_f-score 0.82744: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 99 | valid.f_iou 0.7327100038528442, valid.f_f-score 0.81942: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 99 | valid.f_iou 0.7327100038528442, valid.f_f-score 0.81942: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 99 | valid.f_iou 0.7143099904060364, valid.f_f-score 0.8077: 31%|██████████ | 5/16 [00:07<00:09, 1.12it/s]
epoch 99 | valid.f_iou 0.7143099904060364, valid.f_f-score 0.8077: 38%|████████████ | 6/16 [00:07<00:07, 1.35it/s]
epoch 99 | valid.f_iou 0.7225900292396545, valid.f_f-score 0.82183: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 99 | valid.f_iou 0.7225900292396545, valid.f_f-score 0.82183: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 99 | valid.f_iou 0.7129200100898743, valid.f_f-score 0.81929: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 99 | valid.f_iou 0.7129200100898743, valid.f_f-score 0.81929: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.73it/s]
epoch 99 | valid.f_iou 0.7170799970626831, valid.f_f-score 0.8213: 50%|████████████████ | 8/16 [00:09<00:04, 1.73it/s]
epoch 99 | valid.f_iou 0.7170799970626831, valid.f_f-score 0.8213: 56%|██████████████████ | 9/16 [00:09<00:03, 1.88it/s]
epoch 99 | valid.f_iou 0.7250000238418579, valid.f_f-score 0.83039: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 99 | valid.f_iou 0.7250000238418579, valid.f_f-score 0.83039: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 99 | valid.f_iou 0.7146300077438354, valid.f_f-score 0.81204: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 99 | valid.f_iou 0.7146300077438354, valid.f_f-score 0.81204: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.05it/s]
epoch 99 | valid.f_iou 0.7269700169563293, valid.f_f-score 0.8221: 69%|█████████████████████▎ | 11/16 [00:10<00:02, 2.05it/s]
epoch 99 | valid.f_iou 0.7269700169563293, valid.f_f-score 0.8221: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.11it/s]
epoch 99 | valid.f_iou 0.7382299900054932, valid.f_f-score 0.82995: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.11it/s]
epoch 99 | valid.f_iou 0.7382299900054932, valid.f_f-score 0.82995: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.17it/s]
epoch 99 | valid.f_iou 0.7304999828338623, valid.f_f-score 0.82235: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.17it/s]
epoch 99 | valid.f_iou 0.7304999828338623, valid.f_f-score 0.82235: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.31it/s]
epoch 99 | valid.f_iou 0.7341899871826172, valid.f_f-score 0.82475: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.31it/s]
epoch 99 | valid.f_iou 0.7341899871826172, valid.f_f-score 0.82475: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 99 | valid.f_iou 0.7311000227928162, valid.f_f-score 0.82254: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 99 | valid.f_iou 0.7311000227928162, valid.f_f-score 0.82254: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.53it/s]
epoch 99 | valid.f_iou 0.7311000227928162, valid.f_f-score 0.82254: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 99 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86569: 0%| | 0/16 [00:04, ?it/s]
epoch 99 | valid.f_iou 0.8221399784088135, valid.f_f-score 0.86569: 6%|█▉ | 1/16 [00:04<01:09, 4.66s/it]
epoch 99 | valid.f_iou 0.84197998046875, valid.f_f-score 0.89624: 6%|██ | 1/16 [00:05<01:09, 4.66s/it]
epoch 99 | valid.f_iou 0.84197998046875, valid.f_f-score 0.89624: 12%|████▏ | 2/16 [00:05<00:30, 2.19s/it]
epoch 99 | valid.f_iou 0.7636100053787231, valid.f_f-score 0.85917: 12%|███▉ | 2/16 [00:05<00:30, 2.19s/it]
epoch 99 | valid.f_iou 0.7636100053787231, valid.f_f-score 0.85917: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 99 | valid.f_iou 0.7551800012588501, valid.f_f-score 0.82241: 19%|█████▊ | 3/16 [00:06<00:18, 1.40s/it]
epoch 99 | valid.f_iou 0.7551800012588501, valid.f_f-score 0.82241: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 99 | valid.f_iou 0.7376700043678284, valid.f_f-score 0.81539: 25%|███████▊ | 4/16 [00:06<00:12, 1.03s/it]
epoch 99 | valid.f_iou 0.7376700043678284, valid.f_f-score 0.81539: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 99 | valid.f_iou 0.7184399962425232, valid.f_f-score 0.80435: 31%|█████████▋ | 5/16 [00:06<00:09, 1.22it/s]
epoch 99 | valid.f_iou 0.7184399962425232, valid.f_f-score 0.80435: 38%|███████████▋ | 6/16 [00:06<00:06, 1.44it/s]
epoch 99 | valid.f_iou 0.7279199957847595, valid.f_f-score 0.81896: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 99 | valid.f_iou 0.7279199957847595, valid.f_f-score 0.81896: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 99 | valid.f_iou 0.7175800204277039, valid.f_f-score 0.81678: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 99 | valid.f_iou 0.7175800204277039, valid.f_f-score 0.81678: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.81it/s]
epoch 99 | valid.f_iou 0.7244899868965149, valid.f_f-score 0.81906: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.81it/s]
epoch 99 | valid.f_iou 0.7244899868965149, valid.f_f-score 0.81906: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 99 | valid.f_iou 0.7306699752807617, valid.f_f-score 0.82556: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 99 | valid.f_iou 0.7306699752807617, valid.f_f-score 0.82556: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.03it/s]
epoch 99 | valid.f_iou 0.719789981842041, valid.f_f-score 0.80765: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.03it/s]
epoch 99 | valid.f_iou 0.719789981842041, valid.f_f-score 0.80765: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.08it/s]
epoch 99 | valid.f_iou 0.7317000031471252, valid.f_f-score 0.81808: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.08it/s]
epoch 99 | valid.f_iou 0.7317000031471252, valid.f_f-score 0.81808: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.13it/s]
epoch 99 | valid.f_iou 0.742579996585846, valid.f_f-score 0.82697: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.13it/s]
epoch 99 | valid.f_iou 0.742579996585846, valid.f_f-score 0.82697: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.16it/s]
epoch 99 | valid.f_iou 0.7345399856567383, valid.f_f-score 0.8196: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.16it/s]
epoch 99 | valid.f_iou 0.7345399856567383, valid.f_f-score 0.8196: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.30it/s]
epoch 99 | valid.f_iou 0.7379599809646606, valid.f_f-score 0.82218: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.30it/s]
epoch 99 | valid.f_iou 0.7379599809646606, valid.f_f-score 0.82218: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.41it/s]
epoch 99 | valid.f_iou 0.7351199984550476, valid.f_f-score 0.82013: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.41it/s]
epoch 99 | valid.f_iou 0.7351199984550476, valid.f_f-score 0.82013: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.49it/s]
epoch 99 | valid.f_iou 0.7351199984550476, valid.f_f-score 0.82013: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 100 | loss 0.668042778968811, f_iou 0.7841721773147583: 0%| | 0/74 [00:06, ?it/s]
epoch 100 | loss 0.668042778968811, f_iou 0.7841721773147583: 1%|▌ | 1/74 [00:06<07:38, 6.28s/it]
epoch 100 | loss 1.263096809387207, f_iou 0.6129852533340454: 1%|▌ | 1/74 [00:07<07:38, 6.28s/it]
epoch 100 | loss 1.263096809387207, f_iou 0.6129852533340454: 3%|█ | 2/74 [00:07<03:39, 3.05s/it]
epoch 100 | loss 1.1954972743988037, f_iou 0.6800117492675781: 3%|▉ | 2/74 [00:07<03:39, 3.05s/it]
epoch 100 | loss 1.1954972743988037, f_iou 0.6800117492675781: 4%|█▍ | 3/74 [00:07<02:23, 2.02s/it]
epoch 100 | loss 0.5445399880409241, f_iou 0.7352829575538635: 4%|█▍ | 3/74 [00:08<02:23, 2.02s/it]
epoch 100 | loss 0.5445399880409241, f_iou 0.7352829575538635: 5%|█▉ | 4/74 [00:08<01:47, 1.54s/it]
epoch 100 | loss 2.0931544303894043, f_iou 0.626061737537384: 5%|██ | 4/74 [00:09<01:47, 1.54s/it]
epoch 100 | loss 2.0931544303894043, f_iou 0.626061737537384: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 100 | loss 0.6754245758056641, f_iou 0.6420315504074097: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 100 | loss 0.6754245758056641, f_iou 0.6420315504074097: 8%|██▉ | 6/74 [00:10<01:17, 1.14s/it]
epoch 100 | loss 0.8406673669815063, f_iou 0.6786659359931946: 8%|██▉ | 6/74 [00:11<01:17, 1.14s/it]
epoch 100 | loss 0.8406673669815063, f_iou 0.6786659359931946: 9%|███▍ | 7/74 [00:11<01:08, 1.03s/it]
epoch 100 | loss 0.5485985279083252, f_iou 0.6152448654174805: 9%|███▍ | 7/74 [00:11<01:08, 1.03s/it]
epoch 100 | loss 0.5485985279083252, f_iou 0.6152448654174805: 11%|███▉ | 8/74 [00:11<01:02, 1.05it/s]
epoch 100 | loss 0.760735273361206, f_iou 0.6503437161445618: 11%|████ | 8/74 [00:12<01:02, 1.05it/s]
epoch 100 | loss 0.760735273361206, f_iou 0.6503437161445618: 12%|████▌ | 9/74 [00:12<00:58, 1.10it/s]
epoch 100 | loss 1.0370213985443115, f_iou 0.5994895100593567: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 100 | loss 1.0370213985443115, f_iou 0.5994895100593567: 14%|████▋ | 10/74 [00:13<00:56, 1.14it/s]
epoch 100 | loss 0.4754607677459717, f_iou 0.6238717436790466: 14%|████▋ | 10/74 [00:14<00:56, 1.14it/s]
epoch 100 | loss 0.4754607677459717, f_iou 0.6238717436790466: 15%|█████▏ | 11/74 [00:14<00:53, 1.18it/s]
epoch 100 | loss 1.2023885250091553, f_iou 0.5769779682159424: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 100 | loss 1.2023885250091553, f_iou 0.5769779682159424: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 100 | loss 0.5996016263961792, f_iou 0.5754532814025879: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 100 | loss 0.5996016263961792, f_iou 0.5754532814025879: 18%|██████▏ | 13/74 [00:15<00:49, 1.23it/s]
epoch 100 | loss 0.6782075762748718, f_iou 0.601627767086029: 18%|██████▎ | 13/74 [00:16<00:49, 1.23it/s]
epoch 100 | loss 0.6782075762748718, f_iou 0.601627767086029: 19%|██████▊ | 14/74 [00:16<00:47, 1.28it/s]
epoch 100 | loss 0.9074805974960327, f_iou 0.6098487377166748: 19%|██████▌ | 14/74 [00:17<00:47, 1.28it/s]
epoch 100 | loss 0.9074805974960327, f_iou 0.6098487377166748: 20%|███████ | 15/74 [00:17<00:45, 1.30it/s]
epoch 100 | loss 0.6660563945770264, f_iou 0.619508683681488: 20%|███████▎ | 15/74 [00:18<00:45, 1.30it/s]
epoch 100 | loss 0.6660563945770264, f_iou 0.619508683681488: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 100 | loss 0.7349636554718018, f_iou 0.6046315431594849: 22%|███████▌ | 16/74 [00:18<00:43, 1.33it/s]
epoch 100 | loss 0.7349636554718018, f_iou 0.6046315431594849: 23%|████████ | 17/74 [00:18<00:42, 1.35it/s]
epoch 100 | loss 2.1799912452697754, f_iou 0.5987178683280945: 23%|████████ | 17/74 [00:19<00:42, 1.35it/s]
epoch 100 | loss 2.1799912452697754, f_iou 0.5987178683280945: 24%|████████▌ | 18/74 [00:19<00:40, 1.37it/s]
epoch 100 | loss 1.322594165802002, f_iou 0.6081991791725159: 24%|████████▊ | 18/74 [00:20<00:40, 1.37it/s]
epoch 100 | loss 1.322594165802002, f_iou 0.6081991791725159: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 100 | loss 0.8251721858978271, f_iou 0.585280179977417: 26%|█████████▏ | 19/74 [00:20<00:40, 1.37it/s]
epoch 100 | loss 0.8251721858978271, f_iou 0.585280179977417: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 100 | loss 1.8056602478027344, f_iou 0.6024739146232605: 27%|█████████▍ | 20/74 [00:21<00:39, 1.38it/s]
epoch 100 | loss 1.8056602478027344, f_iou 0.6024739146232605: 28%|█████████▉ | 21/74 [00:21<00:38, 1.37it/s]
epoch 100 | loss 1.103231430053711, f_iou 0.6074000597000122: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 100 | loss 1.103231430053711, f_iou 0.6074000597000122: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 100 | loss 1.39853835105896, f_iou 0.6053770184516907: 30%|███████████ | 22/74 [00:23<00:37, 1.38it/s]
epoch 100 | loss 1.39853835105896, f_iou 0.6053770184516907: 31%|███████████▌ | 23/74 [00:23<00:37, 1.38it/s]
epoch 100 | loss 1.3197755813598633, f_iou 0.6098842620849609: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 100 | loss 1.3197755813598633, f_iou 0.6098842620849609: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 100 | loss 0.7460059523582458, f_iou 0.6161109209060669: 32%|███████████▎ | 24/74 [00:24<00:36, 1.38it/s]
epoch 100 | loss 0.7460059523582458, f_iou 0.6161109209060669: 34%|███████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 100 | loss 3.090013265609741, f_iou 0.6125756502151489: 34%|████████████▏ | 25/74 [00:25<00:35, 1.38it/s]
epoch 100 | loss 3.090013265609741, f_iou 0.6125756502151489: 35%|████████████▋ | 26/74 [00:25<00:34, 1.38it/s]
epoch 100 | loss 1.2792272567749023, f_iou 0.6205278635025024: 35%|████████████▎ | 26/74 [00:26<00:34, 1.38it/s]
epoch 100 | loss 1.2792272567749023, f_iou 0.6205278635025024: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 100 | loss 0.5610795617103577, f_iou 0.6255074739456177: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 100 | loss 0.5610795617103577, f_iou 0.6255074739456177: 38%|█████████████▏ | 28/74 [00:26<00:32, 1.40it/s]
epoch 100 | loss 1.676318883895874, f_iou 0.6342405676841736: 38%|█████████████▌ | 28/74 [00:27<00:32, 1.40it/s]
epoch 100 | loss 1.676318883895874, f_iou 0.6342405676841736: 39%|██████████████ | 29/74 [00:27<00:32, 1.40it/s]
epoch 100 | loss 0.9694867730140686, f_iou 0.6327942609786987: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.40it/s]
epoch 100 | loss 0.9694867730140686, f_iou 0.6327942609786987: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.40it/s]
epoch 100 | loss 0.8609002828598022, f_iou 0.6416828036308289: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.40it/s]
epoch 100 | loss 0.8609002828598022, f_iou 0.6416828036308289: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.40it/s]
epoch 100 | loss 0.5870549082756042, f_iou 0.6516619324684143: 42%|██████████████▋ | 31/74 [00:29<00:30, 1.40it/s]
epoch 100 | loss 0.5870549082756042, f_iou 0.6516619324684143: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.39it/s]
epoch 100 | loss 0.6192211508750916, f_iou 0.6463664174079895: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.39it/s]
epoch 100 | loss 0.6192211508750916, f_iou 0.6463664174079895: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 100 | loss 1.0592010021209717, f_iou 0.6521443724632263: 45%|███████████████▌ | 33/74 [00:31<00:29, 1.39it/s]
epoch 100 | loss 1.0592010021209717, f_iou 0.6521443724632263: 46%|████████████████ | 34/74 [00:31<00:29, 1.36it/s]
epoch 100 | loss 0.43806830048561096, f_iou 0.6603950262069702: 46%|███████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 100 | loss 0.43806830048561096, f_iou 0.6603950262069702: 47%|████████████████ | 35/74 [00:31<00:29, 1.32it/s]
epoch 100 | loss 0.9681339859962463, f_iou 0.6622375845909119: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.32it/s]
epoch 100 | loss 0.9681339859962463, f_iou 0.6622375845909119: 49%|█████████████████ | 36/74 [00:32<00:29, 1.31it/s]
epoch 100 | loss 2.0006449222564697, f_iou 0.6679264307022095: 49%|█████████████████ | 36/74 [00:33<00:29, 1.31it/s]
epoch 100 | loss 2.0006449222564697, f_iou 0.6679264307022095: 50%|█████████████████▌ | 37/74 [00:33<00:28, 1.30it/s]
epoch 100 | loss 0.4796786904335022, f_iou 0.668555736541748: 50%|██████████████████ | 37/74 [00:34<00:28, 1.30it/s]
epoch 100 | loss 0.4796786904335022, f_iou 0.668555736541748: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 100 | loss 0.6734920144081116, f_iou 0.667418897151947: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 100 | loss 0.6734920144081116, f_iou 0.667418897151947: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.34it/s]
epoch 100 | loss 0.8409328460693359, f_iou 0.6729263663291931: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 100 | loss 0.8409328460693359, f_iou 0.6729263663291931: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.35it/s]
epoch 100 | loss 0.7716174721717834, f_iou 0.6684193015098572: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.35it/s]
epoch 100 | loss 0.7716174721717834, f_iou 0.6684193015098572: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.36it/s]
epoch 100 | loss 1.3896496295928955, f_iou 0.6528270244598389: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.36it/s]
epoch 100 | loss 1.3896496295928955, f_iou 0.6528270244598389: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.37it/s]
epoch 100 | loss 2.401613712310791, f_iou 0.6553437113761902: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 100 | loss 2.401613712310791, f_iou 0.6553437113761902: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.37it/s]
epoch 100 | loss 1.4660885334014893, f_iou 0.6594231724739075: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.37it/s]
epoch 100 | loss 1.4660885334014893, f_iou 0.6594231724739075: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.38it/s]
epoch 100 | loss 1.3737128973007202, f_iou 0.6631860733032227: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.38it/s]
epoch 100 | loss 1.3737128973007202, f_iou 0.6631860733032227: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.38it/s]
epoch 100 | loss 0.9493725299835205, f_iou 0.6523175835609436: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.38it/s]
epoch 100 | loss 0.9493725299835205, f_iou 0.6523175835609436: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.38it/s]
epoch 100 | loss 0.7711691856384277, f_iou 0.6556426882743835: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.38it/s]
epoch 100 | loss 0.7711691856384277, f_iou 0.6556426882743835: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.38it/s]
epoch 100 | loss 0.870055615901947, f_iou 0.6614267230033875: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 100 | loss 0.870055615901947, f_iou 0.6614267230033875: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 100 | loss 0.4853367209434509, f_iou 0.6628544926643372: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.38it/s]
epoch 100 | loss 0.4853367209434509, f_iou 0.6628544926643372: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.37it/s]
epoch 100 | loss 1.9135876893997192, f_iou 0.6533942818641663: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.37it/s]
epoch 100 | loss 1.9135876893997192, f_iou 0.6533942818641663: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.38it/s]
epoch 100 | loss 1.167863368988037, f_iou 0.65328449010849: 68%|█████████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 100 | loss 1.167863368988037, f_iou 0.65328449010849: 69%|██████████████████████████▏ | 51/74 [00:43<00:16, 1.38it/s]
epoch 100 | loss 0.3896782696247101, f_iou 0.6593306064605713: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.38it/s]
epoch 100 | loss 0.3896782696247101, f_iou 0.6593306064605713: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.38it/s]
epoch 100 | loss 0.7711290717124939, f_iou 0.6567804217338562: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.38it/s]
epoch 100 | loss 0.7711290717124939, f_iou 0.6567804217338562: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 100 | loss 0.7000856399536133, f_iou 0.6620796322822571: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 100 | loss 0.7000856399536133, f_iou 0.6620796322822571: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.35it/s]
epoch 100 | loss 0.5996922850608826, f_iou 0.6608074903488159: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.35it/s]
epoch 100 | loss 0.5996922850608826, f_iou 0.6608074903488159: 74%|██████████████████████████ | 55/74 [00:46<00:14, 1.33it/s]
epoch 100 | loss 0.6380345225334167, f_iou 0.664100170135498: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.33it/s]
epoch 100 | loss 0.6380345225334167, f_iou 0.664100170135498: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.31it/s]
epoch 100 | loss 1.1534072160720825, f_iou 0.6653291583061218: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.31it/s]
epoch 100 | loss 1.1534072160720825, f_iou 0.6653291583061218: 77%|██████████████████████████▉ | 57/74 [00:48<00:13, 1.30it/s]
epoch 100 | loss 1.2287007570266724, f_iou 0.6667251586914062: 77%|██████████████████████████▉ | 57/74 [00:48<00:13, 1.30it/s]
epoch 100 | loss 1.2287007570266724, f_iou 0.6667251586914062: 78%|███████████████████████████▍ | 58/74 [00:48<00:12, 1.30it/s]
epoch 100 | loss 1.5877379179000854, f_iou 0.661976158618927: 78%|████████████████████████████▏ | 58/74 [00:49<00:12, 1.30it/s]
epoch 100 | loss 1.5877379179000854, f_iou 0.661976158618927: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.29it/s]
epoch 100 | loss 0.5242269039154053, f_iou 0.6639533042907715: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.29it/s]
epoch 100 | loss 0.5242269039154053, f_iou 0.6639533042907715: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.31it/s]
epoch 100 | loss 0.8244580626487732, f_iou 0.6677104830741882: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.31it/s]
epoch 100 | loss 0.8244580626487732, f_iou 0.6677104830741882: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.33it/s]
epoch 100 | loss 1.9032217264175415, f_iou 0.663268506526947: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.33it/s]
epoch 100 | loss 1.9032217264175415, f_iou 0.663268506526947: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.35it/s]
epoch 100 | loss 1.1768745183944702, f_iou 0.6561545729637146: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.35it/s]
epoch 100 | loss 1.1768745183944702, f_iou 0.6561545729637146: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.36it/s]
epoch 100 | loss 0.9604545831680298, f_iou 0.6600374579429626: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.36it/s]
epoch 100 | loss 0.9604545831680298, f_iou 0.6600374579429626: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.37it/s]
epoch 100 | loss 0.7533403038978577, f_iou 0.6622042059898376: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.37it/s]
epoch 100 | loss 0.7533403038978577, f_iou 0.6622042059898376: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.38it/s]
epoch 100 | loss 0.7269840240478516, f_iou 0.6602131128311157: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.38it/s]
epoch 100 | loss 0.7269840240478516, f_iou 0.6602131128311157: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.39it/s]
epoch 100 | loss 0.4872991740703583, f_iou 0.6552507877349854: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.39it/s]
epoch 100 | loss 0.4872991740703583, f_iou 0.6552507877349854: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.39it/s]
epoch 100 | loss 0.9740012288093567, f_iou 0.6582337021827698: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.39it/s]
epoch 100 | loss 0.9740012288093567, f_iou 0.6582337021827698: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.40it/s]
epoch 100 | loss 0.5109967589378357, f_iou 0.6552233099937439: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.40it/s]
epoch 100 | loss 0.5109967589378357, f_iou 0.6552233099937439: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.40it/s]
epoch 100 | loss 1.5294146537780762, f_iou 0.6567176580429077: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.40it/s]
epoch 100 | loss 1.5294146537780762, f_iou 0.6567176580429077: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 100 | loss 0.9451775550842285, f_iou 0.6606730222702026: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 100 | loss 0.9451775550842285, f_iou 0.6606730222702026: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 100 | loss 1.0982410907745361, f_iou 0.6614424586296082: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 100 | loss 1.0982410907745361, f_iou 0.6614424586296082: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 100 | loss 0.8274967074394226, f_iou 0.6539122462272644: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 100 | loss 0.8274967074394226, f_iou 0.6539122462272644: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 100 | loss 2.359557628631592, f_iou 0.6532359719276428: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 100 | loss 2.359557628631592, f_iou 0.6532359719276428: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 100 | loss 2.359557628631592, f_iou 0.6532359719276428: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 100 | valid.f_iou 0.763189971446991, valid.f_f-score 0.8701: 0%| | 0/16 [00:05, ?it/s]
epoch 100 | valid.f_iou 0.763189971446991, valid.f_f-score 0.8701: 6%|██ | 1/16 [00:05<01:20, 5.36s/it]
epoch 100 | valid.f_iou 0.715910017490387, valid.f_f-score 0.87279: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 100 | valid.f_iou 0.715910017490387, valid.f_f-score 0.87279: 12%|███▉ | 2/16 [00:05<00:34, 2.48s/it]
epoch 100 | valid.f_iou 0.5768600106239319, valid.f_f-score 0.78147: 12%|███▊ | 2/16 [00:06<00:34, 2.48s/it]
epoch 100 | valid.f_iou 0.5768600106239319, valid.f_f-score 0.78147: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 100 | valid.f_iou 0.6121799945831299, valid.f_f-score 0.77527: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 100 | valid.f_iou 0.6121799945831299, valid.f_f-score 0.77527: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 100 | valid.f_iou 0.6234800219535828, valid.f_f-score 0.78115: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 100 | valid.f_iou 0.6234800219535828, valid.f_f-score 0.78115: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 100 | valid.f_iou 0.576259970664978, valid.f_f-score 0.73197: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 100 | valid.f_iou 0.576259970664978, valid.f_f-score 0.73197: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 100 | valid.f_iou 0.5966600179672241, valid.f_f-score 0.75105: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 100 | valid.f_iou 0.5966600179672241, valid.f_f-score 0.75105: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 100 | valid.f_iou 0.576740026473999, valid.f_f-score 0.7417: 44%|██████████████ | 7/16 [00:08<00:05, 1.60it/s]
epoch 100 | valid.f_iou 0.576740026473999, valid.f_f-score 0.7417: 50%|████████████████ | 8/16 [00:08<00:04, 1.84it/s]
epoch 100 | valid.f_iou 0.5934600234031677, valid.f_f-score 0.74862: 50%|███████████████ | 8/16 [00:08<00:04, 1.84it/s]
epoch 100 | valid.f_iou 0.5934600234031677, valid.f_f-score 0.74862: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.07it/s]
epoch 100 | valid.f_iou 0.5877699851989746, valid.f_f-score 0.74901: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.07it/s]
epoch 100 | valid.f_iou 0.5877699851989746, valid.f_f-score 0.74901: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.25it/s]
epoch 100 | valid.f_iou 0.591920018196106, valid.f_f-score 0.74865: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.25it/s]
epoch 100 | valid.f_iou 0.591920018196106, valid.f_f-score 0.74865: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 100 | valid.f_iou 0.6133999824523926, valid.f_f-score 0.7637: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.38it/s]
epoch 100 | valid.f_iou 0.6133999824523926, valid.f_f-score 0.7637: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.47it/s]
epoch 100 | valid.f_iou 0.6238700151443481, valid.f_f-score 0.76948: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.47it/s]
epoch 100 | valid.f_iou 0.6238700151443481, valid.f_f-score 0.76948: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.55it/s]
epoch 100 | valid.f_iou 0.6206300258636475, valid.f_f-score 0.76633: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.55it/s]
epoch 100 | valid.f_iou 0.6206300258636475, valid.f_f-score 0.76633: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 100 | valid.f_iou 0.6179199814796448, valid.f_f-score 0.75873: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 100 | valid.f_iou 0.6179199814796448, valid.f_f-score 0.75873: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 100 | valid.f_iou 0.6210799813270569, valid.f_f-score 0.75634: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 100 | valid.f_iou 0.6210799813270569, valid.f_f-score 0.75634: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 100 | valid.f_iou 0.6210799813270569, valid.f_f-score 0.75634: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 100 | valid.f_iou 0.8052600026130676, valid.f_f-score 0.80884: 0%| | 0/16 [00:04, ?it/s]
epoch 100 | valid.f_iou 0.8052600026130676, valid.f_f-score 0.80884: 6%|█▉ | 1/16 [00:04<01:13, 4.90s/it]
epoch 100 | valid.f_iou 0.8348299860954285, valid.f_f-score 0.8709: 6%|█▉ | 1/16 [00:05<01:13, 4.90s/it]
epoch 100 | valid.f_iou 0.8348299860954285, valid.f_f-score 0.8709: 12%|███▉ | 2/16 [00:05<00:32, 2.29s/it]
epoch 100 | valid.f_iou 0.7660800218582153, valid.f_f-score 0.847: 12%|████ | 2/16 [00:05<00:32, 2.29s/it]
epoch 100 | valid.f_iou 0.7660800218582153, valid.f_f-score 0.847: 19%|██████ | 3/16 [00:05<00:19, 1.46s/it]
epoch 100 | valid.f_iou 0.7550299763679504, valid.f_f-score 0.81558: 19%|█████▋ | 3/16 [00:06<00:19, 1.46s/it]
epoch 100 | valid.f_iou 0.7550299763679504, valid.f_f-score 0.81558: 25%|███████▌ | 4/16 [00:06<00:12, 1.06s/it]
epoch 100 | valid.f_iou 0.7240099906921387, valid.f_f-score 0.80603: 25%|███████▌ | 4/16 [00:06<00:12, 1.06s/it]
epoch 100 | valid.f_iou 0.7240099906921387, valid.f_f-score 0.80603: 31%|█████████▍ | 5/16 [00:06<00:09, 1.19it/s]
epoch 100 | valid.f_iou 0.7076299786567688, valid.f_f-score 0.79544: 31%|█████████▍ | 5/16 [00:07<00:09, 1.19it/s]
epoch 100 | valid.f_iou 0.7076299786567688, valid.f_f-score 0.79544: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 100 | valid.f_iou 0.725059986114502, valid.f_f-score 0.81593: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 100 | valid.f_iou 0.725059986114502, valid.f_f-score 0.81593: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.62it/s]
epoch 100 | valid.f_iou 0.7161200046539307, valid.f_f-score 0.81531: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 100 | valid.f_iou 0.7161200046539307, valid.f_f-score 0.81531: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 100 | valid.f_iou 0.7274900078773499, valid.f_f-score 0.82115: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 100 | valid.f_iou 0.7274900078773499, valid.f_f-score 0.82115: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.04it/s]
epoch 100 | valid.f_iou 0.732230007648468, valid.f_f-score 0.8301: 56%|██████████████████ | 9/16 [00:08<00:03, 2.04it/s]
epoch 100 | valid.f_iou 0.732230007648468, valid.f_f-score 0.8301: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.20it/s]
epoch 100 | valid.f_iou 0.7219099998474121, valid.f_f-score 0.8123: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.20it/s]
epoch 100 | valid.f_iou 0.7219099998474121, valid.f_f-score 0.8123: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 100 | valid.f_iou 0.7328000068664551, valid.f_f-score 0.8223: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.34it/s]
epoch 100 | valid.f_iou 0.7328000068664551, valid.f_f-score 0.8223: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.43it/s]
epoch 100 | valid.f_iou 0.7436800003051758, valid.f_f-score 0.83009: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.43it/s]
epoch 100 | valid.f_iou 0.7436800003051758, valid.f_f-score 0.83009: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.50it/s]
epoch 100 | valid.f_iou 0.7368500232696533, valid.f_f-score 0.82356: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 100 | valid.f_iou 0.7368500232696533, valid.f_f-score 0.82356: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.57it/s]
epoch 100 | valid.f_iou 0.734220027923584, valid.f_f-score 0.81969: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 100 | valid.f_iou 0.734220027923584, valid.f_f-score 0.81969: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 100 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81225: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 100 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81225: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 100 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81225: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 100 | valid.f_iou 0.8052600026130676, valid.f_f-score 0.80884: 0%| | 0/16 [00:04, ?it/s]
epoch 100 | valid.f_iou 0.8052600026130676, valid.f_f-score 0.80884: 6%|█▉ | 1/16 [00:04<01:14, 4.98s/it]
epoch 100 | valid.f_iou 0.8348299860954285, valid.f_f-score 0.8709: 6%|█▉ | 1/16 [00:05<01:14, 4.98s/it]
epoch 100 | valid.f_iou 0.8348299860954285, valid.f_f-score 0.8709: 12%|███▉ | 2/16 [00:05<00:31, 2.27s/it]
epoch 100 | valid.f_iou 0.7660800218582153, valid.f_f-score 0.847: 12%|████ | 2/16 [00:05<00:31, 2.27s/it]
epoch 100 | valid.f_iou 0.7660800218582153, valid.f_f-score 0.847: 19%|██████ | 3/16 [00:05<00:18, 1.44s/it]
epoch 100 | valid.f_iou 0.7551400065422058, valid.f_f-score 0.81558: 19%|█████▋ | 3/16 [00:06<00:18, 1.44s/it]
epoch 100 | valid.f_iou 0.7551400065422058, valid.f_f-score 0.81558: 25%|███████▌ | 4/16 [00:06<00:12, 1.05s/it]
epoch 100 | valid.f_iou 0.7308700084686279, valid.f_f-score 0.80603: 25%|███████▌ | 4/16 [00:06<00:12, 1.05s/it]
epoch 100 | valid.f_iou 0.7308700084686279, valid.f_f-score 0.80603: 31%|█████████▍ | 5/16 [00:06<00:09, 1.20it/s]
epoch 100 | valid.f_iou 0.7133399844169617, valid.f_f-score 0.79544: 31%|█████████▍ | 5/16 [00:07<00:09, 1.20it/s]
epoch 100 | valid.f_iou 0.7133399844169617, valid.f_f-score 0.79544: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 100 | valid.f_iou 0.7317500114440918, valid.f_f-score 0.81593: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 100 | valid.f_iou 0.7317500114440918, valid.f_f-score 0.81593: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 100 | valid.f_iou 0.7219799757003784, valid.f_f-score 0.81531: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 100 | valid.f_iou 0.7219799757003784, valid.f_f-score 0.81531: 50%|███████████████ | 8/16 [00:07<00:04, 1.83it/s]
epoch 100 | valid.f_iou 0.7365099787712097, valid.f_f-score 0.82115: 50%|███████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 100 | valid.f_iou 0.7365099787712097, valid.f_f-score 0.82115: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.06it/s]
epoch 100 | valid.f_iou 0.7369899749755859, valid.f_f-score 0.82655: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.06it/s]
epoch 100 | valid.f_iou 0.7369899749755859, valid.f_f-score 0.82655: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.23it/s]
epoch 100 | valid.f_iou 0.7262399792671204, valid.f_f-score 0.80907: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.23it/s]
epoch 100 | valid.f_iou 0.7262399792671204, valid.f_f-score 0.80907: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.36it/s]
epoch 100 | valid.f_iou 0.73676997423172, valid.f_f-score 0.81934: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.36it/s]
epoch 100 | valid.f_iou 0.73676997423172, valid.f_f-score 0.81934: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.46it/s]
epoch 100 | valid.f_iou 0.7473300099372864, valid.f_f-score 0.82842: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.46it/s]
epoch 100 | valid.f_iou 0.7473300099372864, valid.f_f-score 0.82842: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.53it/s]
epoch 100 | valid.f_iou 0.7402399778366089, valid.f_f-score 0.82201: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.53it/s]
epoch 100 | valid.f_iou 0.7402399778366089, valid.f_f-score 0.82201: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 100 | valid.f_iou 0.7373899817466736, valid.f_f-score 0.81824: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 100 | valid.f_iou 0.7373899817466736, valid.f_f-score 0.81824: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 100 | valid.f_iou 0.7329099774360657, valid.f_f-score 0.8109: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 100 | valid.f_iou 0.7329099774360657, valid.f_f-score 0.8109: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 100 | valid.f_iou 0.7329099774360657, valid.f_f-score 0.8109: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 101 | loss 1.4437284469604492, f_iou 0.7478641271591187: 0%| | 0/74 [00:05, ?it/s]
epoch 101 | loss 1.4437284469604492, f_iou 0.7478641271591187: 1%|▍ | 1/74 [00:05<07:01, 5.78s/it]
epoch 101 | loss 0.3428054451942444, f_iou 0.8597671389579773: 1%|▍ | 1/74 [00:06<07:01, 5.78s/it]
epoch 101 | loss 0.3428054451942444, f_iou 0.8597671389579773: 3%|▉ | 2/74 [00:06<03:26, 2.87s/it]
epoch 101 | loss 1.062415599822998, f_iou 0.7119345664978027: 3%|█ | 2/74 [00:07<03:26, 2.87s/it]
epoch 101 | loss 1.062415599822998, f_iou 0.7119345664978027: 4%|█▌ | 3/74 [00:07<02:14, 1.90s/it]
epoch 101 | loss 0.8925266861915588, f_iou 0.750835657119751: 4%|█▌ | 3/74 [00:08<02:14, 1.90s/it]
epoch 101 | loss 0.8925266861915588, f_iou 0.750835657119751: 5%|██ | 4/74 [00:08<01:40, 1.44s/it]
epoch 101 | loss 1.3695825338363647, f_iou 0.7467113733291626: 5%|█▉ | 4/74 [00:08<01:40, 1.44s/it]
epoch 101 | loss 1.3695825338363647, f_iou 0.7467113733291626: 7%|██▍ | 5/74 [00:08<01:21, 1.18s/it]
epoch 101 | loss 0.9774155020713806, f_iou 0.7574700117111206: 7%|██▍ | 5/74 [00:09<01:21, 1.18s/it]
epoch 101 | loss 0.9774155020713806, f_iou 0.7574700117111206: 8%|██▉ | 6/74 [00:09<01:09, 1.03s/it]
epoch 101 | loss 0.0, f_iou 0.7918040156364441: 8%|████▏ | 6/74 [00:10<01:09, 1.03s/it]
epoch 101 | loss 0.0, f_iou 0.7918040156364441: 9%|████▊ | 7/74 [00:10<01:01, 1.08it/s]
epoch 101 | loss 1.1831989288330078, f_iou 0.7733624577522278: 9%|███▍ | 7/74 [00:10<01:01, 1.08it/s]
epoch 101 | loss 1.1831989288330078, f_iou 0.7733624577522278: 11%|███▉ | 8/74 [00:10<00:56, 1.17it/s]
epoch 101 | loss 2.452204465866089, f_iou 0.7483232617378235: 11%|████ | 8/74 [00:11<00:56, 1.17it/s]
epoch 101 | loss 2.452204465866089, f_iou 0.7483232617378235: 12%|████▌ | 9/74 [00:11<00:53, 1.23it/s]
epoch 101 | loss 0.4709780216217041, f_iou 0.7695731520652771: 12%|████▍ | 9/74 [00:12<00:53, 1.23it/s]
epoch 101 | loss 0.4709780216217041, f_iou 0.7695731520652771: 14%|████▋ | 10/74 [00:12<00:50, 1.26it/s]
epoch 101 | loss 1.6148772239685059, f_iou 0.7579833269119263: 14%|████▋ | 10/74 [00:13<00:50, 1.26it/s]
epoch 101 | loss 1.6148772239685059, f_iou 0.7579833269119263: 15%|█████▏ | 11/74 [00:13<00:49, 1.28it/s]
epoch 101 | loss 1.8706930875778198, f_iou 0.7411702871322632: 15%|█████▏ | 11/74 [00:13<00:49, 1.28it/s]
epoch 101 | loss 1.8706930875778198, f_iou 0.7411702871322632: 16%|█████▋ | 12/74 [00:13<00:47, 1.29it/s]
epoch 101 | loss 0.3492558002471924, f_iou 0.7525122165679932: 16%|█████▋ | 12/74 [00:14<00:47, 1.29it/s]
epoch 101 | loss 0.3492558002471924, f_iou 0.7525122165679932: 18%|██████▏ | 13/74 [00:14<00:47, 1.29it/s]
epoch 101 | loss 0.9399483799934387, f_iou 0.7650135159492493: 18%|██████▏ | 13/74 [00:15<00:47, 1.29it/s]
epoch 101 | loss 0.9399483799934387, f_iou 0.7650135159492493: 19%|██████▌ | 14/74 [00:15<00:46, 1.29it/s]
epoch 101 | loss 2.8529796600341797, f_iou 0.7779666185379028: 19%|██████▌ | 14/74 [00:16<00:46, 1.29it/s]
epoch 101 | loss 2.8529796600341797, f_iou 0.7779666185379028: 20%|███████ | 15/74 [00:16<00:45, 1.31it/s]
epoch 101 | loss 0.639244019985199, f_iou 0.7826244831085205: 20%|███████▎ | 15/74 [00:17<00:45, 1.31it/s]
epoch 101 | loss 0.639244019985199, f_iou 0.7826244831085205: 22%|███████▊ | 16/74 [00:17<00:44, 1.30it/s]
epoch 101 | loss 1.0159180164337158, f_iou 0.7793760895729065: 22%|███████▌ | 16/74 [00:17<00:44, 1.30it/s]
epoch 101 | loss 1.0159180164337158, f_iou 0.7793760895729065: 23%|████████ | 17/74 [00:17<00:44, 1.29it/s]
epoch 101 | loss 1.0907381772994995, f_iou 0.7870457768440247: 23%|████████ | 17/74 [00:18<00:44, 1.29it/s]
epoch 101 | loss 1.0907381772994995, f_iou 0.7870457768440247: 24%|████████▌ | 18/74 [00:18<00:43, 1.30it/s]
epoch 101 | loss 1.038533091545105, f_iou 0.7863696217536926: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 101 | loss 1.038533091545105, f_iou 0.7863696217536926: 26%|█████████▏ | 19/74 [00:19<00:41, 1.32it/s]
epoch 101 | loss 0.4690382778644562, f_iou 0.7954420447349548: 26%|████████▉ | 19/74 [00:20<00:41, 1.32it/s]
epoch 101 | loss 0.4690382778644562, f_iou 0.7954420447349548: 27%|█████████▍ | 20/74 [00:20<00:40, 1.35it/s]
epoch 101 | loss 0.7657868266105652, f_iou 0.8004695773124695: 27%|█████████▍ | 20/74 [00:20<00:40, 1.35it/s]
epoch 101 | loss 0.7657868266105652, f_iou 0.8004695773124695: 28%|█████████▉ | 21/74 [00:20<00:39, 1.36it/s]
epoch 101 | loss 1.0304436683654785, f_iou 0.8060551881790161: 28%|█████████▉ | 21/74 [00:21<00:39, 1.36it/s]
epoch 101 | loss 1.0304436683654785, f_iou 0.8060551881790161: 30%|██████████▍ | 22/74 [00:21<00:38, 1.37it/s]
epoch 101 | loss 0.9833555221557617, f_iou 0.8105262517929077: 30%|██████████▍ | 22/74 [00:22<00:38, 1.37it/s]
epoch 101 | loss 0.9833555221557617, f_iou 0.8105262517929077: 31%|██████████▉ | 23/74 [00:22<00:37, 1.38it/s]
epoch 101 | loss 0.9502209424972534, f_iou 0.80487459897995: 31%|███████████▌ | 23/74 [00:22<00:37, 1.38it/s]
epoch 101 | loss 0.9502209424972534, f_iou 0.80487459897995: 32%|████████████ | 24/74 [00:22<00:36, 1.38it/s]
epoch 101 | loss 0.7453954815864563, f_iou 0.8081777095794678: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 101 | loss 0.7453954815864563, f_iou 0.8081777095794678: 34%|███████████▊ | 25/74 [00:23<00:35, 1.39it/s]
epoch 101 | loss 1.6758413314819336, f_iou 0.7994670867919922: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 101 | loss 1.6758413314819336, f_iou 0.7994670867919922: 35%|████████████▎ | 26/74 [00:24<00:34, 1.39it/s]
epoch 101 | loss 1.1069436073303223, f_iou 0.7968901991844177: 35%|████████████▎ | 26/74 [00:25<00:34, 1.39it/s]
epoch 101 | loss 1.1069436073303223, f_iou 0.7968901991844177: 36%|████████████▊ | 27/74 [00:25<00:33, 1.39it/s]
epoch 101 | loss 0.9636310935020447, f_iou 0.7977287769317627: 36%|████████████▊ | 27/74 [00:25<00:33, 1.39it/s]
epoch 101 | loss 0.9636310935020447, f_iou 0.7977287769317627: 38%|█████████████▏ | 28/74 [00:25<00:33, 1.39it/s]
epoch 101 | loss 0.5384368300437927, f_iou 0.8028458952903748: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.39it/s]
epoch 101 | loss 0.5384368300437927, f_iou 0.8028458952903748: 39%|█████████████▋ | 29/74 [00:26<00:32, 1.39it/s]
epoch 101 | loss 0.6504830718040466, f_iou 0.8045797944068909: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.39it/s]
epoch 101 | loss 0.6504830718040466, f_iou 0.8045797944068909: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.40it/s]
epoch 101 | loss 2.8980047702789307, f_iou 0.7924157381057739: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.40it/s]
epoch 101 | loss 2.8980047702789307, f_iou 0.7924157381057739: 42%|██████████████▋ | 31/74 [00:27<00:30, 1.40it/s]
epoch 101 | loss 1.3881862163543701, f_iou 0.7851048111915588: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.40it/s]
epoch 101 | loss 1.3881862163543701, f_iou 0.7851048111915588: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.40it/s]
epoch 101 | loss 1.107027530670166, f_iou 0.7862303256988525: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.40it/s]
epoch 101 | loss 1.107027530670166, f_iou 0.7862303256988525: 45%|████████████████ | 33/74 [00:29<00:29, 1.40it/s]
epoch 101 | loss 0.5626018643379211, f_iou 0.7869979739189148: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.40it/s]
epoch 101 | loss 0.5626018643379211, f_iou 0.7869979739189148: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 101 | loss 1.4489253759384155, f_iou 0.7811404466629028: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 101 | loss 1.4489253759384155, f_iou 0.7811404466629028: 47%|████████████████▌ | 35/74 [00:30<00:28, 1.39it/s]
epoch 101 | loss 1.518394947052002, f_iou 0.7776190638542175: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 101 | loss 1.518394947052002, f_iou 0.7776190638542175: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 101 | loss 0.7493834495544434, f_iou 0.7777427434921265: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 101 | loss 0.7493834495544434, f_iou 0.7777427434921265: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 101 | loss 0.6821544766426086, f_iou 0.7828282713890076: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 101 | loss 0.6821544766426086, f_iou 0.7828282713890076: 51%|█████████████████▉ | 38/74 [00:32<00:26, 1.38it/s]
epoch 101 | loss 1.3764195442199707, f_iou 0.7833489179611206: 51%|█████████████████▉ | 38/74 [00:33<00:26, 1.38it/s]
epoch 101 | loss 1.3764195442199707, f_iou 0.7833489179611206: 53%|██████████████████▍ | 39/74 [00:33<00:25, 1.38it/s]
epoch 101 | loss 0.7379673719406128, f_iou 0.7851889133453369: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 101 | loss 0.7379673719406128, f_iou 0.7851889133453369: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.39it/s]
epoch 101 | loss 0.9669960141181946, f_iou 0.7819351553916931: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.39it/s]
epoch 101 | loss 0.9669960141181946, f_iou 0.7819351553916931: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.39it/s]
epoch 101 | loss 0.8126983046531677, f_iou 0.783963143825531: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.39it/s]
epoch 101 | loss 0.8126983046531677, f_iou 0.783963143825531: 57%|████████████████████▍ | 42/74 [00:35<00:23, 1.38it/s]
epoch 101 | loss 0.9988619685173035, f_iou 0.7861837148666382: 57%|███████████████████▊ | 42/74 [00:36<00:23, 1.38it/s]
epoch 101 | loss 0.9988619685173035, f_iou 0.7861837148666382: 58%|████████████████████▎ | 43/74 [00:36<00:22, 1.39it/s]
epoch 101 | loss 0.0, f_iou 0.7906073927879333: 58%|█████████████████████████████ | 43/74 [00:37<00:22, 1.39it/s]
epoch 101 | loss 0.0, f_iou 0.7906073927879333: 59%|█████████████████████████████▋ | 44/74 [00:37<00:21, 1.39it/s]
epoch 101 | loss 0.5572164058685303, f_iou 0.7730383276939392: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.39it/s]
epoch 101 | loss 0.5572164058685303, f_iou 0.7730383276939392: 61%|█████████████████████▎ | 45/74 [00:37<00:20, 1.39it/s]
epoch 101 | loss 0.8068315982818604, f_iou 0.7757112383842468: 61%|█████████████████████▎ | 45/74 [00:38<00:20, 1.39it/s]
epoch 101 | loss 0.8068315982818604, f_iou 0.7757112383842468: 62%|█████████████████████▊ | 46/74 [00:38<00:20, 1.37it/s]
epoch 101 | loss 0.6240913271903992, f_iou 0.778322160243988: 62%|██████████████████████▍ | 46/74 [00:39<00:20, 1.37it/s]
epoch 101 | loss 0.6240913271903992, f_iou 0.778322160243988: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.36it/s]
epoch 101 | loss 0.9986765384674072, f_iou 0.7643613219261169: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.36it/s]
epoch 101 | loss 0.9986765384674072, f_iou 0.7643613219261169: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.37it/s]
epoch 101 | loss 1.0410470962524414, f_iou 0.7618973255157471: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.37it/s]
epoch 101 | loss 1.0410470962524414, f_iou 0.7618973255157471: 66%|███████████████████████▏ | 49/74 [00:40<00:18, 1.38it/s]
epoch 101 | loss 1.521000862121582, f_iou 0.7644109129905701: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.38it/s]
epoch 101 | loss 1.521000862121582, f_iou 0.7644109129905701: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.37it/s]
epoch 101 | loss 1.042839527130127, f_iou 0.7608243227005005: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.37it/s]
epoch 101 | loss 1.042839527130127, f_iou 0.7608243227005005: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.38it/s]
epoch 101 | loss 0.8373183012008667, f_iou 0.7635660171508789: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.38it/s]
epoch 101 | loss 0.8373183012008667, f_iou 0.7635660171508789: 70%|████████████████████████▌ | 52/74 [00:43<00:16, 1.30it/s]
epoch 101 | loss 0.7023583650588989, f_iou 0.764905571937561: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.30it/s]
epoch 101 | loss 0.7023583650588989, f_iou 0.764905571937561: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.32it/s]
epoch 101 | loss 0.791403591632843, f_iou 0.767077624797821: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.32it/s]
epoch 101 | loss 0.791403591632843, f_iou 0.767077624797821: 73%|███████████████████████████ | 54/74 [00:44<00:15, 1.31it/s]
epoch 101 | loss 1.8141331672668457, f_iou 0.7545329928398132: 73%|█████████████████████████▌ | 54/74 [00:45<00:15, 1.31it/s]
epoch 101 | loss 1.8141331672668457, f_iou 0.7545329928398132: 74%|██████████████████████████ | 55/74 [00:45<00:14, 1.30it/s]
epoch 101 | loss 0.9736074805259705, f_iou 0.7565581202507019: 74%|██████████████████████████ | 55/74 [00:46<00:14, 1.30it/s]
epoch 101 | loss 0.9736074805259705, f_iou 0.7565581202507019: 76%|██████████████████████████▍ | 56/74 [00:46<00:13, 1.30it/s]
epoch 101 | loss 0.6893151998519897, f_iou 0.7598682045936584: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.30it/s]
epoch 101 | loss 0.6893151998519897, f_iou 0.7598682045936584: 77%|██████████████████████████▉ | 57/74 [00:47<00:13, 1.29it/s]
epoch 101 | loss 1.149694561958313, f_iou 0.7591699361801147: 77%|███████████████████████████▋ | 57/74 [00:47<00:13, 1.29it/s]
epoch 101 | loss 1.149694561958313, f_iou 0.7591699361801147: 78%|████████████████████████████▏ | 58/74 [00:47<00:12, 1.29it/s]
epoch 101 | loss 1.6727238893508911, f_iou 0.7599570155143738: 78%|███████████████████████████▍ | 58/74 [00:48<00:12, 1.29it/s]
epoch 101 | loss 1.6727238893508911, f_iou 0.7599570155143738: 80%|███████████████████████████▉ | 59/74 [00:48<00:11, 1.29it/s]
epoch 101 | loss 0.532903790473938, f_iou 0.7634549736976624: 80%|████████████████████████████▋ | 59/74 [00:49<00:11, 1.29it/s]
epoch 101 | loss 0.532903790473938, f_iou 0.7634549736976624: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.29it/s]
epoch 101 | loss 1.2731242179870605, f_iou 0.7652936577796936: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.29it/s]
epoch 101 | loss 1.2731242179870605, f_iou 0.7652936577796936: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.31it/s]
epoch 101 | loss 1.4408255815505981, f_iou 0.7663771510124207: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.31it/s]
epoch 101 | loss 1.4408255815505981, f_iou 0.7663771510124207: 84%|█████████████████████████████▎ | 62/74 [00:50<00:09, 1.33it/s]
epoch 101 | loss 0.9132947325706482, f_iou 0.7681100964546204: 84%|█████████████████████████████▎ | 62/74 [00:51<00:09, 1.33it/s]
epoch 101 | loss 0.9132947325706482, f_iou 0.7681100964546204: 85%|█████████████████████████████▊ | 63/74 [00:51<00:08, 1.34it/s]
epoch 101 | loss 1.8536171913146973, f_iou 0.7680973410606384: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.34it/s]
epoch 101 | loss 1.8536171913146973, f_iou 0.7680973410606384: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.35it/s]
epoch 101 | loss 0.8027445673942566, f_iou 0.7692387700080872: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.35it/s]
epoch 101 | loss 0.8027445673942566, f_iou 0.7692387700080872: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.37it/s]
epoch 101 | loss 1.1627753973007202, f_iou 0.7712289094924927: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.37it/s]
epoch 101 | loss 1.1627753973007202, f_iou 0.7712289094924927: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.34it/s]
epoch 101 | loss 0.4188891351222992, f_iou 0.7629677057266235: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.34it/s]
epoch 101 | loss 0.4188891351222992, f_iou 0.7629677057266235: 91%|███████████████████████████████▋ | 67/74 [00:54<00:05, 1.33it/s]
epoch 101 | loss 1.3338524103164673, f_iou 0.7627711892127991: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.33it/s]
epoch 101 | loss 1.3338524103164673, f_iou 0.7627711892127991: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.31it/s]
epoch 101 | loss 1.8142130374908447, f_iou 0.7649831771850586: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.31it/s]
epoch 101 | loss 1.8142130374908447, f_iou 0.7649831771850586: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.31it/s]
epoch 101 | loss 2.2866904735565186, f_iou 0.7624385356903076: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.31it/s]
epoch 101 | loss 2.2866904735565186, f_iou 0.7624385356903076: 95%|█████████████████████████████████ | 70/74 [00:56<00:03, 1.32it/s]
epoch 101 | loss 0.6978460550308228, f_iou 0.7649590373039246: 95%|█████████████████████████████████ | 70/74 [00:57<00:03, 1.32it/s]
epoch 101 | loss 0.6978460550308228, f_iou 0.7649590373039246: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.35it/s]
epoch 101 | loss 1.8339207172393799, f_iou 0.7618480324745178: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.35it/s]
epoch 101 | loss 1.8339207172393799, f_iou 0.7618480324745178: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.37it/s]
epoch 101 | loss 0.8080198764801025, f_iou 0.7632134556770325: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 101 | loss 0.8080198764801025, f_iou 0.7632134556770325: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 101 | loss 0.5754439830780029, f_iou 0.7651169896125793: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 101 | loss 0.5754439830780029, f_iou 0.7651169896125793: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.38it/s]
epoch 101 | loss 0.5754439830780029, f_iou 0.7651169896125793: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.24it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 101 | valid.f_iou 0.752560019493103, valid.f_f-score 0.82258: 0%| | 0/16 [00:05, ?it/s]
epoch 101 | valid.f_iou 0.752560019493103, valid.f_f-score 0.82258: 6%|█▉ | 1/16 [00:05<01:24, 5.65s/it]
epoch 101 | valid.f_iou 0.6523900032043457, valid.f_f-score 0.77904: 6%|█▉ | 1/16 [00:06<01:24, 5.65s/it]
epoch 101 | valid.f_iou 0.6523900032043457, valid.f_f-score 0.77904: 12%|███▊ | 2/16 [00:06<00:36, 2.60s/it]
epoch 101 | valid.f_iou 0.5395699739456177, valid.f_f-score 0.7179: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 101 | valid.f_iou 0.5395699739456177, valid.f_f-score 0.7179: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 101 | valid.f_iou 0.5906800031661987, valid.f_f-score 0.73062: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 101 | valid.f_iou 0.5906800031661987, valid.f_f-score 0.73062: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 101 | valid.f_iou 0.6054199934005737, valid.f_f-score 0.74189: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 101 | valid.f_iou 0.6054199934005737, valid.f_f-score 0.74189: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 101 | valid.f_iou 0.5597100257873535, valid.f_f-score 0.6953: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 101 | valid.f_iou 0.5597100257873535, valid.f_f-score 0.6953: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 101 | valid.f_iou 0.5875300168991089, valid.f_f-score 0.72127: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 101 | valid.f_iou 0.5875300168991089, valid.f_f-score 0.72127: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 101 | valid.f_iou 0.5751100182533264, valid.f_f-score 0.71587: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 101 | valid.f_iou 0.5751100182533264, valid.f_f-score 0.71587: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 101 | valid.f_iou 0.5882099866867065, valid.f_f-score 0.71794: 50%|███████████████ | 8/16 [00:09<00:04, 1.73it/s]
epoch 101 | valid.f_iou 0.5882099866867065, valid.f_f-score 0.71794: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.87it/s]
epoch 101 | valid.f_iou 0.5738599896430969, valid.f_f-score 0.7179: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 101 | valid.f_iou 0.5738599896430969, valid.f_f-score 0.7179: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 101 | valid.f_iou 0.5773900151252747, valid.f_f-score 0.72046: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.96it/s]
epoch 101 | valid.f_iou 0.5773900151252747, valid.f_f-score 0.72046: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.05it/s]
epoch 101 | valid.f_iou 0.5992199778556824, valid.f_f-score 0.73785: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.05it/s]
epoch 101 | valid.f_iou 0.5992199778556824, valid.f_f-score 0.73785: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.11it/s]
epoch 101 | valid.f_iou 0.6085100173950195, valid.f_f-score 0.74475: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.11it/s]
epoch 101 | valid.f_iou 0.6085100173950195, valid.f_f-score 0.74475: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.16it/s]
epoch 101 | valid.f_iou 0.602649986743927, valid.f_f-score 0.74136: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.16it/s]
epoch 101 | valid.f_iou 0.602649986743927, valid.f_f-score 0.74136: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.31it/s]
epoch 101 | valid.f_iou 0.6062099933624268, valid.f_f-score 0.74078: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.31it/s]
epoch 101 | valid.f_iou 0.6062099933624268, valid.f_f-score 0.74078: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.41it/s]
epoch 101 | valid.f_iou 0.607509970664978, valid.f_f-score 0.73707: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.41it/s]
epoch 101 | valid.f_iou 0.607509970664978, valid.f_f-score 0.73707: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.50it/s]
epoch 101 | valid.f_iou 0.607509970664978, valid.f_f-score 0.73707: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 101 | valid.f_iou 0.8063300251960754, valid.f_f-score 0.84236: 0%| | 0/16 [00:05, ?it/s]
epoch 101 | valid.f_iou 0.8063300251960754, valid.f_f-score 0.84236: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 101 | valid.f_iou 0.8359599709510803, valid.f_f-score 0.88802: 6%|█▉ | 1/16 [00:05<01:18, 5.22s/it]
epoch 101 | valid.f_iou 0.8359599709510803, valid.f_f-score 0.88802: 12%|███▊ | 2/16 [00:05<00:33, 2.42s/it]
epoch 101 | valid.f_iou 0.7677099704742432, valid.f_f-score 0.85727: 12%|███▊ | 2/16 [00:06<00:33, 2.42s/it]
epoch 101 | valid.f_iou 0.7677099704742432, valid.f_f-score 0.85727: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 101 | valid.f_iou 0.7248200178146362, valid.f_f-score 0.78506: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 101 | valid.f_iou 0.7248200178146362, valid.f_f-score 0.78506: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 101 | valid.f_iou 0.6926900148391724, valid.f_f-score 0.76484: 25%|███████▌ | 4/16 [00:07<00:13, 1.10s/it]
epoch 101 | valid.f_iou 0.6926900148391724, valid.f_f-score 0.76484: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 101 | valid.f_iou 0.6823899745941162, valid.f_f-score 0.75802: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 101 | valid.f_iou 0.6823899745941162, valid.f_f-score 0.75802: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 101 | valid.f_iou 0.7010200023651123, valid.f_f-score 0.78088: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 101 | valid.f_iou 0.7010200023651123, valid.f_f-score 0.78088: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.59it/s]
epoch 101 | valid.f_iou 0.7018399834632874, valid.f_f-score 0.78683: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 101 | valid.f_iou 0.7018399834632874, valid.f_f-score 0.78683: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 101 | valid.f_iou 0.709659993648529, valid.f_f-score 0.79191: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.75it/s]
epoch 101 | valid.f_iou 0.709659993648529, valid.f_f-score 0.79191: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.00it/s]
epoch 101 | valid.f_iou 0.7208999991416931, valid.f_f-score 0.80373: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.00it/s]
epoch 101 | valid.f_iou 0.7208999991416931, valid.f_f-score 0.80373: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 101 | valid.f_iou 0.7164599895477295, valid.f_f-score 0.80024: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 101 | valid.f_iou 0.7164599895477295, valid.f_f-score 0.80024: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.23it/s]
epoch 101 | valid.f_iou 0.7289800047874451, valid.f_f-score 0.81147: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.23it/s]
epoch 101 | valid.f_iou 0.7289800047874451, valid.f_f-score 0.81147: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.35it/s]
epoch 101 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.81917: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.35it/s]
epoch 101 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.81917: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 101 | valid.f_iou 0.7282299995422363, valid.f_f-score 0.81301: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 101 | valid.f_iou 0.7282299995422363, valid.f_f-score 0.81301: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.51it/s]
epoch 101 | valid.f_iou 0.7350000143051147, valid.f_f-score 0.8192: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.51it/s]
epoch 101 | valid.f_iou 0.7350000143051147, valid.f_f-score 0.8192: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 101 | valid.f_iou 0.7331600189208984, valid.f_f-score 0.81719: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 101 | valid.f_iou 0.7331600189208984, valid.f_f-score 0.81719: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 101 | valid.f_iou 0.7331600189208984, valid.f_f-score 0.81719: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 101 | valid.f_iou 0.8063300251960754, valid.f_f-score 0.84236: 0%| | 0/16 [00:04, ?it/s]
epoch 101 | valid.f_iou 0.8063300251960754, valid.f_f-score 0.84236: 6%|█▉ | 1/16 [00:04<01:09, 4.63s/it]
epoch 101 | valid.f_iou 0.8359599709510803, valid.f_f-score 0.88802: 6%|█▉ | 1/16 [00:05<01:09, 4.63s/it]
epoch 101 | valid.f_iou 0.8359599709510803, valid.f_f-score 0.88802: 12%|███▊ | 2/16 [00:05<00:30, 2.18s/it]
epoch 101 | valid.f_iou 0.7677099704742432, valid.f_f-score 0.85727: 12%|███▊ | 2/16 [00:05<00:30, 2.18s/it]
epoch 101 | valid.f_iou 0.7677099704742432, valid.f_f-score 0.85727: 19%|█████▋ | 3/16 [00:05<00:18, 1.40s/it]
epoch 101 | valid.f_iou 0.7224900126457214, valid.f_f-score 0.7792: 19%|█████▊ | 3/16 [00:05<00:18, 1.40s/it]
epoch 101 | valid.f_iou 0.7224900126457214, valid.f_f-score 0.7792: 25%|███████▊ | 4/16 [00:05<00:11, 1.00it/s]
epoch 101 | valid.f_iou 0.6998400092124939, valid.f_f-score 0.76015: 25%|███████▌ | 4/16 [00:06<00:11, 1.00it/s]
epoch 101 | valid.f_iou 0.6998400092124939, valid.f_f-score 0.76015: 31%|█████████▍ | 5/16 [00:06<00:08, 1.24it/s]
epoch 101 | valid.f_iou 0.6883400082588196, valid.f_f-score 0.75412: 31%|█████████▍ | 5/16 [00:06<00:08, 1.24it/s]
epoch 101 | valid.f_iou 0.6883400082588196, valid.f_f-score 0.75412: 38%|███████████▎ | 6/16 [00:06<00:06, 1.46it/s]
epoch 101 | valid.f_iou 0.7079300284385681, valid.f_f-score 0.77753: 38%|███████████▎ | 6/16 [00:07<00:06, 1.46it/s]
epoch 101 | valid.f_iou 0.7079300284385681, valid.f_f-score 0.77753: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.69it/s]
epoch 101 | valid.f_iou 0.7078800201416016, valid.f_f-score 0.78391: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.69it/s]
epoch 101 | valid.f_iou 0.7078800201416016, valid.f_f-score 0.78391: 50%|███████████████ | 8/16 [00:07<00:04, 1.82it/s]
epoch 101 | valid.f_iou 0.7161499857902527, valid.f_f-score 0.78931: 50%|███████████████ | 8/16 [00:08<00:04, 1.82it/s]
epoch 101 | valid.f_iou 0.7161499857902527, valid.f_f-score 0.78931: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.04it/s]
epoch 101 | valid.f_iou 0.7258800268173218, valid.f_f-score 0.79935: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.04it/s]
epoch 101 | valid.f_iou 0.7258800268173218, valid.f_f-score 0.79935: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.10it/s]
epoch 101 | valid.f_iou 0.7209799885749817, valid.f_f-score 0.79625: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.10it/s]
epoch 101 | valid.f_iou 0.7209799885749817, valid.f_f-score 0.79625: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.15it/s]
epoch 101 | valid.f_iou 0.7331200242042542, valid.f_f-score 0.80781: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.15it/s]
epoch 101 | valid.f_iou 0.7331200242042542, valid.f_f-score 0.80781: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.18it/s]
epoch 101 | valid.f_iou 0.7408400177955627, valid.f_f-score 0.8158: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.18it/s]
epoch 101 | valid.f_iou 0.7408400177955627, valid.f_f-score 0.8158: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.20it/s]
epoch 101 | valid.f_iou 0.7317699790000916, valid.f_f-score 0.80989: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.20it/s]
epoch 101 | valid.f_iou 0.7317699790000916, valid.f_f-score 0.80989: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.31it/s]
epoch 101 | valid.f_iou 0.7383000254631042, valid.f_f-score 0.81629: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.31it/s]
epoch 101 | valid.f_iou 0.7383000254631042, valid.f_f-score 0.81629: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.42it/s]
epoch 101 | valid.f_iou 0.7367299795150757, valid.f_f-score 0.81447: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.42it/s]
epoch 101 | valid.f_iou 0.7367299795150757, valid.f_f-score 0.81447: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.51it/s]
epoch 101 | valid.f_iou 0.7367299795150757, valid.f_f-score 0.81447: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 102 | loss 0.46374374628067017, f_iou 0.9674383401870728: 0%| | 0/74 [00:06, ?it/s]
epoch 102 | loss 0.46374374628067017, f_iou 0.9674383401870728: 1%|▍ | 1/74 [00:06<07:49, 6.43s/it]
epoch 102 | loss 1.8692502975463867, f_iou 0.7978510856628418: 1%|▍ | 1/74 [00:07<07:49, 6.43s/it]
epoch 102 | loss 1.8692502975463867, f_iou 0.7978510856628418: 3%|▉ | 2/74 [00:07<03:46, 3.15s/it]
epoch 102 | loss 0.6800807118415833, f_iou 0.8242745399475098: 3%|▉ | 2/74 [00:08<03:46, 3.15s/it]
epoch 102 | loss 0.6800807118415833, f_iou 0.8242745399475098: 4%|█▍ | 3/74 [00:08<02:27, 2.08s/it]
epoch 102 | loss 0.5370759963989258, f_iou 0.8579229116439819: 4%|█▍ | 3/74 [00:08<02:27, 2.08s/it]
epoch 102 | loss 0.5370759963989258, f_iou 0.8579229116439819: 5%|█▉ | 4/74 [00:08<01:50, 1.58s/it]
epoch 102 | loss 0.9730587005615234, f_iou 0.8791489601135254: 5%|█▉ | 4/74 [00:09<01:50, 1.58s/it]
epoch 102 | loss 0.9730587005615234, f_iou 0.8791489601135254: 7%|██▍ | 5/74 [00:09<01:29, 1.30s/it]
epoch 102 | loss 1.9493725299835205, f_iou 0.8387537002563477: 7%|██▍ | 5/74 [00:10<01:29, 1.30s/it]
epoch 102 | loss 1.9493725299835205, f_iou 0.8387537002563477: 8%|██▉ | 6/74 [00:10<01:16, 1.13s/it]
epoch 102 | loss 2.290602684020996, f_iou 0.8418684601783752: 8%|███ | 6/74 [00:11<01:16, 1.13s/it]
epoch 102 | loss 2.290602684020996, f_iou 0.8418684601783752: 9%|███▌ | 7/74 [00:11<01:07, 1.01s/it]
epoch 102 | loss 0.8205076456069946, f_iou 0.83394455909729: 9%|███▌ | 7/74 [00:12<01:07, 1.01s/it]
epoch 102 | loss 0.8205076456069946, f_iou 0.83394455909729: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 102 | loss 1.1244730949401855, f_iou 0.842516303062439: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 102 | loss 1.1244730949401855, f_iou 0.842516303062439: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 102 | loss 0.6433641314506531, f_iou 0.8468379974365234: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 102 | loss 0.6433641314506531, f_iou 0.8468379974365234: 14%|████▋ | 10/74 [00:13<00:55, 1.15it/s]
epoch 102 | loss 0.5539495944976807, f_iou 0.8535924553871155: 14%|████▋ | 10/74 [00:14<00:55, 1.15it/s]
epoch 102 | loss 0.5539495944976807, f_iou 0.8535924553871155: 15%|█████▏ | 11/74 [00:14<00:53, 1.18it/s]
epoch 102 | loss 0.8219738006591797, f_iou 0.8314410448074341: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 102 | loss 0.8219738006591797, f_iou 0.8314410448074341: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 102 | loss 1.873787760734558, f_iou 0.8363442420959473: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 102 | loss 1.873787760734558, f_iou 0.8363442420959473: 18%|██████▎ | 13/74 [00:15<00:47, 1.27it/s]
epoch 102 | loss 1.5228919982910156, f_iou 0.7863075733184814: 18%|██████▏ | 13/74 [00:16<00:47, 1.27it/s]
epoch 102 | loss 1.5228919982910156, f_iou 0.7863075733184814: 19%|██████▌ | 14/74 [00:16<00:46, 1.30it/s]
epoch 102 | loss 1.5188400745391846, f_iou 0.7736186385154724: 19%|██████▌ | 14/74 [00:17<00:46, 1.30it/s]
epoch 102 | loss 1.5188400745391846, f_iou 0.7736186385154724: 20%|███████ | 15/74 [00:17<00:44, 1.31it/s]
epoch 102 | loss 1.694894790649414, f_iou 0.7670315504074097: 20%|███████▎ | 15/74 [00:18<00:44, 1.31it/s]
epoch 102 | loss 1.694894790649414, f_iou 0.7670315504074097: 22%|███████▊ | 16/74 [00:18<00:43, 1.32it/s]
epoch 102 | loss 0.6706526875495911, f_iou 0.7365948557853699: 22%|███████▌ | 16/74 [00:18<00:43, 1.32it/s]
epoch 102 | loss 0.6706526875495911, f_iou 0.7365948557853699: 23%|████████ | 17/74 [00:18<00:42, 1.33it/s]
epoch 102 | loss 1.5632708072662354, f_iou 0.7362889647483826: 23%|████████ | 17/74 [00:19<00:42, 1.33it/s]
epoch 102 | loss 1.5632708072662354, f_iou 0.7362889647483826: 24%|████████▌ | 18/74 [00:19<00:41, 1.35it/s]
epoch 102 | loss 0.9150511026382446, f_iou 0.7359176874160767: 24%|████████▌ | 18/74 [00:20<00:41, 1.35it/s]
epoch 102 | loss 0.9150511026382446, f_iou 0.7359176874160767: 26%|████████▉ | 19/74 [00:20<00:40, 1.35it/s]
epoch 102 | loss 0.7749190330505371, f_iou 0.7382521033287048: 26%|████████▉ | 19/74 [00:21<00:40, 1.35it/s]
epoch 102 | loss 0.7749190330505371, f_iou 0.7382521033287048: 27%|█████████▍ | 20/74 [00:21<00:40, 1.35it/s]
epoch 102 | loss 0.7391279339790344, f_iou 0.7430129647254944: 27%|█████████▍ | 20/74 [00:21<00:40, 1.35it/s]
epoch 102 | loss 0.7391279339790344, f_iou 0.7430129647254944: 28%|█████████▉ | 21/74 [00:21<00:39, 1.36it/s]
epoch 102 | loss 1.0180864334106445, f_iou 0.7491133809089661: 28%|█████████▉ | 21/74 [00:22<00:39, 1.36it/s]
epoch 102 | loss 1.0180864334106445, f_iou 0.7491133809089661: 30%|██████████▍ | 22/74 [00:22<00:38, 1.37it/s]
epoch 102 | loss 0.9600114822387695, f_iou 0.7566672563552856: 30%|██████████▍ | 22/74 [00:23<00:38, 1.37it/s]
epoch 102 | loss 0.9600114822387695, f_iou 0.7566672563552856: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 102 | loss 2.2708547115325928, f_iou 0.7421867847442627: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 102 | loss 2.2708547115325928, f_iou 0.7421867847442627: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 102 | loss 1.2888998985290527, f_iou 0.7432400584220886: 32%|███████████▎ | 24/74 [00:24<00:36, 1.38it/s]
epoch 102 | loss 1.2888998985290527, f_iou 0.7432400584220886: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 102 | loss 0.780457615852356, f_iou 0.7152772545814514: 34%|████████████▏ | 25/74 [00:25<00:35, 1.39it/s]
epoch 102 | loss 0.780457615852356, f_iou 0.7152772545814514: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 102 | loss 1.194498062133789, f_iou 0.7230495810508728: 35%|████████████▋ | 26/74 [00:26<00:34, 1.39it/s]
epoch 102 | loss 1.194498062133789, f_iou 0.7230495810508728: 36%|█████████████▏ | 27/74 [00:26<00:33, 1.39it/s]
epoch 102 | loss 1.5201069116592407, f_iou 0.6988697648048401: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 102 | loss 1.5201069116592407, f_iou 0.6988697648048401: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.39it/s]
epoch 102 | loss 1.190166711807251, f_iou 0.7059578895568848: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 102 | loss 1.190166711807251, f_iou 0.7059578895568848: 39%|██████████████ | 29/74 [00:27<00:33, 1.36it/s]
epoch 102 | loss 1.208078384399414, f_iou 0.6941776871681213: 39%|██████████████ | 29/74 [00:28<00:33, 1.36it/s]
epoch 102 | loss 1.208078384399414, f_iou 0.6941776871681213: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.36it/s]
epoch 102 | loss 1.010200023651123, f_iou 0.6955235600471497: 41%|██████████████▌ | 30/74 [00:29<00:32, 1.36it/s]
epoch 102 | loss 1.010200023651123, f_iou 0.6955235600471497: 42%|███████████████ | 31/74 [00:29<00:31, 1.37it/s]
epoch 102 | loss 2.537553548812866, f_iou 0.6882352232933044: 42%|███████████████ | 31/74 [00:29<00:31, 1.37it/s]
epoch 102 | loss 2.537553548812866, f_iou 0.6882352232933044: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.38it/s]
epoch 102 | loss 1.141145944595337, f_iou 0.6950088739395142: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.38it/s]
epoch 102 | loss 1.141145944595337, f_iou 0.6950088739395142: 45%|████████████████ | 33/74 [00:30<00:29, 1.38it/s]
epoch 102 | loss 1.4208033084869385, f_iou 0.6919653415679932: 45%|███████████████▌ | 33/74 [00:31<00:29, 1.38it/s]
epoch 102 | loss 1.4208033084869385, f_iou 0.6919653415679932: 46%|████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 102 | loss 1.4532610177993774, f_iou 0.6762849688529968: 46%|████████████████ | 34/74 [00:31<00:28, 1.39it/s]
epoch 102 | loss 1.4532610177993774, f_iou 0.6762849688529968: 47%|████████████████▌ | 35/74 [00:31<00:27, 1.40it/s]
epoch 102 | loss 0.8975993990898132, f_iou 0.6836512684822083: 47%|████████████████▌ | 35/74 [00:32<00:27, 1.40it/s]
epoch 102 | loss 0.8975993990898132, f_iou 0.6836512684822083: 49%|█████████████████ | 36/74 [00:32<00:27, 1.40it/s]
epoch 102 | loss 1.9380862712860107, f_iou 0.6696841716766357: 49%|█████████████████ | 36/74 [00:33<00:27, 1.40it/s]
epoch 102 | loss 1.9380862712860107, f_iou 0.6696841716766357: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 102 | loss 0.9361957907676697, f_iou 0.6728090643882751: 50%|█████████████████▌ | 37/74 [00:34<00:26, 1.40it/s]
epoch 102 | loss 0.9361957907676697, f_iou 0.6728090643882751: 51%|█████████████████▉ | 38/74 [00:34<00:25, 1.40it/s]
epoch 102 | loss 0.715202808380127, f_iou 0.6787182092666626: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.40it/s]
epoch 102 | loss 0.715202808380127, f_iou 0.6787182092666626: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.40it/s]
epoch 102 | loss 1.3359121084213257, f_iou 0.6828321814537048: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.40it/s]
epoch 102 | loss 1.3359121084213257, f_iou 0.6828321814537048: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.40it/s]
epoch 102 | loss 0.6596879363059998, f_iou 0.686922550201416: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.40it/s]
epoch 102 | loss 0.6596879363059998, f_iou 0.686922550201416: 55%|███████████████████▉ | 41/74 [00:36<00:23, 1.39it/s]
epoch 102 | loss 2.996572732925415, f_iou 0.684842586517334: 55%|████████████████████▌ | 41/74 [00:36<00:23, 1.39it/s]
epoch 102 | loss 2.996572732925415, f_iou 0.684842586517334: 57%|█████████████████████ | 42/74 [00:36<00:23, 1.39it/s]
epoch 102 | loss 0.4730393588542938, f_iou 0.690272331237793: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 102 | loss 0.4730393588542938, f_iou 0.690272331237793: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 102 | loss 0.6249681115150452, f_iou 0.6950255632400513: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.39it/s]
epoch 102 | loss 0.6249681115150452, f_iou 0.6950255632400513: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.39it/s]
epoch 102 | loss 1.0625746250152588, f_iou 0.6957190632820129: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.39it/s]
epoch 102 | loss 1.0625746250152588, f_iou 0.6957190632820129: 61%|█████████████████████▎ | 45/74 [00:39<00:20, 1.39it/s]
epoch 102 | loss 0.6115323901176453, f_iou 0.6961780190467834: 61%|█████████████████████▎ | 45/74 [00:39<00:20, 1.39it/s]
epoch 102 | loss 0.6115323901176453, f_iou 0.6961780190467834: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.39it/s]
epoch 102 | loss 1.1766777038574219, f_iou 0.6992551684379578: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.39it/s]
epoch 102 | loss 1.1766777038574219, f_iou 0.6992551684379578: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 102 | loss 0.5690931081771851, f_iou 0.7038192749023438: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.39it/s]
epoch 102 | loss 0.5690931081771851, f_iou 0.7038192749023438: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.39it/s]
epoch 102 | loss 3.018665313720703, f_iou 0.7050235271453857: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.39it/s]
epoch 102 | loss 3.018665313720703, f_iou 0.7050235271453857: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.39it/s]
epoch 102 | loss 1.9364551305770874, f_iou 0.7048868536949158: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.39it/s]
epoch 102 | loss 1.9364551305770874, f_iou 0.7048868536949158: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 102 | loss 0.7158637046813965, f_iou 0.7073965072631836: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 102 | loss 0.7158637046813965, f_iou 0.7073965072631836: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.39it/s]
epoch 102 | loss 0.8956924676895142, f_iou 0.7055123448371887: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.39it/s]
epoch 102 | loss 0.8956924676895142, f_iou 0.7055123448371887: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.39it/s]
epoch 102 | loss 0.7923414707183838, f_iou 0.7020170092582703: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.39it/s]
epoch 102 | loss 0.7923414707183838, f_iou 0.7020170092582703: 72%|█████████████████████████ | 53/74 [00:44<00:15, 1.37it/s]
epoch 102 | loss 0.8427359461784363, f_iou 0.7044023871421814: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.37it/s]
epoch 102 | loss 0.8427359461784363, f_iou 0.7044023871421814: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.38it/s]
epoch 102 | loss 0.9644631743431091, f_iou 0.7023589611053467: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 102 | loss 0.9644631743431091, f_iou 0.7023589611053467: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.38it/s]
epoch 102 | loss 0.9799789190292358, f_iou 0.6993488073348999: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.38it/s]
epoch 102 | loss 0.9799789190292358, f_iou 0.6993488073348999: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.38it/s]
epoch 102 | loss 0.495082825422287, f_iou 0.6921710968017578: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.38it/s]
epoch 102 | loss 0.495082825422287, f_iou 0.6921710968017578: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 102 | loss 0.6652913093566895, f_iou 0.6924684643745422: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.39it/s]
epoch 102 | loss 0.6652913093566895, f_iou 0.6924684643745422: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.39it/s]
epoch 102 | loss 2.9990532398223877, f_iou 0.6970179080963135: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.39it/s]
epoch 102 | loss 2.9990532398223877, f_iou 0.6970179080963135: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.39it/s]
epoch 102 | loss 0.763929545879364, f_iou 0.6981890201568604: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 102 | loss 0.763929545879364, f_iou 0.6981890201568604: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.39it/s]
epoch 102 | loss 0.7496025562286377, f_iou 0.6923480033874512: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.39it/s]
epoch 102 | loss 0.7496025562286377, f_iou 0.6923480033874512: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.39it/s]
epoch 102 | loss 0.8091163635253906, f_iou 0.6959989070892334: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.39it/s]
epoch 102 | loss 0.8091163635253906, f_iou 0.6959989070892334: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.39it/s]
epoch 102 | loss 0.7767679691314697, f_iou 0.6998196840286255: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.39it/s]
epoch 102 | loss 0.7767679691314697, f_iou 0.6998196840286255: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.39it/s]
epoch 102 | loss 0.5630310773849487, f_iou 0.7009837627410889: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.39it/s]
epoch 102 | loss 0.5630310773849487, f_iou 0.7009837627410889: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.38it/s]
epoch 102 | loss 2.4029664993286133, f_iou 0.6979562640190125: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.38it/s]
epoch 102 | loss 2.4029664993286133, f_iou 0.6979562640190125: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.34it/s]
epoch 102 | loss 0.525179922580719, f_iou 0.6986503005027771: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.34it/s]
epoch 102 | loss 0.525179922580719, f_iou 0.6986503005027771: 89%|████████████████████████████████ | 66/74 [00:54<00:06, 1.33it/s]
epoch 102 | loss 0.8729676008224487, f_iou 0.7009736895561218: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.33it/s]
epoch 102 | loss 0.8729676008224487, f_iou 0.7009736895561218: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.35it/s]
epoch 102 | loss 0.8507577180862427, f_iou 0.7019027471542358: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.35it/s]
epoch 102 | loss 0.8507577180862427, f_iou 0.7019027471542358: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.38it/s]
epoch 102 | loss 0.5663795471191406, f_iou 0.7017542123794556: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.38it/s]
epoch 102 | loss 0.5663795471191406, f_iou 0.7017542123794556: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.38it/s]
epoch 102 | loss 0.5629867315292358, f_iou 0.705126941204071: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.38it/s]
epoch 102 | loss 0.5629867315292358, f_iou 0.705126941204071: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 102 | loss 1.2166728973388672, f_iou 0.7077314257621765: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 102 | loss 1.2166728973388672, f_iou 0.7077314257621765: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.39it/s]
epoch 102 | loss 0.604534387588501, f_iou 0.7098126411437988: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 102 | loss 0.604534387588501, f_iou 0.7098126411437988: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 102 | loss 0.35832035541534424, f_iou 0.7129302620887756: 97%|█████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 102 | loss 0.35832035541534424, f_iou 0.7129302620887756: 99%|█████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 102 | loss 0.9487419724464417, f_iou 0.7109249234199524: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 102 | loss 0.9487419724464417, f_iou 0.7109249234199524: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 102 | loss 0.9487419724464417, f_iou 0.7109249234199524: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 102 | valid.f_iou 0.7796300053596497, valid.f_f-score 0.85504: 0%| | 0/16 [00:04, ?it/s]
epoch 102 | valid.f_iou 0.7796300053596497, valid.f_f-score 0.85504: 6%|█▉ | 1/16 [00:04<01:12, 4.83s/it]
epoch 102 | valid.f_iou 0.7247300148010254, valid.f_f-score 0.87848: 6%|█▉ | 1/16 [00:05<01:12, 4.83s/it]
epoch 102 | valid.f_iou 0.7247300148010254, valid.f_f-score 0.87848: 12%|███▊ | 2/16 [00:05<00:31, 2.27s/it]
epoch 102 | valid.f_iou 0.5958499908447266, valid.f_f-score 0.78421: 12%|███▊ | 2/16 [00:05<00:31, 2.27s/it]
epoch 102 | valid.f_iou 0.5958499908447266, valid.f_f-score 0.78421: 19%|█████▋ | 3/16 [00:05<00:18, 1.44s/it]
epoch 102 | valid.f_iou 0.6267300248146057, valid.f_f-score 0.76332: 19%|█████▋ | 3/16 [00:06<00:18, 1.44s/it]
epoch 102 | valid.f_iou 0.6267300248146057, valid.f_f-score 0.76332: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 102 | valid.f_iou 0.6307899951934814, valid.f_f-score 0.77455: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 102 | valid.f_iou 0.6307899951934814, valid.f_f-score 0.77455: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 102 | valid.f_iou 0.5854099988937378, valid.f_f-score 0.72665: 31%|█████████▍ | 5/16 [00:07<00:09, 1.22it/s]
epoch 102 | valid.f_iou 0.5854099988937378, valid.f_f-score 0.72665: 38%|███████████▎ | 6/16 [00:07<00:07, 1.42it/s]
epoch 102 | valid.f_iou 0.6013799905776978, valid.f_f-score 0.74058: 38%|███████████▎ | 6/16 [00:07<00:07, 1.42it/s]
epoch 102 | valid.f_iou 0.6013799905776978, valid.f_f-score 0.74058: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.66it/s]
epoch 102 | valid.f_iou 0.5825099945068359, valid.f_f-score 0.73352: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.66it/s]
epoch 102 | valid.f_iou 0.5825099945068359, valid.f_f-score 0.73352: 50%|███████████████ | 8/16 [00:07<00:04, 1.83it/s]
epoch 102 | valid.f_iou 0.594760000705719, valid.f_f-score 0.73359: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 102 | valid.f_iou 0.594760000705719, valid.f_f-score 0.73359: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.02it/s]
epoch 102 | valid.f_iou 0.5862200260162354, valid.f_f-score 0.73448: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.02it/s]
epoch 102 | valid.f_iou 0.5862200260162354, valid.f_f-score 0.73448: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.08it/s]
epoch 102 | valid.f_iou 0.5860900282859802, valid.f_f-score 0.73368: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 102 | valid.f_iou 0.5860900282859802, valid.f_f-score 0.73368: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.13it/s]
epoch 102 | valid.f_iou 0.6053199768066406, valid.f_f-score 0.749: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.13it/s]
epoch 102 | valid.f_iou 0.6053199768066406, valid.f_f-score 0.749: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.27it/s]
epoch 102 | valid.f_iou 0.6144099831581116, valid.f_f-score 0.75558: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.27it/s]
epoch 102 | valid.f_iou 0.6144099831581116, valid.f_f-score 0.75558: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.39it/s]
epoch 102 | valid.f_iou 0.6080399751663208, valid.f_f-score 0.75095: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 102 | valid.f_iou 0.6080399751663208, valid.f_f-score 0.75095: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.48it/s]
epoch 102 | valid.f_iou 0.6112200021743774, valid.f_f-score 0.74967: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.48it/s]
epoch 102 | valid.f_iou 0.6112200021743774, valid.f_f-score 0.74967: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.55it/s]
epoch 102 | valid.f_iou 0.612060010433197, valid.f_f-score 0.74581: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 102 | valid.f_iou 0.612060010433197, valid.f_f-score 0.74581: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 102 | valid.f_iou 0.612060010433197, valid.f_f-score 0.74581: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 102 | valid.f_iou 0.8050500154495239, valid.f_f-score 0.79627: 0%| | 0/16 [00:04, ?it/s]
epoch 102 | valid.f_iou 0.8050500154495239, valid.f_f-score 0.79627: 6%|█▉ | 1/16 [00:04<01:00, 4.02s/it]
epoch 102 | valid.f_iou 0.8381199836730957, valid.f_f-score 0.86526: 6%|█▉ | 1/16 [00:05<01:00, 4.02s/it]
epoch 102 | valid.f_iou 0.8381199836730957, valid.f_f-score 0.86526: 12%|███▊ | 2/16 [00:05<00:31, 2.28s/it]
epoch 102 | valid.f_iou 0.7728800177574158, valid.f_f-score 0.84544: 12%|███▊ | 2/16 [00:05<00:31, 2.28s/it]
epoch 102 | valid.f_iou 0.7728800177574158, valid.f_f-score 0.84544: 19%|█████▋ | 3/16 [00:05<00:18, 1.45s/it]
epoch 102 | valid.f_iou 0.7230200171470642, valid.f_f-score 0.77399: 19%|█████▋ | 3/16 [00:05<00:18, 1.45s/it]
epoch 102 | valid.f_iou 0.7230200171470642, valid.f_f-score 0.77399: 25%|███████▌ | 4/16 [00:05<00:12, 1.05s/it]
epoch 102 | valid.f_iou 0.679390013217926, valid.f_f-score 0.74744: 25%|███████▊ | 4/16 [00:06<00:12, 1.05s/it]
epoch 102 | valid.f_iou 0.679390013217926, valid.f_f-score 0.74744: 31%|█████████▋ | 5/16 [00:06<00:09, 1.21it/s]
epoch 102 | valid.f_iou 0.6709700226783752, valid.f_f-score 0.74433: 31%|█████████▍ | 5/16 [00:06<00:09, 1.21it/s]
epoch 102 | valid.f_iou 0.6709700226783752, valid.f_f-score 0.74433: 38%|███████████▎ | 6/16 [00:06<00:06, 1.44it/s]
epoch 102 | valid.f_iou 0.6922100186347961, valid.f_f-score 0.77133: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 102 | valid.f_iou 0.6922100186347961, valid.f_f-score 0.77133: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.65it/s]
epoch 102 | valid.f_iou 0.6880099773406982, valid.f_f-score 0.77552: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.65it/s]
epoch 102 | valid.f_iou 0.6880099773406982, valid.f_f-score 0.77552: 50%|███████████████ | 8/16 [00:07<00:04, 1.83it/s]
epoch 102 | valid.f_iou 0.6963599920272827, valid.f_f-score 0.78174: 50%|███████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 102 | valid.f_iou 0.6963599920272827, valid.f_f-score 0.78174: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.96it/s]
epoch 102 | valid.f_iou 0.7123500108718872, valid.f_f-score 0.79554: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.96it/s]
epoch 102 | valid.f_iou 0.7123500108718872, valid.f_f-score 0.79554: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.14it/s]
epoch 102 | valid.f_iou 0.6896600127220154, valid.f_f-score 0.76708: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.14it/s]
epoch 102 | valid.f_iou 0.6896600127220154, valid.f_f-score 0.76708: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.20it/s]
epoch 102 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.7808: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.20it/s]
epoch 102 | valid.f_iou 0.7039700150489807, valid.f_f-score 0.7808: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.24it/s]
epoch 102 | valid.f_iou 0.7146400213241577, valid.f_f-score 0.7909: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.24it/s]
epoch 102 | valid.f_iou 0.7146400213241577, valid.f_f-score 0.7909: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.30it/s]
epoch 102 | valid.f_iou 0.703719973564148, valid.f_f-score 0.78106: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.30it/s]
epoch 102 | valid.f_iou 0.703719973564148, valid.f_f-score 0.78106: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.42it/s]
epoch 102 | valid.f_iou 0.7084699869155884, valid.f_f-score 0.78607: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.42it/s]
epoch 102 | valid.f_iou 0.7084699869155884, valid.f_f-score 0.78607: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.51it/s]
epoch 102 | valid.f_iou 0.7044299840927124, valid.f_f-score 0.78257: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.51it/s]
epoch 102 | valid.f_iou 0.7044299840927124, valid.f_f-score 0.78257: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.58it/s]
epoch 102 | valid.f_iou 0.7044299840927124, valid.f_f-score 0.78257: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 102 | valid.f_iou 0.8050500154495239, valid.f_f-score 0.79627: 0%| | 0/16 [00:04, ?it/s]
epoch 102 | valid.f_iou 0.8050500154495239, valid.f_f-score 0.79627: 6%|█▉ | 1/16 [00:04<01:00, 4.04s/it]
epoch 102 | valid.f_iou 0.8381199836730957, valid.f_f-score 0.86526: 6%|█▉ | 1/16 [00:04<01:00, 4.04s/it]
epoch 102 | valid.f_iou 0.8381199836730957, valid.f_f-score 0.86526: 12%|███▊ | 2/16 [00:04<00:30, 2.15s/it]
epoch 102 | valid.f_iou 0.7728800177574158, valid.f_f-score 0.84544: 12%|███▊ | 2/16 [00:05<00:30, 2.15s/it]
epoch 102 | valid.f_iou 0.7728800177574158, valid.f_f-score 0.84544: 19%|█████▋ | 3/16 [00:05<00:18, 1.39s/it]
epoch 102 | valid.f_iou 0.7231900095939636, valid.f_f-score 0.77399: 19%|█████▋ | 3/16 [00:05<00:18, 1.39s/it]
epoch 102 | valid.f_iou 0.7231900095939636, valid.f_f-score 0.77399: 25%|███████▌ | 4/16 [00:05<00:12, 1.01s/it]
epoch 102 | valid.f_iou 0.6862499713897705, valid.f_f-score 0.74744: 25%|███████▌ | 4/16 [00:06<00:12, 1.01s/it]
epoch 102 | valid.f_iou 0.6862499713897705, valid.f_f-score 0.74744: 31%|█████████▍ | 5/16 [00:06<00:08, 1.23it/s]
epoch 102 | valid.f_iou 0.6766899824142456, valid.f_f-score 0.74433: 31%|█████████▍ | 5/16 [00:06<00:08, 1.23it/s]
epoch 102 | valid.f_iou 0.6766899824142456, valid.f_f-score 0.74433: 38%|███████████▎ | 6/16 [00:06<00:06, 1.46it/s]
epoch 102 | valid.f_iou 0.7005199790000916, valid.f_f-score 0.77133: 38%|███████████▎ | 6/16 [00:07<00:06, 1.46it/s]
epoch 102 | valid.f_iou 0.7005199790000916, valid.f_f-score 0.77133: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.73it/s]
epoch 102 | valid.f_iou 0.6952800154685974, valid.f_f-score 0.77552: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.73it/s]
epoch 102 | valid.f_iou 0.6952800154685974, valid.f_f-score 0.77552: 50%|███████████████ | 8/16 [00:07<00:04, 1.95it/s]
epoch 102 | valid.f_iou 0.7041800022125244, valid.f_f-score 0.78174: 50%|███████████████ | 8/16 [00:07<00:04, 1.95it/s]
epoch 102 | valid.f_iou 0.7041800022125244, valid.f_f-score 0.78174: 56%|████████████████▉ | 9/16 [00:07<00:03, 2.17it/s]
epoch 102 | valid.f_iou 0.715399980545044, valid.f_f-score 0.79197: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.17it/s]
epoch 102 | valid.f_iou 0.715399980545044, valid.f_f-score 0.79197: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.31it/s]
epoch 102 | valid.f_iou 0.6924300193786621, valid.f_f-score 0.76384: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.31it/s]
epoch 102 | valid.f_iou 0.6924300193786621, valid.f_f-score 0.76384: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.42it/s]
epoch 102 | valid.f_iou 0.7065200209617615, valid.f_f-score 0.77782: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.42it/s]
epoch 102 | valid.f_iou 0.7065200209617615, valid.f_f-score 0.77782: 75%|█████████████████████▊ | 12/16 [00:08<00:01, 2.49it/s]
epoch 102 | valid.f_iou 0.71697998046875, valid.f_f-score 0.78816: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.49it/s]
epoch 102 | valid.f_iou 0.71697998046875, valid.f_f-score 0.78816: 81%|█████████████████████████▏ | 13/16 [00:09<00:01, 2.55it/s]
epoch 102 | valid.f_iou 0.7058899998664856, valid.f_f-score 0.77853: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.55it/s]
epoch 102 | valid.f_iou 0.7058899998664856, valid.f_f-score 0.77853: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.59it/s]
epoch 102 | valid.f_iou 0.7104899883270264, valid.f_f-score 0.78371: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.59it/s]
epoch 102 | valid.f_iou 0.7104899883270264, valid.f_f-score 0.78371: 94%|███████████████████████████▏ | 15/16 [00:09<00:00, 2.63it/s]
epoch 102 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.78035: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 102 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.78035: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.64it/s]
epoch 102 | valid.f_iou 0.7068799734115601, valid.f_f-score 0.78035: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.55it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 103 | loss 0.9244952201843262, f_iou 0.8345816731452942: 0%| | 0/74 [00:05, ?it/s]
epoch 103 | loss 0.9244952201843262, f_iou 0.8345816731452942: 1%|▍ | 1/74 [00:05<06:45, 5.56s/it]
epoch 103 | loss 0.9824638366699219, f_iou 0.8467079401016235: 1%|▍ | 1/74 [00:06<06:45, 5.56s/it]
epoch 103 | loss 0.9824638366699219, f_iou 0.8467079401016235: 3%|▉ | 2/74 [00:06<03:22, 2.81s/it]
epoch 103 | loss 1.0864204168319702, f_iou 0.8463225364685059: 3%|▉ | 2/74 [00:07<03:22, 2.81s/it]
epoch 103 | loss 1.0864204168319702, f_iou 0.8463225364685059: 4%|█▍ | 3/74 [00:07<02:14, 1.89s/it]
epoch 103 | loss 1.7794533967971802, f_iou 0.837565541267395: 4%|█▌ | 3/74 [00:08<02:14, 1.89s/it]
epoch 103 | loss 1.7794533967971802, f_iou 0.837565541267395: 5%|██ | 4/74 [00:08<01:42, 1.47s/it]
epoch 103 | loss 0.7363680601119995, f_iou 0.8535939455032349: 5%|█▉ | 4/74 [00:08<01:42, 1.47s/it]
epoch 103 | loss 0.7363680601119995, f_iou 0.8535939455032349: 7%|██▍ | 5/74 [00:08<01:25, 1.23s/it]
epoch 103 | loss 1.500773549079895, f_iou 0.8343530893325806: 7%|██▌ | 5/74 [00:09<01:25, 1.23s/it]
epoch 103 | loss 1.500773549079895, f_iou 0.8343530893325806: 8%|███ | 6/74 [00:09<01:13, 1.08s/it]
epoch 103 | loss 0.9579329490661621, f_iou 0.8476455807685852: 8%|██▉ | 6/74 [00:10<01:13, 1.08s/it]
epoch 103 | loss 0.9579329490661621, f_iou 0.8476455807685852: 9%|███▍ | 7/74 [00:10<01:05, 1.02it/s]
epoch 103 | loss 1.072245717048645, f_iou 0.8419544100761414: 9%|███▌ | 7/74 [00:11<01:05, 1.02it/s]
epoch 103 | loss 1.072245717048645, f_iou 0.8419544100761414: 11%|████ | 8/74 [00:11<01:00, 1.08it/s]
epoch 103 | loss 0.5515474081039429, f_iou 0.7977187037467957: 11%|███▉ | 8/74 [00:12<01:00, 1.08it/s]
epoch 103 | loss 0.5515474081039429, f_iou 0.7977187037467957: 12%|████▍ | 9/74 [00:12<00:57, 1.14it/s]
epoch 103 | loss 0.4392619729042053, f_iou 0.7223265767097473: 12%|████▍ | 9/74 [00:12<00:57, 1.14it/s]
epoch 103 | loss 0.4392619729042053, f_iou 0.7223265767097473: 14%|████▋ | 10/74 [00:12<00:54, 1.18it/s]
epoch 103 | loss 0.8034220337867737, f_iou 0.7085647583007812: 14%|████▋ | 10/74 [00:13<00:54, 1.18it/s]
epoch 103 | loss 0.8034220337867737, f_iou 0.7085647583007812: 15%|█████▏ | 11/74 [00:13<00:51, 1.23it/s]
epoch 103 | loss 0.30515384674072266, f_iou 0.7303997874259949: 15%|█████ | 11/74 [00:14<00:51, 1.23it/s]
epoch 103 | loss 0.30515384674072266, f_iou 0.7303997874259949: 16%|█████▌ | 12/74 [00:14<00:49, 1.24it/s]
epoch 103 | loss 5.040894508361816, f_iou 0.6989529728889465: 16%|█████▊ | 12/74 [00:15<00:49, 1.24it/s]
epoch 103 | loss 5.040894508361816, f_iou 0.6989529728889465: 18%|██████▎ | 13/74 [00:15<00:48, 1.25it/s]
epoch 103 | loss 2.8815650939941406, f_iou 0.6819440126419067: 18%|██████▏ | 13/74 [00:15<00:48, 1.25it/s]
epoch 103 | loss 2.8815650939941406, f_iou 0.6819440126419067: 19%|██████▌ | 14/74 [00:15<00:47, 1.26it/s]
epoch 103 | loss 0.7205251455307007, f_iou 0.6909257769584656: 19%|██████▌ | 14/74 [00:16<00:47, 1.26it/s]
epoch 103 | loss 0.7205251455307007, f_iou 0.6909257769584656: 20%|███████ | 15/74 [00:16<00:46, 1.26it/s]
epoch 103 | loss 1.0224061012268066, f_iou 0.6999099254608154: 20%|███████ | 15/74 [00:17<00:46, 1.26it/s]
epoch 103 | loss 1.0224061012268066, f_iou 0.6999099254608154: 22%|███████▌ | 16/74 [00:17<00:45, 1.26it/s]
epoch 103 | loss 0.6285312175750732, f_iou 0.7114142775535583: 22%|███████▌ | 16/74 [00:18<00:45, 1.26it/s]
epoch 103 | loss 0.6285312175750732, f_iou 0.7114142775535583: 23%|████████ | 17/74 [00:18<00:45, 1.26it/s]
epoch 103 | loss 0.7951361536979675, f_iou 0.7195871472358704: 23%|████████ | 17/74 [00:19<00:45, 1.26it/s]
epoch 103 | loss 0.7951361536979675, f_iou 0.7195871472358704: 24%|████████▌ | 18/74 [00:19<00:43, 1.27it/s]
epoch 103 | loss 1.2847148180007935, f_iou 0.720604658126831: 24%|████████▊ | 18/74 [00:19<00:43, 1.27it/s]
epoch 103 | loss 1.2847148180007935, f_iou 0.720604658126831: 26%|█████████▏ | 19/74 [00:19<00:42, 1.28it/s]
epoch 103 | loss 1.0383169651031494, f_iou 0.7241019606590271: 26%|████████▉ | 19/74 [00:20<00:42, 1.28it/s]
epoch 103 | loss 1.0383169651031494, f_iou 0.7241019606590271: 27%|█████████▍ | 20/74 [00:20<00:41, 1.29it/s]
epoch 103 | loss 0.5400713682174683, f_iou 0.711793839931488: 27%|█████████▋ | 20/74 [00:21<00:41, 1.29it/s]
epoch 103 | loss 0.5400713682174683, f_iou 0.711793839931488: 28%|██████████▏ | 21/74 [00:21<00:40, 1.31it/s]
epoch 103 | loss 1.6015002727508545, f_iou 0.7214085459709167: 28%|█████████▉ | 21/74 [00:22<00:40, 1.31it/s]
epoch 103 | loss 1.6015002727508545, f_iou 0.7214085459709167: 30%|██████████▍ | 22/74 [00:22<00:38, 1.34it/s]
epoch 103 | loss 2.5025010108947754, f_iou 0.7178119421005249: 30%|██████████▍ | 22/74 [00:22<00:38, 1.34it/s]
epoch 103 | loss 2.5025010108947754, f_iou 0.7178119421005249: 31%|██████████▉ | 23/74 [00:22<00:38, 1.33it/s]
epoch 103 | loss 0.8254021406173706, f_iou 0.6881503462791443: 31%|██████████▉ | 23/74 [00:23<00:38, 1.33it/s]
epoch 103 | loss 0.8254021406173706, f_iou 0.6881503462791443: 32%|███████████▎ | 24/74 [00:23<00:37, 1.34it/s]
epoch 103 | loss 2.0363173484802246, f_iou 0.6917577981948853: 32%|███████████▎ | 24/74 [00:24<00:37, 1.34it/s]
epoch 103 | loss 2.0363173484802246, f_iou 0.6917577981948853: 34%|███████████▊ | 25/74 [00:24<00:36, 1.36it/s]
epoch 103 | loss 1.800572156906128, f_iou 0.6982380151748657: 34%|████████████▏ | 25/74 [00:24<00:36, 1.36it/s]
epoch 103 | loss 1.800572156906128, f_iou 0.6982380151748657: 35%|████████████▋ | 26/74 [00:24<00:35, 1.37it/s]
epoch 103 | loss 0.637851357460022, f_iou 0.7085273861885071: 35%|████████████▋ | 26/74 [00:25<00:35, 1.37it/s]
epoch 103 | loss 0.637851357460022, f_iou 0.7085273861885071: 36%|█████████████▏ | 27/74 [00:25<00:36, 1.30it/s]
epoch 103 | loss 0.6481220722198486, f_iou 0.7111219763755798: 36%|████████████▊ | 27/74 [00:26<00:36, 1.30it/s]
epoch 103 | loss 0.6481220722198486, f_iou 0.7111219763755798: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.32it/s]
epoch 103 | loss 2.41768217086792, f_iou 0.7138768434524536: 38%|██████████████ | 28/74 [00:27<00:34, 1.32it/s]
epoch 103 | loss 2.41768217086792, f_iou 0.7138768434524536: 39%|██████████████▌ | 29/74 [00:27<00:33, 1.34it/s]
epoch 103 | loss 0.7041198015213013, f_iou 0.7142364978790283: 39%|█████████████▋ | 29/74 [00:27<00:33, 1.34it/s]
epoch 103 | loss 0.7041198015213013, f_iou 0.7142364978790283: 41%|██████████████▏ | 30/74 [00:27<00:32, 1.35it/s]
epoch 103 | loss 1.5820066928863525, f_iou 0.7162519693374634: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.35it/s]
epoch 103 | loss 1.5820066928863525, f_iou 0.7162519693374634: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.36it/s]
epoch 103 | loss 0.3275761306285858, f_iou 0.722564160823822: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 103 | loss 0.3275761306285858, f_iou 0.722564160823822: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.34it/s]
epoch 103 | loss 0.6011706590652466, f_iou 0.7255071997642517: 43%|███████████████▏ | 32/74 [00:30<00:31, 1.34it/s]
epoch 103 | loss 0.6011706590652466, f_iou 0.7255071997642517: 45%|███████████████▌ | 33/74 [00:30<00:30, 1.35it/s]
epoch 103 | loss 0.8782818913459778, f_iou 0.7301868796348572: 45%|███████████████▌ | 33/74 [00:30<00:30, 1.35it/s]
epoch 103 | loss 0.8782818913459778, f_iou 0.7301868796348572: 46%|████████████████ | 34/74 [00:30<00:29, 1.36it/s]
epoch 103 | loss 1.177697777748108, f_iou 0.7342526912689209: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.36it/s]
epoch 103 | loss 1.177697777748108, f_iou 0.7342526912689209: 47%|█████████████████ | 35/74 [00:31<00:28, 1.37it/s]
epoch 103 | loss 3.6088132858276367, f_iou 0.7258696556091309: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.37it/s]
epoch 103 | loss 3.6088132858276367, f_iou 0.7258696556091309: 49%|█████████████████ | 36/74 [00:32<00:27, 1.37it/s]
epoch 103 | loss 0.615534245967865, f_iou 0.7311636209487915: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.37it/s]
epoch 103 | loss 0.615534245967865, f_iou 0.7311636209487915: 50%|██████████████████ | 37/74 [00:33<00:26, 1.37it/s]
epoch 103 | loss 0.6369432806968689, f_iou 0.7326899766921997: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.37it/s]
epoch 103 | loss 0.6369432806968689, f_iou 0.7326899766921997: 51%|█████████████████▉ | 38/74 [00:33<00:26, 1.38it/s]
epoch 103 | loss 0.9640184640884399, f_iou 0.7156260013580322: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 103 | loss 0.9640184640884399, f_iou 0.7156260013580322: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 103 | loss 0.801485002040863, f_iou 0.7128067016601562: 53%|██████████████████▉ | 39/74 [00:35<00:25, 1.38it/s]
epoch 103 | loss 0.801485002040863, f_iou 0.7128067016601562: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.39it/s]
epoch 103 | loss 0.4871348440647125, f_iou 0.7186232805252075: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.39it/s]
epoch 103 | loss 0.4871348440647125, f_iou 0.7186232805252075: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.39it/s]
epoch 103 | loss 0.8183610439300537, f_iou 0.7205941677093506: 55%|███████████████████▍ | 41/74 [00:36<00:23, 1.39it/s]
epoch 103 | loss 0.8183610439300537, f_iou 0.7205941677093506: 57%|███████████████████▊ | 42/74 [00:36<00:23, 1.39it/s]
epoch 103 | loss 0.9055784344673157, f_iou 0.724172830581665: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.39it/s]
epoch 103 | loss 0.9055784344673157, f_iou 0.724172830581665: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.39it/s]
epoch 103 | loss 1.242971420288086, f_iou 0.7239270806312561: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.39it/s]
epoch 103 | loss 1.242971420288086, f_iou 0.7239270806312561: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.36it/s]
epoch 103 | loss 2.9578123092651367, f_iou 0.7227839231491089: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.36it/s]
epoch 103 | loss 2.9578123092651367, f_iou 0.7227839231491089: 61%|█████████████████████▎ | 45/74 [00:38<00:21, 1.33it/s]
epoch 103 | loss 1.1110525131225586, f_iou 0.7264537811279297: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.33it/s]
epoch 103 | loss 1.1110525131225586, f_iou 0.7264537811279297: 62%|█████████████████████▊ | 46/74 [00:39<00:21, 1.30it/s]
epoch 103 | loss 0.9932369589805603, f_iou 0.7273983955383301: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.30it/s]
epoch 103 | loss 0.9932369589805603, f_iou 0.7273983955383301: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.31it/s]
epoch 103 | loss 0.6490737795829773, f_iou 0.7294789552688599: 64%|██████████████████████▏ | 47/74 [00:41<00:20, 1.31it/s]
epoch 103 | loss 0.6490737795829773, f_iou 0.7294789552688599: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.33it/s]
epoch 103 | loss 0.6991162300109863, f_iou 0.7326518893241882: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.33it/s]
epoch 103 | loss 0.6991162300109863, f_iou 0.7326518893241882: 66%|███████████████████████▏ | 49/74 [00:41<00:18, 1.35it/s]
epoch 103 | loss 1.0284929275512695, f_iou 0.7254223227500916: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.35it/s]
epoch 103 | loss 1.0284929275512695, f_iou 0.7254223227500916: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.34it/s]
epoch 103 | loss 1.9916614294052124, f_iou 0.7254005670547485: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.34it/s]
epoch 103 | loss 1.9916614294052124, f_iou 0.7254005670547485: 69%|████████████████████████ | 51/74 [00:43<00:17, 1.32it/s]
epoch 103 | loss 0.9028904438018799, f_iou 0.7259520292282104: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.32it/s]
epoch 103 | loss 0.9028904438018799, f_iou 0.7259520292282104: 70%|████████████████████████▌ | 52/74 [00:44<00:16, 1.30it/s]
epoch 103 | loss 0.4023619592189789, f_iou 0.7305792570114136: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.30it/s]
epoch 103 | loss 0.4023619592189789, f_iou 0.7305792570114136: 72%|█████████████████████████ | 53/74 [00:45<00:16, 1.29it/s]
epoch 103 | loss 1.1173129081726074, f_iou 0.7342700958251953: 72%|█████████████████████████ | 53/74 [00:45<00:16, 1.29it/s]
epoch 103 | loss 1.1173129081726074, f_iou 0.7342700958251953: 73%|█████████████████████████▌ | 54/74 [00:45<00:15, 1.32it/s]
epoch 103 | loss 0.3090673089027405, f_iou 0.7371619343757629: 73%|█████████████████████████▌ | 54/74 [00:46<00:15, 1.32it/s]
epoch 103 | loss 0.3090673089027405, f_iou 0.7371619343757629: 74%|██████████████████████████ | 55/74 [00:46<00:14, 1.33it/s]
epoch 103 | loss 0.8575818538665771, f_iou 0.7404809594154358: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.33it/s]
epoch 103 | loss 0.8575818538665771, f_iou 0.7404809594154358: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.35it/s]
epoch 103 | loss 1.4189445972442627, f_iou 0.7366564869880676: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.35it/s]
epoch 103 | loss 1.4189445972442627, f_iou 0.7366564869880676: 77%|██████████████████████████▉ | 57/74 [00:47<00:12, 1.35it/s]
epoch 103 | loss 1.175858497619629, f_iou 0.7368461489677429: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.35it/s]
epoch 103 | loss 1.175858497619629, f_iou 0.7368461489677429: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.37it/s]
epoch 103 | loss 0.8666833639144897, f_iou 0.7393537759780884: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.37it/s]
epoch 103 | loss 0.8666833639144897, f_iou 0.7393537759780884: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.37it/s]
epoch 103 | loss 1.3360164165496826, f_iou 0.7302157878875732: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.37it/s]
epoch 103 | loss 1.3360164165496826, f_iou 0.7302157878875732: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.38it/s]
epoch 103 | loss 0.6178131103515625, f_iou 0.7307100296020508: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.38it/s]
epoch 103 | loss 0.6178131103515625, f_iou 0.7307100296020508: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.38it/s]
epoch 103 | loss 2.7591986656188965, f_iou 0.7248713374137878: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 103 | loss 2.7591986656188965, f_iou 0.7248713374137878: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.36it/s]
epoch 103 | loss 0.9939213395118713, f_iou 0.726767361164093: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.36it/s]
epoch 103 | loss 0.9939213395118713, f_iou 0.726767361164093: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.36it/s]
epoch 103 | loss 0.35966625809669495, f_iou 0.7305264472961426: 85%|████████████████████████████▉ | 63/74 [00:53<00:08, 1.36it/s]
epoch 103 | loss 0.35966625809669495, f_iou 0.7305264472961426: 86%|█████████████████████████████▍ | 64/74 [00:53<00:07, 1.36it/s]
epoch 103 | loss 1.0359370708465576, f_iou 0.7205352187156677: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.36it/s]
epoch 103 | loss 1.0359370708465576, f_iou 0.7205352187156677: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.35it/s]
epoch 103 | loss 1.459700345993042, f_iou 0.7195920944213867: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.35it/s]
epoch 103 | loss 1.459700345993042, f_iou 0.7195920944213867: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.35it/s]
epoch 103 | loss 1.201223373413086, f_iou 0.7219067811965942: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.35it/s]
epoch 103 | loss 1.201223373413086, f_iou 0.7219067811965942: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.36it/s]
epoch 103 | loss 1.5532536506652832, f_iou 0.7126351594924927: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.36it/s]
epoch 103 | loss 1.5532536506652832, f_iou 0.7126351594924927: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.36it/s]
epoch 103 | loss 0.5916558504104614, f_iou 0.7134824991226196: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.36it/s]
epoch 103 | loss 0.5916558504104614, f_iou 0.7134824991226196: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.37it/s]
epoch 103 | loss 3.5731287002563477, f_iou 0.7087939977645874: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.37it/s]
epoch 103 | loss 3.5731287002563477, f_iou 0.7087939977645874: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 103 | loss 1.4635686874389648, f_iou 0.7100275754928589: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.38it/s]
epoch 103 | loss 1.4635686874389648, f_iou 0.7100275754928589: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.38it/s]
epoch 103 | loss 0.7368431091308594, f_iou 0.7131312489509583: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.38it/s]
epoch 103 | loss 0.7368431091308594, f_iou 0.7131312489509583: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.39it/s]
epoch 103 | loss 0.873058021068573, f_iou 0.7136613726615906: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 103 | loss 0.873058021068573, f_iou 0.7136613726615906: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 103 | loss 1.9130215644836426, f_iou 0.7092453837394714: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 103 | loss 1.9130215644836426, f_iou 0.7092453837394714: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 103 | loss 1.9130215644836426, f_iou 0.7092453837394714: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 103 | valid.f_iou 0.7135000228881836, valid.f_f-score 0.7962: 0%| | 0/16 [00:05, ?it/s]
epoch 103 | valid.f_iou 0.7135000228881836, valid.f_f-score 0.7962: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 103 | valid.f_iou 0.6782400012016296, valid.f_f-score 0.84328: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 103 | valid.f_iou 0.6782400012016296, valid.f_f-score 0.84328: 12%|███▊ | 2/16 [00:05<00:34, 2.46s/it]
epoch 103 | valid.f_iou 0.5336700081825256, valid.f_f-score 0.75725: 12%|███▊ | 2/16 [00:06<00:34, 2.46s/it]
epoch 103 | valid.f_iou 0.5336700081825256, valid.f_f-score 0.75725: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 103 | valid.f_iou 0.5522300004959106, valid.f_f-score 0.73158: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 103 | valid.f_iou 0.5522300004959106, valid.f_f-score 0.73158: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 103 | valid.f_iou 0.559939980506897, valid.f_f-score 0.73662: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 103 | valid.f_iou 0.559939980506897, valid.f_f-score 0.73662: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 103 | valid.f_iou 0.5249900221824646, valid.f_f-score 0.69302: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 103 | valid.f_iou 0.5249900221824646, valid.f_f-score 0.69302: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 103 | valid.f_iou 0.5460000038146973, valid.f_f-score 0.71478: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 103 | valid.f_iou 0.5460000038146973, valid.f_f-score 0.71478: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 103 | valid.f_iou 0.5151900053024292, valid.f_f-score 0.6918: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 103 | valid.f_iou 0.5151900053024292, valid.f_f-score 0.6918: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 103 | valid.f_iou 0.5351600050926208, valid.f_f-score 0.69686: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 103 | valid.f_iou 0.5351600050926208, valid.f_f-score 0.69686: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 103 | valid.f_iou 0.5220400094985962, valid.f_f-score 0.69868: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.94it/s]
epoch 103 | valid.f_iou 0.5220400094985962, valid.f_f-score 0.69868: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 103 | valid.f_iou 0.5307499766349792, valid.f_f-score 0.70193: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 103 | valid.f_iou 0.5307499766349792, valid.f_f-score 0.70193: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.09it/s]
epoch 103 | valid.f_iou 0.5486699938774109, valid.f_f-score 0.71838: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.09it/s]
epoch 103 | valid.f_iou 0.5486699938774109, valid.f_f-score 0.71838: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.24it/s]
epoch 103 | valid.f_iou 0.5549100041389465, valid.f_f-score 0.72503: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.24it/s]
epoch 103 | valid.f_iou 0.5549100041389465, valid.f_f-score 0.72503: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.37it/s]
epoch 103 | valid.f_iou 0.5501099824905396, valid.f_f-score 0.71988: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.37it/s]
epoch 103 | valid.f_iou 0.5501099824905396, valid.f_f-score 0.71988: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.46it/s]
epoch 103 | valid.f_iou 0.5566999912261963, valid.f_f-score 0.72099: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 103 | valid.f_iou 0.5566999912261963, valid.f_f-score 0.72099: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 103 | valid.f_iou 0.5615800023078918, valid.f_f-score 0.71888: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 103 | valid.f_iou 0.5615800023078918, valid.f_f-score 0.71888: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 103 | valid.f_iou 0.5615800023078918, valid.f_f-score 0.71888: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 103 | valid.f_iou 0.7928599715232849, valid.f_f-score 0.80189: 0%| | 0/16 [00:04, ?it/s]
epoch 103 | valid.f_iou 0.7928599715232849, valid.f_f-score 0.80189: 6%|█▉ | 1/16 [00:04<01:10, 4.71s/it]
epoch 103 | valid.f_iou 0.8305000066757202, valid.f_f-score 0.86892: 6%|█▉ | 1/16 [00:05<01:10, 4.71s/it]
epoch 103 | valid.f_iou 0.8305000066757202, valid.f_f-score 0.86892: 12%|███▊ | 2/16 [00:05<00:30, 2.21s/it]
epoch 103 | valid.f_iou 0.7512099742889404, valid.f_f-score 0.84085: 12%|███▊ | 2/16 [00:05<00:30, 2.21s/it]
epoch 103 | valid.f_iou 0.7512099742889404, valid.f_f-score 0.84085: 19%|█████▋ | 3/16 [00:05<00:18, 1.41s/it]
epoch 103 | valid.f_iou 0.7407000064849854, valid.f_f-score 0.80709: 19%|█████▋ | 3/16 [00:06<00:18, 1.41s/it]
epoch 103 | valid.f_iou 0.7407000064849854, valid.f_f-score 0.80709: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 103 | valid.f_iou 0.7167699933052063, valid.f_f-score 0.80418: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 103 | valid.f_iou 0.7167699933052063, valid.f_f-score 0.80418: 31%|█████████▍ | 5/16 [00:06<00:08, 1.24it/s]
epoch 103 | valid.f_iou 0.7010999917984009, valid.f_f-score 0.79571: 31%|█████████▍ | 5/16 [00:06<00:08, 1.24it/s]
epoch 103 | valid.f_iou 0.7010999917984009, valid.f_f-score 0.79571: 38%|███████████▎ | 6/16 [00:06<00:06, 1.46it/s]
epoch 103 | valid.f_iou 0.719539999961853, valid.f_f-score 0.81605: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 103 | valid.f_iou 0.719539999961853, valid.f_f-score 0.81605: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.73it/s]
epoch 103 | valid.f_iou 0.7091400027275085, valid.f_f-score 0.81349: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.73it/s]
epoch 103 | valid.f_iou 0.7091400027275085, valid.f_f-score 0.81349: 50%|███████████████ | 8/16 [00:07<00:04, 1.91it/s]
epoch 103 | valid.f_iou 0.7128599882125854, valid.f_f-score 0.81521: 50%|███████████████ | 8/16 [00:08<00:04, 1.91it/s]
epoch 103 | valid.f_iou 0.7128599882125854, valid.f_f-score 0.81521: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.13it/s]
epoch 103 | valid.f_iou 0.7293999791145325, valid.f_f-score 0.82703: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.13it/s]
epoch 103 | valid.f_iou 0.7293999791145325, valid.f_f-score 0.82703: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.29it/s]
epoch 103 | valid.f_iou 0.7181100249290466, valid.f_f-score 0.81286: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.29it/s]
epoch 103 | valid.f_iou 0.7181100249290466, valid.f_f-score 0.81286: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.40it/s]
epoch 103 | valid.f_iou 0.7300199866294861, valid.f_f-score 0.82276: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.40it/s]
epoch 103 | valid.f_iou 0.7300199866294861, valid.f_f-score 0.82276: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.49it/s]
epoch 103 | valid.f_iou 0.7388399839401245, valid.f_f-score 0.82901: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.49it/s]
epoch 103 | valid.f_iou 0.7388399839401245, valid.f_f-score 0.82901: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.56it/s]
epoch 103 | valid.f_iou 0.7269899845123291, valid.f_f-score 0.81722: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.56it/s]
epoch 103 | valid.f_iou 0.7269899845123291, valid.f_f-score 0.81722: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.61it/s]
epoch 103 | valid.f_iou 0.7372599840164185, valid.f_f-score 0.82652: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 103 | valid.f_iou 0.7372599840164185, valid.f_f-score 0.82652: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 103 | valid.f_iou 0.7346699833869934, valid.f_f-score 0.82442: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 103 | valid.f_iou 0.7346699833869934, valid.f_f-score 0.82442: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.66it/s]
epoch 103 | valid.f_iou 0.7346699833869934, valid.f_f-score 0.82442: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.51it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 103 | valid.f_iou 0.7928599715232849, valid.f_f-score 0.80189: 0%| | 0/16 [00:05, ?it/s]
epoch 103 | valid.f_iou 0.7928599715232849, valid.f_f-score 0.80189: 6%|█▉ | 1/16 [00:05<01:18, 5.26s/it]
epoch 103 | valid.f_iou 0.8305000066757202, valid.f_f-score 0.86892: 6%|█▉ | 1/16 [00:05<01:18, 5.26s/it]
epoch 103 | valid.f_iou 0.8305000066757202, valid.f_f-score 0.86892: 12%|███▊ | 2/16 [00:05<00:34, 2.43s/it]
epoch 103 | valid.f_iou 0.7512099742889404, valid.f_f-score 0.84085: 12%|███▊ | 2/16 [00:06<00:34, 2.43s/it]
epoch 103 | valid.f_iou 0.7512099742889404, valid.f_f-score 0.84085: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 103 | valid.f_iou 0.7408900260925293, valid.f_f-score 0.80709: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 103 | valid.f_iou 0.7408900260925293, valid.f_f-score 0.80709: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 103 | valid.f_iou 0.7235100269317627, valid.f_f-score 0.80418: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 103 | valid.f_iou 0.7235100269317627, valid.f_f-score 0.80418: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 103 | valid.f_iou 0.7067199945449829, valid.f_f-score 0.79571: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 103 | valid.f_iou 0.7067199945449829, valid.f_f-score 0.79571: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 103 | valid.f_iou 0.7261800169944763, valid.f_f-score 0.81605: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 103 | valid.f_iou 0.7261800169944763, valid.f_f-score 0.81605: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.57it/s]
epoch 103 | valid.f_iou 0.7149500250816345, valid.f_f-score 0.81349: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 103 | valid.f_iou 0.7149500250816345, valid.f_f-score 0.81349: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 103 | valid.f_iou 0.7218800187110901, valid.f_f-score 0.81521: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 103 | valid.f_iou 0.7218800187110901, valid.f_f-score 0.81521: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.99it/s]
epoch 103 | valid.f_iou 0.7332000136375427, valid.f_f-score 0.82341: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.99it/s]
epoch 103 | valid.f_iou 0.7332000136375427, valid.f_f-score 0.82341: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.06it/s]
epoch 103 | valid.f_iou 0.7215700149536133, valid.f_f-score 0.80957: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.06it/s]
epoch 103 | valid.f_iou 0.7215700149536133, valid.f_f-score 0.80957: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.15it/s]
epoch 103 | valid.f_iou 0.7332000136375427, valid.f_f-score 0.81974: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.15it/s]
epoch 103 | valid.f_iou 0.7332000136375427, valid.f_f-score 0.81974: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 103 | valid.f_iou 0.7417399883270264, valid.f_f-score 0.82622: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 103 | valid.f_iou 0.7417399883270264, valid.f_f-score 0.82622: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.41it/s]
epoch 103 | valid.f_iou 0.7296800017356873, valid.f_f-score 0.81464: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.41it/s]
epoch 103 | valid.f_iou 0.7296800017356873, valid.f_f-score 0.81464: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.49it/s]
epoch 103 | valid.f_iou 0.7397699952125549, valid.f_f-score 0.82411: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 103 | valid.f_iou 0.7397699952125549, valid.f_f-score 0.82411: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 103 | valid.f_iou 0.737529993057251, valid.f_f-score 0.82216: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 103 | valid.f_iou 0.737529993057251, valid.f_f-score 0.82216: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 103 | valid.f_iou 0.737529993057251, valid.f_f-score 0.82216: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 104 | loss 0.45742738246917725, f_iou 0.9269315600395203: 0%| | 0/74 [00:05, ?it/s]
epoch 104 | loss 0.45742738246917725, f_iou 0.9269315600395203: 1%|▍ | 1/74 [00:05<07:07, 5.85s/it]
epoch 104 | loss 0.5618487596511841, f_iou 0.9443128108978271: 1%|▍ | 1/74 [00:06<07:07, 5.85s/it]
epoch 104 | loss 0.5618487596511841, f_iou 0.9443128108978271: 3%|▉ | 2/74 [00:06<03:26, 2.87s/it]
epoch 104 | loss 1.582740306854248, f_iou 0.8045578002929688: 3%|█ | 2/74 [00:07<03:26, 2.87s/it]
epoch 104 | loss 1.582740306854248, f_iou 0.8045578002929688: 4%|█▌ | 3/74 [00:07<02:14, 1.90s/it]
epoch 104 | loss 1.2671706676483154, f_iou 0.778956413269043: 4%|█▌ | 3/74 [00:08<02:14, 1.90s/it]
epoch 104 | loss 1.2671706676483154, f_iou 0.778956413269043: 5%|██ | 4/74 [00:08<01:42, 1.46s/it]
epoch 104 | loss 1.1178061962127686, f_iou 0.7957968711853027: 5%|█▉ | 4/74 [00:08<01:42, 1.46s/it]
epoch 104 | loss 1.1178061962127686, f_iou 0.7957968711853027: 7%|██▍ | 5/74 [00:08<01:22, 1.20s/it]
epoch 104 | loss 1.1418629884719849, f_iou 0.6802935600280762: 7%|██▍ | 5/74 [00:09<01:22, 1.20s/it]
epoch 104 | loss 1.1418629884719849, f_iou 0.6802935600280762: 8%|██▉ | 6/74 [00:09<01:10, 1.04s/it]
epoch 104 | loss 0.6927304267883301, f_iou 0.6865517497062683: 8%|██▉ | 6/74 [00:10<01:10, 1.04s/it]
epoch 104 | loss 0.6927304267883301, f_iou 0.6865517497062683: 9%|███▍ | 7/74 [00:10<01:02, 1.07it/s]
epoch 104 | loss 1.2697800397872925, f_iou 0.6955967545509338: 9%|███▍ | 7/74 [00:11<01:02, 1.07it/s]
epoch 104 | loss 1.2697800397872925, f_iou 0.6955967545509338: 11%|███▉ | 8/74 [00:11<00:56, 1.16it/s]
epoch 104 | loss 1.3116662502288818, f_iou 0.6850202679634094: 11%|███▉ | 8/74 [00:11<00:56, 1.16it/s]
epoch 104 | loss 1.3116662502288818, f_iou 0.6850202679634094: 12%|████▍ | 9/74 [00:11<00:54, 1.20it/s]
epoch 104 | loss 0.47232699394226074, f_iou 0.708143949508667: 12%|████▍ | 9/74 [00:12<00:54, 1.20it/s]
epoch 104 | loss 0.47232699394226074, f_iou 0.708143949508667: 14%|████▋ | 10/74 [00:12<00:52, 1.22it/s]
epoch 104 | loss 1.4565080404281616, f_iou 0.7186541557312012: 14%|████▋ | 10/74 [00:13<00:52, 1.22it/s]
epoch 104 | loss 1.4565080404281616, f_iou 0.7186541557312012: 15%|█████▏ | 11/74 [00:13<00:49, 1.27it/s]
epoch 104 | loss 1.7202636003494263, f_iou 0.7314361929893494: 15%|█████▏ | 11/74 [00:14<00:49, 1.27it/s]
epoch 104 | loss 1.7202636003494263, f_iou 0.7314361929893494: 16%|█████▋ | 12/74 [00:14<00:47, 1.30it/s]
epoch 104 | loss 1.420363187789917, f_iou 0.7411401271820068: 16%|█████▊ | 12/74 [00:14<00:47, 1.30it/s]
epoch 104 | loss 1.420363187789917, f_iou 0.7411401271820068: 18%|██████▎ | 13/74 [00:14<00:45, 1.33it/s]
epoch 104 | loss 0.8777794241905212, f_iou 0.7064434885978699: 18%|██████▏ | 13/74 [00:15<00:45, 1.33it/s]
epoch 104 | loss 0.8777794241905212, f_iou 0.7064434885978699: 19%|██████▌ | 14/74 [00:15<00:44, 1.34it/s]
epoch 104 | loss 0.0, f_iou 0.7189105749130249: 19%|█████████▍ | 14/74 [00:16<00:44, 1.34it/s]
epoch 104 | loss 0.0, f_iou 0.7189105749130249: 20%|██████████▏ | 15/74 [00:16<00:43, 1.36it/s]
epoch 104 | loss 0.5905792713165283, f_iou 0.7167657613754272: 20%|███████ | 15/74 [00:16<00:43, 1.36it/s]
epoch 104 | loss 0.5905792713165283, f_iou 0.7167657613754272: 22%|███████▌ | 16/74 [00:16<00:42, 1.37it/s]
epoch 104 | loss 0.8429521918296814, f_iou 0.7310284376144409: 22%|███████▌ | 16/74 [00:17<00:42, 1.37it/s]
epoch 104 | loss 0.8429521918296814, f_iou 0.7310284376144409: 23%|████████ | 17/74 [00:17<00:41, 1.37it/s]
epoch 104 | loss 1.2791492938995361, f_iou 0.7323156595230103: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 104 | loss 1.2791492938995361, f_iou 0.7323156595230103: 24%|████████▌ | 18/74 [00:18<00:40, 1.37it/s]
epoch 104 | loss 1.5107669830322266, f_iou 0.7233261466026306: 24%|████████▌ | 18/74 [00:19<00:40, 1.37it/s]
epoch 104 | loss 1.5107669830322266, f_iou 0.7233261466026306: 26%|████████▉ | 19/74 [00:19<00:39, 1.38it/s]
epoch 104 | loss 1.356945276260376, f_iou 0.7145463228225708: 26%|█████████▏ | 19/74 [00:19<00:39, 1.38it/s]
epoch 104 | loss 1.356945276260376, f_iou 0.7145463228225708: 27%|█████████▋ | 20/74 [00:19<00:39, 1.38it/s]
epoch 104 | loss 1.9220798015594482, f_iou 0.7164897322654724: 27%|█████████▍ | 20/74 [00:20<00:39, 1.38it/s]
epoch 104 | loss 1.9220798015594482, f_iou 0.7164897322654724: 28%|█████████▉ | 21/74 [00:20<00:38, 1.39it/s]
epoch 104 | loss 1.7654536962509155, f_iou 0.7005515098571777: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 104 | loss 1.7654536962509155, f_iou 0.7005515098571777: 30%|██████████▍ | 22/74 [00:21<00:37, 1.37it/s]
epoch 104 | loss 0.7099395394325256, f_iou 0.7095944881439209: 30%|██████████▍ | 22/74 [00:22<00:37, 1.37it/s]
epoch 104 | loss 0.7099395394325256, f_iou 0.7095944881439209: 31%|██████████▉ | 23/74 [00:22<00:38, 1.34it/s]
epoch 104 | loss 0.9138755202293396, f_iou 0.7182822227478027: 31%|██████████▉ | 23/74 [00:22<00:38, 1.34it/s]
epoch 104 | loss 0.9138755202293396, f_iou 0.7182822227478027: 32%|███████████▎ | 24/74 [00:22<00:37, 1.32it/s]
epoch 104 | loss 0.6648780107498169, f_iou 0.7050002217292786: 32%|███████████▎ | 24/74 [00:23<00:37, 1.32it/s]
epoch 104 | loss 0.6648780107498169, f_iou 0.7050002217292786: 34%|███████████▊ | 25/74 [00:23<00:37, 1.30it/s]
epoch 104 | loss 0.6923048496246338, f_iou 0.7099414467811584: 34%|███████████▊ | 25/74 [00:24<00:37, 1.30it/s]
epoch 104 | loss 0.6923048496246338, f_iou 0.7099414467811584: 35%|████████████▎ | 26/74 [00:24<00:37, 1.29it/s]
epoch 104 | loss 1.1304552555084229, f_iou 0.7136458158493042: 35%|████████████▎ | 26/74 [00:25<00:37, 1.29it/s]
epoch 104 | loss 1.1304552555084229, f_iou 0.7136458158493042: 36%|████████████▊ | 27/74 [00:25<00:35, 1.31it/s]
epoch 104 | loss 0.9212876558303833, f_iou 0.712643027305603: 36%|█████████████▏ | 27/74 [00:25<00:35, 1.31it/s]
epoch 104 | loss 0.9212876558303833, f_iou 0.712643027305603: 38%|█████████████▌ | 28/74 [00:25<00:34, 1.33it/s]
epoch 104 | loss 0.7902708053588867, f_iou 0.7128651142120361: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.33it/s]
epoch 104 | loss 0.7902708053588867, f_iou 0.7128651142120361: 39%|█████████████▋ | 29/74 [00:26<00:33, 1.35it/s]
epoch 104 | loss 0.6417416930198669, f_iou 0.7137401103973389: 39%|█████████████▋ | 29/74 [00:27<00:33, 1.35it/s]
epoch 104 | loss 0.6417416930198669, f_iou 0.7137401103973389: 41%|██████████████▏ | 30/74 [00:27<00:32, 1.36it/s]
epoch 104 | loss 1.1621278524398804, f_iou 0.7155916094779968: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.36it/s]
epoch 104 | loss 1.1621278524398804, f_iou 0.7155916094779968: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.37it/s]
epoch 104 | loss 0.8411553502082825, f_iou 0.7204962968826294: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.37it/s]
epoch 104 | loss 0.8411553502082825, f_iou 0.7204962968826294: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.38it/s]
epoch 104 | loss 1.9965717792510986, f_iou 0.7109606862068176: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.38it/s]
epoch 104 | loss 1.9965717792510986, f_iou 0.7109606862068176: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.38it/s]
epoch 104 | loss 1.146191120147705, f_iou 0.7134773135185242: 45%|████████████████ | 33/74 [00:30<00:29, 1.38it/s]
epoch 104 | loss 1.146191120147705, f_iou 0.7134773135185242: 46%|████████████████▌ | 34/74 [00:30<00:28, 1.38it/s]
epoch 104 | loss 1.0902822017669678, f_iou 0.7187247276306152: 46%|████████████████ | 34/74 [00:30<00:28, 1.38it/s]
epoch 104 | loss 1.0902822017669678, f_iou 0.7187247276306152: 47%|████████████████▌ | 35/74 [00:30<00:28, 1.39it/s]
epoch 104 | loss 0.777167797088623, f_iou 0.724152147769928: 47%|█████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 104 | loss 0.777167797088623, f_iou 0.724152147769928: 49%|██████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 104 | loss 1.6203538179397583, f_iou 0.7257404923439026: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 104 | loss 1.6203538179397583, f_iou 0.7257404923439026: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 104 | loss 0.6021669507026672, f_iou 0.7312023043632507: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 104 | loss 0.6021669507026672, f_iou 0.7312023043632507: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.39it/s]
epoch 104 | loss 2.3927390575408936, f_iou 0.7225452065467834: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.39it/s]
epoch 104 | loss 2.3927390575408936, f_iou 0.7225452065467834: 53%|██████████████████▍ | 39/74 [00:33<00:25, 1.39it/s]
epoch 104 | loss 1.0191936492919922, f_iou 0.7141982913017273: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 104 | loss 1.0191936492919922, f_iou 0.7141982913017273: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.39it/s]
epoch 104 | loss 0.4739723205566406, f_iou 0.7157442569732666: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.39it/s]
epoch 104 | loss 0.4739723205566406, f_iou 0.7157442569732666: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.40it/s]
epoch 104 | loss 2.2641570568084717, f_iou 0.7114257216453552: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.40it/s]
epoch 104 | loss 2.2641570568084717, f_iou 0.7114257216453552: 57%|███████████████████▊ | 42/74 [00:35<00:22, 1.40it/s]
epoch 104 | loss 0.0, f_iou 0.7181017398834229: 57%|████████████████████████████▍ | 42/74 [00:36<00:22, 1.40it/s]
epoch 104 | loss 0.0, f_iou 0.7181017398834229: 58%|█████████████████████████████ | 43/74 [00:36<00:22, 1.40it/s]
epoch 104 | loss 1.2554962635040283, f_iou 0.723120927810669: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.40it/s]
epoch 104 | loss 1.2554962635040283, f_iou 0.723120927810669: 59%|█████████████████████▍ | 44/74 [00:37<00:21, 1.40it/s]
epoch 104 | loss 1.0110641717910767, f_iou 0.7212952971458435: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.40it/s]
epoch 104 | loss 1.0110641717910767, f_iou 0.7212952971458435: 61%|█████████████████████▎ | 45/74 [00:38<00:22, 1.31it/s]
epoch 104 | loss 0.9723988175392151, f_iou 0.7216132879257202: 61%|█████████████████████▎ | 45/74 [00:38<00:22, 1.31it/s]
epoch 104 | loss 0.9723988175392151, f_iou 0.7216132879257202: 62%|█████████████████████▊ | 46/74 [00:38<00:21, 1.33it/s]
epoch 104 | loss 0.7246439456939697, f_iou 0.726244330406189: 62%|██████████████████████▍ | 46/74 [00:39<00:21, 1.33it/s]
epoch 104 | loss 0.7246439456939697, f_iou 0.726244330406189: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.35it/s]
epoch 104 | loss 0.9088582992553711, f_iou 0.7179561853408813: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.35it/s]
epoch 104 | loss 0.9088582992553711, f_iou 0.7179561853408813: 65%|██████████████████████▋ | 48/74 [00:40<00:19, 1.37it/s]
epoch 104 | loss 0.5584837794303894, f_iou 0.715552806854248: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.37it/s]
epoch 104 | loss 0.5584837794303894, f_iou 0.715552806854248: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 104 | loss 1.550403356552124, f_iou 0.7139475345611572: 66%|███████████████████████▊ | 49/74 [00:41<00:18, 1.37it/s]
epoch 104 | loss 1.550403356552124, f_iou 0.7139475345611572: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.38it/s]
epoch 104 | loss 2.324394464492798, f_iou 0.7117028832435608: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.38it/s]
epoch 104 | loss 2.324394464492798, f_iou 0.7117028832435608: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.38it/s]
epoch 104 | loss 1.2386128902435303, f_iou 0.7110779285430908: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.38it/s]
epoch 104 | loss 1.2386128902435303, f_iou 0.7110779285430908: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.39it/s]
epoch 104 | loss 1.1539348363876343, f_iou 0.7145649790763855: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.39it/s]
epoch 104 | loss 1.1539348363876343, f_iou 0.7145649790763855: 72%|█████████████████████████ | 53/74 [00:43<00:15, 1.39it/s]
epoch 104 | loss 1.0060944557189941, f_iou 0.7175559401512146: 72%|█████████████████████████ | 53/74 [00:44<00:15, 1.39it/s]
epoch 104 | loss 1.0060944557189941, f_iou 0.7175559401512146: 73%|█████████████████████████▌ | 54/74 [00:44<00:14, 1.39it/s]
epoch 104 | loss 2.4505584239959717, f_iou 0.7137637734413147: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.39it/s]
epoch 104 | loss 2.4505584239959717, f_iou 0.7137637734413147: 74%|██████████████████████████ | 55/74 [00:45<00:13, 1.38it/s]
epoch 104 | loss 0.8340227603912354, f_iou 0.716882586479187: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 104 | loss 0.8340227603912354, f_iou 0.716882586479187: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.38it/s]
epoch 104 | loss 1.6420035362243652, f_iou 0.7142350077629089: 76%|██████████████████████████▍ | 56/74 [00:46<00:13, 1.38it/s]
epoch 104 | loss 1.6420035362243652, f_iou 0.7142350077629089: 77%|██████████████████████████▉ | 57/74 [00:46<00:12, 1.39it/s]
epoch 104 | loss 0.5268090963363647, f_iou 0.7174809575080872: 77%|██████████████████████████▉ | 57/74 [00:47<00:12, 1.39it/s]
epoch 104 | loss 0.5268090963363647, f_iou 0.7174809575080872: 78%|███████████████████████████▍ | 58/74 [00:47<00:11, 1.39it/s]
epoch 104 | loss 1.157138705253601, f_iou 0.721403181552887: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.39it/s]
epoch 104 | loss 1.157138705253601, f_iou 0.721403181552887: 80%|█████████████████████████████▌ | 59/74 [00:48<00:10, 1.39it/s]
epoch 104 | loss 1.3138450384140015, f_iou 0.724007785320282: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 104 | loss 1.3138450384140015, f_iou 0.724007785320282: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.40it/s]
epoch 104 | loss 0.6740428805351257, f_iou 0.727115273475647: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.40it/s]
epoch 104 | loss 0.6740428805351257, f_iou 0.727115273475647: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.40it/s]
epoch 104 | loss 1.280012607574463, f_iou 0.7271738052368164: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.40it/s]
epoch 104 | loss 1.280012607574463, f_iou 0.7271738052368164: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.39it/s]
epoch 104 | loss 0.5934573411941528, f_iou 0.7297679781913757: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.39it/s]
epoch 104 | loss 0.5934573411941528, f_iou 0.7297679781913757: 85%|█████████████████████████████▊ | 63/74 [00:51<00:07, 1.40it/s]
epoch 104 | loss 1.1871473789215088, f_iou 0.7306775450706482: 85%|█████████████████████████████▊ | 63/74 [00:51<00:07, 1.40it/s]
epoch 104 | loss 1.1871473789215088, f_iou 0.7306775450706482: 86%|██████████████████████████████▎ | 64/74 [00:51<00:07, 1.40it/s]
epoch 104 | loss 0.47851940989494324, f_iou 0.7339989542961121: 86%|█████████████████████████████▍ | 64/74 [00:52<00:07, 1.40it/s]
epoch 104 | loss 0.47851940989494324, f_iou 0.7339989542961121: 88%|█████████████████████████████▊ | 65/74 [00:52<00:06, 1.40it/s]
epoch 104 | loss 0.5912099480628967, f_iou 0.7260924577713013: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.40it/s]
epoch 104 | loss 0.5912099480628967, f_iou 0.7260924577713013: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.40it/s]
epoch 104 | loss 1.1203815937042236, f_iou 0.7257640361785889: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.40it/s]
epoch 104 | loss 1.1203815937042236, f_iou 0.7257640361785889: 91%|███████████████████████████████▋ | 67/74 [00:54<00:04, 1.40it/s]
epoch 104 | loss 3.175191879272461, f_iou 0.7222930788993835: 91%|████████████████████████████████▌ | 67/74 [00:54<00:04, 1.40it/s]
epoch 104 | loss 3.175191879272461, f_iou 0.7222930788993835: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.41it/s]
epoch 104 | loss 0.4716995060443878, f_iou 0.7255685925483704: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.41it/s]
epoch 104 | loss 0.4716995060443878, f_iou 0.7255685925483704: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.41it/s]
epoch 104 | loss 2.0184292793273926, f_iou 0.7227368354797363: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.41it/s]
epoch 104 | loss 2.0184292793273926, f_iou 0.7227368354797363: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 104 | loss 0.49709513783454895, f_iou 0.7246825695037842: 95%|████████████████████████████████▏ | 70/74 [00:56<00:02, 1.41it/s]
epoch 104 | loss 0.49709513783454895, f_iou 0.7246825695037842: 96%|████████████████████████████████▌ | 71/74 [00:56<00:02, 1.41it/s]
epoch 104 | loss 0.47510018944740295, f_iou 0.7278106212615967: 96%|████████████████████████████████▌ | 71/74 [00:57<00:02, 1.41it/s]
epoch 104 | loss 0.47510018944740295, f_iou 0.7278106212615967: 97%|█████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 104 | loss 0.27643632888793945, f_iou 0.7305793762207031: 97%|█████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 104 | loss 0.27643632888793945, f_iou 0.7305793762207031: 99%|█████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 104 | loss 0.4999624192714691, f_iou 0.7322715520858765: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 104 | loss 0.4999624192714691, f_iou 0.7322715520858765: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.39it/s]
epoch 104 | loss 0.4999624192714691, f_iou 0.7322715520858765: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 104 | valid.f_iou 0.7303699851036072, valid.f_f-score 0.85058: 0%| | 0/16 [00:05, ?it/s]
epoch 104 | valid.f_iou 0.7303699851036072, valid.f_f-score 0.85058: 6%|█▉ | 1/16 [00:05<01:24, 5.62s/it]
epoch 104 | valid.f_iou 0.7139999866485596, valid.f_f-score 0.87436: 6%|█▉ | 1/16 [00:06<01:24, 5.62s/it]
epoch 104 | valid.f_iou 0.7139999866485596, valid.f_f-score 0.87436: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 104 | valid.f_iou 0.5693399906158447, valid.f_f-score 0.7792: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 104 | valid.f_iou 0.5693399906158447, valid.f_f-score 0.7792: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 104 | valid.f_iou 0.6041799783706665, valid.f_f-score 0.7693: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 104 | valid.f_iou 0.6041799783706665, valid.f_f-score 0.7693: 25%|███████▊ | 4/16 [00:06<00:13, 1.15s/it]
epoch 104 | valid.f_iou 0.6024199724197388, valid.f_f-score 0.7662: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 104 | valid.f_iou 0.6024199724197388, valid.f_f-score 0.7662: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 104 | valid.f_iou 0.5569400191307068, valid.f_f-score 0.71632: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 104 | valid.f_iou 0.5569400191307068, valid.f_f-score 0.71632: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 104 | valid.f_iou 0.5841500163078308, valid.f_f-score 0.73839: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 104 | valid.f_iou 0.5841500163078308, valid.f_f-score 0.73839: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.64it/s]
epoch 104 | valid.f_iou 0.5577399730682373, valid.f_f-score 0.7257: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.64it/s]
epoch 104 | valid.f_iou 0.5577399730682373, valid.f_f-score 0.7257: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 104 | valid.f_iou 0.5733500123023987, valid.f_f-score 0.72712: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 104 | valid.f_iou 0.5733500123023987, valid.f_f-score 0.72712: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.05it/s]
epoch 104 | valid.f_iou 0.5631099939346313, valid.f_f-score 0.72796: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.05it/s]
epoch 104 | valid.f_iou 0.5631099939346313, valid.f_f-score 0.72796: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.11it/s]
epoch 104 | valid.f_iou 0.5684900283813477, valid.f_f-score 0.72836: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.11it/s]
epoch 104 | valid.f_iou 0.5684900283813477, valid.f_f-score 0.72836: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.27it/s]
epoch 104 | valid.f_iou 0.590179979801178, valid.f_f-score 0.74482: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.27it/s]
epoch 104 | valid.f_iou 0.590179979801178, valid.f_f-score 0.74482: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.39it/s]
epoch 104 | valid.f_iou 0.6015999913215637, valid.f_f-score 0.75137: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.39it/s]
epoch 104 | valid.f_iou 0.6015999913215637, valid.f_f-score 0.75137: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 104 | valid.f_iou 0.5980700254440308, valid.f_f-score 0.74839: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 104 | valid.f_iou 0.5980700254440308, valid.f_f-score 0.74839: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 104 | valid.f_iou 0.6024699807167053, valid.f_f-score 0.74751: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 104 | valid.f_iou 0.6024699807167053, valid.f_f-score 0.74751: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 104 | valid.f_iou 0.6053100228309631, valid.f_f-score 0.74455: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 104 | valid.f_iou 0.6053100228309631, valid.f_f-score 0.74455: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 104 | valid.f_iou 0.6053100228309631, valid.f_f-score 0.74455: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 104 | valid.f_iou 0.8189700245857239, valid.f_f-score 0.88362: 0%| | 0/16 [00:04, ?it/s]
epoch 104 | valid.f_iou 0.8189700245857239, valid.f_f-score 0.88362: 6%|█▉ | 1/16 [00:04<01:11, 4.79s/it]
epoch 104 | valid.f_iou 0.8421199917793274, valid.f_f-score 0.90919: 6%|█▉ | 1/16 [00:05<01:11, 4.79s/it]
epoch 104 | valid.f_iou 0.8421199917793274, valid.f_f-score 0.90919: 12%|███▊ | 2/16 [00:05<00:31, 2.25s/it]
epoch 104 | valid.f_iou 0.7783700227737427, valid.f_f-score 0.87903: 12%|███▊ | 2/16 [00:05<00:31, 2.25s/it]
epoch 104 | valid.f_iou 0.7783700227737427, valid.f_f-score 0.87903: 19%|█████▋ | 3/16 [00:05<00:18, 1.44s/it]
epoch 104 | valid.f_iou 0.7646600008010864, valid.f_f-score 0.83812: 19%|█████▋ | 3/16 [00:06<00:18, 1.44s/it]
epoch 104 | valid.f_iou 0.7646600008010864, valid.f_f-score 0.83812: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 104 | valid.f_iou 0.7310500144958496, valid.f_f-score 0.82648: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 104 | valid.f_iou 0.7310500144958496, valid.f_f-score 0.82648: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 104 | valid.f_iou 0.7132700085639954, valid.f_f-score 0.81246: 31%|█████████▍ | 5/16 [00:07<00:09, 1.22it/s]
epoch 104 | valid.f_iou 0.7132700085639954, valid.f_f-score 0.81246: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 104 | valid.f_iou 0.730430006980896, valid.f_f-score 0.83079: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 104 | valid.f_iou 0.730430006980896, valid.f_f-score 0.83079: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 104 | valid.f_iou 0.7187299728393555, valid.f_f-score 0.82821: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.68it/s]
epoch 104 | valid.f_iou 0.7187299728393555, valid.f_f-score 0.82821: 50%|███████████████ | 8/16 [00:07<00:04, 1.82it/s]
epoch 104 | valid.f_iou 0.722760021686554, valid.f_f-score 0.82833: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 104 | valid.f_iou 0.722760021686554, valid.f_f-score 0.82833: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.00it/s]
epoch 104 | valid.f_iou 0.7381700277328491, valid.f_f-score 0.83894: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.00it/s]
epoch 104 | valid.f_iou 0.7381700277328491, valid.f_f-score 0.83894: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.06it/s]
epoch 104 | valid.f_iou 0.7347400188446045, valid.f_f-score 0.83409: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.06it/s]
epoch 104 | valid.f_iou 0.7347400188446045, valid.f_f-score 0.83409: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.10it/s]
epoch 104 | valid.f_iou 0.7454599738121033, valid.f_f-score 0.8422: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 104 | valid.f_iou 0.7454599738121033, valid.f_f-score 0.8422: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.13it/s]
epoch 104 | valid.f_iou 0.753790020942688, valid.f_f-score 0.84726: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.13it/s]
epoch 104 | valid.f_iou 0.753790020942688, valid.f_f-score 0.84726: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.16it/s]
epoch 104 | valid.f_iou 0.7401099801063538, valid.f_f-score 0.83224: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.16it/s]
epoch 104 | valid.f_iou 0.7401099801063538, valid.f_f-score 0.83224: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.19it/s]
epoch 104 | valid.f_iou 0.7492300271987915, valid.f_f-score 0.84033: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.19it/s]
epoch 104 | valid.f_iou 0.7492300271987915, valid.f_f-score 0.84033: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.20it/s]
epoch 104 | valid.f_iou 0.7435399889945984, valid.f_f-score 0.83181: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.20it/s]
epoch 104 | valid.f_iou 0.7435399889945984, valid.f_f-score 0.83181: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.22it/s]
epoch 104 | valid.f_iou 0.7435399889945984, valid.f_f-score 0.83181: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 104 | valid.f_iou 0.8189700245857239, valid.f_f-score 0.88362: 0%| | 0/16 [00:05, ?it/s]
epoch 104 | valid.f_iou 0.8189700245857239, valid.f_f-score 0.88362: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 104 | valid.f_iou 0.8421199917793274, valid.f_f-score 0.90919: 6%|█▉ | 1/16 [00:05<01:18, 5.21s/it]
epoch 104 | valid.f_iou 0.8421199917793274, valid.f_f-score 0.90919: 12%|███▊ | 2/16 [00:05<00:33, 2.42s/it]
epoch 104 | valid.f_iou 0.7783700227737427, valid.f_f-score 0.87903: 12%|███▊ | 2/16 [00:06<00:33, 2.42s/it]
epoch 104 | valid.f_iou 0.7783700227737427, valid.f_f-score 0.87903: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 104 | valid.f_iou 0.7636899948120117, valid.f_f-score 0.8325: 19%|█████▊ | 3/16 [00:06<00:19, 1.53s/it]
epoch 104 | valid.f_iou 0.7636899948120117, valid.f_f-score 0.8325: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 104 | valid.f_iou 0.7365800142288208, valid.f_f-score 0.82199: 25%|███████▌ | 4/16 [00:07<00:13, 1.10s/it]
epoch 104 | valid.f_iou 0.7365800142288208, valid.f_f-score 0.82199: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 104 | valid.f_iou 0.7178800106048584, valid.f_f-score 0.80871: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 104 | valid.f_iou 0.7178800106048584, valid.f_f-score 0.80871: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 104 | valid.f_iou 0.7377899885177612, valid.f_f-score 0.82758: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 104 | valid.f_iou 0.7377899885177612, valid.f_f-score 0.82758: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.60it/s]
epoch 104 | valid.f_iou 0.7251700162887573, valid.f_f-score 0.8254: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 104 | valid.f_iou 0.7251700162887573, valid.f_f-score 0.8254: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 104 | valid.f_iou 0.730139970779419, valid.f_f-score 0.82584: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.80it/s]
epoch 104 | valid.f_iou 0.730139970779419, valid.f_f-score 0.82584: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 104 | valid.f_iou 0.7405400276184082, valid.f_f-score 0.83311: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.04it/s]
epoch 104 | valid.f_iou 0.7405400276184082, valid.f_f-score 0.83311: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.20it/s]
epoch 104 | valid.f_iou 0.7368999719619751, valid.f_f-score 0.82879: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.20it/s]
epoch 104 | valid.f_iou 0.7368999719619751, valid.f_f-score 0.82879: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.34it/s]
epoch 104 | valid.f_iou 0.7474499940872192, valid.f_f-score 0.83734: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.34it/s]
epoch 104 | valid.f_iou 0.7474499940872192, valid.f_f-score 0.83734: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.44it/s]
epoch 104 | valid.f_iou 0.7555999755859375, valid.f_f-score 0.84366: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.44it/s]
epoch 104 | valid.f_iou 0.7555999755859375, valid.f_f-score 0.84366: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.52it/s]
epoch 104 | valid.f_iou 0.7417899966239929, valid.f_f-score 0.8289: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 104 | valid.f_iou 0.7417899966239929, valid.f_f-score 0.8289: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.59it/s]
epoch 104 | valid.f_iou 0.7508000135421753, valid.f_f-score 0.83722: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 104 | valid.f_iou 0.7508000135421753, valid.f_f-score 0.83722: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.63it/s]
epoch 104 | valid.f_iou 0.7458699941635132, valid.f_f-score 0.8289: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 104 | valid.f_iou 0.7458699941635132, valid.f_f-score 0.8289: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 104 | valid.f_iou 0.7458699941635132, valid.f_f-score 0.8289: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.42it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 105 | loss 0.557614266872406, f_iou 0.8308437466621399: 0%| | 0/74 [00:06, ?it/s]
epoch 105 | loss 0.557614266872406, f_iou 0.8308437466621399: 1%|▌ | 1/74 [00:06<07:42, 6.34s/it]
epoch 105 | loss 1.0512245893478394, f_iou 0.8673959970474243: 1%|▍ | 1/74 [00:07<07:42, 6.34s/it]
epoch 105 | loss 1.0512245893478394, f_iou 0.8673959970474243: 3%|▉ | 2/74 [00:07<03:42, 3.08s/it]
epoch 105 | loss 2.8373308181762695, f_iou 0.7301356196403503: 3%|▉ | 2/74 [00:07<03:42, 3.08s/it]
epoch 105 | loss 2.8373308181762695, f_iou 0.7301356196403503: 4%|█▍ | 3/74 [00:07<02:26, 2.06s/it]
epoch 105 | loss 0.3552483916282654, f_iou 0.7915316224098206: 4%|█▍ | 3/74 [00:08<02:26, 2.06s/it]
epoch 105 | loss 0.3552483916282654, f_iou 0.7915316224098206: 5%|█▉ | 4/74 [00:08<01:50, 1.58s/it]
epoch 105 | loss 1.1395015716552734, f_iou 0.8010978698730469: 5%|█▉ | 4/74 [00:09<01:50, 1.58s/it]
epoch 105 | loss 1.1395015716552734, f_iou 0.8010978698730469: 7%|██▍ | 5/74 [00:09<01:29, 1.29s/it]
epoch 105 | loss 0.7839746475219727, f_iou 0.8221568465232849: 7%|██▍ | 5/74 [00:10<01:29, 1.29s/it]
epoch 105 | loss 0.7839746475219727, f_iou 0.8221568465232849: 8%|██▉ | 6/74 [00:10<01:14, 1.10s/it]
epoch 105 | loss 0.0, f_iou 0.8361254930496216: 8%|████▏ | 6/74 [00:11<01:14, 1.10s/it]
epoch 105 | loss 0.0, f_iou 0.8361254930496216: 9%|████▊ | 7/74 [00:11<01:05, 1.03it/s]
epoch 105 | loss 2.0781214237213135, f_iou 0.8082082271575928: 9%|███▍ | 7/74 [00:11<01:05, 1.03it/s]
epoch 105 | loss 2.0781214237213135, f_iou 0.8082082271575928: 11%|███▉ | 8/74 [00:11<00:59, 1.12it/s]
epoch 105 | loss 0.4742027521133423, f_iou 0.7836812138557434: 11%|███▉ | 8/74 [00:12<00:59, 1.12it/s]
epoch 105 | loss 0.4742027521133423, f_iou 0.7836812138557434: 12%|████▍ | 9/74 [00:12<00:54, 1.19it/s]
epoch 105 | loss 0.6484928131103516, f_iou 0.7910110354423523: 12%|████▍ | 9/74 [00:13<00:54, 1.19it/s]
epoch 105 | loss 0.6484928131103516, f_iou 0.7910110354423523: 14%|████▋ | 10/74 [00:13<00:51, 1.25it/s]
epoch 105 | loss 0.7333361506462097, f_iou 0.8031288981437683: 14%|████▋ | 10/74 [00:13<00:51, 1.25it/s]
epoch 105 | loss 0.7333361506462097, f_iou 0.8031288981437683: 15%|█████▏ | 11/74 [00:13<00:48, 1.29it/s]
epoch 105 | loss 1.0686081647872925, f_iou 0.8056445121765137: 15%|█████▏ | 11/74 [00:14<00:48, 1.29it/s]
epoch 105 | loss 1.0686081647872925, f_iou 0.8056445121765137: 16%|█████▋ | 12/74 [00:14<00:48, 1.29it/s]
epoch 105 | loss 1.0753282308578491, f_iou 0.7940570712089539: 16%|█████▋ | 12/74 [00:15<00:48, 1.29it/s]
epoch 105 | loss 1.0753282308578491, f_iou 0.7940570712089539: 18%|██████▏ | 13/74 [00:15<00:47, 1.29it/s]
epoch 105 | loss 0.6923230886459351, f_iou 0.7847523093223572: 18%|██████▏ | 13/74 [00:16<00:47, 1.29it/s]
epoch 105 | loss 0.6923230886459351, f_iou 0.7847523093223572: 19%|██████▌ | 14/74 [00:16<00:46, 1.28it/s]
epoch 105 | loss 1.377774715423584, f_iou 0.7675515413284302: 19%|██████▊ | 14/74 [00:17<00:46, 1.28it/s]
epoch 105 | loss 1.377774715423584, f_iou 0.7675515413284302: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 105 | loss 1.054616928100586, f_iou 0.7377023100852966: 20%|███████▎ | 15/74 [00:17<00:46, 1.28it/s]
epoch 105 | loss 1.054616928100586, f_iou 0.7377023100852966: 22%|███████▊ | 16/74 [00:17<00:45, 1.28it/s]
epoch 105 | loss 1.0524064302444458, f_iou 0.7325881719589233: 22%|███████▌ | 16/74 [00:18<00:45, 1.28it/s]
epoch 105 | loss 1.0524064302444458, f_iou 0.7325881719589233: 23%|████████ | 17/74 [00:18<00:43, 1.30it/s]
epoch 105 | loss 1.3415886163711548, f_iou 0.7308471202850342: 23%|████████ | 17/74 [00:19<00:43, 1.30it/s]
epoch 105 | loss 1.3415886163711548, f_iou 0.7308471202850342: 24%|████████▌ | 18/74 [00:19<00:42, 1.33it/s]
epoch 105 | loss 0.6497867703437805, f_iou 0.7420861721038818: 24%|████████▌ | 18/74 [00:20<00:42, 1.33it/s]
epoch 105 | loss 0.6497867703437805, f_iou 0.7420861721038818: 26%|████████▉ | 19/74 [00:20<00:41, 1.33it/s]
epoch 105 | loss 0.979515552520752, f_iou 0.7512256503105164: 26%|█████████▏ | 19/74 [00:20<00:41, 1.33it/s]
epoch 105 | loss 0.979515552520752, f_iou 0.7512256503105164: 27%|█████████▋ | 20/74 [00:20<00:39, 1.35it/s]
epoch 105 | loss 1.8555110692977905, f_iou 0.7507092356681824: 27%|█████████▍ | 20/74 [00:21<00:39, 1.35it/s]
epoch 105 | loss 1.8555110692977905, f_iou 0.7507092356681824: 28%|█████████▉ | 21/74 [00:21<00:38, 1.36it/s]
epoch 105 | loss 1.3807655572891235, f_iou 0.7469826936721802: 28%|█████████▉ | 21/74 [00:22<00:38, 1.36it/s]
epoch 105 | loss 1.3807655572891235, f_iou 0.7469826936721802: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 105 | loss 0.890162467956543, f_iou 0.7539969682693481: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 105 | loss 0.890162467956543, f_iou 0.7539969682693481: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 105 | loss 0.3632007837295532, f_iou 0.7611075639724731: 31%|██████████▉ | 23/74 [00:23<00:36, 1.39it/s]
epoch 105 | loss 0.3632007837295532, f_iou 0.7611075639724731: 32%|███████████▎ | 24/74 [00:23<00:35, 1.39it/s]
epoch 105 | loss 0.0, f_iou 0.7705482244491577: 32%|████████████████▏ | 24/74 [00:24<00:35, 1.39it/s]
epoch 105 | loss 0.0, f_iou 0.7705482244491577: 34%|████████████████▉ | 25/74 [00:24<00:36, 1.36it/s]
epoch 105 | loss 1.0090197324752808, f_iou 0.7728304862976074: 34%|███████████▊ | 25/74 [00:25<00:36, 1.36it/s]
epoch 105 | loss 1.0090197324752808, f_iou 0.7728304862976074: 35%|████████████▎ | 26/74 [00:25<00:35, 1.34it/s]
epoch 105 | loss 0.810121476650238, f_iou 0.7756487727165222: 35%|████████████▋ | 26/74 [00:25<00:35, 1.34it/s]
epoch 105 | loss 0.810121476650238, f_iou 0.7756487727165222: 36%|█████████████▏ | 27/74 [00:25<00:35, 1.33it/s]
epoch 105 | loss 0.6707895994186401, f_iou 0.7812392711639404: 36%|████████████▊ | 27/74 [00:26<00:35, 1.33it/s]
epoch 105 | loss 0.6707895994186401, f_iou 0.7812392711639404: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.32it/s]
epoch 105 | loss 0.6502745747566223, f_iou 0.7845882773399353: 38%|█████████████▏ | 28/74 [00:27<00:34, 1.32it/s]
epoch 105 | loss 0.6502745747566223, f_iou 0.7845882773399353: 39%|█████████████▋ | 29/74 [00:27<00:34, 1.30it/s]
epoch 105 | loss 0.4666459858417511, f_iou 0.7907392382621765: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.30it/s]
epoch 105 | loss 0.4666459858417511, f_iou 0.7907392382621765: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.30it/s]
epoch 105 | loss 0.8324491381645203, f_iou 0.7939296364784241: 41%|██████████████▏ | 30/74 [00:29<00:33, 1.30it/s]
epoch 105 | loss 0.8324491381645203, f_iou 0.7939296364784241: 42%|██████████████▋ | 31/74 [00:29<00:33, 1.30it/s]
epoch 105 | loss 1.183844804763794, f_iou 0.7854874730110168: 42%|███████████████ | 31/74 [00:29<00:33, 1.30it/s]
epoch 105 | loss 1.183844804763794, f_iou 0.7854874730110168: 43%|███████████████▌ | 32/74 [00:29<00:32, 1.30it/s]
epoch 105 | loss 0.9555965662002563, f_iou 0.7881695628166199: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.30it/s]
epoch 105 | loss 0.9555965662002563, f_iou 0.7881695628166199: 45%|███████████████▌ | 33/74 [00:30<00:31, 1.30it/s]
epoch 105 | loss 2.081012487411499, f_iou 0.7790194749832153: 45%|████████████████ | 33/74 [00:31<00:31, 1.30it/s]
epoch 105 | loss 2.081012487411499, f_iou 0.7790194749832153: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.30it/s]
epoch 105 | loss 1.2733895778656006, f_iou 0.7697681784629822: 46%|████████████████ | 34/74 [00:32<00:30, 1.30it/s]
epoch 105 | loss 1.2733895778656006, f_iou 0.7697681784629822: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.31it/s]
epoch 105 | loss 0.5888669490814209, f_iou 0.7745406031608582: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.31it/s]
epoch 105 | loss 0.5888669490814209, f_iou 0.7745406031608582: 49%|█████████████████ | 36/74 [00:32<00:28, 1.32it/s]
epoch 105 | loss 0.8331441879272461, f_iou 0.7787808775901794: 49%|█████████████████ | 36/74 [00:33<00:28, 1.32it/s]
epoch 105 | loss 0.8331441879272461, f_iou 0.7787808775901794: 50%|█████████████████▌ | 37/74 [00:33<00:27, 1.35it/s]
epoch 105 | loss 0.14285410940647125, f_iou 0.7824566960334778: 50%|█████████████████ | 37/74 [00:34<00:27, 1.35it/s]
epoch 105 | loss 0.14285410940647125, f_iou 0.7824566960334778: 51%|█████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 105 | loss 2.0451838970184326, f_iou 0.7758065462112427: 51%|█████████████████▉ | 38/74 [00:35<00:27, 1.32it/s]
epoch 105 | loss 2.0451838970184326, f_iou 0.7758065462112427: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 105 | loss 0.782529890537262, f_iou 0.7779452204704285: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.31it/s]
epoch 105 | loss 0.782529890537262, f_iou 0.7779452204704285: 54%|███████████████████▍ | 40/74 [00:35<00:26, 1.31it/s]
epoch 105 | loss 0.6270928978919983, f_iou 0.780780017375946: 54%|███████████████████▍ | 40/74 [00:36<00:26, 1.31it/s]
epoch 105 | loss 0.6270928978919983, f_iou 0.780780017375946: 55%|███████████████████▉ | 41/74 [00:36<00:25, 1.31it/s]
epoch 105 | loss 0.8909292221069336, f_iou 0.7843424677848816: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.31it/s]
epoch 105 | loss 0.8909292221069336, f_iou 0.7843424677848816: 57%|███████████████████▊ | 42/74 [00:37<00:24, 1.30it/s]
epoch 105 | loss 0.8328616619110107, f_iou 0.7846267223358154: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.30it/s]
epoch 105 | loss 0.8328616619110107, f_iou 0.7846267223358154: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.33it/s]
epoch 105 | loss 2.076411724090576, f_iou 0.7864285707473755: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.33it/s]
epoch 105 | loss 2.076411724090576, f_iou 0.7864285707473755: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.35it/s]
epoch 105 | loss 0.8190270662307739, f_iou 0.7885532975196838: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.35it/s]
epoch 105 | loss 0.8190270662307739, f_iou 0.7885532975196838: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.37it/s]
epoch 105 | loss 0.42151716351509094, f_iou 0.7921925783157349: 61%|████████████████████▋ | 45/74 [00:40<00:21, 1.37it/s]
epoch 105 | loss 0.42151716351509094, f_iou 0.7921925783157349: 62%|█████████████████████▏ | 46/74 [00:40<00:20, 1.37it/s]
epoch 105 | loss 0.3128032088279724, f_iou 0.7955332398414612: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.37it/s]
epoch 105 | loss 0.3128032088279724, f_iou 0.7955332398414612: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.38it/s]
epoch 105 | loss 0.5629878640174866, f_iou 0.7875115871429443: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.38it/s]
epoch 105 | loss 0.5629878640174866, f_iou 0.7875115871429443: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.38it/s]
epoch 105 | loss 0.5257677435874939, f_iou 0.7911839485168457: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.38it/s]
epoch 105 | loss 0.5257677435874939, f_iou 0.7911839485168457: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 105 | loss 0.7428747415542603, f_iou 0.7924284338951111: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.38it/s]
epoch 105 | loss 0.7428747415542603, f_iou 0.7924284338951111: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 105 | loss 0.6145961284637451, f_iou 0.7939370274543762: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 105 | loss 0.6145961284637451, f_iou 0.7939370274543762: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.39it/s]
epoch 105 | loss 2.302122116088867, f_iou 0.7932158708572388: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 105 | loss 2.302122116088867, f_iou 0.7932158708572388: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.38it/s]
epoch 105 | loss 0.7905401587486267, f_iou 0.7851322293281555: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.38it/s]
epoch 105 | loss 0.7905401587486267, f_iou 0.7851322293281555: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.39it/s]
epoch 105 | loss 1.4116355180740356, f_iou 0.7839023470878601: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.39it/s]
epoch 105 | loss 1.4116355180740356, f_iou 0.7839023470878601: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.39it/s]
epoch 105 | loss 0.5739059448242188, f_iou 0.7869381308555603: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.39it/s]
epoch 105 | loss 0.5739059448242188, f_iou 0.7869381308555603: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.39it/s]
epoch 105 | loss 1.468049168586731, f_iou 0.7781428098678589: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 105 | loss 1.468049168586731, f_iou 0.7781428098678589: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 105 | loss 0.9381320476531982, f_iou 0.7768012881278992: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.38it/s]
epoch 105 | loss 0.9381320476531982, f_iou 0.7768012881278992: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.36it/s]
epoch 105 | loss 2.0591931343078613, f_iou 0.7761299014091492: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.36it/s]
epoch 105 | loss 2.0591931343078613, f_iou 0.7761299014091492: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.37it/s]
epoch 105 | loss 0.5752037167549133, f_iou 0.7785547971725464: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.37it/s]
epoch 105 | loss 0.5752037167549133, f_iou 0.7785547971725464: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.37it/s]
epoch 105 | loss 2.7776811122894287, f_iou 0.7756024599075317: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.37it/s]
epoch 105 | loss 2.7776811122894287, f_iou 0.7756024599075317: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.38it/s]
epoch 105 | loss 0.4675268530845642, f_iou 0.7785450220108032: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.38it/s]
epoch 105 | loss 0.4675268530845642, f_iou 0.7785450220108032: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 105 | loss 1.5442345142364502, f_iou 0.7766653895378113: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 105 | loss 1.5442345142364502, f_iou 0.7766653895378113: 84%|█████████████████████████████▎ | 62/74 [00:51<00:09, 1.30it/s]
epoch 105 | loss 1.1910640001296997, f_iou 0.7764541506767273: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.30it/s]
epoch 105 | loss 1.1910640001296997, f_iou 0.7764541506767273: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.33it/s]
epoch 105 | loss 2.248661756515503, f_iou 0.7722296118736267: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.33it/s]
epoch 105 | loss 2.248661756515503, f_iou 0.7722296118736267: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.35it/s]
epoch 105 | loss 0.44521620869636536, f_iou 0.7649245858192444: 86%|█████████████████████████████▍ | 64/74 [00:54<00:07, 1.35it/s]
epoch 105 | loss 0.44521620869636536, f_iou 0.7649245858192444: 88%|█████████████████████████████▊ | 65/74 [00:54<00:06, 1.37it/s]
epoch 105 | loss 1.4965074062347412, f_iou 0.7635635137557983: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.37it/s]
epoch 105 | loss 1.4965074062347412, f_iou 0.7635635137557983: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.38it/s]
epoch 105 | loss 0.5027937889099121, f_iou 0.7665585875511169: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.38it/s]
epoch 105 | loss 0.5027937889099121, f_iou 0.7665585875511169: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.39it/s]
epoch 105 | loss 1.3857066631317139, f_iou 0.7673767805099487: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.39it/s]
epoch 105 | loss 1.3857066631317139, f_iou 0.7673767805099487: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.40it/s]
epoch 105 | loss 0.804807186126709, f_iou 0.7672982811927795: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 105 | loss 0.804807186126709, f_iou 0.7672982811927795: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.40it/s]
epoch 105 | loss 0.8979902863502502, f_iou 0.7686854600906372: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.40it/s]
epoch 105 | loss 0.8979902863502502, f_iou 0.7686854600906372: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 105 | loss 0.7775207161903381, f_iou 0.771090567111969: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.40it/s]
epoch 105 | loss 0.7775207161903381, f_iou 0.771090567111969: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 105 | loss 0.17810183763504028, f_iou 0.7734922766685486: 96%|████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 105 | loss 0.17810183763504028, f_iou 0.7734922766685486: 97%|█████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 105 | loss 1.4208648204803467, f_iou 0.7727901339530945: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 105 | loss 1.4208648204803467, f_iou 0.7727901339530945: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 105 | loss 0.6181138157844543, f_iou 0.7752150297164917: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 105 | loss 0.6181138157844543, f_iou 0.7752150297164917: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 105 | loss 0.6181138157844543, f_iou 0.7752150297164917: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 105 | valid.f_iou 0.7534000277519226, valid.f_f-score 0.85136: 0%| | 0/16 [00:05, ?it/s]
epoch 105 | valid.f_iou 0.7534000277519226, valid.f_f-score 0.85136: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 105 | valid.f_iou 0.7495599985122681, valid.f_f-score 0.89286: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 105 | valid.f_iou 0.7495599985122681, valid.f_f-score 0.89286: 12%|███▊ | 2/16 [00:05<00:33, 2.41s/it]
epoch 105 | valid.f_iou 0.6020600199699402, valid.f_f-score 0.7948: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 105 | valid.f_iou 0.6020600199699402, valid.f_f-score 0.7948: 19%|█████▊ | 3/16 [00:06<00:19, 1.51s/it]
epoch 105 | valid.f_iou 0.6261699795722961, valid.f_f-score 0.76867: 19%|█████▋ | 3/16 [00:06<00:19, 1.51s/it]
epoch 105 | valid.f_iou 0.6261699795722961, valid.f_f-score 0.76867: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 105 | valid.f_iou 0.6336100101470947, valid.f_f-score 0.77345: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 105 | valid.f_iou 0.6336100101470947, valid.f_f-score 0.77345: 31%|█████████▍ | 5/16 [00:06<00:09, 1.16it/s]
epoch 105 | valid.f_iou 0.5850300192832947, valid.f_f-score 0.72735: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 105 | valid.f_iou 0.5850300192832947, valid.f_f-score 0.72735: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 105 | valid.f_iou 0.6073200106620789, valid.f_f-score 0.74685: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 105 | valid.f_iou 0.6073200106620789, valid.f_f-score 0.74685: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.60it/s]
epoch 105 | valid.f_iou 0.5855500102043152, valid.f_f-score 0.73792: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 105 | valid.f_iou 0.5855500102043152, valid.f_f-score 0.73792: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 105 | valid.f_iou 0.6065999865531921, valid.f_f-score 0.7561: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 105 | valid.f_iou 0.6065999865531921, valid.f_f-score 0.7561: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 105 | valid.f_iou 0.5979599952697754, valid.f_f-score 0.75596: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.93it/s]
epoch 105 | valid.f_iou 0.5979599952697754, valid.f_f-score 0.75596: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.12it/s]
epoch 105 | valid.f_iou 0.6043800115585327, valid.f_f-score 0.75739: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.12it/s]
epoch 105 | valid.f_iou 0.6043800115585327, valid.f_f-score 0.75739: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 105 | valid.f_iou 0.6245399713516235, valid.f_f-score 0.77167: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 105 | valid.f_iou 0.6245399713516235, valid.f_f-score 0.77167: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.28it/s]
epoch 105 | valid.f_iou 0.6334599852561951, valid.f_f-score 0.77594: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.28it/s]
epoch 105 | valid.f_iou 0.6334599852561951, valid.f_f-score 0.77594: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 105 | valid.f_iou 0.6292099952697754, valid.f_f-score 0.77221: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 105 | valid.f_iou 0.6292099952697754, valid.f_f-score 0.77221: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.50it/s]
epoch 105 | valid.f_iou 0.6307500004768372, valid.f_f-score 0.77001: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.50it/s]
epoch 105 | valid.f_iou 0.6307500004768372, valid.f_f-score 0.77001: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 105 | valid.f_iou 0.6330900192260742, valid.f_f-score 0.76844: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 105 | valid.f_iou 0.6330900192260742, valid.f_f-score 0.76844: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 105 | valid.f_iou 0.6330900192260742, valid.f_f-score 0.76844: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 105 | valid.f_iou 0.7954400181770325, valid.f_f-score 0.7946: 0%| | 0/16 [00:05, ?it/s]
epoch 105 | valid.f_iou 0.7954400181770325, valid.f_f-score 0.7946: 6%|█▉ | 1/16 [00:05<01:16, 5.12s/it]
epoch 105 | valid.f_iou 0.8266900181770325, valid.f_f-score 0.86553: 6%|█▉ | 1/16 [00:05<01:16, 5.12s/it]
epoch 105 | valid.f_iou 0.8266900181770325, valid.f_f-score 0.86553: 12%|███▊ | 2/16 [00:05<00:33, 2.37s/it]
epoch 105 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.83577: 12%|███▊ | 2/16 [00:06<00:33, 2.37s/it]
epoch 105 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.83577: 19%|█████▋ | 3/16 [00:06<00:19, 1.50s/it]
epoch 105 | valid.f_iou 0.7052199840545654, valid.f_f-score 0.77344: 19%|█████▋ | 3/16 [00:06<00:19, 1.50s/it]
epoch 105 | valid.f_iou 0.7052199840545654, valid.f_f-score 0.77344: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 105 | valid.f_iou 0.6890100240707397, valid.f_f-score 0.7773: 25%|███████▊ | 4/16 [00:06<00:13, 1.10s/it]
epoch 105 | valid.f_iou 0.6890100240707397, valid.f_f-score 0.7773: 31%|█████████▋ | 5/16 [00:06<00:09, 1.16it/s]
epoch 105 | valid.f_iou 0.6677200198173523, valid.f_f-score 0.75155: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 105 | valid.f_iou 0.6677200198173523, valid.f_f-score 0.75155: 38%|███████████▎ | 6/16 [00:07<00:06, 1.43it/s]
epoch 105 | valid.f_iou 0.690850019454956, valid.f_f-score 0.78099: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 105 | valid.f_iou 0.690850019454956, valid.f_f-score 0.78099: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 105 | valid.f_iou 0.6807000041007996, valid.f_f-score 0.77805: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.70it/s]
epoch 105 | valid.f_iou 0.6807000041007996, valid.f_f-score 0.77805: 50%|███████████████ | 8/16 [00:08<00:04, 1.94it/s]
epoch 105 | valid.f_iou 0.6926299929618835, valid.f_f-score 0.78678: 50%|███████████████ | 8/16 [00:08<00:04, 1.94it/s]
epoch 105 | valid.f_iou 0.6926299929618835, valid.f_f-score 0.78678: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.15it/s]
epoch 105 | valid.f_iou 0.7017599940299988, valid.f_f-score 0.79713: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.15it/s]
epoch 105 | valid.f_iou 0.7017599940299988, valid.f_f-score 0.79713: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.30it/s]
epoch 105 | valid.f_iou 0.6931099891662598, valid.f_f-score 0.78129: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.30it/s]
epoch 105 | valid.f_iou 0.6931099891662598, valid.f_f-score 0.78129: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.42it/s]
epoch 105 | valid.f_iou 0.7075200080871582, valid.f_f-score 0.79393: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.42it/s]
epoch 105 | valid.f_iou 0.7075200080871582, valid.f_f-score 0.79393: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 105 | valid.f_iou 0.7150499820709229, valid.f_f-score 0.79951: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 105 | valid.f_iou 0.7150499820709229, valid.f_f-score 0.79951: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.58it/s]
epoch 105 | valid.f_iou 0.7054600119590759, valid.f_f-score 0.79121: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.58it/s]
epoch 105 | valid.f_iou 0.7054600119590759, valid.f_f-score 0.79121: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.62it/s]
epoch 105 | valid.f_iou 0.7129300236701965, valid.f_f-score 0.79876: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.62it/s]
epoch 105 | valid.f_iou 0.7129300236701965, valid.f_f-score 0.79876: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 105 | valid.f_iou 0.7079899907112122, valid.f_f-score 0.79126: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.66it/s]
epoch 105 | valid.f_iou 0.7079899907112122, valid.f_f-score 0.79126: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 105 | valid.f_iou 0.7079899907112122, valid.f_f-score 0.79126: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 105 | valid.f_iou 0.7954400181770325, valid.f_f-score 0.7946: 0%| | 0/16 [00:05, ?it/s]
epoch 105 | valid.f_iou 0.7954400181770325, valid.f_f-score 0.7946: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 105 | valid.f_iou 0.8266900181770325, valid.f_f-score 0.86553: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 105 | valid.f_iou 0.8266900181770325, valid.f_f-score 0.86553: 12%|███▊ | 2/16 [00:05<00:34, 2.46s/it]
epoch 105 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.83577: 12%|███▊ | 2/16 [00:06<00:34, 2.46s/it]
epoch 105 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.83577: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 105 | valid.f_iou 0.7054100036621094, valid.f_f-score 0.77344: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 105 | valid.f_iou 0.7054100036621094, valid.f_f-score 0.77344: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 105 | valid.f_iou 0.6966400146484375, valid.f_f-score 0.7773: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 105 | valid.f_iou 0.6966400146484375, valid.f_f-score 0.7773: 31%|█████████▋ | 5/16 [00:07<00:09, 1.17it/s]
epoch 105 | valid.f_iou 0.6740700006484985, valid.f_f-score 0.75155: 31%|█████████▍ | 5/16 [00:07<00:09, 1.17it/s]
epoch 105 | valid.f_iou 0.6740700006484985, valid.f_f-score 0.75155: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 105 | valid.f_iou 0.698889970779419, valid.f_f-score 0.78099: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 105 | valid.f_iou 0.698889970779419, valid.f_f-score 0.78099: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.69it/s]
epoch 105 | valid.f_iou 0.6877300143241882, valid.f_f-score 0.77805: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.69it/s]
epoch 105 | valid.f_iou 0.6877300143241882, valid.f_f-score 0.77805: 50%|███████████████ | 8/16 [00:08<00:04, 1.93it/s]
epoch 105 | valid.f_iou 0.7029600143432617, valid.f_f-score 0.78678: 50%|███████████████ | 8/16 [00:08<00:04, 1.93it/s]
epoch 105 | valid.f_iou 0.7029600143432617, valid.f_f-score 0.78678: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.16it/s]
epoch 105 | valid.f_iou 0.7070099711418152, valid.f_f-score 0.79351: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.16it/s]
epoch 105 | valid.f_iou 0.7070099711418152, valid.f_f-score 0.79351: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.31it/s]
epoch 105 | valid.f_iou 0.6978899836540222, valid.f_f-score 0.778: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.31it/s]
epoch 105 | valid.f_iou 0.6978899836540222, valid.f_f-score 0.778: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.43it/s]
epoch 105 | valid.f_iou 0.711899995803833, valid.f_f-score 0.7909: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.43it/s]
epoch 105 | valid.f_iou 0.711899995803833, valid.f_f-score 0.7909: 75%|███████████████████████▎ | 12/16 [00:09<00:01, 2.50it/s]
epoch 105 | valid.f_iou 0.7190600037574768, valid.f_f-score 0.79691: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 105 | valid.f_iou 0.7190600037574768, valid.f_f-score 0.79691: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.57it/s]
epoch 105 | valid.f_iou 0.7091900110244751, valid.f_f-score 0.78881: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.57it/s]
epoch 105 | valid.f_iou 0.7091900110244751, valid.f_f-score 0.78881: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.62it/s]
epoch 105 | valid.f_iou 0.7164000272750854, valid.f_f-score 0.79652: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.62it/s]
epoch 105 | valid.f_iou 0.7164000272750854, valid.f_f-score 0.79652: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 105 | valid.f_iou 0.7122300267219543, valid.f_f-score 0.78916: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 105 | valid.f_iou 0.7122300267219543, valid.f_f-score 0.78916: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 105 | valid.f_iou 0.7122300267219543, valid.f_f-score 0.78916: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 106 | loss 0.0, f_iou 0.9148287177085876: 0%| | 0/74 [00:05, ?it/s]
epoch 106 | loss 0.0, f_iou 0.9148287177085876: 1%|▋ | 1/74 [00:05<06:34, 5.40s/it]
epoch 106 | loss 0.7018387317657471, f_iou 0.8796684741973877: 1%|▍ | 1/74 [00:06<06:34, 5.40s/it]
epoch 106 | loss 0.7018387317657471, f_iou 0.8796684741973877: 3%|▉ | 2/74 [00:06<03:14, 2.70s/it]
epoch 106 | loss 2.176025390625, f_iou 0.9013350009918213: 3%|█ | 2/74 [00:07<03:14, 2.70s/it]
epoch 106 | loss 2.176025390625, f_iou 0.9013350009918213: 4%|█▌ | 3/74 [00:07<02:10, 1.84s/it]
epoch 106 | loss 0.5608031749725342, f_iou 0.6792886257171631: 4%|█▍ | 3/74 [00:07<02:10, 1.84s/it]
epoch 106 | loss 0.5608031749725342, f_iou 0.6792886257171631: 5%|█▉ | 4/74 [00:07<01:40, 1.43s/it]
epoch 106 | loss 0.7233913540840149, f_iou 0.7158050537109375: 5%|█▉ | 4/74 [00:08<01:40, 1.43s/it]
epoch 106 | loss 0.7233913540840149, f_iou 0.7158050537109375: 7%|██▍ | 5/74 [00:08<01:22, 1.20s/it]
epoch 106 | loss 0.6914893388748169, f_iou 0.6939145922660828: 7%|██▍ | 5/74 [00:09<01:22, 1.20s/it]
epoch 106 | loss 0.6914893388748169, f_iou 0.6939145922660828: 8%|██▉ | 6/74 [00:09<01:12, 1.06s/it]
epoch 106 | loss 0.6268495321273804, f_iou 0.7300726771354675: 8%|██▉ | 6/74 [00:10<01:12, 1.06s/it]
epoch 106 | loss 0.6268495321273804, f_iou 0.7300726771354675: 9%|███▍ | 7/74 [00:10<01:05, 1.03it/s]
epoch 106 | loss 1.062275767326355, f_iou 0.7344431281089783: 9%|███▌ | 7/74 [00:10<01:05, 1.03it/s]
epoch 106 | loss 1.062275767326355, f_iou 0.7344431281089783: 11%|████ | 8/74 [00:10<01:00, 1.10it/s]
epoch 106 | loss 1.1458125114440918, f_iou 0.7455810308456421: 11%|███▉ | 8/74 [00:11<01:00, 1.10it/s]
epoch 106 | loss 1.1458125114440918, f_iou 0.7455810308456421: 12%|████▍ | 9/74 [00:11<00:55, 1.16it/s]
epoch 106 | loss 1.7213739156723022, f_iou 0.7403713464736938: 12%|████▍ | 9/74 [00:12<00:55, 1.16it/s]
epoch 106 | loss 1.7213739156723022, f_iou 0.7403713464736938: 14%|████▋ | 10/74 [00:12<00:52, 1.23it/s]
epoch 106 | loss 1.8872592449188232, f_iou 0.7291722893714905: 14%|████▋ | 10/74 [00:13<00:52, 1.23it/s]
epoch 106 | loss 1.8872592449188232, f_iou 0.7291722893714905: 15%|█████▏ | 11/74 [00:13<00:49, 1.27it/s]
epoch 106 | loss 0.747941255569458, f_iou 0.7409505844116211: 15%|█████▎ | 11/74 [00:13<00:49, 1.27it/s]
epoch 106 | loss 0.747941255569458, f_iou 0.7409505844116211: 16%|█████▊ | 12/74 [00:13<00:47, 1.30it/s]
epoch 106 | loss 0.3604629933834076, f_iou 0.7590502500534058: 16%|█████▋ | 12/74 [00:14<00:47, 1.30it/s]
epoch 106 | loss 0.3604629933834076, f_iou 0.7590502500534058: 18%|██████▏ | 13/74 [00:14<00:46, 1.32it/s]
epoch 106 | loss 1.1411898136138916, f_iou 0.7649732232093811: 18%|██████▏ | 13/74 [00:15<00:46, 1.32it/s]
epoch 106 | loss 1.1411898136138916, f_iou 0.7649732232093811: 19%|██████▌ | 14/74 [00:15<00:44, 1.34it/s]
epoch 106 | loss 3.272308826446533, f_iou 0.7433153986930847: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 106 | loss 3.272308826446533, f_iou 0.7433153986930847: 20%|███████▎ | 15/74 [00:16<00:44, 1.34it/s]
epoch 106 | loss 0.706067681312561, f_iou 0.7519055008888245: 20%|███████▎ | 15/74 [00:16<00:44, 1.34it/s]
epoch 106 | loss 0.706067681312561, f_iou 0.7519055008888245: 22%|███████▊ | 16/74 [00:16<00:43, 1.32it/s]
epoch 106 | loss 1.152560830116272, f_iou 0.7505190968513489: 22%|███████▊ | 16/74 [00:17<00:43, 1.32it/s]
epoch 106 | loss 1.152560830116272, f_iou 0.7505190968513489: 23%|████████▎ | 17/74 [00:17<00:42, 1.34it/s]
epoch 106 | loss 0.470981627702713, f_iou 0.7599228620529175: 23%|████████▎ | 17/74 [00:18<00:42, 1.34it/s]
epoch 106 | loss 0.470981627702713, f_iou 0.7599228620529175: 24%|████████▊ | 18/74 [00:18<00:41, 1.35it/s]
epoch 106 | loss 0.1560910940170288, f_iou 0.7702136635780334: 24%|████████▌ | 18/74 [00:19<00:41, 1.35it/s]
epoch 106 | loss 0.1560910940170288, f_iou 0.7702136635780334: 26%|████████▉ | 19/74 [00:19<00:40, 1.37it/s]
epoch 106 | loss 0.8036649227142334, f_iou 0.7750372290611267: 26%|████████▉ | 19/74 [00:19<00:40, 1.37it/s]
epoch 106 | loss 0.8036649227142334, f_iou 0.7750372290611267: 27%|█████████▍ | 20/74 [00:19<00:39, 1.37it/s]
epoch 106 | loss 0.6211181879043579, f_iou 0.7577742338180542: 27%|█████████▍ | 20/74 [00:20<00:39, 1.37it/s]
epoch 106 | loss 0.6211181879043579, f_iou 0.7577742338180542: 28%|█████████▉ | 21/74 [00:20<00:38, 1.38it/s]
epoch 106 | loss 1.3946192264556885, f_iou 0.760743260383606: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 106 | loss 1.3946192264556885, f_iou 0.760743260383606: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 106 | loss 0.41703376173973083, f_iou 0.7697325348854065: 30%|██████████ | 22/74 [00:21<00:37, 1.38it/s]
epoch 106 | loss 0.41703376173973083, f_iou 0.7697325348854065: 31%|██████████▌ | 23/74 [00:21<00:37, 1.38it/s]
epoch 106 | loss 0.6337020397186279, f_iou 0.7743694186210632: 31%|██████████▉ | 23/74 [00:22<00:37, 1.38it/s]
epoch 106 | loss 0.6337020397186279, f_iou 0.7743694186210632: 32%|███████████▎ | 24/74 [00:22<00:36, 1.39it/s]
epoch 106 | loss 1.6380810737609863, f_iou 0.773011326789856: 32%|███████████▋ | 24/74 [00:23<00:36, 1.39it/s]
epoch 106 | loss 1.6380810737609863, f_iou 0.773011326789856: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 106 | loss 0.0, f_iou 0.770635187625885: 34%|█████████████████▏ | 25/74 [00:24<00:35, 1.39it/s]
epoch 106 | loss 0.0, f_iou 0.770635187625885: 35%|█████████████████▉ | 26/74 [00:24<00:34, 1.39it/s]
epoch 106 | loss 0.7387298345565796, f_iou 0.7748379707336426: 35%|████████████▎ | 26/74 [00:24<00:34, 1.39it/s]
epoch 106 | loss 0.7387298345565796, f_iou 0.7748379707336426: 36%|████████████▊ | 27/74 [00:24<00:33, 1.39it/s]
epoch 106 | loss 0.5796231627464294, f_iou 0.7798300385475159: 36%|████████████▊ | 27/74 [00:25<00:33, 1.39it/s]
epoch 106 | loss 0.5796231627464294, f_iou 0.7798300385475159: 38%|█████████████▏ | 28/74 [00:25<00:32, 1.40it/s]
epoch 106 | loss 0.0, f_iou 0.787276566028595: 38%|███████████████████▎ | 28/74 [00:26<00:32, 1.40it/s]
epoch 106 | loss 0.0, f_iou 0.787276566028595: 39%|███████████████████▉ | 29/74 [00:26<00:32, 1.40it/s]
epoch 106 | loss 1.0110224485397339, f_iou 0.7884761095046997: 39%|█████████████▋ | 29/74 [00:26<00:32, 1.40it/s]
epoch 106 | loss 1.0110224485397339, f_iou 0.7884761095046997: 41%|██████████████▏ | 30/74 [00:26<00:31, 1.40it/s]
epoch 106 | loss 1.7167198657989502, f_iou 0.7829556465148926: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.40it/s]
epoch 106 | loss 1.7167198657989502, f_iou 0.7829556465148926: 42%|██████████████▋ | 31/74 [00:27<00:30, 1.40it/s]
epoch 106 | loss 0.6742175817489624, f_iou 0.7882776856422424: 42%|██████████████▋ | 31/74 [00:28<00:30, 1.40it/s]
epoch 106 | loss 0.6742175817489624, f_iou 0.7882776856422424: 43%|███████████████▏ | 32/74 [00:28<00:29, 1.40it/s]
epoch 106 | loss 1.3353040218353271, f_iou 0.7889440655708313: 43%|███████████████▏ | 32/74 [00:29<00:29, 1.40it/s]
epoch 106 | loss 1.3353040218353271, f_iou 0.7889440655708313: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.40it/s]
epoch 106 | loss 1.0332530736923218, f_iou 0.7882086634635925: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.40it/s]
epoch 106 | loss 1.0332530736923218, f_iou 0.7882086634635925: 46%|████████████████ | 34/74 [00:29<00:28, 1.40it/s]
epoch 106 | loss 1.2218564748764038, f_iou 0.7837878465652466: 46%|████████████████ | 34/74 [00:30<00:28, 1.40it/s]
epoch 106 | loss 1.2218564748764038, f_iou 0.7837878465652466: 47%|████████████████▌ | 35/74 [00:30<00:27, 1.41it/s]
epoch 106 | loss 0.17296698689460754, f_iou 0.7850907444953918: 47%|████████████████ | 35/74 [00:31<00:27, 1.41it/s]
epoch 106 | loss 0.17296698689460754, f_iou 0.7850907444953918: 49%|████████████████▌ | 36/74 [00:31<00:27, 1.41it/s]
epoch 106 | loss 0.30335527658462524, f_iou 0.7903617024421692: 49%|████████████████▌ | 36/74 [00:31<00:27, 1.41it/s]
epoch 106 | loss 0.30335527658462524, f_iou 0.7903617024421692: 50%|█████████████████ | 37/74 [00:31<00:26, 1.40it/s]
epoch 106 | loss 1.0570330619812012, f_iou 0.792472779750824: 50%|██████████████████ | 37/74 [00:32<00:26, 1.40it/s]
epoch 106 | loss 1.0570330619812012, f_iou 0.792472779750824: 51%|██████████████████▍ | 38/74 [00:32<00:25, 1.41it/s]
epoch 106 | loss 1.5007859468460083, f_iou 0.7917109131813049: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.41it/s]
epoch 106 | loss 1.5007859468460083, f_iou 0.7917109131813049: 53%|██████████████████▍ | 39/74 [00:33<00:24, 1.40it/s]
epoch 106 | loss 0.8396863341331482, f_iou 0.7872414588928223: 53%|██████████████████▍ | 39/74 [00:34<00:24, 1.40it/s]
epoch 106 | loss 0.8396863341331482, f_iou 0.7872414588928223: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.40it/s]
epoch 106 | loss 1.7281826734542847, f_iou 0.7851229906082153: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.40it/s]
epoch 106 | loss 1.7281826734542847, f_iou 0.7851229906082153: 55%|███████████████████▍ | 41/74 [00:34<00:23, 1.40it/s]
epoch 106 | loss 0.1565174162387848, f_iou 0.7890205383300781: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.40it/s]
epoch 106 | loss 0.1565174162387848, f_iou 0.7890205383300781: 57%|███████████████████▊ | 42/74 [00:35<00:22, 1.40it/s]
epoch 106 | loss 1.8211115598678589, f_iou 0.7837875485420227: 57%|███████████████████▊ | 42/74 [00:36<00:22, 1.40it/s]
epoch 106 | loss 1.8211115598678589, f_iou 0.7837875485420227: 58%|████████████████████▎ | 43/74 [00:36<00:22, 1.40it/s]
epoch 106 | loss 0.820579469203949, f_iou 0.783501148223877: 58%|█████████████████████▍ | 43/74 [00:36<00:22, 1.40it/s]
epoch 106 | loss 0.820579469203949, f_iou 0.783501148223877: 59%|██████████████████████ | 44/74 [00:36<00:21, 1.40it/s]
epoch 106 | loss 0.6107363104820251, f_iou 0.7873887419700623: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.40it/s]
epoch 106 | loss 0.6107363104820251, f_iou 0.7873887419700623: 61%|█████████████████████▎ | 45/74 [00:37<00:20, 1.40it/s]
epoch 106 | loss 1.3598146438598633, f_iou 0.7892649173736572: 61%|█████████████████████▎ | 45/74 [00:38<00:20, 1.40it/s]
epoch 106 | loss 1.3598146438598633, f_iou 0.7892649173736572: 62%|█████████████████████▊ | 46/74 [00:38<00:20, 1.40it/s]
epoch 106 | loss 0.28089380264282227, f_iou 0.7931762337684631: 62%|█████████████████████▏ | 46/74 [00:39<00:20, 1.40it/s]
epoch 106 | loss 0.28089380264282227, f_iou 0.7931762337684631: 64%|█████████████████████▌ | 47/74 [00:39<00:19, 1.40it/s]
epoch 106 | loss 1.1773202419281006, f_iou 0.7922684550285339: 64%|██████████████████████▏ | 47/74 [00:39<00:19, 1.40it/s]
epoch 106 | loss 1.1773202419281006, f_iou 0.7922684550285339: 65%|██████████████████████▋ | 48/74 [00:39<00:18, 1.40it/s]
epoch 106 | loss 1.105318546295166, f_iou 0.7953326106071472: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.40it/s]
epoch 106 | loss 1.105318546295166, f_iou 0.7953326106071472: 66%|███████████████████████▊ | 49/74 [00:40<00:17, 1.40it/s]
epoch 106 | loss 1.1881581544876099, f_iou 0.7915366888046265: 66%|███████████████████████▏ | 49/74 [00:41<00:17, 1.40it/s]
epoch 106 | loss 1.1881581544876099, f_iou 0.7915366888046265: 68%|███████████████████████▋ | 50/74 [00:41<00:17, 1.40it/s]
epoch 106 | loss 1.7317163944244385, f_iou 0.7820383310317993: 68%|███████████████████████▋ | 50/74 [00:41<00:17, 1.40it/s]
epoch 106 | loss 1.7317163944244385, f_iou 0.7820383310317993: 69%|████████████████████████ | 51/74 [00:41<00:16, 1.41it/s]
epoch 106 | loss 0.22030125558376312, f_iou 0.7859076261520386: 69%|███████████████████████▍ | 51/74 [00:42<00:16, 1.41it/s]
epoch 106 | loss 0.22030125558376312, f_iou 0.7859076261520386: 70%|███████████████████████▉ | 52/74 [00:42<00:15, 1.40it/s]
epoch 106 | loss 0.6899476051330566, f_iou 0.7821379899978638: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.40it/s]
epoch 106 | loss 0.6899476051330566, f_iou 0.7821379899978638: 72%|█████████████████████████ | 53/74 [00:43<00:14, 1.40it/s]
epoch 106 | loss 1.0332581996917725, f_iou 0.769202470779419: 72%|█████████████████████████▊ | 53/74 [00:44<00:14, 1.40it/s]
epoch 106 | loss 1.0332581996917725, f_iou 0.769202470779419: 73%|██████████████████████████▎ | 54/74 [00:44<00:14, 1.40it/s]
epoch 106 | loss 0.8011012673377991, f_iou 0.7699891328811646: 73%|█████████████████████████▌ | 54/74 [00:44<00:14, 1.40it/s]
epoch 106 | loss 0.8011012673377991, f_iou 0.7699891328811646: 74%|██████████████████████████ | 55/74 [00:44<00:13, 1.41it/s]
epoch 106 | loss 0.714267373085022, f_iou 0.7683724164962769: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.41it/s]
epoch 106 | loss 0.714267373085022, f_iou 0.7683724164962769: 76%|███████████████████████████▏ | 56/74 [00:45<00:12, 1.40it/s]
epoch 106 | loss 0.5809813737869263, f_iou 0.7709611058235168: 76%|██████████████████████████▍ | 56/74 [00:46<00:12, 1.40it/s]
epoch 106 | loss 0.5809813737869263, f_iou 0.7709611058235168: 77%|██████████████████████████▉ | 57/74 [00:46<00:12, 1.40it/s]
epoch 106 | loss 0.9335974454879761, f_iou 0.7731193900108337: 77%|██████████████████████████▉ | 57/74 [00:46<00:12, 1.40it/s]
epoch 106 | loss 0.9335974454879761, f_iou 0.7731193900108337: 78%|███████████████████████████▍ | 58/74 [00:46<00:11, 1.40it/s]
epoch 106 | loss 0.5999674201011658, f_iou 0.7762672901153564: 78%|███████████████████████████▍ | 58/74 [00:47<00:11, 1.40it/s]
epoch 106 | loss 0.5999674201011658, f_iou 0.7762672901153564: 80%|███████████████████████████▉ | 59/74 [00:47<00:10, 1.40it/s]
epoch 106 | loss 1.4081710577011108, f_iou 0.7775847911834717: 80%|███████████████████████████▉ | 59/74 [00:48<00:10, 1.40it/s]
epoch 106 | loss 1.4081710577011108, f_iou 0.7775847911834717: 81%|████████████████████████████▍ | 60/74 [00:48<00:10, 1.40it/s]
epoch 106 | loss 0.8377776741981506, f_iou 0.7741837501525879: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.40it/s]
epoch 106 | loss 0.8377776741981506, f_iou 0.7741837501525879: 82%|████████████████████████████▊ | 61/74 [00:49<00:09, 1.40it/s]
epoch 106 | loss 0.5922328233718872, f_iou 0.7766279578208923: 82%|████████████████████████████▊ | 61/74 [00:49<00:09, 1.40it/s]
epoch 106 | loss 0.5922328233718872, f_iou 0.7766279578208923: 84%|█████████████████████████████▎ | 62/74 [00:49<00:08, 1.40it/s]
epoch 106 | loss 0.9979307651519775, f_iou 0.7768793702125549: 84%|█████████████████████████████▎ | 62/74 [00:50<00:08, 1.40it/s]
epoch 106 | loss 0.9979307651519775, f_iou 0.7768793702125549: 85%|█████████████████████████████▊ | 63/74 [00:50<00:07, 1.40it/s]
epoch 106 | loss 0.3542516529560089, f_iou 0.7716936469078064: 85%|█████████████████████████████▊ | 63/74 [00:51<00:07, 1.40it/s]
epoch 106 | loss 0.3542516529560089, f_iou 0.7716936469078064: 86%|██████████████████████████████▎ | 64/74 [00:51<00:07, 1.40it/s]
epoch 106 | loss 1.2083797454833984, f_iou 0.7715681195259094: 86%|██████████████████████████████▎ | 64/74 [00:51<00:07, 1.40it/s]
epoch 106 | loss 1.2083797454833984, f_iou 0.7715681195259094: 88%|██████████████████████████████▋ | 65/74 [00:51<00:06, 1.40it/s]
epoch 106 | loss 2.0686333179473877, f_iou 0.7651544809341431: 88%|██████████████████████████████▋ | 65/74 [00:52<00:06, 1.40it/s]
epoch 106 | loss 2.0686333179473877, f_iou 0.7651544809341431: 89%|███████████████████████████████▏ | 66/74 [00:52<00:05, 1.40it/s]
epoch 106 | loss 1.2905635833740234, f_iou 0.7649941444396973: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.40it/s]
epoch 106 | loss 1.2905635833740234, f_iou 0.7649941444396973: 91%|███████████████████████████████▋ | 67/74 [00:53<00:05, 1.40it/s]
epoch 106 | loss 2.377180337905884, f_iou 0.7630425691604614: 91%|████████████████████████████████▌ | 67/74 [00:54<00:05, 1.40it/s]
epoch 106 | loss 2.377180337905884, f_iou 0.7630425691604614: 92%|█████████████████████████████████ | 68/74 [00:54<00:04, 1.41it/s]
epoch 106 | loss 1.3957016468048096, f_iou 0.7626180648803711: 92%|████████████████████████████████▏ | 68/74 [00:54<00:04, 1.41it/s]
epoch 106 | loss 1.3957016468048096, f_iou 0.7626180648803711: 93%|████████████████████████████████▋ | 69/74 [00:54<00:03, 1.40it/s]
epoch 106 | loss 0.6095141172409058, f_iou 0.7645209431648254: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.40it/s]
epoch 106 | loss 0.6095141172409058, f_iou 0.7645209431648254: 95%|█████████████████████████████████ | 70/74 [00:55<00:02, 1.41it/s]
epoch 106 | loss 1.4772251844406128, f_iou 0.7661620378494263: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 106 | loss 1.4772251844406128, f_iou 0.7661620378494263: 96%|█████████████████████████████████▌ | 71/74 [00:56<00:02, 1.41it/s]
epoch 106 | loss 1.0319528579711914, f_iou 0.7672040462493896: 96%|█████████████████████████████████▌ | 71/74 [00:56<00:02, 1.41it/s]
epoch 106 | loss 1.0319528579711914, f_iou 0.7672040462493896: 97%|██████████████████████████████████ | 72/74 [00:56<00:01, 1.41it/s]
epoch 106 | loss 0.700981616973877, f_iou 0.7613641619682312: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 106 | loss 0.700981616973877, f_iou 0.7613641619682312: 99%|███████████████████████████████████▌| 73/74 [00:57<00:00, 1.40it/s]
epoch 106 | loss 0.9092094898223877, f_iou 0.7620856761932373: 99%|██████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 106 | loss 0.9092094898223877, f_iou 0.7620856761932373: 100%|███████████████████████████████████| 74/74 [00:58<00:00, 1.40it/s]
epoch 106 | loss 0.9092094898223877, f_iou 0.7620856761932373: 100%|███████████████████████████████████| 74/74 [00:58<00:00, 1.27it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 106 | valid.f_iou 0.7493399977684021, valid.f_f-score 0.85441: 0%| | 0/16 [00:05, ?it/s]
epoch 106 | valid.f_iou 0.7493399977684021, valid.f_f-score 0.85441: 6%|█▉ | 1/16 [00:05<01:23, 5.59s/it]
epoch 106 | valid.f_iou 0.7157800197601318, valid.f_f-score 0.87559: 6%|█▉ | 1/16 [00:06<01:23, 5.59s/it]
epoch 106 | valid.f_iou 0.7157800197601318, valid.f_f-score 0.87559: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 106 | valid.f_iou 0.571340024471283, valid.f_f-score 0.78114: 12%|███▉ | 2/16 [00:06<00:36, 2.58s/it]
epoch 106 | valid.f_iou 0.571340024471283, valid.f_f-score 0.78114: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 106 | valid.f_iou 0.5989400148391724, valid.f_f-score 0.76098: 19%|█████▋ | 3/16 [00:06<00:21, 1.62s/it]
epoch 106 | valid.f_iou 0.5989400148391724, valid.f_f-score 0.76098: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 106 | valid.f_iou 0.6084799766540527, valid.f_f-score 0.76301: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 106 | valid.f_iou 0.6084799766540527, valid.f_f-score 0.76301: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 106 | valid.f_iou 0.565850019454956, valid.f_f-score 0.71915: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 106 | valid.f_iou 0.565850019454956, valid.f_f-score 0.71915: 38%|███████████▋ | 6/16 [00:07<00:07, 1.34it/s]
epoch 106 | valid.f_iou 0.5889700055122375, valid.f_f-score 0.74016: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 106 | valid.f_iou 0.5889700055122375, valid.f_f-score 0.74016: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 106 | valid.f_iou 0.5656499862670898, valid.f_f-score 0.72511: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 106 | valid.f_iou 0.5656499862670898, valid.f_f-score 0.72511: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 106 | valid.f_iou 0.5846700072288513, valid.f_f-score 0.73648: 50%|███████████████ | 8/16 [00:09<00:04, 1.75it/s]
epoch 106 | valid.f_iou 0.5846700072288513, valid.f_f-score 0.73648: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.95it/s]
epoch 106 | valid.f_iou 0.5729699730873108, valid.f_f-score 0.73379: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.95it/s]
epoch 106 | valid.f_iou 0.5729699730873108, valid.f_f-score 0.73379: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 106 | valid.f_iou 0.5773699879646301, valid.f_f-score 0.73288: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 106 | valid.f_iou 0.5773699879646301, valid.f_f-score 0.73288: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.11it/s]
epoch 106 | valid.f_iou 0.5989400148391724, valid.f_f-score 0.74894: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.11it/s]
epoch 106 | valid.f_iou 0.5989400148391724, valid.f_f-score 0.74894: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.26it/s]
epoch 106 | valid.f_iou 0.6068999767303467, valid.f_f-score 0.75523: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.26it/s]
epoch 106 | valid.f_iou 0.6068999767303467, valid.f_f-score 0.75523: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.38it/s]
epoch 106 | valid.f_iou 0.6027200222015381, valid.f_f-score 0.75238: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.38it/s]
epoch 106 | valid.f_iou 0.6027200222015381, valid.f_f-score 0.75238: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.47it/s]
epoch 106 | valid.f_iou 0.6068099737167358, valid.f_f-score 0.75174: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.47it/s]
epoch 106 | valid.f_iou 0.6068099737167358, valid.f_f-score 0.75174: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 106 | valid.f_iou 0.6101499795913696, valid.f_f-score 0.74975: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 106 | valid.f_iou 0.6101499795913696, valid.f_f-score 0.74975: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 106 | valid.f_iou 0.6101499795913696, valid.f_f-score 0.74975: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 106 | valid.f_iou 0.8111100196838379, valid.f_f-score 0.811: 0%| | 0/16 [00:05, ?it/s]
epoch 106 | valid.f_iou 0.8111100196838379, valid.f_f-score 0.811: 6%|██ | 1/16 [00:05<01:20, 5.38s/it]
epoch 106 | valid.f_iou 0.8238400220870972, valid.f_f-score 0.86411: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 106 | valid.f_iou 0.8238400220870972, valid.f_f-score 0.86411: 12%|███▊ | 2/16 [00:05<00:34, 2.49s/it]
epoch 106 | valid.f_iou 0.761900007724762, valid.f_f-score 0.84389: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 106 | valid.f_iou 0.761900007724762, valid.f_f-score 0.84389: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 106 | valid.f_iou 0.7493100166320801, valid.f_f-score 0.8156: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 106 | valid.f_iou 0.7493100166320801, valid.f_f-score 0.8156: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 106 | valid.f_iou 0.7141900062561035, valid.f_f-score 0.80139: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 106 | valid.f_iou 0.7141900062561035, valid.f_f-score 0.80139: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 106 | valid.f_iou 0.7020300030708313, valid.f_f-score 0.79391: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 106 | valid.f_iou 0.7020300030708313, valid.f_f-score 0.79391: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 106 | valid.f_iou 0.7207900285720825, valid.f_f-score 0.81494: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 106 | valid.f_iou 0.7207900285720825, valid.f_f-score 0.81494: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 106 | valid.f_iou 0.711080014705658, valid.f_f-score 0.81408: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 106 | valid.f_iou 0.711080014705658, valid.f_f-score 0.81408: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.77it/s]
epoch 106 | valid.f_iou 0.7146999835968018, valid.f_f-score 0.81657: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 106 | valid.f_iou 0.7146999835968018, valid.f_f-score 0.81657: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.97it/s]
epoch 106 | valid.f_iou 0.7170100212097168, valid.f_f-score 0.82462: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 106 | valid.f_iou 0.7170100212097168, valid.f_f-score 0.82462: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 106 | valid.f_iou 0.7090499997138977, valid.f_f-score 0.80804: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 106 | valid.f_iou 0.7090499997138977, valid.f_f-score 0.80804: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.10it/s]
epoch 106 | valid.f_iou 0.7214699983596802, valid.f_f-score 0.81828: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.10it/s]
epoch 106 | valid.f_iou 0.7214699983596802, valid.f_f-score 0.81828: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 106 | valid.f_iou 0.7328000068664551, valid.f_f-score 0.82606: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 106 | valid.f_iou 0.7328000068664551, valid.f_f-score 0.82606: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.16it/s]
epoch 106 | valid.f_iou 0.724839985370636, valid.f_f-score 0.81846: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.16it/s]
epoch 106 | valid.f_iou 0.724839985370636, valid.f_f-score 0.81846: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.16it/s]
epoch 106 | valid.f_iou 0.7354699969291687, valid.f_f-score 0.82776: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.16it/s]
epoch 106 | valid.f_iou 0.7354699969291687, valid.f_f-score 0.82776: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.16it/s]
epoch 106 | valid.f_iou 0.7320200204849243, valid.f_f-score 0.82256: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.16it/s]
epoch 106 | valid.f_iou 0.7320200204849243, valid.f_f-score 0.82256: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.17it/s]
epoch 106 | valid.f_iou 0.7320200204849243, valid.f_f-score 0.82256: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.33it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 106 | valid.f_iou 0.8111100196838379, valid.f_f-score 0.811: 0%| | 0/16 [00:05, ?it/s]
epoch 106 | valid.f_iou 0.8111100196838379, valid.f_f-score 0.811: 6%|██ | 1/16 [00:05<01:15, 5.03s/it]
epoch 106 | valid.f_iou 0.8238400220870972, valid.f_f-score 0.86411: 6%|█▉ | 1/16 [00:05<01:15, 5.03s/it]
epoch 106 | valid.f_iou 0.8238400220870972, valid.f_f-score 0.86411: 12%|███▊ | 2/16 [00:05<00:32, 2.35s/it]
epoch 106 | valid.f_iou 0.761900007724762, valid.f_f-score 0.84389: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 106 | valid.f_iou 0.761900007724762, valid.f_f-score 0.84389: 19%|█████▊ | 3/16 [00:05<00:19, 1.49s/it]
epoch 106 | valid.f_iou 0.7494999766349792, valid.f_f-score 0.80608: 19%|█████▋ | 3/16 [00:06<00:19, 1.49s/it]
epoch 106 | valid.f_iou 0.7494999766349792, valid.f_f-score 0.80608: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 106 | valid.f_iou 0.7203900218009949, valid.f_f-score 0.79377: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 106 | valid.f_iou 0.7203900218009949, valid.f_f-score 0.79377: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 106 | valid.f_iou 0.7071999907493591, valid.f_f-score 0.78756: 31%|█████████▍ | 5/16 [00:07<00:09, 1.18it/s]
epoch 106 | valid.f_iou 0.7071999907493591, valid.f_f-score 0.78756: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 106 | valid.f_iou 0.7269799709320068, valid.f_f-score 0.8095: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 106 | valid.f_iou 0.7269799709320068, valid.f_f-score 0.8095: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 106 | valid.f_iou 0.7164899706840515, valid.f_f-score 0.80932: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.64it/s]
epoch 106 | valid.f_iou 0.7164899706840515, valid.f_f-score 0.80932: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 106 | valid.f_iou 0.7234399914741516, valid.f_f-score 0.81234: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 106 | valid.f_iou 0.7234399914741516, valid.f_f-score 0.81234: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.97it/s]
epoch 106 | valid.f_iou 0.7242100238800049, valid.f_f-score 0.81826: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.97it/s]
epoch 106 | valid.f_iou 0.7242100238800049, valid.f_f-score 0.81826: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.05it/s]
epoch 106 | valid.f_iou 0.7155900001525879, valid.f_f-score 0.80226: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 106 | valid.f_iou 0.7155900001525879, valid.f_f-score 0.80226: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.10it/s]
epoch 106 | valid.f_iou 0.7274699807167053, valid.f_f-score 0.81298: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.10it/s]
epoch 106 | valid.f_iou 0.7274699807167053, valid.f_f-score 0.81298: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.14it/s]
epoch 106 | valid.f_iou 0.738290011882782, valid.f_f-score 0.82186: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.14it/s]
epoch 106 | valid.f_iou 0.738290011882782, valid.f_f-score 0.82186: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.18it/s]
epoch 106 | valid.f_iou 0.7299399971961975, valid.f_f-score 0.81457: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.18it/s]
epoch 106 | valid.f_iou 0.7299399971961975, valid.f_f-score 0.81457: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.29it/s]
epoch 106 | valid.f_iou 0.7402200102806091, valid.f_f-score 0.82413: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.29it/s]
epoch 106 | valid.f_iou 0.7402200102806091, valid.f_f-score 0.82413: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.41it/s]
epoch 106 | valid.f_iou 0.7373899817466736, valid.f_f-score 0.81916: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.41it/s]
epoch 106 | valid.f_iou 0.7373899817466736, valid.f_f-score 0.81916: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.50it/s]
epoch 106 | valid.f_iou 0.7373899817466736, valid.f_f-score 0.81916: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 107 | loss 1.04136323928833, f_iou 0.6800662279129028: 0%| | 0/74 [00:06, ?it/s]
epoch 107 | loss 1.04136323928833, f_iou 0.6800662279129028: 1%|▌ | 1/74 [00:06<08:09, 6.71s/it]
epoch 107 | loss 0.39674362540245056, f_iou 0.7658795118331909: 1%|▍ | 1/74 [00:07<08:09, 6.71s/it]
epoch 107 | loss 0.39674362540245056, f_iou 0.7658795118331909: 3%|▉ | 2/74 [00:07<03:53, 3.25s/it]
epoch 107 | loss 0.33145755529403687, f_iou 0.8372701406478882: 3%|▉ | 2/74 [00:08<03:53, 3.25s/it]
epoch 107 | loss 0.33145755529403687, f_iou 0.8372701406478882: 4%|█▍ | 3/74 [00:08<02:31, 2.14s/it]
epoch 107 | loss 0.0, f_iou 0.8207724690437317: 4%|██ | 3/74 [00:09<02:31, 2.14s/it]
epoch 107 | loss 0.0, f_iou 0.8207724690437317: 5%|██▊ | 4/74 [00:09<01:52, 1.61s/it]
epoch 107 | loss 2.18050479888916, f_iou 0.7927431464195251: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 107 | loss 2.18050479888916, f_iou 0.7927431464195251: 7%|██▌ | 5/74 [00:09<01:31, 1.33s/it]
epoch 107 | loss 1.257333755493164, f_iou 0.7013499140739441: 7%|██▌ | 5/74 [00:10<01:31, 1.33s/it]
epoch 107 | loss 1.257333755493164, f_iou 0.7013499140739441: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 107 | loss 0.5194754004478455, f_iou 0.7221485376358032: 8%|██▉ | 6/74 [00:11<01:18, 1.15s/it]
epoch 107 | loss 0.5194754004478455, f_iou 0.7221485376358032: 9%|███▍ | 7/74 [00:11<01:09, 1.04s/it]
epoch 107 | loss 0.5217730402946472, f_iou 0.7460224628448486: 9%|███▍ | 7/74 [00:12<01:09, 1.04s/it]
epoch 107 | loss 0.5217730402946472, f_iou 0.7460224628448486: 11%|███▉ | 8/74 [00:12<01:03, 1.04it/s]
epoch 107 | loss 2.128264904022217, f_iou 0.722528338432312: 11%|████ | 8/74 [00:13<01:03, 1.04it/s]
epoch 107 | loss 2.128264904022217, f_iou 0.722528338432312: 12%|████▌ | 9/74 [00:13<00:59, 1.09it/s]
epoch 107 | loss 0.7491466403007507, f_iou 0.7194936275482178: 12%|████▍ | 9/74 [00:13<00:59, 1.09it/s]
epoch 107 | loss 0.7491466403007507, f_iou 0.7194936275482178: 14%|████▋ | 10/74 [00:13<00:55, 1.15it/s]
epoch 107 | loss 0.9461230635643005, f_iou 0.7093205451965332: 14%|████▋ | 10/74 [00:14<00:55, 1.15it/s]
epoch 107 | loss 0.9461230635643005, f_iou 0.7093205451965332: 15%|█████▏ | 11/74 [00:14<00:53, 1.19it/s]
epoch 107 | loss 1.59427809715271, f_iou 0.6994564533233643: 15%|█████▌ | 11/74 [00:15<00:53, 1.19it/s]
epoch 107 | loss 1.59427809715271, f_iou 0.6994564533233643: 16%|██████ | 12/74 [00:15<00:50, 1.23it/s]
epoch 107 | loss 1.068376064300537, f_iou 0.7144507169723511: 16%|█████▊ | 12/74 [00:16<00:50, 1.23it/s]
epoch 107 | loss 1.068376064300537, f_iou 0.7144507169723511: 18%|██████▎ | 13/74 [00:16<00:47, 1.27it/s]
epoch 107 | loss 1.6803693771362305, f_iou 0.6977546811103821: 18%|██████▏ | 13/74 [00:16<00:47, 1.27it/s]
epoch 107 | loss 1.6803693771362305, f_iou 0.6977546811103821: 19%|██████▌ | 14/74 [00:16<00:45, 1.31it/s]
epoch 107 | loss 0.6790591478347778, f_iou 0.7085071802139282: 19%|██████▌ | 14/74 [00:17<00:45, 1.31it/s]
epoch 107 | loss 0.6790591478347778, f_iou 0.7085071802139282: 20%|███████ | 15/74 [00:17<00:44, 1.33it/s]
epoch 107 | loss 0.9000831246376038, f_iou 0.7060724496841431: 20%|███████ | 15/74 [00:18<00:44, 1.33it/s]
epoch 107 | loss 0.9000831246376038, f_iou 0.7060724496841431: 22%|███████▌ | 16/74 [00:18<00:43, 1.35it/s]
epoch 107 | loss 0.8588685393333435, f_iou 0.712380051612854: 22%|███████▊ | 16/74 [00:19<00:43, 1.35it/s]
epoch 107 | loss 0.8588685393333435, f_iou 0.712380051612854: 23%|████████▎ | 17/74 [00:19<00:41, 1.36it/s]
epoch 107 | loss 0.8720255494117737, f_iou 0.71852707862854: 23%|████████▌ | 17/74 [00:19<00:41, 1.36it/s]
epoch 107 | loss 0.8720255494117737, f_iou 0.71852707862854: 24%|█████████ | 18/74 [00:19<00:40, 1.37it/s]
epoch 107 | loss 0.6204090714454651, f_iou 0.6975032687187195: 24%|████████▌ | 18/74 [00:20<00:40, 1.37it/s]
epoch 107 | loss 0.6204090714454651, f_iou 0.6975032687187195: 26%|████████▉ | 19/74 [00:20<00:40, 1.37it/s]
epoch 107 | loss 0.8304183483123779, f_iou 0.7077603936195374: 26%|████████▉ | 19/74 [00:21<00:40, 1.37it/s]
epoch 107 | loss 0.8304183483123779, f_iou 0.7077603936195374: 27%|█████████▍ | 20/74 [00:21<00:39, 1.38it/s]
epoch 107 | loss 0.9082510471343994, f_iou 0.715869665145874: 27%|█████████▋ | 20/74 [00:21<00:39, 1.38it/s]
epoch 107 | loss 0.9082510471343994, f_iou 0.715869665145874: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 107 | loss 2.727900743484497, f_iou 0.7128300666809082: 28%|██████████▏ | 21/74 [00:22<00:38, 1.38it/s]
epoch 107 | loss 2.727900743484497, f_iou 0.7128300666809082: 30%|██████████▋ | 22/74 [00:22<00:37, 1.39it/s]
epoch 107 | loss 0.7400760650634766, f_iou 0.7224345207214355: 30%|██████████▍ | 22/74 [00:23<00:37, 1.39it/s]
epoch 107 | loss 0.7400760650634766, f_iou 0.7224345207214355: 31%|██████████▉ | 23/74 [00:23<00:36, 1.39it/s]
epoch 107 | loss 2.1159918308258057, f_iou 0.7238642573356628: 31%|██████████▉ | 23/74 [00:24<00:36, 1.39it/s]
epoch 107 | loss 2.1159918308258057, f_iou 0.7238642573356628: 32%|███████████▎ | 24/74 [00:24<00:36, 1.39it/s]
epoch 107 | loss 1.1792739629745483, f_iou 0.7173202633857727: 32%|███████████▎ | 24/74 [00:24<00:36, 1.39it/s]
epoch 107 | loss 1.1792739629745483, f_iou 0.7173202633857727: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 107 | loss 1.1490955352783203, f_iou 0.716705858707428: 34%|████████████▏ | 25/74 [00:25<00:35, 1.39it/s]
epoch 107 | loss 1.1490955352783203, f_iou 0.716705858707428: 35%|████████████▋ | 26/74 [00:25<00:34, 1.39it/s]
epoch 107 | loss 1.0427072048187256, f_iou 0.7247536182403564: 35%|████████████▎ | 26/74 [00:26<00:34, 1.39it/s]
epoch 107 | loss 1.0427072048187256, f_iou 0.7247536182403564: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 107 | loss 2.0885043144226074, f_iou 0.7159817814826965: 36%|████████████▊ | 27/74 [00:27<00:33, 1.39it/s]
epoch 107 | loss 2.0885043144226074, f_iou 0.7159817814826965: 38%|█████████████▏ | 28/74 [00:27<00:32, 1.40it/s]
epoch 107 | loss 1.8470122814178467, f_iou 0.7127730846405029: 38%|█████████████▏ | 28/74 [00:27<00:32, 1.40it/s]
epoch 107 | loss 1.8470122814178467, f_iou 0.7127730846405029: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.40it/s]
epoch 107 | loss 0.5240446925163269, f_iou 0.7196222543716431: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.40it/s]
epoch 107 | loss 0.5240446925163269, f_iou 0.7196222543716431: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.40it/s]
epoch 107 | loss 0.29132938385009766, f_iou 0.7268763780593872: 41%|█████████████▊ | 30/74 [00:29<00:31, 1.40it/s]
epoch 107 | loss 0.29132938385009766, f_iou 0.7268763780593872: 42%|██████████████▏ | 31/74 [00:29<00:30, 1.40it/s]
epoch 107 | loss 1.4555315971374512, f_iou 0.722477912902832: 42%|███████████████ | 31/74 [00:29<00:30, 1.40it/s]
epoch 107 | loss 1.4555315971374512, f_iou 0.722477912902832: 43%|███████████████▌ | 32/74 [00:29<00:29, 1.40it/s]
epoch 107 | loss 0.6642023921012878, f_iou 0.727792501449585: 43%|███████████████▌ | 32/74 [00:30<00:29, 1.40it/s]
epoch 107 | loss 0.6642023921012878, f_iou 0.727792501449585: 45%|████████████████ | 33/74 [00:30<00:29, 1.40it/s]
epoch 107 | loss 1.118015170097351, f_iou 0.7291131019592285: 45%|████████████████ | 33/74 [00:31<00:29, 1.40it/s]
epoch 107 | loss 1.118015170097351, f_iou 0.7291131019592285: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.40it/s]
epoch 107 | loss 0.9663965702056885, f_iou 0.7256466746330261: 46%|████████████████ | 34/74 [00:32<00:28, 1.40it/s]
epoch 107 | loss 0.9663965702056885, f_iou 0.7256466746330261: 47%|████████████████▌ | 35/74 [00:32<00:27, 1.40it/s]
epoch 107 | loss 1.4434958696365356, f_iou 0.7286605834960938: 47%|████████████████▌ | 35/74 [00:32<00:27, 1.40it/s]
epoch 107 | loss 1.4434958696365356, f_iou 0.7286605834960938: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 107 | loss 0.9043833017349243, f_iou 0.7323701977729797: 49%|█████████████████ | 36/74 [00:33<00:27, 1.39it/s]
epoch 107 | loss 0.9043833017349243, f_iou 0.7323701977729797: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 107 | loss 1.5854618549346924, f_iou 0.73468416929245: 50%|██████████████████▌ | 37/74 [00:34<00:26, 1.39it/s]
epoch 107 | loss 1.5854618549346924, f_iou 0.73468416929245: 51%|███████████████████ | 38/74 [00:34<00:25, 1.40it/s]
epoch 107 | loss 1.2113432884216309, f_iou 0.7385907173156738: 51%|█████████████████▉ | 38/74 [00:34<00:25, 1.40it/s]
epoch 107 | loss 1.2113432884216309, f_iou 0.7385907173156738: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.40it/s]
epoch 107 | loss 0.6758174300193787, f_iou 0.7405245304107666: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.40it/s]
epoch 107 | loss 0.6758174300193787, f_iou 0.7405245304107666: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.40it/s]
epoch 107 | loss 1.2887686491012573, f_iou 0.7245696783065796: 54%|██████████████████▉ | 40/74 [00:36<00:24, 1.40it/s]
epoch 107 | loss 1.2887686491012573, f_iou 0.7245696783065796: 55%|███████████████████▍ | 41/74 [00:36<00:23, 1.40it/s]
epoch 107 | loss 1.0936460494995117, f_iou 0.7289290428161621: 55%|███████████████████▍ | 41/74 [00:37<00:23, 1.40it/s]
epoch 107 | loss 1.0936460494995117, f_iou 0.7289290428161621: 57%|███████████████████▊ | 42/74 [00:37<00:22, 1.40it/s]
epoch 107 | loss 1.1100006103515625, f_iou 0.7298749685287476: 57%|███████████████████▊ | 42/74 [00:37<00:22, 1.40it/s]
epoch 107 | loss 1.1100006103515625, f_iou 0.7298749685287476: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.40it/s]
epoch 107 | loss 0.7855395078659058, f_iou 0.7343862056732178: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.40it/s]
epoch 107 | loss 0.7855395078659058, f_iou 0.7343862056732178: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.40it/s]
epoch 107 | loss 0.4624090790748596, f_iou 0.7180665135383606: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.40it/s]
epoch 107 | loss 0.4624090790748596, f_iou 0.7180665135383606: 61%|█████████████████████▎ | 45/74 [00:39<00:20, 1.40it/s]
epoch 107 | loss 0.9665592312812805, f_iou 0.7188304662704468: 61%|█████████████████████▎ | 45/74 [00:39<00:20, 1.40it/s]
epoch 107 | loss 0.9665592312812805, f_iou 0.7188304662704468: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.40it/s]
epoch 107 | loss 1.2949466705322266, f_iou 0.7098339796066284: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.40it/s]
epoch 107 | loss 1.2949466705322266, f_iou 0.7098339796066284: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.40it/s]
epoch 107 | loss 0.3847811222076416, f_iou 0.7123039960861206: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.40it/s]
epoch 107 | loss 0.3847811222076416, f_iou 0.7123039960861206: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.40it/s]
epoch 107 | loss 1.0097777843475342, f_iou 0.7151384949684143: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.40it/s]
epoch 107 | loss 1.0097777843475342, f_iou 0.7151384949684143: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.39it/s]
epoch 107 | loss 1.2778640985488892, f_iou 0.7149604558944702: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.39it/s]
epoch 107 | loss 1.2778640985488892, f_iou 0.7149604558944702: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 107 | loss 1.0632823705673218, f_iou 0.7189878821372986: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 107 | loss 1.0632823705673218, f_iou 0.7189878821372986: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.38it/s]
epoch 107 | loss 1.113560676574707, f_iou 0.7157542705535889: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 107 | loss 1.113560676574707, f_iou 0.7157542705535889: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.34it/s]
epoch 107 | loss 1.000432014465332, f_iou 0.7168576121330261: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.34it/s]
epoch 107 | loss 1.000432014465332, f_iou 0.7168576121330261: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.32it/s]
epoch 107 | loss 0.6793879270553589, f_iou 0.7196606397628784: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.32it/s]
epoch 107 | loss 0.6793879270553589, f_iou 0.7196606397628784: 73%|█████████████████████████▌ | 54/74 [00:45<00:15, 1.29it/s]
epoch 107 | loss 0.927859902381897, f_iou 0.7212287783622742: 73%|██████████████████████████▎ | 54/74 [00:46<00:15, 1.29it/s]
epoch 107 | loss 0.927859902381897, f_iou 0.7212287783622742: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.29it/s]
epoch 107 | loss 1.085182785987854, f_iou 0.7244053483009338: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.29it/s]
epoch 107 | loss 1.085182785987854, f_iou 0.7244053483009338: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.32it/s]
epoch 107 | loss 1.0081613063812256, f_iou 0.723271906375885: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.32it/s]
epoch 107 | loss 1.0081613063812256, f_iou 0.723271906375885: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.34it/s]
epoch 107 | loss 0.9069219827651978, f_iou 0.7227624654769897: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.34it/s]
epoch 107 | loss 0.9069219827651978, f_iou 0.7227624654769897: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.36it/s]
epoch 107 | loss 0.0, f_iou 0.7260771989822388: 78%|███████████████████████████████████████▏ | 58/74 [00:49<00:11, 1.36it/s]
epoch 107 | loss 0.0, f_iou 0.7260771989822388: 80%|███████████████████████████████████████▊ | 59/74 [00:49<00:10, 1.37it/s]
epoch 107 | loss 1.332375407218933, f_iou 0.7283216714859009: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.37it/s]
epoch 107 | loss 1.332375407218933, f_iou 0.7283216714859009: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 107 | loss 1.115329623222351, f_iou 0.7256417870521545: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.37it/s]
epoch 107 | loss 1.115329623222351, f_iou 0.7256417870521545: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.38it/s]
epoch 107 | loss 1.0375339984893799, f_iou 0.727584958076477: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.38it/s]
epoch 107 | loss 1.0375339984893799, f_iou 0.727584958076477: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.39it/s]
epoch 107 | loss 0.9989073276519775, f_iou 0.7298811078071594: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.39it/s]
epoch 107 | loss 0.9989073276519775, f_iou 0.7298811078071594: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.39it/s]
epoch 107 | loss 0.726607084274292, f_iou 0.7326367497444153: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.39it/s]
epoch 107 | loss 0.726607084274292, f_iou 0.7326367497444153: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 107 | loss 0.7823894619941711, f_iou 0.735378623008728: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.39it/s]
epoch 107 | loss 0.7823894619941711, f_iou 0.735378623008728: 88%|███████████████████████████████▌ | 65/74 [00:53<00:06, 1.40it/s]
epoch 107 | loss 0.5749959945678711, f_iou 0.7387848496437073: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.40it/s]
epoch 107 | loss 0.5749959945678711, f_iou 0.7387848496437073: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.40it/s]
epoch 107 | loss 0.7449266910552979, f_iou 0.7413950562477112: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.40it/s]
epoch 107 | loss 0.7449266910552979, f_iou 0.7413950562477112: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.40it/s]
epoch 107 | loss 0.8631491661071777, f_iou 0.7433348298072815: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.40it/s]
epoch 107 | loss 0.8631491661071777, f_iou 0.7433348298072815: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.40it/s]
epoch 107 | loss 0.5107226371765137, f_iou 0.7357832193374634: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.40it/s]
epoch 107 | loss 0.5107226371765137, f_iou 0.7357832193374634: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.40it/s]
epoch 107 | loss 0.44383716583251953, f_iou 0.7367599010467529: 93%|███████████████████████████████▋ | 69/74 [00:57<00:03, 1.40it/s]
epoch 107 | loss 0.44383716583251953, f_iou 0.7367599010467529: 95%|████████████████████████████████▏ | 70/74 [00:57<00:02, 1.41it/s]
epoch 107 | loss 0.9957711696624756, f_iou 0.7362328171730042: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 107 | loss 0.9957711696624756, f_iou 0.7362328171730042: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 107 | loss 1.0069128274917603, f_iou 0.7299924492835999: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 107 | loss 1.0069128274917603, f_iou 0.7299924492835999: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 107 | loss 0.45612138509750366, f_iou 0.7326585650444031: 97%|█████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 107 | loss 0.45612138509750366, f_iou 0.7326585650444031: 99%|█████████████████████████████████▌| 73/74 [00:59<00:00, 1.42it/s]
epoch 107 | loss 0.9118338823318481, f_iou 0.7341224551200867: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.42it/s]
epoch 107 | loss 0.9118338823318481, f_iou 0.7341224551200867: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 107 | loss 0.9118338823318481, f_iou 0.7341224551200867: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 107 | valid.f_iou 0.7645800113677979, valid.f_f-score 0.86413: 0%| | 0/16 [00:05, ?it/s]
epoch 107 | valid.f_iou 0.7645800113677979, valid.f_f-score 0.86413: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 107 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.87197: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 107 | valid.f_iou 0.7140100002288818, valid.f_f-score 0.87197: 12%|███▊ | 2/16 [00:05<00:35, 2.54s/it]
epoch 107 | valid.f_iou 0.5768600106239319, valid.f_f-score 0.77737: 12%|███▊ | 2/16 [00:06<00:35, 2.54s/it]
epoch 107 | valid.f_iou 0.5768600106239319, valid.f_f-score 0.77737: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 107 | valid.f_iou 0.6077100038528442, valid.f_f-score 0.76328: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 107 | valid.f_iou 0.6077100038528442, valid.f_f-score 0.76328: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 107 | valid.f_iou 0.6174100041389465, valid.f_f-score 0.76659: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 107 | valid.f_iou 0.6174100041389465, valid.f_f-score 0.76659: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 107 | valid.f_iou 0.5721200108528137, valid.f_f-score 0.71894: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 107 | valid.f_iou 0.5721200108528137, valid.f_f-score 0.71894: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 107 | valid.f_iou 0.5970100164413452, valid.f_f-score 0.74062: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 107 | valid.f_iou 0.5970100164413452, valid.f_f-score 0.74062: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.72it/s]
epoch 107 | valid.f_iou 0.5814200043678284, valid.f_f-score 0.73318: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.72it/s]
epoch 107 | valid.f_iou 0.5814200043678284, valid.f_f-score 0.73318: 50%|███████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 107 | valid.f_iou 0.5996900200843811, valid.f_f-score 0.74544: 50%|███████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 107 | valid.f_iou 0.5996900200843811, valid.f_f-score 0.74544: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.00it/s]
epoch 107 | valid.f_iou 0.5913900136947632, valid.f_f-score 0.74421: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.00it/s]
epoch 107 | valid.f_iou 0.5913900136947632, valid.f_f-score 0.74421: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.11it/s]
epoch 107 | valid.f_iou 0.5913500189781189, valid.f_f-score 0.74088: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.11it/s]
epoch 107 | valid.f_iou 0.5913500189781189, valid.f_f-score 0.74088: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.27it/s]
epoch 107 | valid.f_iou 0.6108800172805786, valid.f_f-score 0.75627: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.27it/s]
epoch 107 | valid.f_iou 0.6108800172805786, valid.f_f-score 0.75627: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.30it/s]
epoch 107 | valid.f_iou 0.6189299821853638, valid.f_f-score 0.7615: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.30it/s]
epoch 107 | valid.f_iou 0.6189299821853638, valid.f_f-score 0.7615: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 107 | valid.f_iou 0.612060010433197, valid.f_f-score 0.75677: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.42it/s]
epoch 107 | valid.f_iou 0.612060010433197, valid.f_f-score 0.75677: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.50it/s]
epoch 107 | valid.f_iou 0.6156200170516968, valid.f_f-score 0.75605: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.50it/s]
epoch 107 | valid.f_iou 0.6156200170516968, valid.f_f-score 0.75605: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 107 | valid.f_iou 0.6179800033569336, valid.f_f-score 0.7538: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 107 | valid.f_iou 0.6179800033569336, valid.f_f-score 0.7538: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 107 | valid.f_iou 0.6179800033569336, valid.f_f-score 0.7538: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 107 | valid.f_iou 0.8255800008773804, valid.f_f-score 0.87149: 0%| | 0/16 [00:04, ?it/s]
epoch 107 | valid.f_iou 0.8255800008773804, valid.f_f-score 0.87149: 6%|█▉ | 1/16 [00:04<01:14, 4.99s/it]
epoch 107 | valid.f_iou 0.844730019569397, valid.f_f-score 0.90243: 6%|█▉ | 1/16 [00:05<01:14, 4.99s/it]
epoch 107 | valid.f_iou 0.844730019569397, valid.f_f-score 0.90243: 12%|███▉ | 2/16 [00:05<00:32, 2.32s/it]
epoch 107 | valid.f_iou 0.7867199778556824, valid.f_f-score 0.87567: 12%|███▊ | 2/16 [00:05<00:32, 2.32s/it]
epoch 107 | valid.f_iou 0.7867199778556824, valid.f_f-score 0.87567: 19%|█████▋ | 3/16 [00:05<00:19, 1.47s/it]
epoch 107 | valid.f_iou 0.7729899883270264, valid.f_f-score 0.83619: 19%|█████▋ | 3/16 [00:06<00:19, 1.47s/it]
epoch 107 | valid.f_iou 0.7729899883270264, valid.f_f-score 0.83619: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 107 | valid.f_iou 0.7421000003814697, valid.f_f-score 0.82583: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 107 | valid.f_iou 0.7421000003814697, valid.f_f-score 0.82583: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 107 | valid.f_iou 0.7238399982452393, valid.f_f-score 0.81468: 31%|█████████▍ | 5/16 [00:07<00:09, 1.18it/s]
epoch 107 | valid.f_iou 0.7238399982452393, valid.f_f-score 0.81468: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 107 | valid.f_iou 0.739080011844635, valid.f_f-score 0.83059: 38%|███████████▋ | 6/16 [00:07<00:07, 1.40it/s]
epoch 107 | valid.f_iou 0.739080011844635, valid.f_f-score 0.83059: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.61it/s]
epoch 107 | valid.f_iou 0.7272400259971619, valid.f_f-score 0.82816: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 107 | valid.f_iou 0.7272400259971619, valid.f_f-score 0.82816: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 107 | valid.f_iou 0.735010027885437, valid.f_f-score 0.83569: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 107 | valid.f_iou 0.735010027885437, valid.f_f-score 0.83569: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 107 | valid.f_iou 0.7445999979972839, valid.f_f-score 0.84383: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 107 | valid.f_iou 0.7445999979972839, valid.f_f-score 0.84383: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.13it/s]
epoch 107 | valid.f_iou 0.7308599948883057, valid.f_f-score 0.82231: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.13it/s]
epoch 107 | valid.f_iou 0.7308599948883057, valid.f_f-score 0.82231: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 107 | valid.f_iou 0.7424600124359131, valid.f_f-score 0.83164: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 107 | valid.f_iou 0.7424600124359131, valid.f_f-score 0.83164: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.41it/s]
epoch 107 | valid.f_iou 0.7527999877929688, valid.f_f-score 0.83855: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 107 | valid.f_iou 0.7527999877929688, valid.f_f-score 0.83855: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 107 | valid.f_iou 0.738610029220581, valid.f_f-score 0.82505: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.50it/s]
epoch 107 | valid.f_iou 0.738610029220581, valid.f_f-score 0.82505: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.56it/s]
epoch 107 | valid.f_iou 0.7480400204658508, valid.f_f-score 0.83356: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 107 | valid.f_iou 0.7480400204658508, valid.f_f-score 0.83356: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 107 | valid.f_iou 0.7423499822616577, valid.f_f-score 0.82721: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 107 | valid.f_iou 0.7423499822616577, valid.f_f-score 0.82721: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 107 | valid.f_iou 0.7423499822616577, valid.f_f-score 0.82721: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 107 | valid.f_iou 0.8255800008773804, valid.f_f-score 0.87149: 0%| | 0/16 [00:04, ?it/s]
epoch 107 | valid.f_iou 0.8255800008773804, valid.f_f-score 0.87149: 6%|█▉ | 1/16 [00:04<01:12, 4.85s/it]
epoch 107 | valid.f_iou 0.844730019569397, valid.f_f-score 0.90243: 6%|█▉ | 1/16 [00:05<01:12, 4.85s/it]
epoch 107 | valid.f_iou 0.844730019569397, valid.f_f-score 0.90243: 12%|███▉ | 2/16 [00:05<00:31, 2.27s/it]
epoch 107 | valid.f_iou 0.7867199778556824, valid.f_f-score 0.87567: 12%|███▊ | 2/16 [00:05<00:31, 2.27s/it]
epoch 107 | valid.f_iou 0.7867199778556824, valid.f_f-score 0.87567: 19%|█████▋ | 3/16 [00:05<00:18, 1.43s/it]
epoch 107 | valid.f_iou 0.7708899974822998, valid.f_f-score 0.83036: 19%|█████▋ | 3/16 [00:06<00:18, 1.43s/it]
epoch 107 | valid.f_iou 0.7708899974822998, valid.f_f-score 0.83036: 25%|███████▌ | 4/16 [00:06<00:12, 1.01s/it]
epoch 107 | valid.f_iou 0.7445899844169617, valid.f_f-score 0.82117: 25%|███████▌ | 4/16 [00:06<00:12, 1.01s/it]
epoch 107 | valid.f_iou 0.7445899844169617, valid.f_f-score 0.82117: 31%|█████████▍ | 5/16 [00:06<00:08, 1.26it/s]
epoch 107 | valid.f_iou 0.7259100079536438, valid.f_f-score 0.81079: 31%|█████████▍ | 5/16 [00:06<00:08, 1.26it/s]
epoch 107 | valid.f_iou 0.7259100079536438, valid.f_f-score 0.81079: 38%|███████████▎ | 6/16 [00:06<00:06, 1.47it/s]
epoch 107 | valid.f_iou 0.7435200214385986, valid.f_f-score 0.82726: 38%|███████████▎ | 6/16 [00:07<00:06, 1.47it/s]
epoch 107 | valid.f_iou 0.7435200214385986, valid.f_f-score 0.82726: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.67it/s]
epoch 107 | valid.f_iou 0.7311199903488159, valid.f_f-score 0.82524: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.67it/s]
epoch 107 | valid.f_iou 0.7311199903488159, valid.f_f-score 0.82524: 50%|███████████████ | 8/16 [00:07<00:04, 1.86it/s]
epoch 107 | valid.f_iou 0.7401900291442871, valid.f_f-score 0.8331: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 107 | valid.f_iou 0.7401900291442871, valid.f_f-score 0.8331: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.10it/s]
epoch 107 | valid.f_iou 0.7475399971008301, valid.f_f-score 0.83883: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.10it/s]
epoch 107 | valid.f_iou 0.7475399971008301, valid.f_f-score 0.83883: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.26it/s]
epoch 107 | valid.f_iou 0.7335299849510193, valid.f_f-score 0.81776: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.26it/s]
epoch 107 | valid.f_iou 0.7335299849510193, valid.f_f-score 0.81776: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.39it/s]
epoch 107 | valid.f_iou 0.7449100017547607, valid.f_f-score 0.82747: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.39it/s]
epoch 107 | valid.f_iou 0.7449100017547607, valid.f_f-score 0.82747: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.47it/s]
epoch 107 | valid.f_iou 0.7550399899482727, valid.f_f-score 0.83586: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.47it/s]
epoch 107 | valid.f_iou 0.7550399899482727, valid.f_f-score 0.83586: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.54it/s]
epoch 107 | valid.f_iou 0.7406899929046631, valid.f_f-score 0.82256: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.54it/s]
epoch 107 | valid.f_iou 0.7406899929046631, valid.f_f-score 0.82256: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.59it/s]
epoch 107 | valid.f_iou 0.7499799728393555, valid.f_f-score 0.83123: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 107 | valid.f_iou 0.7499799728393555, valid.f_f-score 0.83123: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 107 | valid.f_iou 0.7450900077819824, valid.f_f-score 0.82503: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 107 | valid.f_iou 0.7450900077819824, valid.f_f-score 0.82503: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 107 | valid.f_iou 0.7450900077819824, valid.f_f-score 0.82503: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 108 | loss 0.7472138404846191, f_iou 0.7207189798355103: 0%| | 0/74 [00:05, ?it/s]
epoch 108 | loss 0.7472138404846191, f_iou 0.7207189798355103: 1%|▍ | 1/74 [00:05<06:38, 5.45s/it]
epoch 108 | loss 0.8352931141853333, f_iou 0.5704697966575623: 1%|▍ | 1/74 [00:06<06:38, 5.45s/it]
epoch 108 | loss 0.8352931141853333, f_iou 0.5704697966575623: 3%|▉ | 2/74 [00:06<03:17, 2.74s/it]
epoch 108 | loss 1.10092294216156, f_iou 0.484025239944458: 3%|█ | 2/74 [00:07<03:17, 2.74s/it]
epoch 108 | loss 1.10092294216156, f_iou 0.484025239944458: 4%|█▌ | 3/74 [00:07<02:12, 1.86s/it]
epoch 108 | loss 1.8653353452682495, f_iou 0.39569976925849915: 4%|█▍ | 3/74 [00:07<02:12, 1.86s/it]
epoch 108 | loss 1.8653353452682495, f_iou 0.39569976925849915: 5%|█▉ | 4/74 [00:07<01:40, 1.44s/it]
epoch 108 | loss 1.671979546546936, f_iou 0.42689356207847595: 5%|█▉ | 4/74 [00:08<01:40, 1.44s/it]
epoch 108 | loss 1.671979546546936, f_iou 0.42689356207847595: 7%|██▍ | 5/74 [00:08<01:23, 1.20s/it]
epoch 108 | loss 1.356534719467163, f_iou 0.48316019773483276: 7%|██▍ | 5/74 [00:09<01:23, 1.20s/it]
epoch 108 | loss 1.356534719467163, f_iou 0.48316019773483276: 8%|██▉ | 6/74 [00:09<01:10, 1.04s/it]
epoch 108 | loss 0.7828437089920044, f_iou 0.5490459203720093: 8%|██▉ | 6/74 [00:10<01:10, 1.04s/it]
epoch 108 | loss 0.7828437089920044, f_iou 0.5490459203720093: 9%|███▍ | 7/74 [00:10<01:05, 1.03it/s]
epoch 108 | loss 0.951391339302063, f_iou 0.5135196447372437: 9%|███▌ | 7/74 [00:11<01:05, 1.03it/s]
epoch 108 | loss 0.951391339302063, f_iou 0.5135196447372437: 11%|████ | 8/74 [00:11<00:59, 1.11it/s]
epoch 108 | loss 1.5213433504104614, f_iou 0.5220226049423218: 11%|███▉ | 8/74 [00:11<00:59, 1.11it/s]
epoch 108 | loss 1.5213433504104614, f_iou 0.5220226049423218: 12%|████▍ | 9/74 [00:11<00:54, 1.18it/s]
epoch 108 | loss 0.6039299368858337, f_iou 0.5615193247795105: 12%|████▍ | 9/74 [00:12<00:54, 1.18it/s]
epoch 108 | loss 0.6039299368858337, f_iou 0.5615193247795105: 14%|████▋ | 10/74 [00:12<00:52, 1.21it/s]
epoch 108 | loss 0.762797474861145, f_iou 0.5864149928092957: 14%|████▊ | 10/74 [00:13<00:52, 1.21it/s]
epoch 108 | loss 0.762797474861145, f_iou 0.5864149928092957: 15%|█████▎ | 11/74 [00:13<00:49, 1.26it/s]
epoch 108 | loss 0.7287686467170715, f_iou 0.6085025072097778: 15%|█████▏ | 11/74 [00:13<00:49, 1.26it/s]
epoch 108 | loss 0.7287686467170715, f_iou 0.6085025072097778: 16%|█████▋ | 12/74 [00:13<00:47, 1.30it/s]
epoch 108 | loss 0.0, f_iou 0.637913167476654: 16%|████████▎ | 12/74 [00:14<00:47, 1.30it/s]
epoch 108 | loss 0.0, f_iou 0.637913167476654: 18%|████████▉ | 13/74 [00:14<00:46, 1.33it/s]
epoch 108 | loss 3.7463157176971436, f_iou 0.6094209551811218: 18%|██████▏ | 13/74 [00:15<00:46, 1.33it/s]
epoch 108 | loss 3.7463157176971436, f_iou 0.6094209551811218: 19%|██████▌ | 14/74 [00:15<00:44, 1.35it/s]
epoch 108 | loss 0.5696720480918884, f_iou 0.6314427256584167: 19%|██████▌ | 14/74 [00:16<00:44, 1.35it/s]
epoch 108 | loss 0.5696720480918884, f_iou 0.6314427256584167: 20%|███████ | 15/74 [00:16<00:43, 1.37it/s]
epoch 108 | loss 0.28460928797721863, f_iou 0.6527966856956482: 20%|██████▉ | 15/74 [00:16<00:43, 1.37it/s]
epoch 108 | loss 0.28460928797721863, f_iou 0.6527966856956482: 22%|███████▎ | 16/74 [00:16<00:42, 1.37it/s]
epoch 108 | loss 0.800024151802063, f_iou 0.6692891716957092: 22%|███████▊ | 16/74 [00:17<00:42, 1.37it/s]
epoch 108 | loss 0.800024151802063, f_iou 0.6692891716957092: 23%|████████▎ | 17/74 [00:17<00:41, 1.38it/s]
epoch 108 | loss 2.9449167251586914, f_iou 0.6592717170715332: 23%|████████ | 17/74 [00:18<00:41, 1.38it/s]
epoch 108 | loss 2.9449167251586914, f_iou 0.6592717170715332: 24%|████████▌ | 18/74 [00:18<00:40, 1.39it/s]
epoch 108 | loss 0.4783172607421875, f_iou 0.6733123660087585: 24%|████████▌ | 18/74 [00:18<00:40, 1.39it/s]
epoch 108 | loss 0.4783172607421875, f_iou 0.6733123660087585: 26%|████████▉ | 19/74 [00:18<00:39, 1.39it/s]
epoch 108 | loss 1.0374844074249268, f_iou 0.683182954788208: 26%|█████████▏ | 19/74 [00:19<00:39, 1.39it/s]
epoch 108 | loss 1.0374844074249268, f_iou 0.683182954788208: 27%|█████████▋ | 20/74 [00:19<00:38, 1.39it/s]
epoch 108 | loss 0.49251148104667664, f_iou 0.6958918571472168: 27%|█████████▏ | 20/74 [00:20<00:38, 1.39it/s]
epoch 108 | loss 0.49251148104667664, f_iou 0.6958918571472168: 28%|█████████▋ | 21/74 [00:20<00:38, 1.39it/s]
epoch 108 | loss 1.7201728820800781, f_iou 0.6946204304695129: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 108 | loss 1.7201728820800781, f_iou 0.6946204304695129: 30%|██████████▍ | 22/74 [00:21<00:37, 1.39it/s]
epoch 108 | loss 0.592796802520752, f_iou 0.7034040093421936: 30%|██████████▋ | 22/74 [00:21<00:37, 1.39it/s]
epoch 108 | loss 0.592796802520752, f_iou 0.7034040093421936: 31%|███████████▏ | 23/74 [00:21<00:36, 1.39it/s]
epoch 108 | loss 2.005078077316284, f_iou 0.7095699310302734: 31%|███████████▏ | 23/74 [00:22<00:36, 1.39it/s]
epoch 108 | loss 2.005078077316284, f_iou 0.7095699310302734: 32%|███████████▋ | 24/74 [00:22<00:35, 1.39it/s]
epoch 108 | loss 2.0473039150238037, f_iou 0.684251070022583: 32%|███████████▋ | 24/74 [00:23<00:35, 1.39it/s]
epoch 108 | loss 2.0473039150238037, f_iou 0.684251070022583: 34%|████████████▏ | 25/74 [00:23<00:35, 1.39it/s]
epoch 108 | loss 0.8972730040550232, f_iou 0.6936908960342407: 34%|███████████▊ | 25/74 [00:23<00:35, 1.39it/s]
epoch 108 | loss 0.8972730040550232, f_iou 0.6936908960342407: 35%|████████████▎ | 26/74 [00:23<00:34, 1.39it/s]
epoch 108 | loss 1.031731128692627, f_iou 0.6998412013053894: 35%|████████████▋ | 26/74 [00:24<00:34, 1.39it/s]
epoch 108 | loss 1.031731128692627, f_iou 0.6998412013053894: 36%|█████████████▏ | 27/74 [00:24<00:33, 1.40it/s]
epoch 108 | loss 1.4114110469818115, f_iou 0.7013290524482727: 36%|████████████▊ | 27/74 [00:25<00:33, 1.40it/s]
epoch 108 | loss 1.4114110469818115, f_iou 0.7013290524482727: 38%|█████████████▏ | 28/74 [00:25<00:32, 1.40it/s]
epoch 108 | loss 0.4900987148284912, f_iou 0.7089314460754395: 38%|█████████████▏ | 28/74 [00:26<00:32, 1.40it/s]
epoch 108 | loss 0.4900987148284912, f_iou 0.7089314460754395: 39%|█████████████▋ | 29/74 [00:26<00:32, 1.40it/s]
epoch 108 | loss 0.721368670463562, f_iou 0.7122927904129028: 39%|██████████████ | 29/74 [00:26<00:32, 1.40it/s]
epoch 108 | loss 0.721368670463562, f_iou 0.7122927904129028: 41%|██████████████▌ | 30/74 [00:26<00:31, 1.40it/s]
epoch 108 | loss 0.6510359048843384, f_iou 0.7145476341247559: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.40it/s]
epoch 108 | loss 0.6510359048843384, f_iou 0.7145476341247559: 42%|██████████████▋ | 31/74 [00:27<00:30, 1.39it/s]
epoch 108 | loss 0.7105796337127686, f_iou 0.720385730266571: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 108 | loss 0.7105796337127686, f_iou 0.720385730266571: 43%|███████████████▌ | 32/74 [00:28<00:30, 1.39it/s]
epoch 108 | loss 0.4970398247241974, f_iou 0.7208462357521057: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.39it/s]
epoch 108 | loss 0.4970398247241974, f_iou 0.7208462357521057: 45%|███████████████▌ | 33/74 [00:28<00:29, 1.39it/s]
epoch 108 | loss 0.9771195650100708, f_iou 0.7260008454322815: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.39it/s]
epoch 108 | loss 0.9771195650100708, f_iou 0.7260008454322815: 46%|████████████████ | 34/74 [00:29<00:28, 1.39it/s]
epoch 108 | loss 2.1323275566101074, f_iou 0.7135400176048279: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 108 | loss 2.1323275566101074, f_iou 0.7135400176048279: 47%|████████████████▌ | 35/74 [00:30<00:27, 1.39it/s]
epoch 108 | loss 1.3421968221664429, f_iou 0.7100467681884766: 47%|████████████████▌ | 35/74 [00:31<00:27, 1.39it/s]
epoch 108 | loss 1.3421968221664429, f_iou 0.7100467681884766: 49%|█████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 108 | loss 0.3416409492492676, f_iou 0.7159459590911865: 49%|█████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 108 | loss 0.3416409492492676, f_iou 0.7159459590911865: 50%|█████████████████▌ | 37/74 [00:31<00:26, 1.40it/s]
epoch 108 | loss 0.7036795616149902, f_iou 0.7182040214538574: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.40it/s]
epoch 108 | loss 0.7036795616149902, f_iou 0.7182040214538574: 51%|█████████████████▉ | 38/74 [00:32<00:25, 1.39it/s]
epoch 108 | loss 2.109928607940674, f_iou 0.7172433733940125: 51%|██████████████████▍ | 38/74 [00:33<00:25, 1.39it/s]
epoch 108 | loss 2.109928607940674, f_iou 0.7172433733940125: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.40it/s]
epoch 108 | loss 1.474608063697815, f_iou 0.7197977304458618: 53%|██████████████████▉ | 39/74 [00:33<00:25, 1.40it/s]
epoch 108 | loss 1.474608063697815, f_iou 0.7197977304458618: 54%|███████████████████▍ | 40/74 [00:33<00:24, 1.39it/s]
epoch 108 | loss 1.2387914657592773, f_iou 0.722533106803894: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.39it/s]
epoch 108 | loss 1.2387914657592773, f_iou 0.722533106803894: 55%|███████████████████▉ | 41/74 [00:34<00:23, 1.39it/s]
epoch 108 | loss 1.3119572401046753, f_iou 0.7200679183006287: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.39it/s]
epoch 108 | loss 1.3119572401046753, f_iou 0.7200679183006287: 57%|███████████████████▊ | 42/74 [00:35<00:22, 1.39it/s]
epoch 108 | loss 1.2953681945800781, f_iou 0.7166386842727661: 57%|███████████████████▊ | 42/74 [00:36<00:22, 1.39it/s]
epoch 108 | loss 1.2953681945800781, f_iou 0.7166386842727661: 58%|████████████████████▎ | 43/74 [00:36<00:22, 1.39it/s]
epoch 108 | loss 0.8461639285087585, f_iou 0.7144871354103088: 58%|████████████████████▎ | 43/74 [00:36<00:22, 1.39it/s]
epoch 108 | loss 0.8461639285087585, f_iou 0.7144871354103088: 59%|████████████████████▊ | 44/74 [00:36<00:21, 1.39it/s]
epoch 108 | loss 2.1655640602111816, f_iou 0.7100464105606079: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.39it/s]
epoch 108 | loss 2.1655640602111816, f_iou 0.7100464105606079: 61%|█████████████████████▎ | 45/74 [00:37<00:20, 1.40it/s]
epoch 108 | loss 1.1647839546203613, f_iou 0.7059377431869507: 61%|█████████████████████▎ | 45/74 [00:38<00:20, 1.40it/s]
epoch 108 | loss 1.1647839546203613, f_iou 0.7059377431869507: 62%|█████████████████████▊ | 46/74 [00:38<00:20, 1.40it/s]
epoch 108 | loss 1.1224126815795898, f_iou 0.7033101320266724: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.40it/s]
epoch 108 | loss 1.1224126815795898, f_iou 0.7033101320266724: 64%|██████████████████████▏ | 47/74 [00:39<00:19, 1.39it/s]
epoch 108 | loss 0.5469381213188171, f_iou 0.7088158130645752: 64%|██████████████████████▏ | 47/74 [00:39<00:19, 1.39it/s]
epoch 108 | loss 0.5469381213188171, f_iou 0.7088158130645752: 65%|██████████████████████▋ | 48/74 [00:39<00:18, 1.39it/s]
epoch 108 | loss 1.336193323135376, f_iou 0.6986572742462158: 65%|███████████████████████▎ | 48/74 [00:40<00:18, 1.39it/s]
epoch 108 | loss 1.336193323135376, f_iou 0.6986572742462158: 66%|███████████████████████▊ | 49/74 [00:40<00:17, 1.40it/s]
epoch 108 | loss 0.7598024606704712, f_iou 0.701970636844635: 66%|███████████████████████▊ | 49/74 [00:41<00:17, 1.40it/s]
epoch 108 | loss 0.7598024606704712, f_iou 0.701970636844635: 68%|████████████████████████▎ | 50/74 [00:41<00:17, 1.39it/s]
epoch 108 | loss 0.9684684872627258, f_iou 0.7054182291030884: 68%|███████████████████████▋ | 50/74 [00:41<00:17, 1.39it/s]
epoch 108 | loss 0.9684684872627258, f_iou 0.7054182291030884: 69%|████████████████████████ | 51/74 [00:41<00:16, 1.39it/s]
epoch 108 | loss 1.7255758047103882, f_iou 0.7064176797866821: 69%|████████████████████████ | 51/74 [00:42<00:16, 1.39it/s]
epoch 108 | loss 1.7255758047103882, f_iou 0.7064176797866821: 70%|████████████████████████▌ | 52/74 [00:42<00:16, 1.37it/s]
epoch 108 | loss 1.003517746925354, f_iou 0.7044833302497864: 70%|█████████████████████████▎ | 52/74 [00:43<00:16, 1.37it/s]
epoch 108 | loss 1.003517746925354, f_iou 0.7044833302497864: 72%|█████████████████████████▊ | 53/74 [00:43<00:15, 1.34it/s]
epoch 108 | loss 2.230660915374756, f_iou 0.7025689482688904: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.34it/s]
epoch 108 | loss 2.230660915374756, f_iou 0.7025689482688904: 73%|██████████████████████████▎ | 54/74 [00:44<00:15, 1.33it/s]
epoch 108 | loss 1.044549584388733, f_iou 0.7024304866790771: 73%|██████████████████████████▎ | 54/74 [00:44<00:15, 1.33it/s]
epoch 108 | loss 1.044549584388733, f_iou 0.7024304866790771: 74%|██████████████████████████▊ | 55/74 [00:44<00:14, 1.31it/s]
epoch 108 | loss 0.4985213577747345, f_iou 0.6968780755996704: 74%|██████████████████████████ | 55/74 [00:45<00:14, 1.31it/s]
epoch 108 | loss 0.4985213577747345, f_iou 0.6968780755996704: 76%|██████████████████████████▍ | 56/74 [00:45<00:13, 1.31it/s]
epoch 108 | loss 2.3977174758911133, f_iou 0.6971372961997986: 76%|██████████████████████████▍ | 56/74 [00:46<00:13, 1.31it/s]
epoch 108 | loss 2.3977174758911133, f_iou 0.6971372961997986: 77%|██████████████████████████▉ | 57/74 [00:46<00:13, 1.29it/s]
epoch 108 | loss 0.7992307543754578, f_iou 0.6999099254608154: 77%|██████████████████████████▉ | 57/74 [00:47<00:13, 1.29it/s]
epoch 108 | loss 0.7992307543754578, f_iou 0.6999099254608154: 78%|███████████████████████████▍ | 58/74 [00:47<00:12, 1.31it/s]
epoch 108 | loss 0.7986341118812561, f_iou 0.7005253434181213: 78%|███████████████████████████▍ | 58/74 [00:48<00:12, 1.31it/s]
epoch 108 | loss 0.7986341118812561, f_iou 0.7005253434181213: 80%|███████████████████████████▉ | 59/74 [00:48<00:11, 1.33it/s]
epoch 108 | loss 1.4334956407546997, f_iou 0.6906002163887024: 80%|███████████████████████████▉ | 59/74 [00:48<00:11, 1.33it/s]
epoch 108 | loss 1.4334956407546997, f_iou 0.6906002163887024: 81%|████████████████████████████▍ | 60/74 [00:48<00:10, 1.35it/s]
epoch 108 | loss 1.6999790668487549, f_iou 0.6839987635612488: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.35it/s]
epoch 108 | loss 1.6999790668487549, f_iou 0.6839987635612488: 82%|████████████████████████████▊ | 61/74 [00:49<00:09, 1.36it/s]
epoch 108 | loss 0.4713135063648224, f_iou 0.6884165406227112: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.36it/s]
epoch 108 | loss 0.4713135063648224, f_iou 0.6884165406227112: 84%|█████████████████████████████▎ | 62/74 [00:50<00:08, 1.37it/s]
epoch 108 | loss 0.6995276808738708, f_iou 0.6913051605224609: 84%|█████████████████████████████▎ | 62/74 [00:50<00:08, 1.37it/s]
epoch 108 | loss 0.6995276808738708, f_iou 0.6913051605224609: 85%|█████████████████████████████▊ | 63/74 [00:50<00:07, 1.38it/s]
epoch 108 | loss 0.0, f_iou 0.6917704343795776: 85%|██████████████████████████████████████████▌ | 63/74 [00:51<00:07, 1.38it/s]
epoch 108 | loss 0.0, f_iou 0.6917704343795776: 86%|███████████████████████████████████████████▏ | 64/74 [00:51<00:07, 1.38it/s]
epoch 108 | loss 0.15004229545593262, f_iou 0.6956915855407715: 86%|█████████████████████████████▍ | 64/74 [00:52<00:07, 1.38it/s]
epoch 108 | loss 0.15004229545593262, f_iou 0.6956915855407715: 88%|█████████████████████████████▊ | 65/74 [00:52<00:06, 1.39it/s]
epoch 108 | loss 0.3360130488872528, f_iou 0.6997804045677185: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.39it/s]
epoch 108 | loss 0.3360130488872528, f_iou 0.6997804045677185: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.39it/s]
epoch 108 | loss 0.8114410042762756, f_iou 0.7035485506057739: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.39it/s]
epoch 108 | loss 0.8114410042762756, f_iou 0.7035485506057739: 91%|███████████████████████████████▋ | 67/74 [00:53<00:05, 1.39it/s]
epoch 108 | loss 0.6935087442398071, f_iou 0.7035061717033386: 91%|███████████████████████████████▋ | 67/74 [00:54<00:05, 1.39it/s]
epoch 108 | loss 0.6935087442398071, f_iou 0.7035061717033386: 92%|████████████████████████████████▏ | 68/74 [00:54<00:04, 1.40it/s]
epoch 108 | loss 1.2254447937011719, f_iou 0.7012403607368469: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.40it/s]
epoch 108 | loss 1.2254447937011719, f_iou 0.7012403607368469: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.40it/s]
epoch 108 | loss 0.6559708714485168, f_iou 0.7038100957870483: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.40it/s]
epoch 108 | loss 0.6559708714485168, f_iou 0.7038100957870483: 95%|█████████████████████████████████ | 70/74 [00:55<00:02, 1.41it/s]
epoch 108 | loss 1.4558489322662354, f_iou 0.7042125463485718: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.41it/s]
epoch 108 | loss 1.4558489322662354, f_iou 0.7042125463485718: 96%|█████████████████████████████████▌ | 71/74 [00:56<00:02, 1.40it/s]
epoch 108 | loss 0.936816930770874, f_iou 0.7027844190597534: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 108 | loss 0.936816930770874, f_iou 0.7027844190597534: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.41it/s]
epoch 108 | loss 0.5920159816741943, f_iou 0.7057948112487793: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 108 | loss 0.5920159816741943, f_iou 0.7057948112487793: 99%|██████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 108 | loss 0.7656632661819458, f_iou 0.6967445015907288: 99%|██████████████████████████████████▌| 73/74 [00:58<00:00, 1.39it/s]
epoch 108 | loss 0.7656632661819458, f_iou 0.6967445015907288: 100%|███████████████████████████████████| 74/74 [00:58<00:00, 1.37it/s]
epoch 108 | loss 0.7656632661819458, f_iou 0.6967445015907288: 100%|███████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 108 | valid.f_iou 0.7499399781227112, valid.f_f-score 0.83154: 0%| | 0/16 [00:05, ?it/s]
epoch 108 | valid.f_iou 0.7499399781227112, valid.f_f-score 0.83154: 6%|█▉ | 1/16 [00:05<01:26, 5.73s/it]
epoch 108 | valid.f_iou 0.7457000017166138, valid.f_f-score 0.87915: 6%|█▉ | 1/16 [00:06<01:26, 5.73s/it]
epoch 108 | valid.f_iou 0.7457000017166138, valid.f_f-score 0.87915: 12%|███▊ | 2/16 [00:06<00:36, 2.61s/it]
epoch 108 | valid.f_iou 0.5942599773406982, valid.f_f-score 0.7827: 12%|███▉ | 2/16 [00:06<00:36, 2.61s/it]
epoch 108 | valid.f_iou 0.5942599773406982, valid.f_f-score 0.7827: 19%|█████▊ | 3/16 [00:06<00:21, 1.63s/it]
epoch 108 | valid.f_iou 0.6290900111198425, valid.f_f-score 0.77816: 19%|█████▋ | 3/16 [00:07<00:21, 1.63s/it]
epoch 108 | valid.f_iou 0.6290900111198425, valid.f_f-score 0.77816: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 108 | valid.f_iou 0.6324700117111206, valid.f_f-score 0.78093: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 108 | valid.f_iou 0.6324700117111206, valid.f_f-score 0.78093: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 108 | valid.f_iou 0.5893300175666809, valid.f_f-score 0.73825: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 108 | valid.f_iou 0.5893300175666809, valid.f_f-score 0.73825: 38%|███████████▎ | 6/16 [00:07<00:07, 1.39it/s]
epoch 108 | valid.f_iou 0.6119700074195862, valid.f_f-score 0.75727: 38%|███████████▎ | 6/16 [00:08<00:07, 1.39it/s]
epoch 108 | valid.f_iou 0.6119700074195862, valid.f_f-score 0.75727: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 108 | valid.f_iou 0.5972300171852112, valid.f_f-score 0.74795: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 108 | valid.f_iou 0.5972300171852112, valid.f_f-score 0.74795: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 108 | valid.f_iou 0.6171600222587585, valid.f_f-score 0.76421: 50%|███████████████ | 8/16 [00:09<00:04, 1.75it/s]
epoch 108 | valid.f_iou 0.6171600222587585, valid.f_f-score 0.76421: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 108 | valid.f_iou 0.604420006275177, valid.f_f-score 0.76079: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 108 | valid.f_iou 0.604420006275177, valid.f_f-score 0.76079: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.09it/s]
epoch 108 | valid.f_iou 0.6053299903869629, valid.f_f-score 0.75761: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.09it/s]
epoch 108 | valid.f_iou 0.6053299903869629, valid.f_f-score 0.75761: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.21it/s]
epoch 108 | valid.f_iou 0.6232200264930725, valid.f_f-score 0.77122: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.21it/s]
epoch 108 | valid.f_iou 0.6232200264930725, valid.f_f-score 0.77122: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.36it/s]
epoch 108 | valid.f_iou 0.6319400072097778, valid.f_f-score 0.777: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.36it/s]
epoch 108 | valid.f_iou 0.6319400072097778, valid.f_f-score 0.777: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.47it/s]
epoch 108 | valid.f_iou 0.6282600164413452, valid.f_f-score 0.77353: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.47it/s]
epoch 108 | valid.f_iou 0.6282600164413452, valid.f_f-score 0.77353: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 108 | valid.f_iou 0.6240900158882141, valid.f_f-score 0.76461: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 108 | valid.f_iou 0.6240900158882141, valid.f_f-score 0.76461: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 108 | valid.f_iou 0.6279199719429016, valid.f_f-score 0.76331: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 108 | valid.f_iou 0.6279199719429016, valid.f_f-score 0.76331: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 108 | valid.f_iou 0.6279199719429016, valid.f_f-score 0.76331: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 108 | valid.f_iou 0.805649995803833, valid.f_f-score 0.81874: 0%| | 0/16 [00:05, ?it/s]
epoch 108 | valid.f_iou 0.805649995803833, valid.f_f-score 0.81874: 6%|█▉ | 1/16 [00:05<01:15, 5.03s/it]
epoch 108 | valid.f_iou 0.8380799889564514, valid.f_f-score 0.88005: 6%|█▉ | 1/16 [00:05<01:15, 5.03s/it]
epoch 108 | valid.f_iou 0.8380799889564514, valid.f_f-score 0.88005: 12%|███▊ | 2/16 [00:05<00:32, 2.33s/it]
epoch 108 | valid.f_iou 0.7776100039482117, valid.f_f-score 0.86181: 12%|███▊ | 2/16 [00:05<00:32, 2.33s/it]
epoch 108 | valid.f_iou 0.7776100039482117, valid.f_f-score 0.86181: 19%|█████▋ | 3/16 [00:05<00:19, 1.47s/it]
epoch 108 | valid.f_iou 0.7654399871826172, valid.f_f-score 0.82659: 19%|█████▋ | 3/16 [00:06<00:19, 1.47s/it]
epoch 108 | valid.f_iou 0.7654399871826172, valid.f_f-score 0.82659: 25%|███████▌ | 4/16 [00:06<00:12, 1.04s/it]
epoch 108 | valid.f_iou 0.7146000266075134, valid.f_f-score 0.79268: 25%|███████▌ | 4/16 [00:06<00:12, 1.04s/it]
epoch 108 | valid.f_iou 0.7146000266075134, valid.f_f-score 0.79268: 31%|█████████▍ | 5/16 [00:06<00:08, 1.25it/s]
epoch 108 | valid.f_iou 0.6996099948883057, valid.f_f-score 0.78005: 31%|█████████▍ | 5/16 [00:07<00:08, 1.25it/s]
epoch 108 | valid.f_iou 0.6996099948883057, valid.f_f-score 0.78005: 38%|███████████▎ | 6/16 [00:07<00:06, 1.53it/s]
epoch 108 | valid.f_iou 0.7171599864959717, valid.f_f-score 0.80242: 38%|███████████▎ | 6/16 [00:07<00:06, 1.53it/s]
epoch 108 | valid.f_iou 0.7171599864959717, valid.f_f-score 0.80242: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.78it/s]
epoch 108 | valid.f_iou 0.7081900238990784, valid.f_f-score 0.80351: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.78it/s]
epoch 108 | valid.f_iou 0.7081900238990784, valid.f_f-score 0.80351: 50%|███████████████ | 8/16 [00:07<00:03, 2.01it/s]
epoch 108 | valid.f_iou 0.7139700055122375, valid.f_f-score 0.80713: 50%|███████████████ | 8/16 [00:08<00:03, 2.01it/s]
epoch 108 | valid.f_iou 0.7139700055122375, valid.f_f-score 0.80713: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.21it/s]
epoch 108 | valid.f_iou 0.7280700206756592, valid.f_f-score 0.81921: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.21it/s]
epoch 108 | valid.f_iou 0.7280700206756592, valid.f_f-score 0.81921: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.36it/s]
epoch 108 | valid.f_iou 0.7146199941635132, valid.f_f-score 0.79955: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.36it/s]
epoch 108 | valid.f_iou 0.7146199941635132, valid.f_f-score 0.79955: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.46it/s]
epoch 108 | valid.f_iou 0.726069986820221, valid.f_f-score 0.81055: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.46it/s]
epoch 108 | valid.f_iou 0.726069986820221, valid.f_f-score 0.81055: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.55it/s]
epoch 108 | valid.f_iou 0.7350800037384033, valid.f_f-score 0.81792: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.55it/s]
epoch 108 | valid.f_iou 0.7350800037384033, valid.f_f-score 0.81792: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.61it/s]
epoch 108 | valid.f_iou 0.7257699966430664, valid.f_f-score 0.81114: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.61it/s]
epoch 108 | valid.f_iou 0.7257699966430664, valid.f_f-score 0.81114: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.65it/s]
epoch 108 | valid.f_iou 0.7264500260353088, valid.f_f-score 0.81065: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.65it/s]
epoch 108 | valid.f_iou 0.7264500260353088, valid.f_f-score 0.81065: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 108 | valid.f_iou 0.7212299704551697, valid.f_f-score 0.80612: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.68it/s]
epoch 108 | valid.f_iou 0.7212299704551697, valid.f_f-score 0.80612: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.70it/s]
epoch 108 | valid.f_iou 0.7212299704551697, valid.f_f-score 0.80612: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.50it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 108 | valid.f_iou 0.805649995803833, valid.f_f-score 0.81874: 0%| | 0/16 [00:04, ?it/s]
epoch 108 | valid.f_iou 0.805649995803833, valid.f_f-score 0.81874: 6%|█▉ | 1/16 [00:04<01:13, 4.90s/it]
epoch 108 | valid.f_iou 0.8380799889564514, valid.f_f-score 0.88005: 6%|█▉ | 1/16 [00:05<01:13, 4.90s/it]
epoch 108 | valid.f_iou 0.8380799889564514, valid.f_f-score 0.88005: 12%|███▊ | 2/16 [00:05<00:31, 2.28s/it]
epoch 108 | valid.f_iou 0.7776100039482117, valid.f_f-score 0.86181: 12%|███▊ | 2/16 [00:05<00:31, 2.28s/it]
epoch 108 | valid.f_iou 0.7776100039482117, valid.f_f-score 0.86181: 19%|█████▋ | 3/16 [00:05<00:18, 1.44s/it]
epoch 108 | valid.f_iou 0.7656199932098389, valid.f_f-score 0.82659: 19%|█████▋ | 3/16 [00:06<00:18, 1.44s/it]
epoch 108 | valid.f_iou 0.7656199932098389, valid.f_f-score 0.82659: 25%|███████▌ | 4/16 [00:06<00:12, 1.04s/it]
epoch 108 | valid.f_iou 0.7235100269317627, valid.f_f-score 0.79268: 25%|███████▌ | 4/16 [00:06<00:12, 1.04s/it]
epoch 108 | valid.f_iou 0.7235100269317627, valid.f_f-score 0.79268: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 108 | valid.f_iou 0.7070299983024597, valid.f_f-score 0.78005: 31%|█████████▍ | 5/16 [00:07<00:09, 1.22it/s]
epoch 108 | valid.f_iou 0.7070299983024597, valid.f_f-score 0.78005: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 108 | valid.f_iou 0.7252900004386902, valid.f_f-score 0.80242: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 108 | valid.f_iou 0.7252900004386902, valid.f_f-score 0.80242: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 108 | valid.f_iou 0.7153000235557556, valid.f_f-score 0.80351: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 108 | valid.f_iou 0.7153000235557556, valid.f_f-score 0.80351: 50%|███████████████ | 8/16 [00:07<00:04, 1.81it/s]
epoch 108 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.80713: 50%|███████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 108 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.80713: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 108 | valid.f_iou 0.731469988822937, valid.f_f-score 0.81569: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.94it/s]
epoch 108 | valid.f_iou 0.731469988822937, valid.f_f-score 0.81569: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.03it/s]
epoch 108 | valid.f_iou 0.717710018157959, valid.f_f-score 0.79636: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 108 | valid.f_iou 0.717710018157959, valid.f_f-score 0.79636: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 108 | valid.f_iou 0.7289000153541565, valid.f_f-score 0.80762: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.10it/s]
epoch 108 | valid.f_iou 0.7289000153541565, valid.f_f-score 0.80762: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.26it/s]
epoch 108 | valid.f_iou 0.7376300096511841, valid.f_f-score 0.81535: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.26it/s]
epoch 108 | valid.f_iou 0.7376300096511841, valid.f_f-score 0.81535: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 108 | valid.f_iou 0.7281299829483032, valid.f_f-score 0.80876: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 108 | valid.f_iou 0.7281299829483032, valid.f_f-score 0.80876: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.49it/s]
epoch 108 | valid.f_iou 0.728659987449646, valid.f_f-score 0.80842: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.49it/s]
epoch 108 | valid.f_iou 0.728659987449646, valid.f_f-score 0.80842: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.57it/s]
epoch 108 | valid.f_iou 0.7243000268936157, valid.f_f-score 0.80403: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 108 | valid.f_iou 0.7243000268936157, valid.f_f-score 0.80403: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 108 | valid.f_iou 0.7243000268936157, valid.f_f-score 0.80403: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 109 | loss 1.8763532638549805, f_iou 0.7319056987762451: 0%| | 0/74 [00:06, ?it/s]
epoch 109 | loss 1.8763532638549805, f_iou 0.7319056987762451: 1%|▍ | 1/74 [00:06<07:18, 6.00s/it]
epoch 109 | loss 0.5229926109313965, f_iou 0.8187782764434814: 1%|▍ | 1/74 [00:06<07:18, 6.00s/it]
epoch 109 | loss 0.5229926109313965, f_iou 0.8187782764434814: 3%|▉ | 2/74 [00:06<03:32, 2.95s/it]
epoch 109 | loss 2.034590721130371, f_iou 0.7067466974258423: 3%|█ | 2/74 [00:07<03:32, 2.95s/it]
epoch 109 | loss 2.034590721130371, f_iou 0.7067466974258423: 4%|█▌ | 3/74 [00:07<02:26, 2.06s/it]
epoch 109 | loss 1.5163116455078125, f_iou 0.6920681595802307: 4%|█▍ | 3/74 [00:08<02:26, 2.06s/it]
epoch 109 | loss 1.5163116455078125, f_iou 0.6920681595802307: 5%|█▉ | 4/74 [00:08<01:49, 1.56s/it]
epoch 109 | loss 2.2478182315826416, f_iou 0.6284415125846863: 5%|█▉ | 4/74 [00:09<01:49, 1.56s/it]
epoch 109 | loss 2.2478182315826416, f_iou 0.6284415125846863: 7%|██▍ | 5/74 [00:09<01:28, 1.29s/it]
epoch 109 | loss 0.8907250165939331, f_iou 0.6697730422019958: 7%|██▍ | 5/74 [00:10<01:28, 1.29s/it]
epoch 109 | loss 0.8907250165939331, f_iou 0.6697730422019958: 8%|██▉ | 6/74 [00:10<01:15, 1.12s/it]
epoch 109 | loss 0.4378517270088196, f_iou 0.6960805058479309: 8%|██▉ | 6/74 [00:10<01:15, 1.12s/it]
epoch 109 | loss 0.4378517270088196, f_iou 0.6960805058479309: 9%|███▍ | 7/74 [00:10<01:07, 1.01s/it]
epoch 109 | loss 0.8953198790550232, f_iou 0.7260693907737732: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 109 | loss 0.8953198790550232, f_iou 0.7260693907737732: 11%|███▉ | 8/74 [00:11<01:01, 1.07it/s]
epoch 109 | loss 0.9990390539169312, f_iou 0.6992633938789368: 11%|███▉ | 8/74 [00:12<01:01, 1.07it/s]
epoch 109 | loss 0.9990390539169312, f_iou 0.6992633938789368: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 109 | loss 1.0430729389190674, f_iou 0.7121447920799255: 12%|████▍ | 9/74 [00:13<00:57, 1.13it/s]
epoch 109 | loss 1.0430729389190674, f_iou 0.7121447920799255: 14%|████▋ | 10/74 [00:13<00:53, 1.20it/s]
epoch 109 | loss 1.7015621662139893, f_iou 0.6874067187309265: 14%|████▋ | 10/74 [00:13<00:53, 1.20it/s]
epoch 109 | loss 1.7015621662139893, f_iou 0.6874067187309265: 15%|█████▏ | 11/74 [00:13<00:50, 1.26it/s]
epoch 109 | loss 1.781470775604248, f_iou 0.6758670806884766: 15%|█████▎ | 11/74 [00:14<00:50, 1.26it/s]
epoch 109 | loss 1.781470775604248, f_iou 0.6758670806884766: 16%|█████▊ | 12/74 [00:14<00:48, 1.29it/s]
epoch 109 | loss 0.6168728470802307, f_iou 0.6961650848388672: 16%|█████▋ | 12/74 [00:15<00:48, 1.29it/s]
epoch 109 | loss 0.6168728470802307, f_iou 0.6961650848388672: 18%|██████▏ | 13/74 [00:15<00:46, 1.31it/s]
epoch 109 | loss 2.7557969093322754, f_iou 0.690317690372467: 18%|██████▎ | 13/74 [00:16<00:46, 1.31it/s]
epoch 109 | loss 2.7557969093322754, f_iou 0.690317690372467: 19%|██████▊ | 14/74 [00:16<00:45, 1.31it/s]
epoch 109 | loss 1.3431506156921387, f_iou 0.6909403204917908: 19%|██████▌ | 14/74 [00:16<00:45, 1.31it/s]
epoch 109 | loss 1.3431506156921387, f_iou 0.6909403204917908: 20%|███████ | 15/74 [00:16<00:44, 1.33it/s]
epoch 109 | loss 0.6444775462150574, f_iou 0.7035131454467773: 20%|███████ | 15/74 [00:17<00:44, 1.33it/s]
epoch 109 | loss 0.6444775462150574, f_iou 0.7035131454467773: 22%|███████▌ | 16/74 [00:17<00:43, 1.33it/s]
epoch 109 | loss 1.1138321161270142, f_iou 0.6834105253219604: 22%|███████▌ | 16/74 [00:18<00:43, 1.33it/s]
epoch 109 | loss 1.1138321161270142, f_iou 0.6834105253219604: 23%|████████ | 17/74 [00:18<00:43, 1.32it/s]
epoch 109 | loss 1.7173303365707397, f_iou 0.645474374294281: 23%|████████▎ | 17/74 [00:19<00:43, 1.32it/s]
epoch 109 | loss 1.7173303365707397, f_iou 0.645474374294281: 24%|████████▊ | 18/74 [00:19<00:41, 1.34it/s]
epoch 109 | loss 1.3336999416351318, f_iou 0.6381357908248901: 24%|████████▌ | 18/74 [00:19<00:41, 1.34it/s]
epoch 109 | loss 1.3336999416351318, f_iou 0.6381357908248901: 26%|████████▉ | 19/74 [00:19<00:41, 1.33it/s]
epoch 109 | loss 1.140599250793457, f_iou 0.6425233483314514: 26%|█████████▏ | 19/74 [00:20<00:41, 1.33it/s]
epoch 109 | loss 1.140599250793457, f_iou 0.6425233483314514: 27%|█████████▋ | 20/74 [00:20<00:40, 1.33it/s]
epoch 109 | loss 1.4699273109436035, f_iou 0.641041100025177: 27%|█████████▋ | 20/74 [00:21<00:40, 1.33it/s]
epoch 109 | loss 1.4699273109436035, f_iou 0.641041100025177: 28%|██████████▏ | 21/74 [00:21<00:40, 1.32it/s]
epoch 109 | loss 0.6370370388031006, f_iou 0.6392214894294739: 28%|█████████▉ | 21/74 [00:22<00:40, 1.32it/s]
epoch 109 | loss 0.6370370388031006, f_iou 0.6392214894294739: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 109 | loss 0.6372356414794922, f_iou 0.623414933681488: 30%|██████████▋ | 22/74 [00:22<00:39, 1.31it/s]
epoch 109 | loss 0.6372356414794922, f_iou 0.623414933681488: 31%|███████████▏ | 23/74 [00:22<00:38, 1.32it/s]
epoch 109 | loss 0.35374000668525696, f_iou 0.6084185838699341: 31%|██████████▌ | 23/74 [00:23<00:38, 1.32it/s]
epoch 109 | loss 0.35374000668525696, f_iou 0.6084185838699341: 32%|███████████ | 24/74 [00:23<00:37, 1.33it/s]
epoch 109 | loss 0.7923502326011658, f_iou 0.6179500818252563: 32%|███████████▎ | 24/74 [00:24<00:37, 1.33it/s]
epoch 109 | loss 0.7923502326011658, f_iou 0.6179500818252563: 34%|███████████▊ | 25/74 [00:24<00:36, 1.34it/s]
epoch 109 | loss 1.1398861408233643, f_iou 0.6308092474937439: 34%|███████████▊ | 25/74 [00:25<00:36, 1.34it/s]
epoch 109 | loss 1.1398861408233643, f_iou 0.6308092474937439: 35%|████████████▎ | 26/74 [00:25<00:35, 1.35it/s]
epoch 109 | loss 0.7151402235031128, f_iou 0.6403981447219849: 35%|████████████▎ | 26/74 [00:25<00:35, 1.35it/s]
epoch 109 | loss 0.7151402235031128, f_iou 0.6403981447219849: 36%|████████████▊ | 27/74 [00:25<00:34, 1.35it/s]
epoch 109 | loss 0.9203105568885803, f_iou 0.6491386294364929: 36%|████████████▊ | 27/74 [00:26<00:34, 1.35it/s]
epoch 109 | loss 0.9203105568885803, f_iou 0.6491386294364929: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.33it/s]
epoch 109 | loss 0.857581615447998, f_iou 0.658324658870697: 38%|██████████████ | 28/74 [00:27<00:34, 1.33it/s]
epoch 109 | loss 0.857581615447998, f_iou 0.658324658870697: 39%|██████████████▌ | 29/74 [00:27<00:34, 1.31it/s]
epoch 109 | loss 0.6805633902549744, f_iou 0.6622136831283569: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.31it/s]
epoch 109 | loss 0.6805633902549744, f_iou 0.6622136831283569: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.30it/s]
epoch 109 | loss 1.8046467304229736, f_iou 0.6647104024887085: 41%|██████████████▏ | 30/74 [00:29<00:33, 1.30it/s]
epoch 109 | loss 1.8046467304229736, f_iou 0.6647104024887085: 42%|██████████████▋ | 31/74 [00:29<00:33, 1.29it/s]
epoch 109 | loss 1.4950131177902222, f_iou 0.6614446043968201: 42%|██████████████▋ | 31/74 [00:29<00:33, 1.29it/s]
epoch 109 | loss 1.4950131177902222, f_iou 0.6614446043968201: 43%|███████████████▏ | 32/74 [00:29<00:32, 1.29it/s]
epoch 109 | loss 1.2760438919067383, f_iou 0.664993405342102: 43%|███████████████▌ | 32/74 [00:30<00:32, 1.29it/s]
epoch 109 | loss 1.2760438919067383, f_iou 0.664993405342102: 45%|████████████████ | 33/74 [00:30<00:32, 1.28it/s]
epoch 109 | loss 0.9688439965248108, f_iou 0.670071542263031: 45%|████████████████ | 33/74 [00:31<00:32, 1.28it/s]
epoch 109 | loss 0.9688439965248108, f_iou 0.670071542263031: 46%|████████████████▌ | 34/74 [00:31<00:31, 1.28it/s]
epoch 109 | loss 0.8163454532623291, f_iou 0.6778221726417542: 46%|████████████████ | 34/74 [00:32<00:31, 1.28it/s]
epoch 109 | loss 0.8163454532623291, f_iou 0.6778221726417542: 47%|████████████████▌ | 35/74 [00:32<00:30, 1.28it/s]
epoch 109 | loss 1.0662955045700073, f_iou 0.679000973701477: 47%|█████████████████ | 35/74 [00:32<00:30, 1.28it/s]
epoch 109 | loss 1.0662955045700073, f_iou 0.679000973701477: 49%|█████████████████▌ | 36/74 [00:32<00:29, 1.27it/s]
epoch 109 | loss 0.9383756518363953, f_iou 0.6793449521064758: 49%|█████████████████ | 36/74 [00:33<00:29, 1.27it/s]
epoch 109 | loss 0.9383756518363953, f_iou 0.6793449521064758: 50%|█████████████████▌ | 37/74 [00:33<00:28, 1.30it/s]
epoch 109 | loss 1.3271218538284302, f_iou 0.6709669828414917: 50%|█████████████████▌ | 37/74 [00:34<00:28, 1.30it/s]
epoch 109 | loss 1.3271218538284302, f_iou 0.6709669828414917: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.32it/s]
epoch 109 | loss 1.090584635734558, f_iou 0.6770629286766052: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.32it/s]
epoch 109 | loss 1.090584635734558, f_iou 0.6770629286766052: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.34it/s]
epoch 109 | loss 0.6821359395980835, f_iou 0.6819050908088684: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.34it/s]
epoch 109 | loss 0.6821359395980835, f_iou 0.6819050908088684: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.36it/s]
epoch 109 | loss 1.1133795976638794, f_iou 0.6830297708511353: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.36it/s]
epoch 109 | loss 1.1133795976638794, f_iou 0.6830297708511353: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.37it/s]
epoch 109 | loss 0.33224600553512573, f_iou 0.6899153590202332: 55%|██████████████████▊ | 41/74 [00:37<00:24, 1.37it/s]
epoch 109 | loss 0.33224600553512573, f_iou 0.6899153590202332: 57%|███████████████████▎ | 42/74 [00:37<00:23, 1.38it/s]
epoch 109 | loss 0.38788068294525146, f_iou 0.6961883902549744: 57%|███████████████████▎ | 42/74 [00:38<00:23, 1.38it/s]
epoch 109 | loss 0.38788068294525146, f_iou 0.6961883902549744: 58%|███████████████████▊ | 43/74 [00:38<00:22, 1.37it/s]
epoch 109 | loss 1.1906925439834595, f_iou 0.6825222969055176: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.37it/s]
epoch 109 | loss 1.1906925439834595, f_iou 0.6825222969055176: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.38it/s]
epoch 109 | loss 1.5340663194656372, f_iou 0.6754977703094482: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.38it/s]
epoch 109 | loss 1.5340663194656372, f_iou 0.6754977703094482: 61%|█████████████████████▎ | 45/74 [00:39<00:20, 1.39it/s]
epoch 109 | loss 0.559023916721344, f_iou 0.679948627948761: 61%|██████████████████████▌ | 45/74 [00:40<00:20, 1.39it/s]
epoch 109 | loss 0.559023916721344, f_iou 0.679948627948761: 62%|███████████████████████ | 46/74 [00:40<00:20, 1.38it/s]
epoch 109 | loss 0.9759843349456787, f_iou 0.6824348568916321: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.38it/s]
epoch 109 | loss 0.9759843349456787, f_iou 0.6824348568916321: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.39it/s]
epoch 109 | loss 0.5529841780662537, f_iou 0.6806735396385193: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.39it/s]
epoch 109 | loss 0.5529841780662537, f_iou 0.6806735396385193: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.37it/s]
epoch 109 | loss 2.4299607276916504, f_iou 0.6766945719718933: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.37it/s]
epoch 109 | loss 2.4299607276916504, f_iou 0.6766945719718933: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.35it/s]
epoch 109 | loss 0.9430035352706909, f_iou 0.6807733178138733: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.35it/s]
epoch 109 | loss 0.9430035352706909, f_iou 0.6807733178138733: 68%|███████████████████████▋ | 50/74 [00:43<00:18, 1.33it/s]
epoch 109 | loss 0.8539788722991943, f_iou 0.682382345199585: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.33it/s]
epoch 109 | loss 0.8539788722991943, f_iou 0.682382345199585: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.34it/s]
epoch 109 | loss 0.40297186374664307, f_iou 0.6777313947677612: 69%|███████████████████████▍ | 51/74 [00:44<00:17, 1.34it/s]
epoch 109 | loss 0.40297186374664307, f_iou 0.6777313947677612: 70%|███████████████████████▉ | 52/74 [00:44<00:16, 1.36it/s]
epoch 109 | loss 1.9373862743377686, f_iou 0.6717698574066162: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.36it/s]
epoch 109 | loss 1.9373862743377686, f_iou 0.6717698574066162: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 109 | loss 1.3170255422592163, f_iou 0.6649513840675354: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.38it/s]
epoch 109 | loss 1.3170255422592163, f_iou 0.6649513840675354: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 109 | loss 0.6079814434051514, f_iou 0.6670799255371094: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 109 | loss 0.6079814434051514, f_iou 0.6670799255371094: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.39it/s]
epoch 109 | loss 1.2399953603744507, f_iou 0.6670587062835693: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.39it/s]
epoch 109 | loss 1.2399953603744507, f_iou 0.6670587062835693: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.39it/s]
epoch 109 | loss 0.5552074909210205, f_iou 0.668192446231842: 76%|███████████████████████████▏ | 56/74 [00:48<00:12, 1.39it/s]
epoch 109 | loss 0.5552074909210205, f_iou 0.668192446231842: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 109 | loss 0.6048508882522583, f_iou 0.6672509908676147: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.39it/s]
epoch 109 | loss 0.6048508882522583, f_iou 0.6672509908676147: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.40it/s]
epoch 109 | loss 1.996211290359497, f_iou 0.6594773530960083: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.40it/s]
epoch 109 | loss 1.996211290359497, f_iou 0.6594773530960083: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 109 | loss 0.8197312951087952, f_iou 0.6639086604118347: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.40it/s]
epoch 109 | loss 0.8197312951087952, f_iou 0.6639086604118347: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.40it/s]
epoch 109 | loss 0.4521702826023102, f_iou 0.6690211296081543: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.40it/s]
epoch 109 | loss 0.4521702826023102, f_iou 0.6690211296081543: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.40it/s]
epoch 109 | loss 0.5898120403289795, f_iou 0.6726593375205994: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.40it/s]
epoch 109 | loss 0.5898120403289795, f_iou 0.6726593375205994: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.40it/s]
epoch 109 | loss 1.1058416366577148, f_iou 0.677423894405365: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.40it/s]
epoch 109 | loss 1.1058416366577148, f_iou 0.677423894405365: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.40it/s]
epoch 109 | loss 0.8226539492607117, f_iou 0.6779342293739319: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.40it/s]
epoch 109 | loss 0.8226539492607117, f_iou 0.6779342293739319: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.40it/s]
epoch 109 | loss 0.6304600238800049, f_iou 0.6819489598274231: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.40it/s]
epoch 109 | loss 0.6304600238800049, f_iou 0.6819489598274231: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.40it/s]
epoch 109 | loss 1.0801115036010742, f_iou 0.6734277606010437: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.40it/s]
epoch 109 | loss 1.0801115036010742, f_iou 0.6734277606010437: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.40it/s]
epoch 109 | loss 1.257107138633728, f_iou 0.6752588748931885: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.40it/s]
epoch 109 | loss 1.257107138633728, f_iou 0.6752588748931885: 91%|████████████████████████████████▌ | 67/74 [00:55<00:04, 1.40it/s]
epoch 109 | loss 0.900348424911499, f_iou 0.6790492534637451: 91%|████████████████████████████████▌ | 67/74 [00:56<00:04, 1.40it/s]
epoch 109 | loss 0.900348424911499, f_iou 0.6790492534637451: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.40it/s]
epoch 109 | loss 1.4239460229873657, f_iou 0.6789563298225403: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.40it/s]
epoch 109 | loss 1.4239460229873657, f_iou 0.6789563298225403: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.41it/s]
epoch 109 | loss 0.5504890084266663, f_iou 0.6784694790840149: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.41it/s]
epoch 109 | loss 0.5504890084266663, f_iou 0.6784694790840149: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.41it/s]
epoch 109 | loss 0.7530341148376465, f_iou 0.6805146932601929: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.41it/s]
epoch 109 | loss 0.7530341148376465, f_iou 0.6805146932601929: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 109 | loss 1.8594380617141724, f_iou 0.6789752244949341: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.41it/s]
epoch 109 | loss 1.8594380617141724, f_iou 0.6789752244949341: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.41it/s]
epoch 109 | loss 0.9695649147033691, f_iou 0.6795842051506042: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.41it/s]
epoch 109 | loss 0.9695649147033691, f_iou 0.6795842051506042: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.42it/s]
epoch 109 | loss 1.4735519886016846, f_iou 0.6797081232070923: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.42it/s]
epoch 109 | loss 1.4735519886016846, f_iou 0.6797081232070923: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 109 | loss 1.4735519886016846, f_iou 0.6797081232070923: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 109 | valid.f_iou 0.738099992275238, valid.f_f-score 0.86343: 0%| | 0/16 [00:04, ?it/s]
epoch 109 | valid.f_iou 0.738099992275238, valid.f_f-score 0.86343: 6%|█▉ | 1/16 [00:04<01:13, 4.90s/it]
epoch 109 | valid.f_iou 0.6863700151443481, valid.f_f-score 0.8788: 6%|█▉ | 1/16 [00:05<01:13, 4.90s/it]
epoch 109 | valid.f_iou 0.6863700151443481, valid.f_f-score 0.8788: 12%|███▉ | 2/16 [00:05<00:33, 2.42s/it]
epoch 109 | valid.f_iou 0.5442299842834473, valid.f_f-score 0.78263: 12%|███▊ | 2/16 [00:06<00:33, 2.42s/it]
epoch 109 | valid.f_iou 0.5442299842834473, valid.f_f-score 0.78263: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 109 | valid.f_iou 0.5829399824142456, valid.f_f-score 0.77593: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 109 | valid.f_iou 0.5829399824142456, valid.f_f-score 0.77593: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 109 | valid.f_iou 0.5960500240325928, valid.f_f-score 0.78262: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 109 | valid.f_iou 0.5960500240325928, valid.f_f-score 0.78262: 31%|█████████▍ | 5/16 [00:06<00:09, 1.21it/s]
epoch 109 | valid.f_iou 0.5491999983787537, valid.f_f-score 0.73479: 31%|█████████▍ | 5/16 [00:07<00:09, 1.21it/s]
epoch 109 | valid.f_iou 0.5491999983787537, valid.f_f-score 0.73479: 38%|███████████▎ | 6/16 [00:07<00:06, 1.49it/s]
epoch 109 | valid.f_iou 0.576200008392334, valid.f_f-score 0.7551: 38%|████████████ | 6/16 [00:07<00:06, 1.49it/s]
epoch 109 | valid.f_iou 0.576200008392334, valid.f_f-score 0.7551: 44%|██████████████ | 7/16 [00:07<00:05, 1.76it/s]
epoch 109 | valid.f_iou 0.5570300221443176, valid.f_f-score 0.74178: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.76it/s]
epoch 109 | valid.f_iou 0.5570300221443176, valid.f_f-score 0.74178: 50%|███████████████ | 8/16 [00:07<00:04, 1.99it/s]
epoch 109 | valid.f_iou 0.5818099975585938, valid.f_f-score 0.75822: 50%|███████████████ | 8/16 [00:08<00:04, 1.99it/s]
epoch 109 | valid.f_iou 0.5818099975585938, valid.f_f-score 0.75822: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.19it/s]
epoch 109 | valid.f_iou 0.5894399881362915, valid.f_f-score 0.77122: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.19it/s]
epoch 109 | valid.f_iou 0.5894399881362915, valid.f_f-score 0.77122: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.34it/s]
epoch 109 | valid.f_iou 0.58815997838974, valid.f_f-score 0.76525: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.34it/s]
epoch 109 | valid.f_iou 0.58815997838974, valid.f_f-score 0.76525: 69%|█████████████████████▎ | 11/16 [00:08<00:02, 2.45it/s]
epoch 109 | valid.f_iou 0.603659987449646, valid.f_f-score 0.77775: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.45it/s]
epoch 109 | valid.f_iou 0.603659987449646, valid.f_f-score 0.77775: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.54it/s]
epoch 109 | valid.f_iou 0.6111999750137329, valid.f_f-score 0.78036: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.54it/s]
epoch 109 | valid.f_iou 0.6111999750137329, valid.f_f-score 0.78036: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.60it/s]
epoch 109 | valid.f_iou 0.6021000146865845, valid.f_f-score 0.77242: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.60it/s]
epoch 109 | valid.f_iou 0.6021000146865845, valid.f_f-score 0.77242: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.65it/s]
epoch 109 | valid.f_iou 0.6052299737930298, valid.f_f-score 0.77023: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.65it/s]
epoch 109 | valid.f_iou 0.6052299737930298, valid.f_f-score 0.77023: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 109 | valid.f_iou 0.6099399924278259, valid.f_f-score 0.76935: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 109 | valid.f_iou 0.6099399924278259, valid.f_f-score 0.76935: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 109 | valid.f_iou 0.6099399924278259, valid.f_f-score 0.76935: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 109 | valid.f_iou 0.8066099882125854, valid.f_f-score 0.82988: 0%| | 0/16 [00:04, ?it/s]
epoch 109 | valid.f_iou 0.8066099882125854, valid.f_f-score 0.82988: 6%|█▉ | 1/16 [00:04<01:06, 4.44s/it]
epoch 109 | valid.f_iou 0.8261799812316895, valid.f_f-score 0.87925: 6%|█▉ | 1/16 [00:05<01:06, 4.44s/it]
epoch 109 | valid.f_iou 0.8261799812316895, valid.f_f-score 0.87925: 12%|███▊ | 2/16 [00:05<00:33, 2.37s/it]
epoch 109 | valid.f_iou 0.7678700089454651, valid.f_f-score 0.85762: 12%|███▊ | 2/16 [00:05<00:33, 2.37s/it]
epoch 109 | valid.f_iou 0.7678700089454651, valid.f_f-score 0.85762: 19%|█████▋ | 3/16 [00:05<00:19, 1.50s/it]
epoch 109 | valid.f_iou 0.7557299733161926, valid.f_f-score 0.82221: 19%|█████▋ | 3/16 [00:06<00:19, 1.50s/it]
epoch 109 | valid.f_iou 0.7557299733161926, valid.f_f-score 0.82221: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 109 | valid.f_iou 0.7303699851036072, valid.f_f-score 0.81398: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 109 | valid.f_iou 0.7303699851036072, valid.f_f-score 0.81398: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 109 | valid.f_iou 0.7039999961853027, valid.f_f-score 0.79025: 31%|█████████▍ | 5/16 [00:07<00:09, 1.18it/s]
epoch 109 | valid.f_iou 0.7039999961853027, valid.f_f-score 0.79025: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 109 | valid.f_iou 0.7176700234413147, valid.f_f-score 0.80887: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 109 | valid.f_iou 0.7176700234413147, valid.f_f-score 0.80887: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.59it/s]
epoch 109 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.80923: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 109 | valid.f_iou 0.7085099816322327, valid.f_f-score 0.80923: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 109 | valid.f_iou 0.7121599912643433, valid.f_f-score 0.80641: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 109 | valid.f_iou 0.7121599912643433, valid.f_f-score 0.80641: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.99it/s]
epoch 109 | valid.f_iou 0.7227100133895874, valid.f_f-score 0.81792: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.99it/s]
epoch 109 | valid.f_iou 0.7227100133895874, valid.f_f-score 0.81792: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.16it/s]
epoch 109 | valid.f_iou 0.6995000243186951, valid.f_f-score 0.78759: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.16it/s]
epoch 109 | valid.f_iou 0.6995000243186951, valid.f_f-score 0.78759: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.30it/s]
epoch 109 | valid.f_iou 0.7138100266456604, valid.f_f-score 0.79987: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.30it/s]
epoch 109 | valid.f_iou 0.7138100266456604, valid.f_f-score 0.79987: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.41it/s]
epoch 109 | valid.f_iou 0.726419985294342, valid.f_f-score 0.80934: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.41it/s]
epoch 109 | valid.f_iou 0.726419985294342, valid.f_f-score 0.80934: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.49it/s]
epoch 109 | valid.f_iou 0.7176600098609924, valid.f_f-score 0.80255: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 109 | valid.f_iou 0.7176600098609924, valid.f_f-score 0.80255: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 109 | valid.f_iou 0.7221199870109558, valid.f_f-score 0.80607: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 109 | valid.f_iou 0.7221199870109558, valid.f_f-score 0.80607: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 109 | valid.f_iou 0.7156400084495544, valid.f_f-score 0.79997: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 109 | valid.f_iou 0.7156400084495544, valid.f_f-score 0.79997: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 109 | valid.f_iou 0.7156400084495544, valid.f_f-score 0.79997: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.46it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 109 | valid.f_iou 0.8066099882125854, valid.f_f-score 0.82988: 0%| | 0/16 [00:04, ?it/s]
epoch 109 | valid.f_iou 0.8066099882125854, valid.f_f-score 0.82988: 6%|█▉ | 1/16 [00:04<01:08, 4.60s/it]
epoch 109 | valid.f_iou 0.8261799812316895, valid.f_f-score 0.87925: 6%|█▉ | 1/16 [00:05<01:08, 4.60s/it]
epoch 109 | valid.f_iou 0.8261799812316895, valid.f_f-score 0.87925: 12%|███▊ | 2/16 [00:05<00:30, 2.17s/it]
epoch 109 | valid.f_iou 0.7678700089454651, valid.f_f-score 0.85762: 12%|███▊ | 2/16 [00:05<00:30, 2.17s/it]
epoch 109 | valid.f_iou 0.7678700089454651, valid.f_f-score 0.85762: 19%|█████▋ | 3/16 [00:05<00:17, 1.38s/it]
epoch 109 | valid.f_iou 0.7558500170707703, valid.f_f-score 0.82221: 19%|█████▋ | 3/16 [00:05<00:17, 1.38s/it]
epoch 109 | valid.f_iou 0.7558500170707703, valid.f_f-score 0.82221: 25%|███████▌ | 4/16 [00:05<00:12, 1.01s/it]
epoch 109 | valid.f_iou 0.7368699908256531, valid.f_f-score 0.81398: 25%|███████▌ | 4/16 [00:06<00:12, 1.01s/it]
epoch 109 | valid.f_iou 0.7368699908256531, valid.f_f-score 0.81398: 31%|█████████▍ | 5/16 [00:06<00:08, 1.26it/s]
epoch 109 | valid.f_iou 0.7094200253486633, valid.f_f-score 0.79025: 31%|█████████▍ | 5/16 [00:06<00:08, 1.26it/s]
epoch 109 | valid.f_iou 0.7094200253486633, valid.f_f-score 0.79025: 38%|███████████▎ | 6/16 [00:06<00:06, 1.46it/s]
epoch 109 | valid.f_iou 0.7240700125694275, valid.f_f-score 0.80887: 38%|███████████▎ | 6/16 [00:07<00:06, 1.46it/s]
epoch 109 | valid.f_iou 0.7240700125694275, valid.f_f-score 0.80887: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.73it/s]
epoch 109 | valid.f_iou 0.7141100168228149, valid.f_f-score 0.80923: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.73it/s]
epoch 109 | valid.f_iou 0.7141100168228149, valid.f_f-score 0.80923: 50%|███████████████ | 8/16 [00:07<00:04, 1.87it/s]
epoch 109 | valid.f_iou 0.7196000218391418, valid.f_f-score 0.80641: 50%|███████████████ | 8/16 [00:07<00:04, 1.87it/s]
epoch 109 | valid.f_iou 0.7196000218391418, valid.f_f-score 0.80641: 56%|████████████████▉ | 9/16 [00:07<00:03, 2.09it/s]
epoch 109 | valid.f_iou 0.7264699935913086, valid.f_f-score 0.81437: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.09it/s]
epoch 109 | valid.f_iou 0.7264699935913086, valid.f_f-score 0.81437: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.26it/s]
epoch 109 | valid.f_iou 0.7029200196266174, valid.f_f-score 0.78436: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.26it/s]
epoch 109 | valid.f_iou 0.7029200196266174, valid.f_f-score 0.78436: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.39it/s]
epoch 109 | valid.f_iou 0.7169399857521057, valid.f_f-score 0.7969: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.39it/s]
epoch 109 | valid.f_iou 0.7169399857521057, valid.f_f-score 0.7969: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.48it/s]
epoch 109 | valid.f_iou 0.7292500138282776, valid.f_f-score 0.80772: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.48it/s]
epoch 109 | valid.f_iou 0.7292500138282776, valid.f_f-score 0.80772: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.56it/s]
epoch 109 | valid.f_iou 0.7202900052070618, valid.f_f-score 0.80107: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.56it/s]
epoch 109 | valid.f_iou 0.7202900052070618, valid.f_f-score 0.80107: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.61it/s]
epoch 109 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.80468: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 109 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.80468: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 109 | valid.f_iou 0.718940019607544, valid.f_f-score 0.79867: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.65it/s]
epoch 109 | valid.f_iou 0.718940019607544, valid.f_f-score 0.79867: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.68it/s]
epoch 109 | valid.f_iou 0.718940019607544, valid.f_f-score 0.79867: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.52it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 110 | loss 0.43734675645828247, f_iou 0.6662449836730957: 0%| | 0/74 [00:06, ?it/s]
epoch 110 | loss 0.43734675645828247, f_iou 0.6662449836730957: 1%|▍ | 1/74 [00:06<07:41, 6.32s/it]
epoch 110 | loss 0.647198498249054, f_iou 0.7621734738349915: 1%|▌ | 1/74 [00:07<07:41, 6.32s/it]
epoch 110 | loss 0.647198498249054, f_iou 0.7621734738349915: 3%|█ | 2/74 [00:07<03:39, 3.05s/it]
epoch 110 | loss 0.7920085191726685, f_iou 0.67985999584198: 3%|█ | 2/74 [00:07<03:39, 3.05s/it]
epoch 110 | loss 0.7920085191726685, f_iou 0.67985999584198: 4%|█▌ | 3/74 [00:07<02:21, 1.99s/it]
epoch 110 | loss 1.3506511449813843, f_iou 0.6908287405967712: 4%|█▍ | 3/74 [00:08<02:21, 1.99s/it]
epoch 110 | loss 1.3506511449813843, f_iou 0.6908287405967712: 5%|█▉ | 4/74 [00:08<01:44, 1.49s/it]
epoch 110 | loss 1.2898688316345215, f_iou 0.6795990467071533: 5%|█▉ | 4/74 [00:09<01:44, 1.49s/it]
epoch 110 | loss 1.2898688316345215, f_iou 0.6795990467071533: 7%|██▍ | 5/74 [00:09<01:24, 1.22s/it]
epoch 110 | loss 0.31888535618782043, f_iou 0.6919794082641602: 7%|██▎ | 5/74 [00:10<01:24, 1.22s/it]
epoch 110 | loss 0.31888535618782043, f_iou 0.6919794082641602: 8%|██▊ | 6/74 [00:10<01:11, 1.05s/it]
epoch 110 | loss 1.5602240562438965, f_iou 0.6861103773117065: 8%|██▉ | 6/74 [00:10<01:11, 1.05s/it]
epoch 110 | loss 1.5602240562438965, f_iou 0.6861103773117065: 9%|███▍ | 7/74 [00:10<01:02, 1.06it/s]
epoch 110 | loss 0.3538072407245636, f_iou 0.7217391133308411: 9%|███▍ | 7/74 [00:11<01:02, 1.06it/s]
epoch 110 | loss 0.3538072407245636, f_iou 0.7217391133308411: 11%|███▉ | 8/74 [00:11<00:57, 1.15it/s]
epoch 110 | loss 0.7151745557785034, f_iou 0.7404026389122009: 11%|███▉ | 8/74 [00:12<00:57, 1.15it/s]
epoch 110 | loss 0.7151745557785034, f_iou 0.7404026389122009: 12%|████▍ | 9/74 [00:12<00:53, 1.22it/s]
epoch 110 | loss 2.0210113525390625, f_iou 0.7114745378494263: 12%|████▍ | 9/74 [00:12<00:53, 1.22it/s]
epoch 110 | loss 2.0210113525390625, f_iou 0.7114745378494263: 14%|████▋ | 10/74 [00:12<00:50, 1.27it/s]
epoch 110 | loss 1.1211707592010498, f_iou 0.668306827545166: 14%|████▊ | 10/74 [00:13<00:50, 1.27it/s]
epoch 110 | loss 1.1211707592010498, f_iou 0.668306827545166: 15%|█████▎ | 11/74 [00:13<00:48, 1.30it/s]
epoch 110 | loss 0.549060046672821, f_iou 0.690898597240448: 15%|█████▌ | 11/74 [00:14<00:48, 1.30it/s]
epoch 110 | loss 0.549060046672821, f_iou 0.690898597240448: 16%|██████ | 12/74 [00:14<00:46, 1.32it/s]
epoch 110 | loss 2.357501268386841, f_iou 0.6888754963874817: 16%|█████▊ | 12/74 [00:15<00:46, 1.32it/s]
epoch 110 | loss 2.357501268386841, f_iou 0.6888754963874817: 18%|██████▎ | 13/74 [00:15<00:45, 1.34it/s]
epoch 110 | loss 1.027376651763916, f_iou 0.6782993674278259: 18%|██████▎ | 13/74 [00:15<00:45, 1.34it/s]
epoch 110 | loss 1.027376651763916, f_iou 0.6782993674278259: 19%|██████▊ | 14/74 [00:15<00:44, 1.35it/s]
epoch 110 | loss 1.0687347650527954, f_iou 0.6819045543670654: 19%|██████▌ | 14/74 [00:16<00:44, 1.35it/s]
epoch 110 | loss 1.0687347650527954, f_iou 0.6819045543670654: 20%|███████ | 15/74 [00:16<00:43, 1.36it/s]
epoch 110 | loss 0.9890797138214111, f_iou 0.684851884841919: 20%|███████▎ | 15/74 [00:17<00:43, 1.36it/s]
epoch 110 | loss 0.9890797138214111, f_iou 0.684851884841919: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 110 | loss 1.5996074676513672, f_iou 0.6926169991493225: 22%|███████▌ | 16/74 [00:17<00:42, 1.36it/s]
epoch 110 | loss 1.5996074676513672, f_iou 0.6926169991493225: 23%|████████ | 17/74 [00:17<00:41, 1.37it/s]
epoch 110 | loss 1.696955680847168, f_iou 0.6992958784103394: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 110 | loss 1.696955680847168, f_iou 0.6992958784103394: 24%|████████▊ | 18/74 [00:18<00:40, 1.37it/s]
epoch 110 | loss 1.182265043258667, f_iou 0.6899789571762085: 24%|████████▊ | 18/74 [00:19<00:40, 1.37it/s]
epoch 110 | loss 1.182265043258667, f_iou 0.6899789571762085: 26%|█████████▏ | 19/74 [00:19<00:40, 1.37it/s]
epoch 110 | loss 0.33203548192977905, f_iou 0.7036284804344177: 26%|████████▋ | 19/74 [00:20<00:40, 1.37it/s]
epoch 110 | loss 0.33203548192977905, f_iou 0.7036284804344177: 27%|█████████▏ | 20/74 [00:20<00:39, 1.38it/s]
epoch 110 | loss 0.9316689968109131, f_iou 0.713910698890686: 27%|█████████▋ | 20/74 [00:20<00:39, 1.38it/s]
epoch 110 | loss 0.9316689968109131, f_iou 0.713910698890686: 28%|██████████▏ | 21/74 [00:20<00:38, 1.39it/s]
epoch 110 | loss 0.8140432834625244, f_iou 0.7168567180633545: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 110 | loss 0.8140432834625244, f_iou 0.7168567180633545: 30%|██████████▍ | 22/74 [00:21<00:37, 1.40it/s]
epoch 110 | loss 0.7620118856430054, f_iou 0.7209939956665039: 30%|██████████▍ | 22/74 [00:22<00:37, 1.40it/s]
epoch 110 | loss 0.7620118856430054, f_iou 0.7209939956665039: 31%|██████████▉ | 23/74 [00:22<00:36, 1.39it/s]
epoch 110 | loss 1.8161736726760864, f_iou 0.715327262878418: 31%|███████████▏ | 23/74 [00:23<00:36, 1.39it/s]
epoch 110 | loss 1.8161736726760864, f_iou 0.715327262878418: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 110 | loss 2.331477165222168, f_iou 0.7127081751823425: 32%|███████████▋ | 24/74 [00:23<00:36, 1.37it/s]
epoch 110 | loss 2.331477165222168, f_iou 0.7127081751823425: 34%|████████████▏ | 25/74 [00:23<00:36, 1.34it/s]
epoch 110 | loss 1.2327800989151, f_iou 0.7132178544998169: 34%|████████████▊ | 25/74 [00:24<00:36, 1.34it/s]
epoch 110 | loss 1.2327800989151, f_iou 0.7132178544998169: 35%|█████████████▎ | 26/74 [00:24<00:36, 1.31it/s]
epoch 110 | loss 0.5988837480545044, f_iou 0.7221083045005798: 35%|████████████▎ | 26/74 [00:25<00:36, 1.31it/s]
epoch 110 | loss 0.5988837480545044, f_iou 0.7221083045005798: 36%|████████████▊ | 27/74 [00:25<00:36, 1.30it/s]
epoch 110 | loss 1.6475563049316406, f_iou 0.7238035798072815: 36%|████████████▊ | 27/74 [00:26<00:36, 1.30it/s]
epoch 110 | loss 1.6475563049316406, f_iou 0.7238035798072815: 38%|█████████████▏ | 28/74 [00:26<00:35, 1.29it/s]
epoch 110 | loss 0.8010086417198181, f_iou 0.7302420735359192: 38%|█████████████▏ | 28/74 [00:26<00:35, 1.29it/s]
epoch 110 | loss 0.8010086417198181, f_iou 0.7302420735359192: 39%|█████████████▋ | 29/74 [00:26<00:34, 1.30it/s]
epoch 110 | loss 0.9118695259094238, f_iou 0.7352167963981628: 39%|█████████████▋ | 29/74 [00:27<00:34, 1.30it/s]
epoch 110 | loss 0.9118695259094238, f_iou 0.7352167963981628: 41%|██████████████▏ | 30/74 [00:27<00:33, 1.33it/s]
epoch 110 | loss 0.8473106622695923, f_iou 0.738915205001831: 41%|██████████████▌ | 30/74 [00:28<00:33, 1.33it/s]
epoch 110 | loss 0.8473106622695923, f_iou 0.738915205001831: 42%|███████████████ | 31/74 [00:28<00:32, 1.34it/s]
epoch 110 | loss 0.7845484018325806, f_iou 0.7428398728370667: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.34it/s]
epoch 110 | loss 0.7845484018325806, f_iou 0.7428398728370667: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.36it/s]
epoch 110 | loss 1.975046157836914, f_iou 0.7366971373558044: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.36it/s]
epoch 110 | loss 1.975046157836914, f_iou 0.7366971373558044: 45%|████████████████ | 33/74 [00:29<00:31, 1.32it/s]
epoch 110 | loss 0.8354877233505249, f_iou 0.7419312000274658: 45%|███████████████▌ | 33/74 [00:30<00:31, 1.32it/s]
epoch 110 | loss 0.8354877233505249, f_iou 0.7419312000274658: 46%|████████████████ | 34/74 [00:30<00:30, 1.32it/s]
epoch 110 | loss 1.3431689739227295, f_iou 0.7316237688064575: 46%|████████████████ | 34/74 [00:31<00:30, 1.32it/s]
epoch 110 | loss 1.3431689739227295, f_iou 0.7316237688064575: 47%|████████████████▌ | 35/74 [00:31<00:29, 1.32it/s]
epoch 110 | loss 0.7955042123794556, f_iou 0.7378042340278625: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.32it/s]
epoch 110 | loss 0.7955042123794556, f_iou 0.7378042340278625: 49%|█████████████████ | 36/74 [00:32<00:28, 1.32it/s]
epoch 110 | loss 0.9661062955856323, f_iou 0.7336705327033997: 49%|█████████████████ | 36/74 [00:32<00:28, 1.32it/s]
epoch 110 | loss 0.9661062955856323, f_iou 0.7336705327033997: 50%|█████████████████▌ | 37/74 [00:32<00:28, 1.31it/s]
epoch 110 | loss 4.065783977508545, f_iou 0.7334097623825073: 50%|██████████████████ | 37/74 [00:33<00:28, 1.31it/s]
epoch 110 | loss 4.065783977508545, f_iou 0.7334097623825073: 51%|██████████████████▍ | 38/74 [00:33<00:27, 1.30it/s]
epoch 110 | loss 0.5598957538604736, f_iou 0.7380552887916565: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.30it/s]
epoch 110 | loss 0.5598957538604736, f_iou 0.7380552887916565: 53%|██████████████████▍ | 39/74 [00:34<00:26, 1.30it/s]
epoch 110 | loss 1.3724157810211182, f_iou 0.7336663603782654: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.30it/s]
epoch 110 | loss 1.3724157810211182, f_iou 0.7336663603782654: 54%|██████████████████▉ | 40/74 [00:35<00:26, 1.30it/s]
epoch 110 | loss 1.5403809547424316, f_iou 0.7318543195724487: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.30it/s]
epoch 110 | loss 1.5403809547424316, f_iou 0.7318543195724487: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.30it/s]
epoch 110 | loss 0.1470087468624115, f_iou 0.7369484305381775: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.30it/s]
epoch 110 | loss 0.1470087468624115, f_iou 0.7369484305381775: 57%|███████████████████▊ | 42/74 [00:36<00:24, 1.32it/s]
epoch 110 | loss 1.807784914970398, f_iou 0.727550745010376: 57%|█████████████████████ | 42/74 [00:37<00:24, 1.32it/s]
epoch 110 | loss 1.807784914970398, f_iou 0.727550745010376: 58%|█████████████████████▍ | 43/74 [00:37<00:23, 1.34it/s]
epoch 110 | loss 1.2911657094955444, f_iou 0.7110251188278198: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.34it/s]
epoch 110 | loss 1.2911657094955444, f_iou 0.7110251188278198: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.36it/s]
epoch 110 | loss 1.1229901313781738, f_iou 0.7096884846687317: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.36it/s]
epoch 110 | loss 1.1229901313781738, f_iou 0.7096884846687317: 61%|█████████████████████▎ | 45/74 [00:38<00:21, 1.37it/s]
epoch 110 | loss 0.6595252752304077, f_iou 0.7137064933776855: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.37it/s]
epoch 110 | loss 0.6595252752304077, f_iou 0.7137064933776855: 62%|█████████████████████▊ | 46/74 [00:39<00:21, 1.29it/s]
epoch 110 | loss 1.2679638862609863, f_iou 0.7174896001815796: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.29it/s]
epoch 110 | loss 1.2679638862609863, f_iou 0.7174896001815796: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.32it/s]
epoch 110 | loss 1.4371616840362549, f_iou 0.7182909250259399: 64%|██████████████████████▏ | 47/74 [00:41<00:20, 1.32it/s]
epoch 110 | loss 1.4371616840362549, f_iou 0.7182909250259399: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.34it/s]
epoch 110 | loss 0.9717867374420166, f_iou 0.7216545343399048: 65%|██████████████████████▋ | 48/74 [00:42<00:19, 1.34it/s]
epoch 110 | loss 0.9717867374420166, f_iou 0.7216545343399048: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.32it/s]
epoch 110 | loss 0.5294740200042725, f_iou 0.7219535112380981: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.32it/s]
epoch 110 | loss 0.5294740200042725, f_iou 0.7219535112380981: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.34it/s]
epoch 110 | loss 0.6870545744895935, f_iou 0.724199652671814: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.34it/s]
epoch 110 | loss 0.6870545744895935, f_iou 0.724199652671814: 69%|████████████████████████▊ | 51/74 [00:43<00:16, 1.36it/s]
epoch 110 | loss 1.2044062614440918, f_iou 0.7251182794570923: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.36it/s]
epoch 110 | loss 1.2044062614440918, f_iou 0.7251182794570923: 70%|████████████████████████▌ | 52/74 [00:44<00:16, 1.37it/s]
epoch 110 | loss 1.266197681427002, f_iou 0.7135190963745117: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.37it/s]
epoch 110 | loss 1.266197681427002, f_iou 0.7135190963745117: 72%|█████████████████████████▊ | 53/74 [00:44<00:15, 1.38it/s]
epoch 110 | loss 1.884236216545105, f_iou 0.7119362950325012: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.38it/s]
epoch 110 | loss 1.884236216545105, f_iou 0.7119362950325012: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.38it/s]
epoch 110 | loss 0.8102436661720276, f_iou 0.7144527435302734: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 110 | loss 0.8102436661720276, f_iou 0.7144527435302734: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.38it/s]
epoch 110 | loss 0.0, f_iou 0.7180833220481873: 74%|█████████████████████████████████████▏ | 55/74 [00:47<00:13, 1.38it/s]
epoch 110 | loss 0.0, f_iou 0.7180833220481873: 76%|█████████████████████████████████████▊ | 56/74 [00:47<00:13, 1.38it/s]
epoch 110 | loss 0.713505744934082, f_iou 0.7220097780227661: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 110 | loss 0.713505744934082, f_iou 0.7220097780227661: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.38it/s]
epoch 110 | loss 0.9261603951454163, f_iou 0.7197733521461487: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.38it/s]
epoch 110 | loss 0.9261603951454163, f_iou 0.7197733521461487: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.39it/s]
epoch 110 | loss 0.49101927876472473, f_iou 0.723657488822937: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.39it/s]
epoch 110 | loss 0.49101927876472473, f_iou 0.723657488822937: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.39it/s]
epoch 110 | loss 1.6215243339538574, f_iou 0.7237768769264221: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.39it/s]
epoch 110 | loss 1.6215243339538574, f_iou 0.7237768769264221: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.39it/s]
epoch 110 | loss 1.8681625127792358, f_iou 0.7219931483268738: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.39it/s]
epoch 110 | loss 1.8681625127792358, f_iou 0.7219931483268738: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.38it/s]
epoch 110 | loss 0.6238754987716675, f_iou 0.7262277603149414: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 110 | loss 0.6238754987716675, f_iou 0.7262277603149414: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.34it/s]
epoch 110 | loss 1.6702274084091187, f_iou 0.7236821055412292: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.34it/s]
epoch 110 | loss 1.6702274084091187, f_iou 0.7236821055412292: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.32it/s]
epoch 110 | loss 2.020503282546997, f_iou 0.7225649952888489: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.32it/s]
epoch 110 | loss 2.020503282546997, f_iou 0.7225649952888489: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.31it/s]
epoch 110 | loss 1.1532835960388184, f_iou 0.7124500870704651: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.31it/s]
epoch 110 | loss 1.1532835960388184, f_iou 0.7124500870704651: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.30it/s]
epoch 110 | loss 0.22992759943008423, f_iou 0.7157202959060669: 88%|█████████████████████████████▊ | 65/74 [00:54<00:06, 1.30it/s]
epoch 110 | loss 0.22992759943008423, f_iou 0.7157202959060669: 89%|██████████████████████████████▎ | 66/74 [00:54<00:06, 1.29it/s]
epoch 110 | loss 0.5108750462532043, f_iou 0.7185844779014587: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.29it/s]
epoch 110 | loss 0.5108750462532043, f_iou 0.7185844779014587: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.29it/s]
epoch 110 | loss 1.8728108406066895, f_iou 0.7162662148475647: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.29it/s]
epoch 110 | loss 1.8728108406066895, f_iou 0.7162662148475647: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.31it/s]
epoch 110 | loss 3.0280792713165283, f_iou 0.7136454582214355: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.31it/s]
epoch 110 | loss 3.0280792713165283, f_iou 0.7136454582214355: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.33it/s]
epoch 110 | loss 0.9980171918869019, f_iou 0.7093908786773682: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.33it/s]
epoch 110 | loss 0.9980171918869019, f_iou 0.7093908786773682: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.36it/s]
epoch 110 | loss 2.7260117530822754, f_iou 0.7073859572410583: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.36it/s]
epoch 110 | loss 2.7260117530822754, f_iou 0.7073859572410583: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 110 | loss 1.410158395767212, f_iou 0.7106168866157532: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 110 | loss 1.410158395767212, f_iou 0.7106168866157532: 97%|███████████████████████████████████ | 72/74 [00:58<00:01, 1.38it/s]
epoch 110 | loss 0.8011354804039001, f_iou 0.7141805291175842: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 110 | loss 0.8011354804039001, f_iou 0.7141805291175842: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 110 | loss 1.777104139328003, f_iou 0.7158297896385193: 99%|███████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 110 | loss 1.777104139328003, f_iou 0.7158297896385193: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 110 | loss 1.777104139328003, f_iou 0.7158297896385193: 100%|████████████████████████████████████| 74/74 [01:00<00:00, 1.23it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 110 | valid.f_iou 0.7465299963951111, valid.f_f-score 0.85007: 0%| | 0/16 [00:05, ?it/s]
epoch 110 | valid.f_iou 0.7465299963951111, valid.f_f-score 0.85007: 6%|█▉ | 1/16 [00:05<01:26, 5.78s/it]
epoch 110 | valid.f_iou 0.7111999988555908, valid.f_f-score 0.87079: 6%|█▉ | 1/16 [00:06<01:26, 5.78s/it]
epoch 110 | valid.f_iou 0.7111999988555908, valid.f_f-score 0.87079: 12%|███▊ | 2/16 [00:06<00:37, 2.65s/it]
epoch 110 | valid.f_iou 0.5697900056838989, valid.f_f-score 0.77593: 12%|███▊ | 2/16 [00:06<00:37, 2.65s/it]
epoch 110 | valid.f_iou 0.5697900056838989, valid.f_f-score 0.77593: 19%|█████▋ | 3/16 [00:06<00:21, 1.65s/it]
epoch 110 | valid.f_iou 0.6069300174713135, valid.f_f-score 0.77428: 19%|█████▋ | 3/16 [00:07<00:21, 1.65s/it]
epoch 110 | valid.f_iou 0.6069300174713135, valid.f_f-score 0.77428: 25%|███████▌ | 4/16 [00:07<00:14, 1.17s/it]
epoch 110 | valid.f_iou 0.6216599941253662, valid.f_f-score 0.78064: 25%|███████▌ | 4/16 [00:07<00:14, 1.17s/it]
epoch 110 | valid.f_iou 0.6216599941253662, valid.f_f-score 0.78064: 31%|█████████▍ | 5/16 [00:07<00:10, 1.08it/s]
epoch 110 | valid.f_iou 0.5791699886322021, valid.f_f-score 0.73908: 31%|█████████▍ | 5/16 [00:08<00:10, 1.08it/s]
epoch 110 | valid.f_iou 0.5791699886322021, valid.f_f-score 0.73908: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 110 | valid.f_iou 0.6052600145339966, valid.f_f-score 0.75882: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 110 | valid.f_iou 0.6052600145339966, valid.f_f-score 0.75882: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.52it/s]
epoch 110 | valid.f_iou 0.5778399705886841, valid.f_f-score 0.73807: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.52it/s]
epoch 110 | valid.f_iou 0.5778399705886841, valid.f_f-score 0.73807: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 110 | valid.f_iou 0.5999100208282471, valid.f_f-score 0.7553: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 110 | valid.f_iou 0.5999100208282471, valid.f_f-score 0.7553: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.91it/s]
epoch 110 | valid.f_iou 0.610759973526001, valid.f_f-score 0.7695: 56%|██████████████████ | 9/16 [00:09<00:03, 1.91it/s]
epoch 110 | valid.f_iou 0.610759973526001, valid.f_f-score 0.7695: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.01it/s]
epoch 110 | valid.f_iou 0.6142399907112122, valid.f_f-score 0.76922: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.01it/s]
epoch 110 | valid.f_iou 0.6142399907112122, valid.f_f-score 0.76922: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 110 | valid.f_iou 0.6327400207519531, valid.f_f-score 0.78203: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 110 | valid.f_iou 0.6327400207519531, valid.f_f-score 0.78203: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.24it/s]
epoch 110 | valid.f_iou 0.63919997215271, valid.f_f-score 0.78585: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.24it/s]
epoch 110 | valid.f_iou 0.63919997215271, valid.f_f-score 0.78585: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.36it/s]
epoch 110 | valid.f_iou 0.6331700086593628, valid.f_f-score 0.77998: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.36it/s]
epoch 110 | valid.f_iou 0.6331700086593628, valid.f_f-score 0.77998: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 110 | valid.f_iou 0.6349899768829346, valid.f_f-score 0.77766: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 110 | valid.f_iou 0.6349899768829346, valid.f_f-score 0.77766: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 110 | valid.f_iou 0.6348099708557129, valid.f_f-score 0.77288: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.54it/s]
epoch 110 | valid.f_iou 0.6348099708557129, valid.f_f-score 0.77288: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.59it/s]
epoch 110 | valid.f_iou 0.6348099708557129, valid.f_f-score 0.77288: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.33it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 110 | valid.f_iou 0.8091999888420105, valid.f_f-score 0.83079: 0%| | 0/16 [00:04, ?it/s]
epoch 110 | valid.f_iou 0.8091999888420105, valid.f_f-score 0.83079: 6%|█▉ | 1/16 [00:04<01:14, 4.99s/it]
epoch 110 | valid.f_iou 0.8271399736404419, valid.f_f-score 0.87775: 6%|█▉ | 1/16 [00:05<01:14, 4.99s/it]
epoch 110 | valid.f_iou 0.8271399736404419, valid.f_f-score 0.87775: 12%|███▊ | 2/16 [00:05<00:32, 2.31s/it]
epoch 110 | valid.f_iou 0.7632899880409241, valid.f_f-score 0.85268: 12%|███▊ | 2/16 [00:05<00:32, 2.31s/it]
epoch 110 | valid.f_iou 0.7632899880409241, valid.f_f-score 0.85268: 19%|█████▋ | 3/16 [00:05<00:18, 1.45s/it]
epoch 110 | valid.f_iou 0.7211800217628479, valid.f_f-score 0.77978: 19%|█████▋ | 3/16 [00:06<00:18, 1.45s/it]
epoch 110 | valid.f_iou 0.7211800217628479, valid.f_f-score 0.77978: 25%|███████▌ | 4/16 [00:06<00:12, 1.05s/it]
epoch 110 | valid.f_iou 0.6962599754333496, valid.f_f-score 0.77167: 25%|███████▌ | 4/16 [00:06<00:12, 1.05s/it]
epoch 110 | valid.f_iou 0.6962599754333496, valid.f_f-score 0.77167: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 110 | valid.f_iou 0.6888700127601624, valid.f_f-score 0.76973: 31%|█████████▍ | 5/16 [00:07<00:09, 1.18it/s]
epoch 110 | valid.f_iou 0.6888700127601624, valid.f_f-score 0.76973: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 110 | valid.f_iou 0.7056900262832642, valid.f_f-score 0.7906: 38%|███████████▋ | 6/16 [00:07<00:06, 1.44it/s]
epoch 110 | valid.f_iou 0.7056900262832642, valid.f_f-score 0.7906: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.64it/s]
epoch 110 | valid.f_iou 0.6954600214958191, valid.f_f-score 0.79163: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.64it/s]
epoch 110 | valid.f_iou 0.6954600214958191, valid.f_f-score 0.79163: 50%|███████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 110 | valid.f_iou 0.7027000188827515, valid.f_f-score 0.79664: 50%|███████████████ | 8/16 [00:08<00:04, 1.81it/s]
epoch 110 | valid.f_iou 0.7027000188827515, valid.f_f-score 0.79664: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 110 | valid.f_iou 0.7198100090026855, valid.f_f-score 0.81018: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 110 | valid.f_iou 0.7198100090026855, valid.f_f-score 0.81018: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.13it/s]
epoch 110 | valid.f_iou 0.7113500237464905, valid.f_f-score 0.79505: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.13it/s]
epoch 110 | valid.f_iou 0.7113500237464905, valid.f_f-score 0.79505: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 110 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.80633: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 110 | valid.f_iou 0.7223600149154663, valid.f_f-score 0.80633: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.40it/s]
epoch 110 | valid.f_iou 0.7315000295639038, valid.f_f-score 0.81423: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.40it/s]
epoch 110 | valid.f_iou 0.7315000295639038, valid.f_f-score 0.81423: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.50it/s]
epoch 110 | valid.f_iou 0.7225800156593323, valid.f_f-score 0.80807: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 110 | valid.f_iou 0.7225800156593323, valid.f_f-score 0.80807: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 110 | valid.f_iou 0.7326499819755554, valid.f_f-score 0.81765: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 110 | valid.f_iou 0.7326499819755554, valid.f_f-score 0.81765: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 110 | valid.f_iou 0.7267100214958191, valid.f_f-score 0.81231: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 110 | valid.f_iou 0.7267100214958191, valid.f_f-score 0.81231: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 110 | valid.f_iou 0.7267100214958191, valid.f_f-score 0.81231: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 110 | valid.f_iou 0.8091999888420105, valid.f_f-score 0.83079: 0%| | 0/16 [00:04, ?it/s]
epoch 110 | valid.f_iou 0.8091999888420105, valid.f_f-score 0.83079: 6%|█▉ | 1/16 [00:04<01:08, 4.55s/it]
epoch 110 | valid.f_iou 0.8271399736404419, valid.f_f-score 0.87775: 6%|█▉ | 1/16 [00:04<01:08, 4.55s/it]
epoch 110 | valid.f_iou 0.8271399736404419, valid.f_f-score 0.87775: 12%|███▊ | 2/16 [00:05<00:29, 2.14s/it]
epoch 110 | valid.f_iou 0.7632899880409241, valid.f_f-score 0.85268: 12%|███▊ | 2/16 [00:05<00:29, 2.14s/it]
epoch 110 | valid.f_iou 0.7632899880409241, valid.f_f-score 0.85268: 19%|█████▋ | 3/16 [00:05<00:17, 1.37s/it]
epoch 110 | valid.f_iou 0.7213900089263916, valid.f_f-score 0.77978: 19%|█████▋ | 3/16 [00:05<00:17, 1.37s/it]
epoch 110 | valid.f_iou 0.7213900089263916, valid.f_f-score 0.77978: 25%|███████▌ | 4/16 [00:05<00:12, 1.00s/it]
epoch 110 | valid.f_iou 0.7052599787712097, valid.f_f-score 0.77167: 25%|███████▌ | 4/16 [00:06<00:12, 1.00s/it]
epoch 110 | valid.f_iou 0.7052599787712097, valid.f_f-score 0.77167: 31%|█████████▍ | 5/16 [00:06<00:08, 1.26it/s]
epoch 110 | valid.f_iou 0.696370005607605, valid.f_f-score 0.76973: 31%|█████████▋ | 5/16 [00:06<00:08, 1.26it/s]
epoch 110 | valid.f_iou 0.696370005607605, valid.f_f-score 0.76973: 38%|███████████▋ | 6/16 [00:06<00:06, 1.49it/s]
epoch 110 | valid.f_iou 0.713890016078949, valid.f_f-score 0.7906: 38%|████████████ | 6/16 [00:07<00:06, 1.49it/s]
epoch 110 | valid.f_iou 0.713890016078949, valid.f_f-score 0.7906: 44%|██████████████ | 7/16 [00:07<00:05, 1.73it/s]
epoch 110 | valid.f_iou 0.7026299834251404, valid.f_f-score 0.79163: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.73it/s]
epoch 110 | valid.f_iou 0.7026299834251404, valid.f_f-score 0.79163: 50%|███████████████ | 8/16 [00:07<00:04, 1.97it/s]
epoch 110 | valid.f_iou 0.7111899852752686, valid.f_f-score 0.79664: 50%|███████████████ | 8/16 [00:07<00:04, 1.97it/s]
epoch 110 | valid.f_iou 0.7111899852752686, valid.f_f-score 0.79664: 56%|████████████████▉ | 9/16 [00:07<00:03, 2.19it/s]
epoch 110 | valid.f_iou 0.7236999869346619, valid.f_f-score 0.80676: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.19it/s]
epoch 110 | valid.f_iou 0.7236999869346619, valid.f_f-score 0.80676: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.32it/s]
epoch 110 | valid.f_iou 0.7148900032043457, valid.f_f-score 0.79194: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.32it/s]
epoch 110 | valid.f_iou 0.7148900032043457, valid.f_f-score 0.79194: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.43it/s]
epoch 110 | valid.f_iou 0.725600004196167, valid.f_f-score 0.80348: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.43it/s]
epoch 110 | valid.f_iou 0.725600004196167, valid.f_f-score 0.80348: 75%|██████████████████████▌ | 12/16 [00:08<00:01, 2.50it/s]
epoch 110 | valid.f_iou 0.7341700196266174, valid.f_f-score 0.8116: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.50it/s]
epoch 110 | valid.f_iou 0.7341700196266174, valid.f_f-score 0.8116: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.55it/s]
epoch 110 | valid.f_iou 0.7250499725341797, valid.f_f-score 0.80563: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.55it/s]
epoch 110 | valid.f_iou 0.7250499725341797, valid.f_f-score 0.80563: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.59it/s]
epoch 110 | valid.f_iou 0.7349600195884705, valid.f_f-score 0.81538: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 110 | valid.f_iou 0.7349600195884705, valid.f_f-score 0.81538: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 110 | valid.f_iou 0.7299100160598755, valid.f_f-score 0.81018: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.64it/s]
epoch 110 | valid.f_iou 0.7299100160598755, valid.f_f-score 0.81018: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.67it/s]
epoch 110 | valid.f_iou 0.7299100160598755, valid.f_f-score 0.81018: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.53it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 111 | loss 1.3150358200073242, f_iou 0.6905093193054199: 0%| | 0/74 [00:05, ?it/s]
epoch 111 | loss 1.3150358200073242, f_iou 0.6905093193054199: 1%|▍ | 1/74 [00:05<06:33, 5.39s/it]
epoch 111 | loss 0.84178626537323, f_iou 0.7095838189125061: 1%|▌ | 1/74 [00:06<06:33, 5.39s/it]
epoch 111 | loss 0.84178626537323, f_iou 0.7095838189125061: 3%|█ | 2/74 [00:06<03:22, 2.81s/it]
epoch 111 | loss 0.450555682182312, f_iou 0.7938326597213745: 3%|█ | 2/74 [00:07<03:22, 2.81s/it]
epoch 111 | loss 0.450555682182312, f_iou 0.7938326597213745: 4%|█▌ | 3/74 [00:07<02:18, 1.95s/it]
epoch 111 | loss 0.6983386874198914, f_iou 0.8260470628738403: 4%|█▍ | 3/74 [00:08<02:18, 1.95s/it]
epoch 111 | loss 0.6983386874198914, f_iou 0.8260470628738403: 5%|█▉ | 4/74 [00:08<01:44, 1.50s/it]
epoch 111 | loss 0.45653605461120605, f_iou 0.8433362245559692: 5%|█▉ | 4/74 [00:08<01:44, 1.50s/it]
epoch 111 | loss 0.45653605461120605, f_iou 0.8433362245559692: 7%|██▎ | 5/74 [00:08<01:26, 1.25s/it]
epoch 111 | loss 0.4778521656990051, f_iou 0.8608747720718384: 7%|██▍ | 5/74 [00:09<01:26, 1.25s/it]
epoch 111 | loss 0.4778521656990051, f_iou 0.8608747720718384: 8%|██▉ | 6/74 [00:09<01:14, 1.10s/it]
epoch 111 | loss 0.44762516021728516, f_iou 0.8739445209503174: 8%|██▊ | 6/74 [00:10<01:14, 1.10s/it]
epoch 111 | loss 0.44762516021728516, f_iou 0.8739445209503174: 9%|███▎ | 7/74 [00:10<01:07, 1.01s/it]
epoch 111 | loss 0.9014627933502197, f_iou 0.8548957705497742: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 111 | loss 0.9014627933502197, f_iou 0.8548957705497742: 11%|███▉ | 8/74 [00:11<01:02, 1.05it/s]
epoch 111 | loss 1.1135791540145874, f_iou 0.8412275910377502: 11%|███▉ | 8/74 [00:12<01:02, 1.05it/s]
epoch 111 | loss 1.1135791540145874, f_iou 0.8412275910377502: 12%|████▍ | 9/74 [00:12<00:58, 1.11it/s]
epoch 111 | loss 0.3324527144432068, f_iou 0.8544936180114746: 12%|████▍ | 9/74 [00:12<00:58, 1.11it/s]
epoch 111 | loss 0.3324527144432068, f_iou 0.8544936180114746: 14%|████▋ | 10/74 [00:12<00:55, 1.16it/s]
epoch 111 | loss 0.9081693291664124, f_iou 0.8555142283439636: 14%|████▋ | 10/74 [00:13<00:55, 1.16it/s]
epoch 111 | loss 0.9081693291664124, f_iou 0.8555142283439636: 15%|█████▏ | 11/74 [00:13<00:52, 1.19it/s]
epoch 111 | loss 0.7175308465957642, f_iou 0.8580847978591919: 15%|█████▏ | 11/74 [00:14<00:52, 1.19it/s]
epoch 111 | loss 0.7175308465957642, f_iou 0.8580847978591919: 16%|█████▋ | 12/74 [00:14<00:49, 1.24it/s]
epoch 111 | loss 1.4030015468597412, f_iou 0.8245888948440552: 16%|█████▋ | 12/74 [00:15<00:49, 1.24it/s]
epoch 111 | loss 1.4030015468597412, f_iou 0.8245888948440552: 18%|██████▏ | 13/74 [00:15<00:47, 1.29it/s]
epoch 111 | loss 2.168250322341919, f_iou 0.8252140879631042: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 111 | loss 2.168250322341919, f_iou 0.8252140879631042: 19%|██████▊ | 14/74 [00:15<00:45, 1.32it/s]
epoch 111 | loss 2.509369134902954, f_iou 0.8151069283485413: 19%|██████▊ | 14/74 [00:16<00:45, 1.32it/s]
epoch 111 | loss 2.509369134902954, f_iou 0.8151069283485413: 20%|███████▎ | 15/74 [00:16<00:43, 1.34it/s]
epoch 111 | loss 0.5519142150878906, f_iou 0.8213294148445129: 20%|███████ | 15/74 [00:17<00:43, 1.34it/s]
epoch 111 | loss 0.5519142150878906, f_iou 0.8213294148445129: 22%|███████▌ | 16/74 [00:17<00:42, 1.36it/s]
epoch 111 | loss 0.4015614092350006, f_iou 0.8292376399040222: 22%|███████▌ | 16/74 [00:18<00:42, 1.36it/s]
epoch 111 | loss 0.4015614092350006, f_iou 0.8292376399040222: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 111 | loss 0.5252732038497925, f_iou 0.8367025852203369: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 111 | loss 0.5252732038497925, f_iou 0.8367025852203369: 24%|████████▌ | 18/74 [00:18<00:40, 1.38it/s]
epoch 111 | loss 0.0, f_iou 0.8442171812057495: 24%|████████████▏ | 18/74 [00:19<00:40, 1.38it/s]
epoch 111 | loss 0.0, f_iou 0.8442171812057495: 26%|████████████▊ | 19/74 [00:19<00:39, 1.39it/s]
epoch 111 | loss 0.5126983523368835, f_iou 0.8462565541267395: 26%|████████▉ | 19/74 [00:20<00:39, 1.39it/s]
epoch 111 | loss 0.5126983523368835, f_iou 0.8462565541267395: 27%|█████████▍ | 20/74 [00:20<00:39, 1.36it/s]
epoch 111 | loss 1.9389649629592896, f_iou 0.8361677527427673: 27%|█████████▍ | 20/74 [00:21<00:39, 1.36it/s]
epoch 111 | loss 1.9389649629592896, f_iou 0.8361677527427673: 28%|█████████▉ | 21/74 [00:21<00:39, 1.34it/s]
epoch 111 | loss 0.8481518030166626, f_iou 0.8310897350311279: 28%|█████████▉ | 21/74 [00:21<00:39, 1.34it/s]
epoch 111 | loss 0.8481518030166626, f_iou 0.8310897350311279: 30%|██████████▍ | 22/74 [00:21<00:39, 1.32it/s]
epoch 111 | loss 1.0205121040344238, f_iou 0.8250345587730408: 30%|██████████▍ | 22/74 [00:22<00:39, 1.32it/s]
epoch 111 | loss 1.0205121040344238, f_iou 0.8250345587730408: 31%|██████████▉ | 23/74 [00:22<00:39, 1.31it/s]
epoch 111 | loss 1.7604048252105713, f_iou 0.8198107481002808: 31%|██████████▉ | 23/74 [00:23<00:39, 1.31it/s]
epoch 111 | loss 1.7604048252105713, f_iou 0.8198107481002808: 32%|███████████▎ | 24/74 [00:23<00:38, 1.30it/s]
epoch 111 | loss 2.0181374549865723, f_iou 0.8151935935020447: 32%|███████████▎ | 24/74 [00:24<00:38, 1.30it/s]
epoch 111 | loss 2.0181374549865723, f_iou 0.8151935935020447: 34%|███████████▊ | 25/74 [00:24<00:36, 1.33it/s]
epoch 111 | loss 2.3163161277770996, f_iou 0.8045374155044556: 34%|███████████▊ | 25/74 [00:24<00:36, 1.33it/s]
epoch 111 | loss 2.3163161277770996, f_iou 0.8045374155044556: 35%|████████████▎ | 26/74 [00:24<00:35, 1.35it/s]
epoch 111 | loss 0.08639442920684814, f_iou 0.8098779916763306: 35%|███████████▉ | 26/74 [00:25<00:35, 1.35it/s]
epoch 111 | loss 0.08639442920684814, f_iou 0.8098779916763306: 36%|████████████▍ | 27/74 [00:25<00:34, 1.36it/s]
epoch 111 | loss 0.9234928488731384, f_iou 0.8107699751853943: 36%|████████████▊ | 27/74 [00:26<00:34, 1.36it/s]
epoch 111 | loss 0.9234928488731384, f_iou 0.8107699751853943: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 111 | loss 0.4265964925289154, f_iou 0.7828123569488525: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 111 | loss 0.4265964925289154, f_iou 0.7828123569488525: 39%|█████████████▋ | 29/74 [00:26<00:32, 1.37it/s]
epoch 111 | loss 0.8845295310020447, f_iou 0.7852478623390198: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.37it/s]
epoch 111 | loss 0.8845295310020447, f_iou 0.7852478623390198: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.38it/s]
epoch 111 | loss 0.5828580856323242, f_iou 0.7853882312774658: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.38it/s]
epoch 111 | loss 0.5828580856323242, f_iou 0.7853882312774658: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.38it/s]
epoch 111 | loss 0.9266282320022583, f_iou 0.787873387336731: 42%|███████████████ | 31/74 [00:29<00:31, 1.38it/s]
epoch 111 | loss 0.9266282320022583, f_iou 0.787873387336731: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.39it/s]
epoch 111 | loss 0.4010705053806305, f_iou 0.7789759635925293: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.39it/s]
epoch 111 | loss 0.4010705053806305, f_iou 0.7789759635925293: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.39it/s]
epoch 111 | loss 0.6688929200172424, f_iou 0.7821296453475952: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.39it/s]
epoch 111 | loss 0.6688929200172424, f_iou 0.7821296453475952: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 111 | loss 1.029240369796753, f_iou 0.7868019938468933: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.39it/s]
epoch 111 | loss 1.029240369796753, f_iou 0.7868019938468933: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 111 | loss 0.4661157429218292, f_iou 0.769146203994751: 47%|█████████████████ | 35/74 [00:31<00:28, 1.39it/s]
epoch 111 | loss 0.4661157429218292, f_iou 0.769146203994751: 49%|█████████████████▌ | 36/74 [00:31<00:27, 1.39it/s]
epoch 111 | loss 0.5817202925682068, f_iou 0.7743150591850281: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 111 | loss 0.5817202925682068, f_iou 0.7743150591850281: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.40it/s]
epoch 111 | loss 1.0681626796722412, f_iou 0.7781996130943298: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 111 | loss 1.0681626796722412, f_iou 0.7781996130943298: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.40it/s]
epoch 111 | loss 1.793963074684143, f_iou 0.7736243009567261: 51%|██████████████████▍ | 38/74 [00:34<00:25, 1.40it/s]
epoch 111 | loss 1.793963074684143, f_iou 0.7736243009567261: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.39it/s]
epoch 111 | loss 0.4727920889854431, f_iou 0.7779534459114075: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.39it/s]
epoch 111 | loss 0.4727920889854431, f_iou 0.7779534459114075: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.37it/s]
epoch 111 | loss 0.620570719242096, f_iou 0.773192286491394: 54%|████████████████████ | 40/74 [00:35<00:24, 1.37it/s]
epoch 111 | loss 0.620570719242096, f_iou 0.773192286491394: 55%|████████████████████▌ | 41/74 [00:35<00:24, 1.34it/s]
epoch 111 | loss 1.5843349695205688, f_iou 0.7757126092910767: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.34it/s]
epoch 111 | loss 1.5843349695205688, f_iou 0.7757126092910767: 57%|███████████████████▊ | 42/74 [00:36<00:24, 1.33it/s]
epoch 111 | loss 0.7393420934677124, f_iou 0.7788881659507751: 57%|███████████████████▊ | 42/74 [00:37<00:24, 1.33it/s]
epoch 111 | loss 0.7393420934677124, f_iou 0.7788881659507751: 58%|████████████████████▎ | 43/74 [00:37<00:23, 1.34it/s]
epoch 111 | loss 0.8491754531860352, f_iou 0.7809579968452454: 58%|████████████████████▎ | 43/74 [00:37<00:23, 1.34it/s]
epoch 111 | loss 0.8491754531860352, f_iou 0.7809579968452454: 59%|████████████████████▊ | 44/74 [00:37<00:22, 1.36it/s]
epoch 111 | loss 0.47088295221328735, f_iou 0.763641893863678: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.36it/s]
epoch 111 | loss 0.47088295221328735, f_iou 0.763641893863678: 61%|█████████████████████▎ | 45/74 [00:38<00:21, 1.37it/s]
epoch 111 | loss 0.3904559016227722, f_iou 0.7679433822631836: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.37it/s]
epoch 111 | loss 0.3904559016227722, f_iou 0.7679433822631836: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.38it/s]
epoch 111 | loss 0.32949668169021606, f_iou 0.770865261554718: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.38it/s]
epoch 111 | loss 0.32949668169021606, f_iou 0.770865261554718: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.38it/s]
epoch 111 | loss 0.4542946219444275, f_iou 0.7740294933319092: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.38it/s]
epoch 111 | loss 0.4542946219444275, f_iou 0.7740294933319092: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.39it/s]
epoch 111 | loss 0.6553781628608704, f_iou 0.7774836421012878: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.39it/s]
epoch 111 | loss 0.6553781628608704, f_iou 0.7774836421012878: 66%|███████████████████████▏ | 49/74 [00:41<00:17, 1.39it/s]
epoch 111 | loss 0.5513231754302979, f_iou 0.7809865474700928: 66%|███████████████████████▏ | 49/74 [00:42<00:17, 1.39it/s]
epoch 111 | loss 0.5513231754302979, f_iou 0.7809865474700928: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 111 | loss 1.0145986080169678, f_iou 0.7795377373695374: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.39it/s]
epoch 111 | loss 1.0145986080169678, f_iou 0.7795377373695374: 69%|████████████████████████ | 51/74 [00:42<00:16, 1.40it/s]
epoch 111 | loss 0.9413791298866272, f_iou 0.7788796424865723: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.40it/s]
epoch 111 | loss 0.9413791298866272, f_iou 0.7788796424865723: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.39it/s]
epoch 111 | loss 1.8156038522720337, f_iou 0.7813915014266968: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.39it/s]
epoch 111 | loss 1.8156038522720337, f_iou 0.7813915014266968: 72%|█████████████████████████ | 53/74 [00:44<00:15, 1.40it/s]
epoch 111 | loss 0.5651960968971252, f_iou 0.7846798896789551: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.40it/s]
epoch 111 | loss 0.5651960968971252, f_iou 0.7846798896789551: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.39it/s]
epoch 111 | loss 0.90250563621521, f_iou 0.7846162915229797: 73%|███████████████████████████ | 54/74 [00:45<00:14, 1.39it/s]
epoch 111 | loss 0.90250563621521, f_iou 0.7846162915229797: 74%|███████████████████████████▌ | 55/74 [00:45<00:13, 1.39it/s]
epoch 111 | loss 2.2588982582092285, f_iou 0.7805350422859192: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.39it/s]
epoch 111 | loss 2.2588982582092285, f_iou 0.7805350422859192: 76%|██████████████████████████▍ | 56/74 [00:46<00:12, 1.40it/s]
epoch 111 | loss 0.6677409410476685, f_iou 0.7815651297569275: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.40it/s]
epoch 111 | loss 0.6677409410476685, f_iou 0.7815651297569275: 77%|██████████████████████████▉ | 57/74 [00:47<00:12, 1.39it/s]
epoch 111 | loss 0.6808457970619202, f_iou 0.771914005279541: 77%|███████████████████████████▋ | 57/74 [00:47<00:12, 1.39it/s]
epoch 111 | loss 0.6808457970619202, f_iou 0.771914005279541: 78%|████████████████████████████▏ | 58/74 [00:47<00:11, 1.40it/s]
epoch 111 | loss 1.8033113479614258, f_iou 0.7725662589073181: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.40it/s]
epoch 111 | loss 1.8033113479614258, f_iou 0.7725662589073181: 80%|███████████████████████████▉ | 59/74 [00:48<00:10, 1.40it/s]
epoch 111 | loss 0.5802967548370361, f_iou 0.772645115852356: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.40it/s]
epoch 111 | loss 0.5802967548370361, f_iou 0.772645115852356: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.38it/s]
epoch 111 | loss 1.210325002670288, f_iou 0.7734378576278687: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.38it/s]
epoch 111 | loss 1.210325002670288, f_iou 0.7734378576278687: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.37it/s]
epoch 111 | loss 0.45231086015701294, f_iou 0.77267986536026: 82%|█████████████████████████████▋ | 61/74 [00:50<00:09, 1.37it/s]
epoch 111 | loss 0.45231086015701294, f_iou 0.77267986536026: 84%|██████████████████████████████▏ | 62/74 [00:50<00:08, 1.37it/s]
epoch 111 | loss 1.708437442779541, f_iou 0.7670536637306213: 84%|██████████████████████████████▏ | 62/74 [00:51<00:08, 1.37it/s]
epoch 111 | loss 1.708437442779541, f_iou 0.7670536637306213: 85%|██████████████████████████████▋ | 63/74 [00:51<00:08, 1.37it/s]
epoch 111 | loss 0.8078656196594238, f_iou 0.7572296857833862: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.37it/s]
epoch 111 | loss 0.8078656196594238, f_iou 0.7572296857833862: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.37it/s]
epoch 111 | loss 0.9507728219032288, f_iou 0.7585697770118713: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.37it/s]
epoch 111 | loss 0.9507728219032288, f_iou 0.7585697770118713: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.38it/s]
epoch 111 | loss 1.6082009077072144, f_iou 0.7601264119148254: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.38it/s]
epoch 111 | loss 1.6082009077072144, f_iou 0.7601264119148254: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.38it/s]
epoch 111 | loss 1.2437723875045776, f_iou 0.7608848214149475: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.38it/s]
epoch 111 | loss 1.2437723875045776, f_iou 0.7608848214149475: 91%|███████████████████████████████▋ | 67/74 [00:54<00:05, 1.38it/s]
epoch 111 | loss 1.1874394416809082, f_iou 0.7588561773300171: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.38it/s]
epoch 111 | loss 1.1874394416809082, f_iou 0.7588561773300171: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.39it/s]
epoch 111 | loss 1.3350071907043457, f_iou 0.7608512043952942: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.39it/s]
epoch 111 | loss 1.3350071907043457, f_iou 0.7608512043952942: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.39it/s]
epoch 111 | loss 0.5428512096405029, f_iou 0.7621347904205322: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.39it/s]
epoch 111 | loss 0.5428512096405029, f_iou 0.7621347904205322: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 111 | loss 0.7315008640289307, f_iou 0.764589250087738: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.40it/s]
epoch 111 | loss 0.7315008640289307, f_iou 0.764589250087738: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 111 | loss 0.7276357412338257, f_iou 0.766211748123169: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 111 | loss 0.7276357412338257, f_iou 0.766211748123169: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 111 | loss 1.3826674222946167, f_iou 0.7678442597389221: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 111 | loss 1.3826674222946167, f_iou 0.7678442597389221: 99%|██████████████████████████████████▌| 73/74 [00:58<00:00, 1.41it/s]
epoch 111 | loss 1.3922462463378906, f_iou 0.7654057741165161: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 111 | loss 1.3922462463378906, f_iou 0.7654057741165161: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.41it/s]
epoch 111 | loss 1.3922462463378906, f_iou 0.7654057741165161: 100%|███████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 111 | valid.f_iou 0.7444300055503845, valid.f_f-score 0.86491: 0%| | 0/16 [00:05, ?it/s]
epoch 111 | valid.f_iou 0.7444300055503845, valid.f_f-score 0.86491: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 111 | valid.f_iou 0.7098699808120728, valid.f_f-score 0.88031: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 111 | valid.f_iou 0.7098699808120728, valid.f_f-score 0.88031: 12%|███▊ | 2/16 [00:05<00:34, 2.47s/it]
epoch 111 | valid.f_iou 0.5581799745559692, valid.f_f-score 0.78037: 12%|███▊ | 2/16 [00:06<00:34, 2.47s/it]
epoch 111 | valid.f_iou 0.5581799745559692, valid.f_f-score 0.78037: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 111 | valid.f_iou 0.6014599800109863, valid.f_f-score 0.777: 19%|██████ | 3/16 [00:06<00:20, 1.55s/it]
epoch 111 | valid.f_iou 0.6014599800109863, valid.f_f-score 0.777: 25%|████████ | 4/16 [00:06<00:13, 1.11s/it]
epoch 111 | valid.f_iou 0.6116099953651428, valid.f_f-score 0.78318: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 111 | valid.f_iou 0.6116099953651428, valid.f_f-score 0.78318: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 111 | valid.f_iou 0.5630499720573425, valid.f_f-score 0.73557: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 111 | valid.f_iou 0.5630499720573425, valid.f_f-score 0.73557: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 111 | valid.f_iou 0.5921300053596497, valid.f_f-score 0.75618: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 111 | valid.f_iou 0.5921300053596497, valid.f_f-score 0.75618: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 111 | valid.f_iou 0.5627700090408325, valid.f_f-score 0.73676: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 111 | valid.f_iou 0.5627700090408325, valid.f_f-score 0.73676: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 111 | valid.f_iou 0.57669997215271, valid.f_f-score 0.73754: 50%|████████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 111 | valid.f_iou 0.57669997215271, valid.f_f-score 0.73754: 56%|██████████████████ | 9/16 [00:08<00:03, 1.92it/s]
epoch 111 | valid.f_iou 0.5702499747276306, valid.f_f-score 0.73944: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.92it/s]
epoch 111 | valid.f_iou 0.5702499747276306, valid.f_f-score 0.73944: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.11it/s]
epoch 111 | valid.f_iou 0.5740399956703186, valid.f_f-score 0.74154: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.11it/s]
epoch 111 | valid.f_iou 0.5740399956703186, valid.f_f-score 0.74154: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.27it/s]
epoch 111 | valid.f_iou 0.5956400036811829, valid.f_f-score 0.75705: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.27it/s]
epoch 111 | valid.f_iou 0.5956400036811829, valid.f_f-score 0.75705: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.40it/s]
epoch 111 | valid.f_iou 0.6055200099945068, valid.f_f-score 0.76026: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.40it/s]
epoch 111 | valid.f_iou 0.6055200099945068, valid.f_f-score 0.76026: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 111 | valid.f_iou 0.596340000629425, valid.f_f-score 0.75323: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 111 | valid.f_iou 0.596340000629425, valid.f_f-score 0.75323: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 111 | valid.f_iou 0.6005200147628784, valid.f_f-score 0.75185: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 111 | valid.f_iou 0.6005200147628784, valid.f_f-score 0.75185: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 111 | valid.f_iou 0.6021400094032288, valid.f_f-score 0.74769: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 111 | valid.f_iou 0.6021400094032288, valid.f_f-score 0.74769: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 111 | valid.f_iou 0.6021400094032288, valid.f_f-score 0.74769: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 111 | valid.f_iou 0.8014600276947021, valid.f_f-score 0.81102: 0%| | 0/16 [00:03, ?it/s]
epoch 111 | valid.f_iou 0.8014600276947021, valid.f_f-score 0.81102: 6%|█▉ | 1/16 [00:03<00:58, 3.92s/it]
epoch 111 | valid.f_iou 0.8375999927520752, valid.f_f-score 0.87473: 6%|█▉ | 1/16 [00:05<00:58, 3.92s/it]
epoch 111 | valid.f_iou 0.8375999927520752, valid.f_f-score 0.87473: 12%|███▊ | 2/16 [00:05<00:33, 2.37s/it]
epoch 111 | valid.f_iou 0.7791699767112732, valid.f_f-score 0.85838: 12%|███▊ | 2/16 [00:05<00:33, 2.37s/it]
epoch 111 | valid.f_iou 0.7791699767112732, valid.f_f-score 0.85838: 19%|█████▋ | 3/16 [00:05<00:19, 1.49s/it]
epoch 111 | valid.f_iou 0.7667700052261353, valid.f_f-score 0.82277: 19%|█████▋ | 3/16 [00:06<00:19, 1.49s/it]
epoch 111 | valid.f_iou 0.7667700052261353, valid.f_f-score 0.82277: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 111 | valid.f_iou 0.7379099726676941, valid.f_f-score 0.81058: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 111 | valid.f_iou 0.7379099726676941, valid.f_f-score 0.81058: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 111 | valid.f_iou 0.7225599884986877, valid.f_f-score 0.80179: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 111 | valid.f_iou 0.7225599884986877, valid.f_f-score 0.80179: 38%|███████████▎ | 6/16 [00:06<00:06, 1.45it/s]
epoch 111 | valid.f_iou 0.7393100261688232, valid.f_f-score 0.82155: 38%|███████████▎ | 6/16 [00:07<00:06, 1.45it/s]
epoch 111 | valid.f_iou 0.7393100261688232, valid.f_f-score 0.82155: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.65it/s]
epoch 111 | valid.f_iou 0.7231299877166748, valid.f_f-score 0.81828: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.65it/s]
epoch 111 | valid.f_iou 0.7231299877166748, valid.f_f-score 0.81828: 50%|███████████████ | 8/16 [00:07<00:04, 1.79it/s]
epoch 111 | valid.f_iou 0.7273899912834167, valid.f_f-score 0.82014: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 111 | valid.f_iou 0.7273899912834167, valid.f_f-score 0.82014: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.93it/s]
epoch 111 | valid.f_iou 0.7364100217819214, valid.f_f-score 0.83005: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.93it/s]
epoch 111 | valid.f_iou 0.7364100217819214, valid.f_f-score 0.83005: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.12it/s]
epoch 111 | valid.f_iou 0.7257999777793884, valid.f_f-score 0.81301: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.12it/s]
epoch 111 | valid.f_iou 0.7257999777793884, valid.f_f-score 0.81301: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.25it/s]
epoch 111 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.82302: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.25it/s]
epoch 111 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.82302: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.38it/s]
epoch 111 | valid.f_iou 0.7477700114250183, valid.f_f-score 0.83063: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.38it/s]
epoch 111 | valid.f_iou 0.7477700114250183, valid.f_f-score 0.83063: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.48it/s]
epoch 111 | valid.f_iou 0.7377499938011169, valid.f_f-score 0.82378: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 111 | valid.f_iou 0.7377499938011169, valid.f_f-score 0.82378: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 111 | valid.f_iou 0.747219979763031, valid.f_f-score 0.83237: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 111 | valid.f_iou 0.747219979763031, valid.f_f-score 0.83237: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 111 | valid.f_iou 0.7436000108718872, valid.f_f-score 0.82972: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 111 | valid.f_iou 0.7436000108718872, valid.f_f-score 0.82972: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 111 | valid.f_iou 0.7436000108718872, valid.f_f-score 0.82972: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 111 | valid.f_iou 0.8014600276947021, valid.f_f-score 0.81102: 0%| | 0/16 [00:05, ?it/s]
epoch 111 | valid.f_iou 0.8014600276947021, valid.f_f-score 0.81102: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 111 | valid.f_iou 0.8375999927520752, valid.f_f-score 0.87473: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 111 | valid.f_iou 0.8375999927520752, valid.f_f-score 0.87473: 12%|███▊ | 2/16 [00:05<00:34, 2.47s/it]
epoch 111 | valid.f_iou 0.7791699767112732, valid.f_f-score 0.85838: 12%|███▊ | 2/16 [00:06<00:34, 2.47s/it]
epoch 111 | valid.f_iou 0.7791699767112732, valid.f_f-score 0.85838: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 111 | valid.f_iou 0.7669699788093567, valid.f_f-score 0.82277: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 111 | valid.f_iou 0.7669699788093567, valid.f_f-score 0.82277: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 111 | valid.f_iou 0.7462900280952454, valid.f_f-score 0.81058: 25%|███████▌ | 4/16 [00:07<00:12, 1.07s/it]
epoch 111 | valid.f_iou 0.7462900280952454, valid.f_f-score 0.81058: 31%|█████████▍ | 5/16 [00:07<00:09, 1.19it/s]
epoch 111 | valid.f_iou 0.7295500040054321, valid.f_f-score 0.80179: 31%|█████████▍ | 5/16 [00:07<00:09, 1.19it/s]
epoch 111 | valid.f_iou 0.7295500040054321, valid.f_f-score 0.80179: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 111 | valid.f_iou 0.7470700144767761, valid.f_f-score 0.82155: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 111 | valid.f_iou 0.7470700144767761, valid.f_f-score 0.82155: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.71it/s]
epoch 111 | valid.f_iou 0.7299200296401978, valid.f_f-score 0.81828: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.71it/s]
epoch 111 | valid.f_iou 0.7299200296401978, valid.f_f-score 0.81828: 50%|███████████████ | 8/16 [00:08<00:04, 1.94it/s]
epoch 111 | valid.f_iou 0.7349299788475037, valid.f_f-score 0.82014: 50%|███████████████ | 8/16 [00:08<00:04, 1.94it/s]
epoch 111 | valid.f_iou 0.7349299788475037, valid.f_f-score 0.82014: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.16it/s]
epoch 111 | valid.f_iou 0.7404500246047974, valid.f_f-score 0.82658: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.16it/s]
epoch 111 | valid.f_iou 0.7404500246047974, valid.f_f-score 0.82658: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.30it/s]
epoch 111 | valid.f_iou 0.7294800281524658, valid.f_f-score 0.80985: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.30it/s]
epoch 111 | valid.f_iou 0.7294800281524658, valid.f_f-score 0.80985: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.41it/s]
epoch 111 | valid.f_iou 0.7403900027275085, valid.f_f-score 0.82013: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.41it/s]
epoch 111 | valid.f_iou 0.7403900027275085, valid.f_f-score 0.82013: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 111 | valid.f_iou 0.7508599758148193, valid.f_f-score 0.82903: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 111 | valid.f_iou 0.7508599758148193, valid.f_f-score 0.82903: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.56it/s]
epoch 111 | valid.f_iou 0.7406100034713745, valid.f_f-score 0.82231: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.56it/s]
epoch 111 | valid.f_iou 0.7406100034713745, valid.f_f-score 0.82231: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 111 | valid.f_iou 0.7498900294303894, valid.f_f-score 0.83099: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.59it/s]
epoch 111 | valid.f_iou 0.7498900294303894, valid.f_f-score 0.83099: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 111 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.82843: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 111 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.82843: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 111 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.82843: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 112 | loss 1.635805606842041, f_iou 0.11255601793527603: 0%| | 0/74 [00:06, ?it/s]
epoch 112 | loss 1.635805606842041, f_iou 0.11255601793527603: 1%|▍ | 1/74 [00:06<08:03, 6.62s/it]
epoch 112 | loss 1.8347430229187012, f_iou 0.3150187134742737: 1%|▍ | 1/74 [00:07<08:03, 6.62s/it]
epoch 112 | loss 1.8347430229187012, f_iou 0.3150187134742737: 3%|▉ | 2/74 [00:07<03:51, 3.22s/it]
epoch 112 | loss 1.456310510635376, f_iou 0.46073102951049805: 3%|▉ | 2/74 [00:08<03:51, 3.22s/it]
epoch 112 | loss 1.456310510635376, f_iou 0.46073102951049805: 4%|█▍ | 3/74 [00:08<02:31, 2.14s/it]
epoch 112 | loss 0.6218833923339844, f_iou 0.5603679418563843: 4%|█▍ | 3/74 [00:09<02:31, 2.14s/it]
epoch 112 | loss 0.6218833923339844, f_iou 0.5603679418563843: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 112 | loss 0.0, f_iou 0.644993007183075: 5%|██▊ | 4/74 [00:09<01:52, 1.61s/it]
epoch 112 | loss 0.0, f_iou 0.644993007183075: 7%|███▌ | 5/74 [00:09<01:30, 1.32s/it]
epoch 112 | loss 1.589797019958496, f_iou 0.5920553207397461: 7%|██▌ | 5/74 [00:10<01:30, 1.32s/it]
epoch 112 | loss 1.589797019958496, f_iou 0.5920553207397461: 8%|███ | 6/74 [00:10<01:17, 1.14s/it]
epoch 112 | loss 1.862311601638794, f_iou 0.595192551612854: 8%|███ | 6/74 [00:11<01:17, 1.14s/it]
epoch 112 | loss 1.862311601638794, f_iou 0.595192551612854: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 112 | loss 0.9978805780410767, f_iou 0.6300915479660034: 9%|███▍ | 7/74 [00:12<01:08, 1.02s/it]
epoch 112 | loss 0.9978805780410767, f_iou 0.6300915479660034: 11%|███▉ | 8/74 [00:12<01:02, 1.05it/s]
epoch 112 | loss 1.038455843925476, f_iou 0.6379955410957336: 11%|████ | 8/74 [00:13<01:02, 1.05it/s]
epoch 112 | loss 1.038455843925476, f_iou 0.6379955410957336: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 112 | loss 2.344672441482544, f_iou 0.6349951028823853: 12%|████▌ | 9/74 [00:13<00:57, 1.12it/s]
epoch 112 | loss 2.344672441482544, f_iou 0.6349951028823853: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 112 | loss 1.9329800605773926, f_iou 0.6259406208992004: 14%|████▋ | 10/74 [00:14<00:53, 1.19it/s]
epoch 112 | loss 1.9329800605773926, f_iou 0.6259406208992004: 15%|█████▏ | 11/74 [00:14<00:50, 1.24it/s]
epoch 112 | loss 2.275331735610962, f_iou 0.6157205700874329: 15%|█████▎ | 11/74 [00:15<00:50, 1.24it/s]
epoch 112 | loss 2.275331735610962, f_iou 0.6157205700874329: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 112 | loss 1.127626895904541, f_iou 0.620530903339386: 16%|██████ | 12/74 [00:15<00:48, 1.28it/s]
epoch 112 | loss 1.127626895904541, f_iou 0.620530903339386: 18%|██████▌ | 13/74 [00:15<00:46, 1.30it/s]
epoch 112 | loss 1.6645206212997437, f_iou 0.6350700855255127: 18%|██████▏ | 13/74 [00:16<00:46, 1.30it/s]
epoch 112 | loss 1.6645206212997437, f_iou 0.6350700855255127: 19%|██████▌ | 14/74 [00:16<00:45, 1.31it/s]
epoch 112 | loss 0.49894705414772034, f_iou 0.6475805044174194: 19%|██████▍ | 14/74 [00:17<00:45, 1.31it/s]
epoch 112 | loss 0.49894705414772034, f_iou 0.6475805044174194: 20%|██████▉ | 15/74 [00:17<00:44, 1.32it/s]
epoch 112 | loss 1.2361135482788086, f_iou 0.6571951508522034: 20%|███████ | 15/74 [00:18<00:44, 1.32it/s]
epoch 112 | loss 1.2361135482788086, f_iou 0.6571951508522034: 22%|███████▌ | 16/74 [00:18<00:43, 1.34it/s]
epoch 112 | loss 1.0066487789154053, f_iou 0.6693018674850464: 22%|███████▌ | 16/74 [00:18<00:43, 1.34it/s]
epoch 112 | loss 1.0066487789154053, f_iou 0.6693018674850464: 23%|████████ | 17/74 [00:18<00:42, 1.35it/s]
epoch 112 | loss 0.7963773012161255, f_iou 0.6770281195640564: 23%|████████ | 17/74 [00:19<00:42, 1.35it/s]
epoch 112 | loss 0.7963773012161255, f_iou 0.6770281195640564: 24%|████████▌ | 18/74 [00:19<00:41, 1.36it/s]
epoch 112 | loss 0.9989435076713562, f_iou 0.6886624097824097: 24%|████████▌ | 18/74 [00:20<00:41, 1.36it/s]
epoch 112 | loss 0.9989435076713562, f_iou 0.6886624097824097: 26%|████████▉ | 19/74 [00:20<00:40, 1.36it/s]
epoch 112 | loss 2.332913637161255, f_iou 0.6848855018615723: 26%|█████████▏ | 19/74 [00:21<00:40, 1.36it/s]
epoch 112 | loss 2.332913637161255, f_iou 0.6848855018615723: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 112 | loss 0.6072590351104736, f_iou 0.694258451461792: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 112 | loss 0.6072590351104736, f_iou 0.694258451461792: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 112 | loss 0.8311134576797485, f_iou 0.6929963231086731: 28%|█████████▉ | 21/74 [00:22<00:38, 1.37it/s]
epoch 112 | loss 0.8311134576797485, f_iou 0.6929963231086731: 30%|██████████▍ | 22/74 [00:22<00:37, 1.38it/s]
epoch 112 | loss 1.1512560844421387, f_iou 0.6850391030311584: 30%|██████████▍ | 22/74 [00:23<00:37, 1.38it/s]
epoch 112 | loss 1.1512560844421387, f_iou 0.6850391030311584: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 112 | loss 1.9667840003967285, f_iou 0.6784924268722534: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 112 | loss 1.9667840003967285, f_iou 0.6784924268722534: 32%|███████████▎ | 24/74 [00:23<00:36, 1.39it/s]
epoch 112 | loss 0.7104402184486389, f_iou 0.6746450662612915: 32%|███████████▎ | 24/74 [00:24<00:36, 1.39it/s]
epoch 112 | loss 0.7104402184486389, f_iou 0.6746450662612915: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 112 | loss 0.5083255767822266, f_iou 0.6815913319587708: 34%|███████████▊ | 25/74 [00:25<00:35, 1.39it/s]
epoch 112 | loss 0.5083255767822266, f_iou 0.6815913319587708: 35%|████████████▎ | 26/74 [00:25<00:34, 1.39it/s]
epoch 112 | loss 0.6863324642181396, f_iou 0.6903959512710571: 35%|████████████▎ | 26/74 [00:26<00:34, 1.39it/s]
epoch 112 | loss 0.6863324642181396, f_iou 0.6903959512710571: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 112 | loss 0.8393427133560181, f_iou 0.6964004635810852: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 112 | loss 0.8393427133560181, f_iou 0.6964004635810852: 38%|█████████████▏ | 28/74 [00:26<00:32, 1.39it/s]
epoch 112 | loss 1.653996229171753, f_iou 0.6983016133308411: 38%|█████████████▌ | 28/74 [00:27<00:32, 1.39it/s]
epoch 112 | loss 1.653996229171753, f_iou 0.6983016133308411: 39%|██████████████ | 29/74 [00:27<00:32, 1.39it/s]
epoch 112 | loss 1.5484141111373901, f_iou 0.6964013576507568: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.39it/s]
epoch 112 | loss 1.5484141111373901, f_iou 0.6964013576507568: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.39it/s]
epoch 112 | loss 1.3539667129516602, f_iou 0.675676167011261: 41%|██████████████▌ | 30/74 [00:28<00:31, 1.39it/s]
epoch 112 | loss 1.3539667129516602, f_iou 0.675676167011261: 42%|███████████████ | 31/74 [00:28<00:30, 1.39it/s]
epoch 112 | loss 0.6709610223770142, f_iou 0.6791006326675415: 42%|██████████████▋ | 31/74 [00:29<00:30, 1.39it/s]
epoch 112 | loss 0.6709610223770142, f_iou 0.6791006326675415: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.36it/s]
epoch 112 | loss 0.44725286960601807, f_iou 0.6782811284065247: 43%|██████████████▋ | 32/74 [00:30<00:30, 1.36it/s]
epoch 112 | loss 0.44725286960601807, f_iou 0.6782811284065247: 45%|███████████████▏ | 33/74 [00:30<00:30, 1.34it/s]
epoch 112 | loss 0.9269384145736694, f_iou 0.6799713969230652: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.34it/s]
epoch 112 | loss 0.9269384145736694, f_iou 0.6799713969230652: 46%|████████████████ | 34/74 [00:31<00:30, 1.32it/s]
epoch 112 | loss 1.8897883892059326, f_iou 0.6808754801750183: 46%|████████████████ | 34/74 [00:32<00:30, 1.32it/s]
epoch 112 | loss 1.8897883892059326, f_iou 0.6808754801750183: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.31it/s]
epoch 112 | loss 1.4140899181365967, f_iou 0.6864269971847534: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.31it/s]
epoch 112 | loss 1.4140899181365967, f_iou 0.6864269971847534: 49%|█████████████████ | 36/74 [00:32<00:29, 1.31it/s]
epoch 112 | loss 0.5942087173461914, f_iou 0.68025803565979: 49%|██████████████████ | 36/74 [00:33<00:29, 1.31it/s]
epoch 112 | loss 0.5942087173461914, f_iou 0.68025803565979: 50%|██████████████████▌ | 37/74 [00:33<00:28, 1.31it/s]
epoch 112 | loss 1.3155516386032104, f_iou 0.6819013953208923: 50%|█████████████████▌ | 37/74 [00:34<00:28, 1.31it/s]
epoch 112 | loss 1.3155516386032104, f_iou 0.6819013953208923: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.31it/s]
epoch 112 | loss 0.9837449789047241, f_iou 0.6855558753013611: 51%|█████████████████▉ | 38/74 [00:35<00:27, 1.31it/s]
epoch 112 | loss 0.9837449789047241, f_iou 0.6855558753013611: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 112 | loss 0.8950589895248413, f_iou 0.6907386183738708: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 112 | loss 0.8950589895248413, f_iou 0.6907386183738708: 54%|██████████████████▉ | 40/74 [00:35<00:26, 1.30it/s]
epoch 112 | loss 0.6717624068260193, f_iou 0.6963629126548767: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.30it/s]
epoch 112 | loss 0.6717624068260193, f_iou 0.6963629126548767: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.29it/s]
epoch 112 | loss 0.9047025442123413, f_iou 0.6991207599639893: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.29it/s]
epoch 112 | loss 0.9047025442123413, f_iou 0.6991207599639893: 57%|███████████████████▊ | 42/74 [00:37<00:24, 1.31it/s]
epoch 112 | loss 0.7126885652542114, f_iou 0.7034080624580383: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.31it/s]
epoch 112 | loss 0.7126885652542114, f_iou 0.7034080624580383: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.33it/s]
epoch 112 | loss 2.269479990005493, f_iou 0.7075661420822144: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.33it/s]
epoch 112 | loss 2.269479990005493, f_iou 0.7075661420822144: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 112 | loss 1.14650559425354, f_iou 0.7100026607513428: 59%|██████████████████████ | 44/74 [00:39<00:22, 1.34it/s]
epoch 112 | loss 1.14650559425354, f_iou 0.7100026607513428: 61%|██████████████████████▌ | 45/74 [00:39<00:21, 1.36it/s]
epoch 112 | loss 0.7433172464370728, f_iou 0.7116431593894958: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.36it/s]
epoch 112 | loss 0.7433172464370728, f_iou 0.7116431593894958: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.37it/s]
epoch 112 | loss 1.170667052268982, f_iou 0.7129614353179932: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.37it/s]
epoch 112 | loss 1.170667052268982, f_iou 0.7129614353179932: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 112 | loss 0.5514453649520874, f_iou 0.7086081504821777: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.37it/s]
epoch 112 | loss 0.5514453649520874, f_iou 0.7086081504821777: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.37it/s]
epoch 112 | loss 0.5802862644195557, f_iou 0.7133485078811646: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.37it/s]
epoch 112 | loss 0.5802862644195557, f_iou 0.7133485078811646: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 112 | loss 1.0105968713760376, f_iou 0.7152901291847229: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.38it/s]
epoch 112 | loss 1.0105968713760376, f_iou 0.7152901291847229: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 112 | loss 1.1521953344345093, f_iou 0.71926349401474: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.39it/s]
epoch 112 | loss 1.1521953344345093, f_iou 0.71926349401474: 69%|█████████████████████████▌ | 51/74 [00:43<00:16, 1.39it/s]
epoch 112 | loss 0.9053782224655151, f_iou 0.723779559135437: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.39it/s]
epoch 112 | loss 0.9053782224655151, f_iou 0.723779559135437: 70%|█████████████████████████▎ | 52/74 [00:44<00:15, 1.39it/s]
epoch 112 | loss 1.386189579963684, f_iou 0.7247177958488464: 70%|█████████████████████████▎ | 52/74 [00:45<00:15, 1.39it/s]
epoch 112 | loss 1.386189579963684, f_iou 0.7247177958488464: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.39it/s]
epoch 112 | loss 0.7677273750305176, f_iou 0.7264780402183533: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.39it/s]
epoch 112 | loss 0.7677273750305176, f_iou 0.7264780402183533: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.39it/s]
epoch 112 | loss 0.575426459312439, f_iou 0.7298653721809387: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 112 | loss 0.575426459312439, f_iou 0.7298653721809387: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.40it/s]
epoch 112 | loss 0.6510947346687317, f_iou 0.7305052876472473: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.40it/s]
epoch 112 | loss 0.6510947346687317, f_iou 0.7305052876472473: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.39it/s]
epoch 112 | loss 0.9196360111236572, f_iou 0.7316647171974182: 76%|██████████████████████████▍ | 56/74 [00:48<00:12, 1.39it/s]
epoch 112 | loss 0.9196360111236572, f_iou 0.7316647171974182: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.40it/s]
epoch 112 | loss 0.3422941565513611, f_iou 0.7358130216598511: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.40it/s]
epoch 112 | loss 0.3422941565513611, f_iou 0.7358130216598511: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.39it/s]
epoch 112 | loss 0.733016312122345, f_iou 0.7325980067253113: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.39it/s]
epoch 112 | loss 0.733016312122345, f_iou 0.7325980067253113: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.39it/s]
epoch 112 | loss 0.9143097996711731, f_iou 0.732098400592804: 80%|████████████████████████████▋ | 59/74 [00:50<00:10, 1.39it/s]
epoch 112 | loss 0.9143097996711731, f_iou 0.732098400592804: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.39it/s]
epoch 112 | loss 0.8454997539520264, f_iou 0.7215731143951416: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.39it/s]
epoch 112 | loss 0.8454997539520264, f_iou 0.7215731143951416: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.37it/s]
epoch 112 | loss 0.6530858874320984, f_iou 0.7213652729988098: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.37it/s]
epoch 112 | loss 0.6530858874320984, f_iou 0.7213652729988098: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.33it/s]
epoch 112 | loss 1.007441520690918, f_iou 0.7205482721328735: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.33it/s]
epoch 112 | loss 1.007441520690918, f_iou 0.7205482721328735: 85%|██████████████████████████████▋ | 63/74 [00:52<00:08, 1.32it/s]
epoch 112 | loss 0.9921575784683228, f_iou 0.722632110118866: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.32it/s]
epoch 112 | loss 0.9921575784683228, f_iou 0.722632110118866: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.32it/s]
epoch 112 | loss 0.4057578444480896, f_iou 0.7260211706161499: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.32it/s]
epoch 112 | loss 0.4057578444480896, f_iou 0.7260211706161499: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.32it/s]
epoch 112 | loss 1.231777310371399, f_iou 0.7254006862640381: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.32it/s]
epoch 112 | loss 1.231777310371399, f_iou 0.7254006862640381: 89%|████████████████████████████████ | 66/74 [00:54<00:05, 1.34it/s]
epoch 112 | loss 0.6704668998718262, f_iou 0.7255818247795105: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.34it/s]
epoch 112 | loss 0.6704668998718262, f_iou 0.7255818247795105: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.36it/s]
epoch 112 | loss 1.319805383682251, f_iou 0.7269824743270874: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.36it/s]
epoch 112 | loss 1.319805383682251, f_iou 0.7269824743270874: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 112 | loss 1.605230689048767, f_iou 0.7263454794883728: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.38it/s]
epoch 112 | loss 1.605230689048767, f_iou 0.7263454794883728: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.38it/s]
epoch 112 | loss 0.47020915150642395, f_iou 0.7288870215415955: 93%|███████████████████████████████▋ | 69/74 [00:57<00:03, 1.38it/s]
epoch 112 | loss 0.47020915150642395, f_iou 0.7288870215415955: 95%|████████████████████████████████▏ | 70/74 [00:57<00:02, 1.39it/s]
epoch 112 | loss 1.1510388851165771, f_iou 0.7309370636940002: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 112 | loss 1.1510388851165771, f_iou 0.7309370636940002: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 112 | loss 1.6436597108840942, f_iou 0.728888213634491: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 112 | loss 1.6436597108840942, f_iou 0.728888213634491: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 112 | loss 0.7853225469589233, f_iou 0.7295603156089783: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.40it/s]
epoch 112 | loss 0.7853225469589233, f_iou 0.7295603156089783: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.41it/s]
epoch 112 | loss 0.5533100962638855, f_iou 0.7327082753181458: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.41it/s]
epoch 112 | loss 0.5533100962638855, f_iou 0.7327082753181458: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.41it/s]
epoch 112 | loss 0.5533100962638855, f_iou 0.7327082753181458: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 112 | valid.f_iou 0.758620023727417, valid.f_f-score 0.86394: 0%| | 0/16 [00:05, ?it/s]
epoch 112 | valid.f_iou 0.758620023727417, valid.f_f-score 0.86394: 6%|█▉ | 1/16 [00:05<01:23, 5.58s/it]
epoch 112 | valid.f_iou 0.7183499932289124, valid.f_f-score 0.88272: 6%|█▉ | 1/16 [00:06<01:23, 5.58s/it]
epoch 112 | valid.f_iou 0.7183499932289124, valid.f_f-score 0.88272: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 112 | valid.f_iou 0.5685999989509583, valid.f_f-score 0.78488: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 112 | valid.f_iou 0.5685999989509583, valid.f_f-score 0.78488: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 112 | valid.f_iou 0.6001600027084351, valid.f_f-score 0.77836: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 112 | valid.f_iou 0.6001600027084351, valid.f_f-score 0.77836: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 112 | valid.f_iou 0.6121799945831299, valid.f_f-score 0.78557: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 112 | valid.f_iou 0.6121799945831299, valid.f_f-score 0.78557: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 112 | valid.f_iou 0.5733399987220764, valid.f_f-score 0.74455: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 112 | valid.f_iou 0.5733399987220764, valid.f_f-score 0.74455: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 112 | valid.f_iou 0.5997700095176697, valid.f_f-score 0.7699: 38%|███████████▋ | 6/16 [00:08<00:07, 1.36it/s]
epoch 112 | valid.f_iou 0.5997700095176697, valid.f_f-score 0.7699: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 112 | valid.f_iou 0.578760027885437, valid.f_f-score 0.75493: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 112 | valid.f_iou 0.578760027885437, valid.f_f-score 0.75493: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.74it/s]
epoch 112 | valid.f_iou 0.5961300134658813, valid.f_f-score 0.7623: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.74it/s]
epoch 112 | valid.f_iou 0.5961300134658813, valid.f_f-score 0.7623: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 112 | valid.f_iou 0.5937899947166443, valid.f_f-score 0.76292: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 112 | valid.f_iou 0.5937899947166443, valid.f_f-score 0.76292: 62%|██████████████████▏ | 10/16 [00:09<00:03, 2.00it/s]
epoch 112 | valid.f_iou 0.5931599736213684, valid.f_f-score 0.76043: 62%|██████████████████▏ | 10/16 [00:09<00:03, 2.00it/s]
epoch 112 | valid.f_iou 0.5931599736213684, valid.f_f-score 0.76043: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.17it/s]
epoch 112 | valid.f_iou 0.6141300201416016, valid.f_f-score 0.77454: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.17it/s]
epoch 112 | valid.f_iou 0.6141300201416016, valid.f_f-score 0.77454: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.30it/s]
epoch 112 | valid.f_iou 0.6228899955749512, valid.f_f-score 0.77847: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.30it/s]
epoch 112 | valid.f_iou 0.6228899955749512, valid.f_f-score 0.77847: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 112 | valid.f_iou 0.6113100051879883, valid.f_f-score 0.76793: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.40it/s]
epoch 112 | valid.f_iou 0.6113100051879883, valid.f_f-score 0.76793: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 112 | valid.f_iou 0.6102200150489807, valid.f_f-score 0.76304: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 112 | valid.f_iou 0.6102200150489807, valid.f_f-score 0.76304: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 112 | valid.f_iou 0.6128900051116943, valid.f_f-score 0.76021: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 112 | valid.f_iou 0.6128900051116943, valid.f_f-score 0.76021: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 112 | valid.f_iou 0.6128900051116943, valid.f_f-score 0.76021: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 112 | valid.f_iou 0.8080099821090698, valid.f_f-score 0.80974: 0%| | 0/16 [00:05, ?it/s]
epoch 112 | valid.f_iou 0.8080099821090698, valid.f_f-score 0.80974: 6%|█▉ | 1/16 [00:05<01:16, 5.10s/it]
epoch 112 | valid.f_iou 0.841159999370575, valid.f_f-score 0.8749: 6%|██ | 1/16 [00:05<01:16, 5.10s/it]
epoch 112 | valid.f_iou 0.841159999370575, valid.f_f-score 0.8749: 12%|████ | 2/16 [00:05<00:33, 2.36s/it]
epoch 112 | valid.f_iou 0.7801700234413147, valid.f_f-score 0.85699: 12%|███▊ | 2/16 [00:05<00:33, 2.36s/it]
epoch 112 | valid.f_iou 0.7801700234413147, valid.f_f-score 0.85699: 19%|█████▋ | 3/16 [00:05<00:19, 1.48s/it]
epoch 112 | valid.f_iou 0.765209972858429, valid.f_f-score 0.82579: 19%|█████▊ | 3/16 [00:06<00:19, 1.48s/it]
epoch 112 | valid.f_iou 0.765209972858429, valid.f_f-score 0.82579: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 112 | valid.f_iou 0.746209979057312, valid.f_f-score 0.82703: 25%|███████▊ | 4/16 [00:06<00:12, 1.07s/it]
epoch 112 | valid.f_iou 0.746209979057312, valid.f_f-score 0.82703: 31%|█████████▋ | 5/16 [00:06<00:09, 1.19it/s]
epoch 112 | valid.f_iou 0.7234299778938293, valid.f_f-score 0.80315: 31%|█████████▍ | 5/16 [00:07<00:09, 1.19it/s]
epoch 112 | valid.f_iou 0.7234299778938293, valid.f_f-score 0.80315: 38%|███████████▎ | 6/16 [00:07<00:06, 1.45it/s]
epoch 112 | valid.f_iou 0.7389400005340576, valid.f_f-score 0.8224: 38%|███████████▋ | 6/16 [00:07<00:06, 1.45it/s]
epoch 112 | valid.f_iou 0.7389400005340576, valid.f_f-score 0.8224: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 112 | valid.f_iou 0.7282199859619141, valid.f_f-score 0.82104: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.65it/s]
epoch 112 | valid.f_iou 0.7282199859619141, valid.f_f-score 0.82104: 50%|███████████████ | 8/16 [00:08<00:04, 1.82it/s]
epoch 112 | valid.f_iou 0.732200026512146, valid.f_f-score 0.82253: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.82it/s]
epoch 112 | valid.f_iou 0.732200026512146, valid.f_f-score 0.82253: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.95it/s]
epoch 112 | valid.f_iou 0.7443699836730957, valid.f_f-score 0.833: 56%|██████████████████ | 9/16 [00:08<00:03, 1.95it/s]
epoch 112 | valid.f_iou 0.7443699836730957, valid.f_f-score 0.833: 62%|███████████████████▍ | 10/16 [00:08<00:02, 2.04it/s]
epoch 112 | valid.f_iou 0.7313299775123596, valid.f_f-score 0.81493: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 112 | valid.f_iou 0.7313299775123596, valid.f_f-score 0.81493: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.11it/s]
epoch 112 | valid.f_iou 0.7420099973678589, valid.f_f-score 0.82473: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.11it/s]
epoch 112 | valid.f_iou 0.7420099973678589, valid.f_f-score 0.82473: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.15it/s]
epoch 112 | valid.f_iou 0.7518699765205383, valid.f_f-score 0.83194: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.15it/s]
epoch 112 | valid.f_iou 0.7518699765205383, valid.f_f-score 0.83194: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.30it/s]
epoch 112 | valid.f_iou 0.7369800209999084, valid.f_f-score 0.81861: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.30it/s]
epoch 112 | valid.f_iou 0.7369800209999084, valid.f_f-score 0.81861: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.41it/s]
epoch 112 | valid.f_iou 0.7422400116920471, valid.f_f-score 0.82375: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.41it/s]
epoch 112 | valid.f_iou 0.7422400116920471, valid.f_f-score 0.82375: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.49it/s]
epoch 112 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.82024: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 112 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.82024: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.55it/s]
epoch 112 | valid.f_iou 0.7370200157165527, valid.f_f-score 0.82024: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 112 | valid.f_iou 0.8080099821090698, valid.f_f-score 0.80974: 0%| | 0/16 [00:04, ?it/s]
epoch 112 | valid.f_iou 0.8080099821090698, valid.f_f-score 0.80974: 6%|█▉ | 1/16 [00:04<01:11, 4.77s/it]
epoch 112 | valid.f_iou 0.841159999370575, valid.f_f-score 0.8749: 6%|██ | 1/16 [00:05<01:11, 4.77s/it]
epoch 112 | valid.f_iou 0.841159999370575, valid.f_f-score 0.8749: 12%|████ | 2/16 [00:05<00:31, 2.23s/it]
epoch 112 | valid.f_iou 0.7801700234413147, valid.f_f-score 0.85699: 12%|███▊ | 2/16 [00:05<00:31, 2.23s/it]
epoch 112 | valid.f_iou 0.7801700234413147, valid.f_f-score 0.85699: 19%|█████▋ | 3/16 [00:05<00:18, 1.41s/it]
epoch 112 | valid.f_iou 0.7654100060462952, valid.f_f-score 0.82579: 19%|█████▋ | 3/16 [00:06<00:18, 1.41s/it]
epoch 112 | valid.f_iou 0.7654100060462952, valid.f_f-score 0.82579: 25%|███████▌ | 4/16 [00:06<00:12, 1.01s/it]
epoch 112 | valid.f_iou 0.754610002040863, valid.f_f-score 0.82703: 25%|███████▊ | 4/16 [00:06<00:12, 1.01s/it]
epoch 112 | valid.f_iou 0.754610002040863, valid.f_f-score 0.82703: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 112 | valid.f_iou 0.730430006980896, valid.f_f-score 0.80315: 31%|█████████▋ | 5/16 [00:06<00:08, 1.24it/s]
epoch 112 | valid.f_iou 0.730430006980896, valid.f_f-score 0.80315: 38%|███████████▋ | 6/16 [00:06<00:06, 1.46it/s]
epoch 112 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.8224: 38%|███████████▋ | 6/16 [00:07<00:06, 1.46it/s]
epoch 112 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.8224: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.70it/s]
epoch 112 | valid.f_iou 0.7349799871444702, valid.f_f-score 0.82104: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.70it/s]
epoch 112 | valid.f_iou 0.7349799871444702, valid.f_f-score 0.82104: 50%|███████████████ | 8/16 [00:07<00:04, 1.87it/s]
epoch 112 | valid.f_iou 0.7395200133323669, valid.f_f-score 0.82253: 50%|███████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 112 | valid.f_iou 0.7395200133323669, valid.f_f-score 0.82253: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.05it/s]
epoch 112 | valid.f_iou 0.7471699714660645, valid.f_f-score 0.82956: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.05it/s]
epoch 112 | valid.f_iou 0.7471699714660645, valid.f_f-score 0.82956: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.21it/s]
epoch 112 | valid.f_iou 0.7338700294494629, valid.f_f-score 0.8118: 62%|██████████████████▊ | 10/16 [00:08<00:02, 2.21it/s]
epoch 112 | valid.f_iou 0.7338700294494629, valid.f_f-score 0.8118: 69%|████████████████████▋ | 11/16 [00:08<00:02, 2.35it/s]
epoch 112 | valid.f_iou 0.7443400025367737, valid.f_f-score 0.82186: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.35it/s]
epoch 112 | valid.f_iou 0.7443400025367737, valid.f_f-score 0.82186: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.46it/s]
epoch 112 | valid.f_iou 0.754010021686554, valid.f_f-score 0.83036: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.46it/s]
epoch 112 | valid.f_iou 0.754010021686554, valid.f_f-score 0.83036: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.53it/s]
epoch 112 | valid.f_iou 0.7389600276947021, valid.f_f-score 0.81715: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.53it/s]
epoch 112 | valid.f_iou 0.7389600276947021, valid.f_f-score 0.81715: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.58it/s]
epoch 112 | valid.f_iou 0.7440900206565857, valid.f_f-score 0.82238: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.58it/s]
epoch 112 | valid.f_iou 0.7440900206565857, valid.f_f-score 0.82238: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 112 | valid.f_iou 0.7397400140762329, valid.f_f-score 0.81895: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 112 | valid.f_iou 0.7397400140762329, valid.f_f-score 0.81895: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.65it/s]
epoch 112 | valid.f_iou 0.7397400140762329, valid.f_f-score 0.81895: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.49it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 113 | loss 0.6144115924835205, f_iou 0.9154630899429321: 0%| | 0/74 [00:05, ?it/s]
epoch 113 | loss 0.6144115924835205, f_iou 0.9154630899429321: 1%|▍ | 1/74 [00:05<06:29, 5.34s/it]
epoch 113 | loss 2.556283950805664, f_iou 0.7620370388031006: 1%|▌ | 1/74 [00:06<06:29, 5.34s/it]
epoch 113 | loss 2.556283950805664, f_iou 0.7620370388031006: 3%|█ | 2/74 [00:06<03:15, 2.72s/it]
epoch 113 | loss 0.38350221514701843, f_iou 0.7105004191398621: 3%|▉ | 2/74 [00:07<03:15, 2.72s/it]
epoch 113 | loss 0.38350221514701843, f_iou 0.7105004191398621: 4%|█▍ | 3/74 [00:07<02:12, 1.87s/it]
epoch 113 | loss 1.028588891029358, f_iou 0.75042325258255: 4%|█▌ | 3/74 [00:07<02:12, 1.87s/it]
epoch 113 | loss 1.028588891029358, f_iou 0.75042325258255: 5%|██ | 4/74 [00:07<01:40, 1.44s/it]
epoch 113 | loss 0.7241946458816528, f_iou 0.688481330871582: 5%|██ | 4/74 [00:08<01:40, 1.44s/it]
epoch 113 | loss 0.7241946458816528, f_iou 0.688481330871582: 7%|██▌ | 5/74 [00:08<01:22, 1.19s/it]
epoch 113 | loss 1.3554797172546387, f_iou 0.6067757606506348: 7%|██▍ | 5/74 [00:09<01:22, 1.19s/it]
epoch 113 | loss 1.3554797172546387, f_iou 0.6067757606506348: 8%|██▉ | 6/74 [00:09<01:11, 1.05s/it]
epoch 113 | loss 0.3841889500617981, f_iou 0.6526345610618591: 8%|██▉ | 6/74 [00:10<01:11, 1.05s/it]
epoch 113 | loss 0.3841889500617981, f_iou 0.6526345610618591: 9%|███▍ | 7/74 [00:10<01:03, 1.05it/s]
epoch 113 | loss 0.7858924865722656, f_iou 0.5932716727256775: 9%|███▍ | 7/74 [00:10<01:03, 1.05it/s]
epoch 113 | loss 0.7858924865722656, f_iou 0.5932716727256775: 11%|███▉ | 8/74 [00:10<00:58, 1.13it/s]
epoch 113 | loss 0.7250847816467285, f_iou 0.5827153325080872: 11%|███▉ | 8/74 [00:11<00:58, 1.13it/s]
epoch 113 | loss 0.7250847816467285, f_iou 0.5827153325080872: 12%|████▍ | 9/74 [00:11<00:54, 1.20it/s]
epoch 113 | loss 0.8912011384963989, f_iou 0.5864445567131042: 12%|████▍ | 9/74 [00:12<00:54, 1.20it/s]
epoch 113 | loss 0.8912011384963989, f_iou 0.5864445567131042: 14%|████▋ | 10/74 [00:12<00:52, 1.22it/s]
epoch 113 | loss 1.892399787902832, f_iou 0.6001909375190735: 14%|████▊ | 10/74 [00:13<00:52, 1.22it/s]
epoch 113 | loss 1.892399787902832, f_iou 0.6001909375190735: 15%|█████▎ | 11/74 [00:13<00:50, 1.25it/s]
epoch 113 | loss 1.5781861543655396, f_iou 0.5990507006645203: 15%|█████▏ | 11/74 [00:13<00:50, 1.25it/s]
epoch 113 | loss 1.5781861543655396, f_iou 0.5990507006645203: 16%|█████▋ | 12/74 [00:13<00:48, 1.27it/s]
epoch 113 | loss 0.3546062111854553, f_iou 0.6250123977661133: 16%|█████▋ | 12/74 [00:14<00:48, 1.27it/s]
epoch 113 | loss 0.3546062111854553, f_iou 0.6250123977661133: 18%|██████▏ | 13/74 [00:14<00:46, 1.30it/s]
epoch 113 | loss 0.560766875743866, f_iou 0.6370705366134644: 18%|██████▎ | 13/74 [00:15<00:46, 1.30it/s]
epoch 113 | loss 0.560766875743866, f_iou 0.6370705366134644: 19%|██████▊ | 14/74 [00:15<00:45, 1.33it/s]
epoch 113 | loss 0.547269344329834, f_iou 0.659389317035675: 19%|███████ | 14/74 [00:16<00:45, 1.33it/s]
epoch 113 | loss 0.547269344329834, f_iou 0.659389317035675: 20%|███████▌ | 15/74 [00:16<00:43, 1.34it/s]
epoch 113 | loss 0.8412262797355652, f_iou 0.6750730872154236: 20%|███████ | 15/74 [00:16<00:43, 1.34it/s]
epoch 113 | loss 0.8412262797355652, f_iou 0.6750730872154236: 22%|███████▌ | 16/74 [00:16<00:42, 1.36it/s]
epoch 113 | loss 1.0440235137939453, f_iou 0.666553258895874: 22%|███████▊ | 16/74 [00:17<00:42, 1.36it/s]
epoch 113 | loss 1.0440235137939453, f_iou 0.666553258895874: 23%|████████▎ | 17/74 [00:17<00:41, 1.37it/s]
epoch 113 | loss 0.5253924131393433, f_iou 0.6816046237945557: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 113 | loss 0.5253924131393433, f_iou 0.6816046237945557: 24%|████████▌ | 18/74 [00:18<00:40, 1.38it/s]
epoch 113 | loss 0.9099035263061523, f_iou 0.6942422986030579: 24%|████████▌ | 18/74 [00:18<00:40, 1.38it/s]
epoch 113 | loss 0.9099035263061523, f_iou 0.6942422986030579: 26%|████████▉ | 19/74 [00:18<00:39, 1.38it/s]
epoch 113 | loss 1.0019370317459106, f_iou 0.6673101186752319: 26%|████████▉ | 19/74 [00:19<00:39, 1.38it/s]
epoch 113 | loss 1.0019370317459106, f_iou 0.6673101186752319: 27%|█████████▍ | 20/74 [00:19<00:38, 1.38it/s]
epoch 113 | loss 0.6874302625656128, f_iou 0.6795873641967773: 27%|█████████▍ | 20/74 [00:20<00:38, 1.38it/s]
epoch 113 | loss 0.6874302625656128, f_iou 0.6795873641967773: 28%|█████████▉ | 21/74 [00:20<00:38, 1.38it/s]
epoch 113 | loss 1.5305589437484741, f_iou 0.676887571811676: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 113 | loss 1.5305589437484741, f_iou 0.676887571811676: 30%|██████████▋ | 22/74 [00:21<00:37, 1.38it/s]
epoch 113 | loss 1.5586743354797363, f_iou 0.6830832362174988: 30%|██████████▍ | 22/74 [00:21<00:37, 1.38it/s]
epoch 113 | loss 1.5586743354797363, f_iou 0.6830832362174988: 31%|██████████▉ | 23/74 [00:21<00:37, 1.38it/s]
epoch 113 | loss 0.6665872931480408, f_iou 0.6900157332420349: 31%|██████████▉ | 23/74 [00:22<00:37, 1.38it/s]
epoch 113 | loss 0.6665872931480408, f_iou 0.6900157332420349: 32%|███████████▎ | 24/74 [00:22<00:36, 1.38it/s]
epoch 113 | loss 0.6207302808761597, f_iou 0.6985196471214294: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 113 | loss 0.6207302808761597, f_iou 0.6985196471214294: 34%|███████████▊ | 25/74 [00:23<00:35, 1.36it/s]
epoch 113 | loss 0.9037722945213318, f_iou 0.7060577869415283: 34%|███████████▊ | 25/74 [00:24<00:35, 1.36it/s]
epoch 113 | loss 0.9037722945213318, f_iou 0.7060577869415283: 35%|████████████▎ | 26/74 [00:24<00:35, 1.34it/s]
epoch 113 | loss 1.1679325103759766, f_iou 0.7018408179283142: 35%|████████████▎ | 26/74 [00:24<00:35, 1.34it/s]
epoch 113 | loss 1.1679325103759766, f_iou 0.7018408179283142: 36%|████████████▊ | 27/74 [00:24<00:35, 1.33it/s]
epoch 113 | loss 0.34024789929389954, f_iou 0.7047616243362427: 36%|████████████▍ | 27/74 [00:25<00:35, 1.33it/s]
epoch 113 | loss 0.34024789929389954, f_iou 0.7047616243362427: 38%|████████████▊ | 28/74 [00:25<00:34, 1.32it/s]
epoch 113 | loss 1.2016221284866333, f_iou 0.7022143006324768: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.32it/s]
epoch 113 | loss 1.2016221284866333, f_iou 0.7022143006324768: 39%|█████████████▋ | 29/74 [00:26<00:34, 1.32it/s]
epoch 113 | loss 1.0758363008499146, f_iou 0.7033259868621826: 39%|█████████████▋ | 29/74 [00:27<00:34, 1.32it/s]
epoch 113 | loss 1.0758363008499146, f_iou 0.7033259868621826: 41%|██████████████▏ | 30/74 [00:27<00:32, 1.34it/s]
epoch 113 | loss 0.0, f_iou 0.7127565145492554: 41%|████████████████████▎ | 30/74 [00:27<00:32, 1.34it/s]
epoch 113 | loss 0.0, f_iou 0.7127565145492554: 42%|████████████████████▉ | 31/74 [00:27<00:31, 1.36it/s]
epoch 113 | loss 0.9764686226844788, f_iou 0.7007864117622375: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.36it/s]
epoch 113 | loss 0.9764686226844788, f_iou 0.7007864117622375: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.37it/s]
epoch 113 | loss 0.7833327054977417, f_iou 0.705481231212616: 43%|███████████████▌ | 32/74 [00:29<00:30, 1.37it/s]
epoch 113 | loss 0.7833327054977417, f_iou 0.705481231212616: 45%|████████████████ | 33/74 [00:29<00:29, 1.38it/s]
epoch 113 | loss 1.9218101501464844, f_iou 0.7036547660827637: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.38it/s]
epoch 113 | loss 1.9218101501464844, f_iou 0.7036547660827637: 46%|████████████████ | 34/74 [00:29<00:28, 1.39it/s]
epoch 113 | loss 0.6040072441101074, f_iou 0.6888805031776428: 46%|████████████████ | 34/74 [00:30<00:28, 1.39it/s]
epoch 113 | loss 0.6040072441101074, f_iou 0.6888805031776428: 47%|████████████████▌ | 35/74 [00:30<00:28, 1.39it/s]
epoch 113 | loss 0.6027646660804749, f_iou 0.6946995854377747: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 113 | loss 0.6027646660804749, f_iou 0.6946995854377747: 49%|█████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 113 | loss 1.3853802680969238, f_iou 0.6949254274368286: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 113 | loss 1.3853802680969238, f_iou 0.6949254274368286: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 113 | loss 0.6425974369049072, f_iou 0.6995666027069092: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.39it/s]
epoch 113 | loss 0.6425974369049072, f_iou 0.6995666027069092: 51%|█████████████████▉ | 38/74 [00:32<00:25, 1.39it/s]
epoch 113 | loss 0.5845738053321838, f_iou 0.70557701587677: 51%|███████████████████ | 38/74 [00:33<00:25, 1.39it/s]
epoch 113 | loss 0.5845738053321838, f_iou 0.70557701587677: 53%|███████████████████▍ | 39/74 [00:33<00:25, 1.40it/s]
epoch 113 | loss 1.356459617614746, f_iou 0.7022532224655151: 53%|██████████████████▉ | 39/74 [00:34<00:25, 1.40it/s]
epoch 113 | loss 1.356459617614746, f_iou 0.7022532224655151: 54%|███████████████████▍ | 40/74 [00:34<00:24, 1.40it/s]
epoch 113 | loss 1.7978020906448364, f_iou 0.6966086030006409: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.40it/s]
epoch 113 | loss 1.7978020906448364, f_iou 0.6966086030006409: 55%|███████████████████▍ | 41/74 [00:34<00:23, 1.40it/s]
epoch 113 | loss 0.6394540071487427, f_iou 0.7016124725341797: 55%|███████████████████▍ | 41/74 [00:35<00:23, 1.40it/s]
epoch 113 | loss 0.6394540071487427, f_iou 0.7016124725341797: 57%|███████████████████▊ | 42/74 [00:35<00:22, 1.40it/s]
epoch 113 | loss 1.8050572872161865, f_iou 0.7003971934318542: 57%|███████████████████▊ | 42/74 [00:36<00:22, 1.40it/s]
epoch 113 | loss 1.8050572872161865, f_iou 0.7003971934318542: 58%|████████████████████▎ | 43/74 [00:36<00:22, 1.40it/s]
epoch 113 | loss 1.0545037984848022, f_iou 0.7032797932624817: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.40it/s]
epoch 113 | loss 1.0545037984848022, f_iou 0.7032797932624817: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.40it/s]
epoch 113 | loss 0.7012558579444885, f_iou 0.7062137722969055: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.40it/s]
epoch 113 | loss 0.7012558579444885, f_iou 0.7062137722969055: 61%|█████████████████████▎ | 45/74 [00:37<00:20, 1.40it/s]
epoch 113 | loss 0.34304481744766235, f_iou 0.7119892835617065: 61%|████████████████████▋ | 45/74 [00:38<00:20, 1.40it/s]
epoch 113 | loss 0.34304481744766235, f_iou 0.7119892835617065: 62%|█████████████████████▏ | 46/74 [00:38<00:20, 1.40it/s]
epoch 113 | loss 1.0232080221176147, f_iou 0.7156220078468323: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.40it/s]
epoch 113 | loss 1.0232080221176147, f_iou 0.7156220078468323: 64%|██████████████████████▏ | 47/74 [00:39<00:19, 1.40it/s]
epoch 113 | loss 0.4576095640659332, f_iou 0.716245174407959: 64%|██████████████████████▊ | 47/74 [00:39<00:19, 1.40it/s]
epoch 113 | loss 0.4576095640659332, f_iou 0.716245174407959: 65%|███████████████████████▎ | 48/74 [00:39<00:18, 1.40it/s]
epoch 113 | loss 0.5728782415390015, f_iou 0.7204654812812805: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.40it/s]
epoch 113 | loss 0.5728782415390015, f_iou 0.7204654812812805: 66%|███████████████████████▏ | 49/74 [00:40<00:17, 1.40it/s]
epoch 113 | loss 0.10146863013505936, f_iou 0.7249863147735596: 66%|██████████████████████▌ | 49/74 [00:41<00:17, 1.40it/s]
epoch 113 | loss 0.10146863013505936, f_iou 0.7249863147735596: 68%|██████████████████████▉ | 50/74 [00:41<00:17, 1.39it/s]
epoch 113 | loss 1.0532591342926025, f_iou 0.723363995552063: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.39it/s]
epoch 113 | loss 1.0532591342926025, f_iou 0.723363995552063: 69%|████████████████████████▊ | 51/74 [00:42<00:16, 1.40it/s]
epoch 113 | loss 0.6454712152481079, f_iou 0.7258777618408203: 69%|████████████████████████ | 51/74 [00:42<00:16, 1.40it/s]
epoch 113 | loss 0.6454712152481079, f_iou 0.7258777618408203: 70%|████████████████████████▌ | 52/74 [00:42<00:15, 1.40it/s]
epoch 113 | loss 0.8491051197052002, f_iou 0.7288682460784912: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.40it/s]
epoch 113 | loss 0.8491051197052002, f_iou 0.7288682460784912: 72%|█████████████████████████ | 53/74 [00:43<00:14, 1.40it/s]
epoch 113 | loss 0.3692307472229004, f_iou 0.7333117723464966: 72%|█████████████████████████ | 53/74 [00:44<00:14, 1.40it/s]
epoch 113 | loss 0.3692307472229004, f_iou 0.7333117723464966: 73%|█████████████████████████▌ | 54/74 [00:44<00:14, 1.39it/s]
epoch 113 | loss 1.2264626026153564, f_iou 0.7348020076751709: 73%|█████████████████████████▌ | 54/74 [00:44<00:14, 1.39it/s]
epoch 113 | loss 1.2264626026153564, f_iou 0.7348020076751709: 74%|██████████████████████████ | 55/74 [00:44<00:13, 1.40it/s]
epoch 113 | loss 0.5306153297424316, f_iou 0.7385379672050476: 74%|██████████████████████████ | 55/74 [00:45<00:13, 1.40it/s]
epoch 113 | loss 0.5306153297424316, f_iou 0.7385379672050476: 76%|██████████████████████████▍ | 56/74 [00:45<00:12, 1.40it/s]
epoch 113 | loss 0.8541111946105957, f_iou 0.736630380153656: 76%|███████████████████████████▏ | 56/74 [00:46<00:12, 1.40it/s]
epoch 113 | loss 0.8541111946105957, f_iou 0.736630380153656: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.40it/s]
epoch 113 | loss 0.9901140928268433, f_iou 0.7371343374252319: 77%|██████████████████████████▉ | 57/74 [00:47<00:12, 1.40it/s]
epoch 113 | loss 0.9901140928268433, f_iou 0.7371343374252319: 78%|███████████████████████████▍ | 58/74 [00:47<00:11, 1.40it/s]
epoch 113 | loss 0.5397135019302368, f_iou 0.7405791282653809: 78%|███████████████████████████▍ | 58/74 [00:47<00:11, 1.40it/s]
epoch 113 | loss 0.5397135019302368, f_iou 0.7405791282653809: 80%|███████████████████████████▉ | 59/74 [00:47<00:10, 1.40it/s]
epoch 113 | loss 1.1570992469787598, f_iou 0.742618978023529: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.40it/s]
epoch 113 | loss 1.1570992469787598, f_iou 0.742618978023529: 81%|█████████████████████████████▏ | 60/74 [00:48<00:10, 1.40it/s]
epoch 113 | loss 0.2649836242198944, f_iou 0.746199905872345: 81%|█████████████████████████████▏ | 60/74 [00:49<00:10, 1.40it/s]
epoch 113 | loss 0.2649836242198944, f_iou 0.746199905872345: 82%|█████████████████████████████▋ | 61/74 [00:49<00:09, 1.30it/s]
epoch 113 | loss 0.49091994762420654, f_iou 0.7491028308868408: 82%|████████████████████████████ | 61/74 [00:50<00:09, 1.30it/s]
epoch 113 | loss 0.49091994762420654, f_iou 0.7491028308868408: 84%|████████████████████████████▍ | 62/74 [00:50<00:09, 1.33it/s]
epoch 113 | loss 1.010656476020813, f_iou 0.7512692809104919: 84%|██████████████████████████████▏ | 62/74 [00:50<00:09, 1.33it/s]
epoch 113 | loss 1.010656476020813, f_iou 0.7512692809104919: 85%|██████████████████████████████▋ | 63/74 [00:50<00:08, 1.35it/s]
epoch 113 | loss 0.0, f_iou 0.7537989616394043: 85%|██████████████████████████████████████████▌ | 63/74 [00:51<00:08, 1.35it/s]
epoch 113 | loss 0.0, f_iou 0.7537989616394043: 86%|███████████████████████████████████████████▏ | 64/74 [00:51<00:07, 1.36it/s]
epoch 113 | loss 0.7367662191390991, f_iou 0.7558197975158691: 86%|██████████████████████████████▎ | 64/74 [00:52<00:07, 1.36it/s]
epoch 113 | loss 0.7367662191390991, f_iou 0.7558197975158691: 88%|██████████████████████████████▋ | 65/74 [00:52<00:06, 1.37it/s]
epoch 113 | loss 0.46876388788223267, f_iou 0.7443845272064209: 88%|█████████████████████████████▊ | 65/74 [00:53<00:06, 1.37it/s]
epoch 113 | loss 0.46876388788223267, f_iou 0.7443845272064209: 89%|██████████████████████████████▎ | 66/74 [00:53<00:05, 1.38it/s]
epoch 113 | loss 1.447413444519043, f_iou 0.7435302734375: 89%|██████████████████████████████████▊ | 66/74 [00:53<00:05, 1.38it/s]
epoch 113 | loss 1.447413444519043, f_iou 0.7435302734375: 91%|███████████████████████████████████▎ | 67/74 [00:53<00:05, 1.39it/s]
epoch 113 | loss 1.32939612865448, f_iou 0.7430567145347595: 91%|█████████████████████████████████▌ | 67/74 [00:54<00:05, 1.39it/s]
epoch 113 | loss 1.32939612865448, f_iou 0.7430567145347595: 92%|██████████████████████████████████ | 68/74 [00:54<00:04, 1.40it/s]
epoch 113 | loss 0.7400445342063904, f_iou 0.7444772124290466: 92%|████████████████████████████████▏ | 68/74 [00:55<00:04, 1.40it/s]
epoch 113 | loss 0.7400445342063904, f_iou 0.7444772124290466: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.40it/s]
epoch 113 | loss 0.5778007507324219, f_iou 0.7468500137329102: 93%|████████████████████████████████▋ | 69/74 [00:55<00:03, 1.40it/s]
epoch 113 | loss 0.5778007507324219, f_iou 0.7468500137329102: 95%|█████████████████████████████████ | 70/74 [00:55<00:02, 1.40it/s]
epoch 113 | loss 1.3780150413513184, f_iou 0.7402411103248596: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.40it/s]
epoch 113 | loss 1.3780150413513184, f_iou 0.7402411103248596: 96%|█████████████████████████████████▌ | 71/74 [00:56<00:02, 1.40it/s]
epoch 113 | loss 3.277892589569092, f_iou 0.7330599427223206: 96%|██████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 113 | loss 3.277892589569092, f_iou 0.7330599427223206: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 113 | loss 1.2956379652023315, f_iou 0.724772572517395: 97%|███████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 113 | loss 1.2956379652023315, f_iou 0.724772572517395: 99%|███████████████████████████████████▌| 73/74 [00:57<00:00, 1.40it/s]
epoch 113 | loss 1.393507719039917, f_iou 0.7223853468894958: 99%|███████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 113 | loss 1.393507719039917, f_iou 0.7223853468894958: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.41it/s]
epoch 113 | loss 1.393507719039917, f_iou 0.7223853468894958: 100%|████████████████████████████████████| 74/74 [00:58<00:00, 1.26it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 113 | valid.f_iou 0.7504000067710876, valid.f_f-score 0.86256: 0%| | 0/16 [00:05, ?it/s]
epoch 113 | valid.f_iou 0.7504000067710876, valid.f_f-score 0.86256: 6%|█▉ | 1/16 [00:05<01:23, 5.58s/it]
epoch 113 | valid.f_iou 0.7400400042533875, valid.f_f-score 0.89166: 6%|█▉ | 1/16 [00:06<01:23, 5.58s/it]
epoch 113 | valid.f_iou 0.7400400042533875, valid.f_f-score 0.89166: 12%|███▊ | 2/16 [00:06<00:35, 2.57s/it]
epoch 113 | valid.f_iou 0.588949978351593, valid.f_f-score 0.79181: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 113 | valid.f_iou 0.588949978351593, valid.f_f-score 0.79181: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 113 | valid.f_iou 0.6172500252723694, valid.f_f-score 0.78353: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 113 | valid.f_iou 0.6172500252723694, valid.f_f-score 0.78353: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 113 | valid.f_iou 0.6302199959754944, valid.f_f-score 0.79351: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 113 | valid.f_iou 0.6302199959754944, valid.f_f-score 0.79351: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 113 | valid.f_iou 0.5829200148582458, valid.f_f-score 0.74676: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 113 | valid.f_iou 0.5829200148582458, valid.f_f-score 0.74676: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 113 | valid.f_iou 0.6104999780654907, valid.f_f-score 0.76588: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 113 | valid.f_iou 0.6104999780654907, valid.f_f-score 0.76588: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 113 | valid.f_iou 0.5932199954986572, valid.f_f-score 0.75411: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 113 | valid.f_iou 0.5932199954986572, valid.f_f-score 0.75411: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 113 | valid.f_iou 0.608210027217865, valid.f_f-score 0.76125: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.75it/s]
epoch 113 | valid.f_iou 0.608210027217865, valid.f_f-score 0.76125: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 113 | valid.f_iou 0.6045299768447876, valid.f_f-score 0.7636: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 113 | valid.f_iou 0.6045299768447876, valid.f_f-score 0.7636: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.17it/s]
epoch 113 | valid.f_iou 0.6048300266265869, valid.f_f-score 0.76011: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.17it/s]
epoch 113 | valid.f_iou 0.6048300266265869, valid.f_f-score 0.76011: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.31it/s]
epoch 113 | valid.f_iou 0.6251299977302551, valid.f_f-score 0.77434: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.31it/s]
epoch 113 | valid.f_iou 0.6251299977302551, valid.f_f-score 0.77434: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 113 | valid.f_iou 0.6316099762916565, valid.f_f-score 0.781: 75%|███████████████████████▎ | 12/16 [00:10<00:01, 2.41it/s]
epoch 113 | valid.f_iou 0.6316099762916565, valid.f_f-score 0.781: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.50it/s]
epoch 113 | valid.f_iou 0.6237599849700928, valid.f_f-score 0.77559: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 113 | valid.f_iou 0.6237599849700928, valid.f_f-score 0.77559: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.58it/s]
epoch 113 | valid.f_iou 0.6222500205039978, valid.f_f-score 0.77235: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.58it/s]
epoch 113 | valid.f_iou 0.6222500205039978, valid.f_f-score 0.77235: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 113 | valid.f_iou 0.625220000743866, valid.f_f-score 0.76943: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.64it/s]
epoch 113 | valid.f_iou 0.625220000743866, valid.f_f-score 0.76943: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.68it/s]
epoch 113 | valid.f_iou 0.625220000743866, valid.f_f-score 0.76943: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 113 | valid.f_iou 0.8047299981117249, valid.f_f-score 0.81216: 0%| | 0/16 [00:05, ?it/s]
epoch 113 | valid.f_iou 0.8047299981117249, valid.f_f-score 0.81216: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 113 | valid.f_iou 0.8387500047683716, valid.f_f-score 0.87534: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 113 | valid.f_iou 0.8387500047683716, valid.f_f-score 0.87534: 12%|███▊ | 2/16 [00:05<00:34, 2.49s/it]
epoch 113 | valid.f_iou 0.7836499810218811, valid.f_f-score 0.86029: 12%|███▊ | 2/16 [00:06<00:34, 2.49s/it]
epoch 113 | valid.f_iou 0.7836499810218811, valid.f_f-score 0.86029: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 113 | valid.f_iou 0.7695599794387817, valid.f_f-score 0.82424: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 113 | valid.f_iou 0.7695599794387817, valid.f_f-score 0.82424: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 113 | valid.f_iou 0.7529600262641907, valid.f_f-score 0.83045: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 113 | valid.f_iou 0.7529600262641907, valid.f_f-score 0.83045: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 113 | valid.f_iou 0.7380399703979492, valid.f_f-score 0.82029: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 113 | valid.f_iou 0.7380399703979492, valid.f_f-score 0.82029: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 113 | valid.f_iou 0.7470899820327759, valid.f_f-score 0.83383: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 113 | valid.f_iou 0.7470899820327759, valid.f_f-score 0.83383: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.65it/s]
epoch 113 | valid.f_iou 0.7349200248718262, valid.f_f-score 0.83195: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.65it/s]
epoch 113 | valid.f_iou 0.7349200248718262, valid.f_f-score 0.83195: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 113 | valid.f_iou 0.7376400232315063, valid.f_f-score 0.83232: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 113 | valid.f_iou 0.7376400232315063, valid.f_f-score 0.83232: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.92it/s]
epoch 113 | valid.f_iou 0.7479599714279175, valid.f_f-score 0.84192: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.92it/s]
epoch 113 | valid.f_iou 0.7479599714279175, valid.f_f-score 0.84192: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.09it/s]
epoch 113 | valid.f_iou 0.7295299768447876, valid.f_f-score 0.81685: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.09it/s]
epoch 113 | valid.f_iou 0.7295299768447876, valid.f_f-score 0.81685: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.16it/s]
epoch 113 | valid.f_iou 0.7404099702835083, valid.f_f-score 0.8265: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.16it/s]
epoch 113 | valid.f_iou 0.7404099702835083, valid.f_f-score 0.8265: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 113 | valid.f_iou 0.7483999729156494, valid.f_f-score 0.83313: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.22it/s]
epoch 113 | valid.f_iou 0.7483999729156494, valid.f_f-score 0.83313: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.26it/s]
epoch 113 | valid.f_iou 0.7404999732971191, valid.f_f-score 0.82627: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.26it/s]
epoch 113 | valid.f_iou 0.7404999732971191, valid.f_f-score 0.82627: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.35it/s]
epoch 113 | valid.f_iou 0.7460200190544128, valid.f_f-score 0.83375: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.35it/s]
epoch 113 | valid.f_iou 0.7460200190544128, valid.f_f-score 0.83375: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.46it/s]
epoch 113 | valid.f_iou 0.7432000041007996, valid.f_f-score 0.83145: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.46it/s]
epoch 113 | valid.f_iou 0.7432000041007996, valid.f_f-score 0.83145: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.54it/s]
epoch 113 | valid.f_iou 0.7432000041007996, valid.f_f-score 0.83145: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 113 | valid.f_iou 0.8047299981117249, valid.f_f-score 0.81216: 0%| | 0/16 [00:05, ?it/s]
epoch 113 | valid.f_iou 0.8047299981117249, valid.f_f-score 0.81216: 6%|█▉ | 1/16 [00:05<01:20, 5.33s/it]
epoch 113 | valid.f_iou 0.8387500047683716, valid.f_f-score 0.87534: 6%|█▉ | 1/16 [00:05<01:20, 5.33s/it]
epoch 113 | valid.f_iou 0.8387500047683716, valid.f_f-score 0.87534: 12%|███▊ | 2/16 [00:05<00:34, 2.48s/it]
epoch 113 | valid.f_iou 0.7836499810218811, valid.f_f-score 0.86029: 12%|███▊ | 2/16 [00:06<00:34, 2.48s/it]
epoch 113 | valid.f_iou 0.7836499810218811, valid.f_f-score 0.86029: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 113 | valid.f_iou 0.7697499990463257, valid.f_f-score 0.82424: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 113 | valid.f_iou 0.7697499990463257, valid.f_f-score 0.82424: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 113 | valid.f_iou 0.7609900236129761, valid.f_f-score 0.83045: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 113 | valid.f_iou 0.7609900236129761, valid.f_f-score 0.83045: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 113 | valid.f_iou 0.7447400093078613, valid.f_f-score 0.82029: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 113 | valid.f_iou 0.7447400093078613, valid.f_f-score 0.82029: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 113 | valid.f_iou 0.7545899748802185, valid.f_f-score 0.83383: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 113 | valid.f_iou 0.7545899748802185, valid.f_f-score 0.83383: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 113 | valid.f_iou 0.7414799928665161, valid.f_f-score 0.83195: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 113 | valid.f_iou 0.7414799928665161, valid.f_f-score 0.83195: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 113 | valid.f_iou 0.7454800009727478, valid.f_f-score 0.83232: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 113 | valid.f_iou 0.7454800009727478, valid.f_f-score 0.83232: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.95it/s]
epoch 113 | valid.f_iou 0.7517600059509277, valid.f_f-score 0.83843: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.95it/s]
epoch 113 | valid.f_iou 0.7517600059509277, valid.f_f-score 0.83843: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 113 | valid.f_iou 0.732990026473999, valid.f_f-score 0.81367: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 113 | valid.f_iou 0.732990026473999, valid.f_f-score 0.81367: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.10it/s]
epoch 113 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.82359: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.10it/s]
epoch 113 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.82359: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 113 | valid.f_iou 0.7512999773025513, valid.f_f-score 0.83044: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 113 | valid.f_iou 0.7512999773025513, valid.f_f-score 0.83044: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.22it/s]
epoch 113 | valid.f_iou 0.7432000041007996, valid.f_f-score 0.82377: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.22it/s]
epoch 113 | valid.f_iou 0.7432000041007996, valid.f_f-score 0.82377: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.36it/s]
epoch 113 | valid.f_iou 0.7485299706459045, valid.f_f-score 0.83142: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.36it/s]
epoch 113 | valid.f_iou 0.7485299706459045, valid.f_f-score 0.83142: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 113 | valid.f_iou 0.7463099956512451, valid.f_f-score 0.82926: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 113 | valid.f_iou 0.7463099956512451, valid.f_f-score 0.82926: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.54it/s]
epoch 113 | valid.f_iou 0.7463099956512451, valid.f_f-score 0.82926: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 114 | loss 0.5939904451370239, f_iou 0.9221765398979187: 0%| | 0/74 [00:06, ?it/s]
epoch 114 | loss 0.5939904451370239, f_iou 0.9221765398979187: 1%|▍ | 1/74 [00:06<07:31, 6.19s/it]
epoch 114 | loss 1.1547245979309082, f_iou 0.7468180656433105: 1%|▍ | 1/74 [00:06<07:31, 6.19s/it]
epoch 114 | loss 1.1547245979309082, f_iou 0.7468180656433105: 3%|▉ | 2/74 [00:06<03:37, 3.03s/it]
epoch 114 | loss 1.0147008895874023, f_iou 0.768865704536438: 3%|█ | 2/74 [00:07<03:37, 3.03s/it]
epoch 114 | loss 1.0147008895874023, f_iou 0.768865704536438: 4%|█▌ | 3/74 [00:07<02:25, 2.05s/it]
epoch 114 | loss 1.3326246738433838, f_iou 0.7641958594322205: 4%|█▍ | 3/74 [00:08<02:25, 2.05s/it]
epoch 114 | loss 1.3326246738433838, f_iou 0.7641958594322205: 5%|█▉ | 4/74 [00:08<01:51, 1.59s/it]
epoch 114 | loss 0.3680277168750763, f_iou 0.7999122142791748: 5%|█▉ | 4/74 [00:09<01:51, 1.59s/it]
epoch 114 | loss 0.3680277168750763, f_iou 0.7999122142791748: 7%|██▍ | 5/74 [00:09<01:30, 1.31s/it]
epoch 114 | loss 1.8334636688232422, f_iou 0.7555579543113708: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 114 | loss 1.8334636688232422, f_iou 0.7555579543113708: 8%|██▉ | 6/74 [00:10<01:17, 1.15s/it]
epoch 114 | loss 0.0, f_iou 0.7783567905426025: 8%|████▏ | 6/74 [00:11<01:17, 1.15s/it]
epoch 114 | loss 0.0, f_iou 0.7783567905426025: 9%|████▊ | 7/74 [00:11<01:09, 1.03s/it]
epoch 114 | loss 0.6010320782661438, f_iou 0.7936933636665344: 9%|███▍ | 7/74 [00:12<01:09, 1.03s/it]
epoch 114 | loss 0.6010320782661438, f_iou 0.7936933636665344: 11%|███▉ | 8/74 [00:12<01:03, 1.04it/s]
epoch 114 | loss 1.1954182386398315, f_iou 0.8113173246383667: 11%|███▉ | 8/74 [00:12<01:03, 1.04it/s]
epoch 114 | loss 1.1954182386398315, f_iou 0.8113173246383667: 12%|████▍ | 9/74 [00:12<00:58, 1.10it/s]
epoch 114 | loss 0.5930848121643066, f_iou 0.8241333961486816: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 114 | loss 0.5930848121643066, f_iou 0.8241333961486816: 14%|████▋ | 10/74 [00:13<00:55, 1.16it/s]
epoch 114 | loss 0.7787426710128784, f_iou 0.8121058940887451: 14%|████▋ | 10/74 [00:14<00:55, 1.16it/s]
epoch 114 | loss 0.7787426710128784, f_iou 0.8121058940887451: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 114 | loss 0.7911618947982788, f_iou 0.8159451484680176: 15%|█████▏ | 11/74 [00:15<00:52, 1.20it/s]
epoch 114 | loss 0.7911618947982788, f_iou 0.8159451484680176: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 114 | loss 1.4649027585983276, f_iou 0.8125721216201782: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 114 | loss 1.4649027585983276, f_iou 0.8125721216201782: 18%|██████▏ | 13/74 [00:15<00:49, 1.24it/s]
epoch 114 | loss 0.7031106948852539, f_iou 0.7995834946632385: 18%|██████▏ | 13/74 [00:16<00:49, 1.24it/s]
epoch 114 | loss 0.7031106948852539, f_iou 0.7995834946632385: 19%|██████▌ | 14/74 [00:16<00:47, 1.25it/s]
epoch 114 | loss 0.6212739944458008, f_iou 0.7472812533378601: 19%|██████▌ | 14/74 [00:17<00:47, 1.25it/s]
epoch 114 | loss 0.6212739944458008, f_iou 0.7472812533378601: 20%|███████ | 15/74 [00:17<00:45, 1.29it/s]
epoch 114 | loss 1.4147541522979736, f_iou 0.752467930316925: 20%|███████▎ | 15/74 [00:18<00:45, 1.29it/s]
epoch 114 | loss 1.4147541522979736, f_iou 0.752467930316925: 22%|███████▊ | 16/74 [00:18<00:44, 1.32it/s]
epoch 114 | loss 1.2171339988708496, f_iou 0.7418303489685059: 22%|███████▌ | 16/74 [00:18<00:44, 1.32it/s]
epoch 114 | loss 1.2171339988708496, f_iou 0.7418303489685059: 23%|████████ | 17/74 [00:18<00:42, 1.34it/s]
epoch 114 | loss 0.6540471315383911, f_iou 0.7537029385566711: 23%|████████ | 17/74 [00:19<00:42, 1.34it/s]
epoch 114 | loss 0.6540471315383911, f_iou 0.7537029385566711: 24%|████████▌ | 18/74 [00:19<00:41, 1.35it/s]
epoch 114 | loss 1.2962095737457275, f_iou 0.7539039850234985: 24%|████████▌ | 18/74 [00:20<00:41, 1.35it/s]
epoch 114 | loss 1.2962095737457275, f_iou 0.7539039850234985: 26%|████████▉ | 19/74 [00:20<00:40, 1.36it/s]
epoch 114 | loss 0.9476602077484131, f_iou 0.7575647830963135: 26%|████████▉ | 19/74 [00:21<00:40, 1.36it/s]
epoch 114 | loss 0.9476602077484131, f_iou 0.7575647830963135: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 114 | loss 0.5312528014183044, f_iou 0.7673256397247314: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 114 | loss 0.5312528014183044, f_iou 0.7673256397247314: 28%|█████████▉ | 21/74 [00:21<00:38, 1.37it/s]
epoch 114 | loss 1.1719282865524292, f_iou 0.76572585105896: 28%|██████████▌ | 21/74 [00:22<00:38, 1.37it/s]
epoch 114 | loss 1.1719282865524292, f_iou 0.76572585105896: 30%|███████████ | 22/74 [00:22<00:37, 1.38it/s]
epoch 114 | loss 0.4771263003349304, f_iou 0.7744549512863159: 30%|██████████▍ | 22/74 [00:23<00:37, 1.38it/s]
epoch 114 | loss 0.4771263003349304, f_iou 0.7744549512863159: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 114 | loss 1.3696283102035522, f_iou 0.7474268674850464: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 114 | loss 1.3696283102035522, f_iou 0.7474268674850464: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 114 | loss 0.5884190797805786, f_iou 0.751636266708374: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 114 | loss 0.5884190797805786, f_iou 0.751636266708374: 34%|████████████▏ | 25/74 [00:24<00:35, 1.38it/s]
epoch 114 | loss 0.9223829507827759, f_iou 0.7558783888816833: 34%|███████████▊ | 25/74 [00:25<00:35, 1.38it/s]
epoch 114 | loss 0.9223829507827759, f_iou 0.7558783888816833: 35%|████████████▎ | 26/74 [00:25<00:34, 1.38it/s]
epoch 114 | loss 1.6235978603363037, f_iou 0.7476054430007935: 35%|████████████▎ | 26/74 [00:26<00:34, 1.38it/s]
epoch 114 | loss 1.6235978603363037, f_iou 0.7476054430007935: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 114 | loss 1.6510732173919678, f_iou 0.7418366074562073: 36%|████████████▊ | 27/74 [00:26<00:33, 1.39it/s]
epoch 114 | loss 1.6510732173919678, f_iou 0.7418366074562073: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 114 | loss 0.516041100025177, f_iou 0.7414610385894775: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.38it/s]
epoch 114 | loss 0.516041100025177, f_iou 0.7414610385894775: 39%|██████████████ | 29/74 [00:27<00:32, 1.38it/s]
epoch 114 | loss 4.718692302703857, f_iou 0.732977569103241: 39%|██████████████▌ | 29/74 [00:28<00:32, 1.38it/s]
epoch 114 | loss 4.718692302703857, f_iou 0.732977569103241: 41%|███████████████ | 30/74 [00:28<00:31, 1.38it/s]
epoch 114 | loss 1.9468783140182495, f_iou 0.7237366437911987: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.38it/s]
epoch 114 | loss 1.9468783140182495, f_iou 0.7237366437911987: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.38it/s]
epoch 114 | loss 0.8762075901031494, f_iou 0.7256942391395569: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.38it/s]
epoch 114 | loss 0.8762075901031494, f_iou 0.7256942391395569: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.38it/s]
epoch 114 | loss 0.889284610748291, f_iou 0.7232315540313721: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.38it/s]
epoch 114 | loss 0.889284610748291, f_iou 0.7232315540313721: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 114 | loss 0.7921682596206665, f_iou 0.7288417816162109: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.36it/s]
epoch 114 | loss 0.7921682596206665, f_iou 0.7288417816162109: 46%|████████████████ | 34/74 [00:31<00:29, 1.34it/s]
epoch 114 | loss 0.45066899061203003, f_iou 0.7345430254936218: 46%|███████████████▌ | 34/74 [00:31<00:29, 1.34it/s]
epoch 114 | loss 0.45066899061203003, f_iou 0.7345430254936218: 47%|████████████████ | 35/74 [00:31<00:29, 1.34it/s]
epoch 114 | loss 1.284118890762329, f_iou 0.7366018891334534: 47%|█████████████████ | 35/74 [00:32<00:29, 1.34it/s]
epoch 114 | loss 1.284118890762329, f_iou 0.7366018891334534: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.32it/s]
epoch 114 | loss 1.0079429149627686, f_iou 0.7333279252052307: 49%|█████████████████ | 36/74 [00:33<00:28, 1.32it/s]
epoch 114 | loss 1.0079429149627686, f_iou 0.7333279252052307: 50%|█████████████████▌ | 37/74 [00:33<00:28, 1.30it/s]
epoch 114 | loss 0.5961426496505737, f_iou 0.7380830645561218: 50%|█████████████████▌ | 37/74 [00:34<00:28, 1.30it/s]
epoch 114 | loss 0.5961426496505737, f_iou 0.7380830645561218: 51%|█████████████████▉ | 38/74 [00:34<00:28, 1.27it/s]
epoch 114 | loss 0.9986016750335693, f_iou 0.7263959050178528: 51%|█████████████████▉ | 38/74 [00:35<00:28, 1.27it/s]
epoch 114 | loss 0.9986016750335693, f_iou 0.7263959050178528: 53%|██████████████████▍ | 39/74 [00:35<00:27, 1.27it/s]
epoch 114 | loss 1.1477504968643188, f_iou 0.7277255058288574: 53%|██████████████████▍ | 39/74 [00:35<00:27, 1.27it/s]
epoch 114 | loss 1.1477504968643188, f_iou 0.7277255058288574: 54%|██████████████████▉ | 40/74 [00:35<00:26, 1.29it/s]
epoch 114 | loss 1.1058108806610107, f_iou 0.7227556705474854: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.29it/s]
epoch 114 | loss 1.1058108806610107, f_iou 0.7227556705474854: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.30it/s]
epoch 114 | loss 1.1982017755508423, f_iou 0.7271459102630615: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.30it/s]
epoch 114 | loss 1.1982017755508423, f_iou 0.7271459102630615: 57%|███████████████████▊ | 42/74 [00:37<00:24, 1.33it/s]
epoch 114 | loss 1.301879644393921, f_iou 0.7267025113105774: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.33it/s]
epoch 114 | loss 1.301879644393921, f_iou 0.7267025113105774: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.33it/s]
epoch 114 | loss 1.3146706819534302, f_iou 0.7167580127716064: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.33it/s]
epoch 114 | loss 1.3146706819534302, f_iou 0.7167580127716064: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.31it/s]
epoch 114 | loss 1.118630051612854, f_iou 0.7208638787269592: 59%|█████████████████████▍ | 44/74 [00:39<00:22, 1.31it/s]
epoch 114 | loss 1.118630051612854, f_iou 0.7208638787269592: 61%|█████████████████████▉ | 45/74 [00:39<00:21, 1.34it/s]
epoch 114 | loss 2.4927258491516113, f_iou 0.7183530926704407: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.34it/s]
epoch 114 | loss 2.4927258491516113, f_iou 0.7183530926704407: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.36it/s]
epoch 114 | loss 0.37132126092910767, f_iou 0.7210673689842224: 62%|█████████████████████▏ | 46/74 [00:41<00:20, 1.36it/s]
epoch 114 | loss 0.37132126092910767, f_iou 0.7210673689842224: 64%|█████████████████████▌ | 47/74 [00:41<00:19, 1.37it/s]
epoch 114 | loss 0.47854334115982056, f_iou 0.7260846495628357: 64%|█████████████████████▌ | 47/74 [00:41<00:19, 1.37it/s]
epoch 114 | loss 0.47854334115982056, f_iou 0.7260846495628357: 65%|██████████████████████ | 48/74 [00:41<00:18, 1.38it/s]
epoch 114 | loss 1.0813000202178955, f_iou 0.713605523109436: 65%|███████████████████████▎ | 48/74 [00:42<00:18, 1.38it/s]
epoch 114 | loss 1.0813000202178955, f_iou 0.713605523109436: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.38it/s]
epoch 114 | loss 2.364642381668091, f_iou 0.7047522664070129: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.38it/s]
epoch 114 | loss 2.364642381668091, f_iou 0.7047522664070129: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.39it/s]
epoch 114 | loss 1.1725809574127197, f_iou 0.7082516551017761: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.39it/s]
epoch 114 | loss 1.1725809574127197, f_iou 0.7082516551017761: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.39it/s]
epoch 114 | loss 1.1948946714401245, f_iou 0.7121491432189941: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.39it/s]
epoch 114 | loss 1.1948946714401245, f_iou 0.7121491432189941: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.38it/s]
epoch 114 | loss 0.7659273743629456, f_iou 0.7153988480567932: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.38it/s]
epoch 114 | loss 0.7659273743629456, f_iou 0.7153988480567932: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.39it/s]
epoch 114 | loss 0.543709397315979, f_iou 0.7021507024765015: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.39it/s]
epoch 114 | loss 0.543709397315979, f_iou 0.7021507024765015: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 114 | loss 2.041734457015991, f_iou 0.7031200528144836: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.39it/s]
epoch 114 | loss 2.041734457015991, f_iou 0.7031200528144836: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.39it/s]
epoch 114 | loss 0.608959972858429, f_iou 0.7043178677558899: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.39it/s]
epoch 114 | loss 0.608959972858429, f_iou 0.7043178677558899: 76%|███████████████████████████▏ | 56/74 [00:47<00:12, 1.39it/s]
epoch 114 | loss 0.47020989656448364, f_iou 0.7085009217262268: 76%|█████████████████████████▋ | 56/74 [00:48<00:12, 1.39it/s]
epoch 114 | loss 0.47020989656448364, f_iou 0.7085009217262268: 77%|██████████████████████████▏ | 57/74 [00:48<00:12, 1.39it/s]
epoch 114 | loss 0.4796440899372101, f_iou 0.711872398853302: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.39it/s]
epoch 114 | loss 0.4796440899372101, f_iou 0.711872398853302: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.39it/s]
epoch 114 | loss 1.4837844371795654, f_iou 0.7128472328186035: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.39it/s]
epoch 114 | loss 1.4837844371795654, f_iou 0.7128472328186035: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.38it/s]
epoch 114 | loss 0.6551918983459473, f_iou 0.7168411016464233: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.38it/s]
epoch 114 | loss 0.6551918983459473, f_iou 0.7168411016464233: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.38it/s]
epoch 114 | loss 2.0445427894592285, f_iou 0.7152734994888306: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.38it/s]
epoch 114 | loss 2.0445427894592285, f_iou 0.7152734994888306: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 114 | loss 1.1876800060272217, f_iou 0.7147325873374939: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 114 | loss 1.1876800060272217, f_iou 0.7147325873374939: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.35it/s]
epoch 114 | loss 0.8861066102981567, f_iou 0.71706622838974: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.35it/s]
epoch 114 | loss 0.8861066102981567, f_iou 0.71706622838974: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.34it/s]
epoch 114 | loss 0.875311553478241, f_iou 0.7131790518760681: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.34it/s]
epoch 114 | loss 0.875311553478241, f_iou 0.7131790518760681: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.33it/s]
epoch 114 | loss 0.5925689935684204, f_iou 0.706829309463501: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.33it/s]
epoch 114 | loss 0.5925689935684204, f_iou 0.706829309463501: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.32it/s]
epoch 114 | loss 0.42580556869506836, f_iou 0.7108611464500427: 88%|█████████████████████████████▊ | 65/74 [00:54<00:06, 1.32it/s]
epoch 114 | loss 0.42580556869506836, f_iou 0.7108611464500427: 89%|██████████████████████████████▎ | 66/74 [00:54<00:06, 1.32it/s]
epoch 114 | loss 0.677086353302002, f_iou 0.713930070400238: 89%|█████████████████████████████████ | 66/74 [00:55<00:06, 1.32it/s]
epoch 114 | loss 0.677086353302002, f_iou 0.713930070400238: 91%|█████████████████████████████████▌ | 67/74 [00:55<00:05, 1.35it/s]
epoch 114 | loss 1.2279130220413208, f_iou 0.7094387412071228: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.35it/s]
epoch 114 | loss 1.2279130220413208, f_iou 0.7094387412071228: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.37it/s]
epoch 114 | loss 0.42773082852363586, f_iou 0.7105756402015686: 92%|███████████████████████████████▏ | 68/74 [00:57<00:04, 1.37it/s]
epoch 114 | loss 0.42773082852363586, f_iou 0.7105756402015686: 93%|███████████████████████████████▋ | 69/74 [00:57<00:03, 1.38it/s]
epoch 114 | loss 1.6917997598648071, f_iou 0.7083863615989685: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.38it/s]
epoch 114 | loss 1.6917997598648071, f_iou 0.7083863615989685: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 114 | loss 3.137799024581909, f_iou 0.7030935287475586: 95%|██████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 114 | loss 3.137799024581909, f_iou 0.7030935287475586: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.40it/s]
epoch 114 | loss 0.6952478885650635, f_iou 0.6960137486457825: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.40it/s]
epoch 114 | loss 0.6952478885650635, f_iou 0.6960137486457825: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 114 | loss 0.6979131698608398, f_iou 0.6983627080917358: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 114 | loss 0.6979131698608398, f_iou 0.6983627080917358: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 114 | loss 0.0, f_iou 0.7023899555206299: 99%|█████████████████████████████████████████████████▎| 73/74 [01:00<00:00, 1.40it/s]
epoch 114 | loss 0.0, f_iou 0.7023899555206299: 100%|██████████████████████████████████████████████████| 74/74 [01:00<00:00, 1.40it/s]
epoch 114 | loss 0.0, f_iou 0.7023899555206299: 100%|██████████████████████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 114 | valid.f_iou 0.7243000268936157, valid.f_f-score 0.83053: 0%| | 0/16 [00:05, ?it/s]
epoch 114 | valid.f_iou 0.7243000268936157, valid.f_f-score 0.83053: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 114 | valid.f_iou 0.6605200171470642, valid.f_f-score 0.85347: 6%|█▉ | 1/16 [00:05<01:23, 5.55s/it]
epoch 114 | valid.f_iou 0.6605200171470642, valid.f_f-score 0.85347: 12%|███▊ | 2/16 [00:05<00:35, 2.55s/it]
epoch 114 | valid.f_iou 0.5271400213241577, valid.f_f-score 0.76264: 12%|███▊ | 2/16 [00:06<00:35, 2.55s/it]
epoch 114 | valid.f_iou 0.5271400213241577, valid.f_f-score 0.76264: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 114 | valid.f_iou 0.553820013999939, valid.f_f-score 0.74705: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 114 | valid.f_iou 0.553820013999939, valid.f_f-score 0.74705: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 114 | valid.f_iou 0.5745400190353394, valid.f_f-score 0.75999: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 114 | valid.f_iou 0.5745400190353394, valid.f_f-score 0.75999: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 114 | valid.f_iou 0.5382999777793884, valid.f_f-score 0.71541: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 114 | valid.f_iou 0.5382999777793884, valid.f_f-score 0.71541: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 114 | valid.f_iou 0.5687000155448914, valid.f_f-score 0.73792: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 114 | valid.f_iou 0.5687000155448914, valid.f_f-score 0.73792: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 114 | valid.f_iou 0.5366299748420715, valid.f_f-score 0.71645: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 114 | valid.f_iou 0.5366299748420715, valid.f_f-score 0.71645: 50%|███████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 114 | valid.f_iou 0.5575000047683716, valid.f_f-score 0.72707: 50%|███████████████ | 8/16 [00:08<00:04, 1.87it/s]
epoch 114 | valid.f_iou 0.5575000047683716, valid.f_f-score 0.72707: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.11it/s]
epoch 114 | valid.f_iou 0.5522599816322327, valid.f_f-score 0.72729: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.11it/s]
epoch 114 | valid.f_iou 0.5522599816322327, valid.f_f-score 0.72729: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.27it/s]
epoch 114 | valid.f_iou 0.5541300177574158, valid.f_f-score 0.72829: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.27it/s]
epoch 114 | valid.f_iou 0.5541300177574158, valid.f_f-score 0.72829: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.41it/s]
epoch 114 | valid.f_iou 0.5787699818611145, valid.f_f-score 0.74505: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.41it/s]
epoch 114 | valid.f_iou 0.5787699818611145, valid.f_f-score 0.74505: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.50it/s]
epoch 114 | valid.f_iou 0.5792700052261353, valid.f_f-score 0.7463: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.50it/s]
epoch 114 | valid.f_iou 0.5792700052261353, valid.f_f-score 0.7463: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.57it/s]
epoch 114 | valid.f_iou 0.5700200200080872, valid.f_f-score 0.73728: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.57it/s]
epoch 114 | valid.f_iou 0.5700200200080872, valid.f_f-score 0.73728: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.62it/s]
epoch 114 | valid.f_iou 0.5748000144958496, valid.f_f-score 0.73742: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.62it/s]
epoch 114 | valid.f_iou 0.5748000144958496, valid.f_f-score 0.73742: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.67it/s]
epoch 114 | valid.f_iou 0.5794600248336792, valid.f_f-score 0.73524: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.67it/s]
epoch 114 | valid.f_iou 0.5794600248336792, valid.f_f-score 0.73524: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.69it/s]
epoch 114 | valid.f_iou 0.5794600248336792, valid.f_f-score 0.73524: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 114 | valid.f_iou 0.8050699830055237, valid.f_f-score 0.81955: 0%| | 0/16 [00:05, ?it/s]
epoch 114 | valid.f_iou 0.8050699830055237, valid.f_f-score 0.81955: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 114 | valid.f_iou 0.8371300101280212, valid.f_f-score 0.87798: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 114 | valid.f_iou 0.8371300101280212, valid.f_f-score 0.87798: 12%|███▊ | 2/16 [00:05<00:34, 2.43s/it]
epoch 114 | valid.f_iou 0.7820299863815308, valid.f_f-score 0.86245: 12%|███▊ | 2/16 [00:06<00:34, 2.43s/it]
epoch 114 | valid.f_iou 0.7820299863815308, valid.f_f-score 0.86245: 19%|█████▋ | 3/16 [00:06<00:19, 1.54s/it]
epoch 114 | valid.f_iou 0.7674599885940552, valid.f_f-score 0.82532: 19%|█████▋ | 3/16 [00:06<00:19, 1.54s/it]
epoch 114 | valid.f_iou 0.7674599885940552, valid.f_f-score 0.82532: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 114 | valid.f_iou 0.7482600212097168, valid.f_f-score 0.82743: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 114 | valid.f_iou 0.7482600212097168, valid.f_f-score 0.82743: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 114 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.81509: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 114 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.81509: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 114 | valid.f_iou 0.745140016078949, valid.f_f-score 0.83283: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 114 | valid.f_iou 0.745140016078949, valid.f_f-score 0.83283: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.65it/s]
epoch 114 | valid.f_iou 0.7276099920272827, valid.f_f-score 0.82631: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.65it/s]
epoch 114 | valid.f_iou 0.7276099920272827, valid.f_f-score 0.82631: 50%|███████████████ | 8/16 [00:08<00:04, 1.89it/s]
epoch 114 | valid.f_iou 0.7317299842834473, valid.f_f-score 0.82717: 50%|███████████████ | 8/16 [00:08<00:04, 1.89it/s]
epoch 114 | valid.f_iou 0.7317299842834473, valid.f_f-score 0.82717: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.11it/s]
epoch 114 | valid.f_iou 0.7409200072288513, valid.f_f-score 0.83672: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.11it/s]
epoch 114 | valid.f_iou 0.7409200072288513, valid.f_f-score 0.83672: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.27it/s]
epoch 114 | valid.f_iou 0.735319972038269, valid.f_f-score 0.83134: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.27it/s]
epoch 114 | valid.f_iou 0.735319972038269, valid.f_f-score 0.83134: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.41it/s]
epoch 114 | valid.f_iou 0.7454599738121033, valid.f_f-score 0.83964: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.41it/s]
epoch 114 | valid.f_iou 0.7454599738121033, valid.f_f-score 0.83964: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.51it/s]
epoch 114 | valid.f_iou 0.7525500059127808, valid.f_f-score 0.84525: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.51it/s]
epoch 114 | valid.f_iou 0.7525500059127808, valid.f_f-score 0.84525: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.58it/s]
epoch 114 | valid.f_iou 0.743939995765686, valid.f_f-score 0.83766: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.58it/s]
epoch 114 | valid.f_iou 0.743939995765686, valid.f_f-score 0.83766: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.63it/s]
epoch 114 | valid.f_iou 0.7512699961662292, valid.f_f-score 0.84397: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.63it/s]
epoch 114 | valid.f_iou 0.7512699961662292, valid.f_f-score 0.84397: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.67it/s]
epoch 114 | valid.f_iou 0.7508800029754639, valid.f_f-score 0.84199: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.67it/s]
epoch 114 | valid.f_iou 0.7508800029754639, valid.f_f-score 0.84199: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.70it/s]
epoch 114 | valid.f_iou 0.7508800029754639, valid.f_f-score 0.84199: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 114 | valid.f_iou 0.8050699830055237, valid.f_f-score 0.81955: 0%| | 0/16 [00:04, ?it/s]
epoch 114 | valid.f_iou 0.8050699830055237, valid.f_f-score 0.81955: 6%|█▉ | 1/16 [00:04<01:09, 4.65s/it]
epoch 114 | valid.f_iou 0.8371300101280212, valid.f_f-score 0.87798: 6%|█▉ | 1/16 [00:05<01:09, 4.65s/it]
epoch 114 | valid.f_iou 0.8371300101280212, valid.f_f-score 0.87798: 12%|███▊ | 2/16 [00:05<00:30, 2.17s/it]
epoch 114 | valid.f_iou 0.7820299863815308, valid.f_f-score 0.86245: 12%|███▊ | 2/16 [00:05<00:30, 2.17s/it]
epoch 114 | valid.f_iou 0.7820299863815308, valid.f_f-score 0.86245: 19%|█████▋ | 3/16 [00:05<00:17, 1.35s/it]
epoch 114 | valid.f_iou 0.7659900188446045, valid.f_f-score 0.81989: 19%|█████▋ | 3/16 [00:05<00:17, 1.35s/it]
epoch 114 | valid.f_iou 0.7659900188446045, valid.f_f-score 0.81989: 25%|███████▌ | 4/16 [00:05<00:11, 1.04it/s]
epoch 114 | valid.f_iou 0.7544299960136414, valid.f_f-score 0.82309: 25%|███████▌ | 4/16 [00:06<00:11, 1.04it/s]
epoch 114 | valid.f_iou 0.7544299960136414, valid.f_f-score 0.82309: 31%|█████████▍ | 5/16 [00:06<00:08, 1.34it/s]
epoch 114 | valid.f_iou 0.7348300218582153, valid.f_f-score 0.81147: 31%|█████████▍ | 5/16 [00:06<00:08, 1.34it/s]
epoch 114 | valid.f_iou 0.7348300218582153, valid.f_f-score 0.81147: 38%|███████████▎ | 6/16 [00:06<00:06, 1.62it/s]
epoch 114 | valid.f_iou 0.7512800097465515, valid.f_f-score 0.82972: 38%|███████████▎ | 6/16 [00:06<00:06, 1.62it/s]
epoch 114 | valid.f_iou 0.7512800097465515, valid.f_f-score 0.82972: 44%|█████████████▏ | 7/16 [00:06<00:04, 1.87it/s]
epoch 114 | valid.f_iou 0.7329800128936768, valid.f_f-score 0.82359: 44%|█████████████▏ | 7/16 [00:07<00:04, 1.87it/s]
epoch 114 | valid.f_iou 0.7329800128936768, valid.f_f-score 0.82359: 50%|███████████████ | 8/16 [00:07<00:03, 2.10it/s]
epoch 114 | valid.f_iou 0.7379299998283386, valid.f_f-score 0.82475: 50%|███████████████ | 8/16 [00:07<00:03, 2.10it/s]
epoch 114 | valid.f_iou 0.7379299998283386, valid.f_f-score 0.82475: 56%|████████████████▉ | 9/16 [00:07<00:03, 2.29it/s]
epoch 114 | valid.f_iou 0.7436000108718872, valid.f_f-score 0.83109: 56%|████████████████▉ | 9/16 [00:07<00:03, 2.29it/s]
epoch 114 | valid.f_iou 0.7436000108718872, valid.f_f-score 0.83109: 62%|██████████████████▏ | 10/16 [00:07<00:02, 2.42it/s]
epoch 114 | valid.f_iou 0.7377600073814392, valid.f_f-score 0.82622: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.42it/s]
epoch 114 | valid.f_iou 0.7377600073814392, valid.f_f-score 0.82622: 69%|███████████████████▉ | 11/16 [00:08<00:01, 2.51it/s]
epoch 114 | valid.f_iou 0.7476900219917297, valid.f_f-score 0.83495: 69%|███████████████████▉ | 11/16 [00:08<00:01, 2.51it/s]
epoch 114 | valid.f_iou 0.7476900219917297, valid.f_f-score 0.83495: 75%|█████████████████████▊ | 12/16 [00:08<00:01, 2.58it/s]
epoch 114 | valid.f_iou 0.7545700073242188, valid.f_f-score 0.84092: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.58it/s]
epoch 114 | valid.f_iou 0.7545700073242188, valid.f_f-score 0.84092: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.64it/s]
epoch 114 | valid.f_iou 0.7426199913024902, valid.f_f-score 0.83064: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.64it/s]
epoch 114 | valid.f_iou 0.7426199913024902, valid.f_f-score 0.83064: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.68it/s]
epoch 114 | valid.f_iou 0.7500399947166443, valid.f_f-score 0.83741: 88%|█████████████████████████▍ | 14/16 [00:09<00:00, 2.68it/s]
epoch 114 | valid.f_iou 0.7500399947166443, valid.f_f-score 0.83741: 94%|███████████████████████████▏ | 15/16 [00:09<00:00, 2.72it/s]
epoch 114 | valid.f_iou 0.7502599954605103, valid.f_f-score 0.83584: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.72it/s]
epoch 114 | valid.f_iou 0.7502599954605103, valid.f_f-score 0.83584: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.74it/s]
epoch 114 | valid.f_iou 0.7502599954605103, valid.f_f-score 0.83584: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.58it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 115 | loss 0.8692770004272461, f_iou 0.8603605628013611: 0%| | 0/74 [00:05, ?it/s]
epoch 115 | loss 0.8692770004272461, f_iou 0.8603605628013611: 1%|▍ | 1/74 [00:05<07:06, 5.84s/it]
epoch 115 | loss 0.32674354314804077, f_iou 0.46069762110710144: 1%|▍ | 1/74 [00:06<07:06, 5.84s/it]
epoch 115 | loss 0.32674354314804077, f_iou 0.46069762110710144: 3%|▉ | 2/74 [00:06<03:27, 2.88s/it]
epoch 115 | loss 0.6517820954322815, f_iou 0.5006653666496277: 3%|▉ | 2/74 [00:07<03:27, 2.88s/it]
epoch 115 | loss 0.6517820954322815, f_iou 0.5006653666496277: 4%|█▍ | 3/74 [00:07<02:18, 1.95s/it]
epoch 115 | loss 0.384107768535614, f_iou 0.6168186068534851: 4%|█▌ | 3/74 [00:08<02:18, 1.95s/it]
epoch 115 | loss 0.384107768535614, f_iou 0.6168186068534851: 5%|██ | 4/74 [00:08<01:46, 1.52s/it]
epoch 115 | loss 0.5472723841667175, f_iou 0.668857991695404: 5%|██ | 4/74 [00:09<01:46, 1.52s/it]
epoch 115 | loss 0.5472723841667175, f_iou 0.668857991695404: 7%|██▌ | 5/74 [00:09<01:28, 1.28s/it]
epoch 115 | loss 0.8729440569877625, f_iou 0.6777610182762146: 7%|██▍ | 5/74 [00:09<01:28, 1.28s/it]
epoch 115 | loss 0.8729440569877625, f_iou 0.6777610182762146: 8%|██▉ | 6/74 [00:09<01:15, 1.11s/it]
epoch 115 | loss 1.0057251453399658, f_iou 0.6696809530258179: 8%|██▉ | 6/74 [00:10<01:15, 1.11s/it]
epoch 115 | loss 1.0057251453399658, f_iou 0.6696809530258179: 9%|███▍ | 7/74 [00:10<01:07, 1.00s/it]
epoch 115 | loss 0.6797579526901245, f_iou 0.6987055540084839: 9%|███▍ | 7/74 [00:11<01:07, 1.00s/it]
epoch 115 | loss 0.6797579526901245, f_iou 0.6987055540084839: 11%|███▉ | 8/74 [00:11<01:01, 1.08it/s]
epoch 115 | loss 0.4411148428916931, f_iou 0.7166916131973267: 11%|███▉ | 8/74 [00:12<01:01, 1.08it/s]
epoch 115 | loss 0.4411148428916931, f_iou 0.7166916131973267: 12%|████▍ | 9/74 [00:12<00:57, 1.12it/s]
epoch 115 | loss 0.36711442470550537, f_iou 0.7419735193252563: 12%|████▎ | 9/74 [00:13<00:57, 1.12it/s]
epoch 115 | loss 0.36711442470550537, f_iou 0.7419735193252563: 14%|████▌ | 10/74 [00:13<00:53, 1.20it/s]
epoch 115 | loss 0.6701807975769043, f_iou 0.7578809857368469: 14%|████▋ | 10/74 [00:13<00:53, 1.20it/s]
epoch 115 | loss 0.6701807975769043, f_iou 0.7578809857368469: 15%|█████▏ | 11/74 [00:13<00:50, 1.25it/s]
epoch 115 | loss 1.6196755170822144, f_iou 0.7092857360839844: 15%|█████▏ | 11/74 [00:14<00:50, 1.25it/s]
epoch 115 | loss 1.6196755170822144, f_iou 0.7092857360839844: 16%|█████▋ | 12/74 [00:14<00:47, 1.29it/s]
epoch 115 | loss 0.9947226047515869, f_iou 0.7120786309242249: 16%|█████▋ | 12/74 [00:15<00:47, 1.29it/s]
epoch 115 | loss 0.9947226047515869, f_iou 0.7120786309242249: 18%|██████▏ | 13/74 [00:15<00:46, 1.32it/s]
epoch 115 | loss 1.2145304679870605, f_iou 0.7170304656028748: 18%|██████▏ | 13/74 [00:15<00:46, 1.32it/s]
epoch 115 | loss 1.2145304679870605, f_iou 0.7170304656028748: 19%|██████▌ | 14/74 [00:15<00:45, 1.33it/s]
epoch 115 | loss 0.5954421758651733, f_iou 0.6845887303352356: 19%|██████▌ | 14/74 [00:16<00:45, 1.33it/s]
epoch 115 | loss 0.5954421758651733, f_iou 0.6845887303352356: 20%|███████ | 15/74 [00:16<00:43, 1.34it/s]
epoch 115 | loss 0.6318175196647644, f_iou 0.6976268887519836: 20%|███████ | 15/74 [00:17<00:43, 1.34it/s]
epoch 115 | loss 0.6318175196647644, f_iou 0.6976268887519836: 22%|███████▌ | 16/74 [00:17<00:42, 1.36it/s]
epoch 115 | loss 1.0037715435028076, f_iou 0.7118191719055176: 22%|███████▌ | 16/74 [00:18<00:42, 1.36it/s]
epoch 115 | loss 1.0037715435028076, f_iou 0.7118191719055176: 23%|████████ | 17/74 [00:18<00:41, 1.36it/s]
epoch 115 | loss 0.5356635451316833, f_iou 0.7227697372436523: 23%|████████ | 17/74 [00:18<00:41, 1.36it/s]
epoch 115 | loss 0.5356635451316833, f_iou 0.7227697372436523: 24%|████████▌ | 18/74 [00:18<00:40, 1.38it/s]
epoch 115 | loss 0.8486300110816956, f_iou 0.7299566864967346: 24%|████████▌ | 18/74 [00:19<00:40, 1.38it/s]
epoch 115 | loss 0.8486300110816956, f_iou 0.7299566864967346: 26%|████████▉ | 19/74 [00:19<00:39, 1.38it/s]
epoch 115 | loss 0.5995965003967285, f_iou 0.7382518649101257: 26%|████████▉ | 19/74 [00:20<00:39, 1.38it/s]
epoch 115 | loss 0.5995965003967285, f_iou 0.7382518649101257: 27%|█████████▍ | 20/74 [00:20<00:38, 1.39it/s]
epoch 115 | loss 1.9973183870315552, f_iou 0.7305388450622559: 27%|█████████▍ | 20/74 [00:20<00:38, 1.39it/s]
epoch 115 | loss 1.9973183870315552, f_iou 0.7305388450622559: 28%|█████████▉ | 21/74 [00:20<00:38, 1.39it/s]
epoch 115 | loss 0.6872627139091492, f_iou 0.7411805391311646: 28%|█████████▉ | 21/74 [00:21<00:38, 1.39it/s]
epoch 115 | loss 0.6872627139091492, f_iou 0.7411805391311646: 30%|██████████▍ | 22/74 [00:21<00:37, 1.39it/s]
epoch 115 | loss 1.2024625539779663, f_iou 0.7313070297241211: 30%|██████████▍ | 22/74 [00:22<00:37, 1.39it/s]
epoch 115 | loss 1.2024625539779663, f_iou 0.7313070297241211: 31%|██████████▉ | 23/74 [00:22<00:36, 1.39it/s]
epoch 115 | loss 0.5232407450675964, f_iou 0.7314194440841675: 31%|██████████▉ | 23/74 [00:23<00:36, 1.39it/s]
epoch 115 | loss 0.5232407450675964, f_iou 0.7314194440841675: 32%|███████████▎ | 24/74 [00:23<00:35, 1.39it/s]
epoch 115 | loss 1.2336769104003906, f_iou 0.7169176340103149: 32%|███████████▎ | 24/74 [00:23<00:35, 1.39it/s]
epoch 115 | loss 1.2336769104003906, f_iou 0.7169176340103149: 34%|███████████▊ | 25/74 [00:23<00:35, 1.39it/s]
epoch 115 | loss 1.8606266975402832, f_iou 0.7101019024848938: 34%|███████████▊ | 25/74 [00:24<00:35, 1.39it/s]
epoch 115 | loss 1.8606266975402832, f_iou 0.7101019024848938: 35%|████████████▎ | 26/74 [00:24<00:34, 1.38it/s]
epoch 115 | loss 1.0128837823867798, f_iou 0.7099754810333252: 35%|████████████▎ | 26/74 [00:25<00:34, 1.38it/s]
epoch 115 | loss 1.0128837823867798, f_iou 0.7099754810333252: 36%|████████████▊ | 27/74 [00:25<00:34, 1.38it/s]
epoch 115 | loss 1.3477318286895752, f_iou 0.7047345638275146: 36%|████████████▊ | 27/74 [00:26<00:34, 1.38it/s]
epoch 115 | loss 1.3477318286895752, f_iou 0.7047345638275146: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 115 | loss 1.2532411813735962, f_iou 0.7105243802070618: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 115 | loss 1.2532411813735962, f_iou 0.7105243802070618: 39%|█████████████▋ | 29/74 [00:26<00:32, 1.38it/s]
epoch 115 | loss 1.2235840559005737, f_iou 0.7110004425048828: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.38it/s]
epoch 115 | loss 1.2235840559005737, f_iou 0.7110004425048828: 41%|██████████████▏ | 30/74 [00:27<00:31, 1.38it/s]
epoch 115 | loss 1.2838751077651978, f_iou 0.7137971520423889: 41%|██████████████▏ | 30/74 [00:28<00:31, 1.38it/s]
epoch 115 | loss 1.2838751077651978, f_iou 0.7137971520423889: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.38it/s]
epoch 115 | loss 1.5431714057922363, f_iou 0.6953827738761902: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.38it/s]
epoch 115 | loss 1.5431714057922363, f_iou 0.6953827738761902: 43%|███████████████▏ | 32/74 [00:28<00:30, 1.39it/s]
epoch 115 | loss 0.8888201713562012, f_iou 0.6791132092475891: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.39it/s]
epoch 115 | loss 0.8888201713562012, f_iou 0.6791132092475891: 45%|███████████████▌ | 33/74 [00:29<00:29, 1.38it/s]
epoch 115 | loss 0.7975524067878723, f_iou 0.6842824816703796: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.38it/s]
epoch 115 | loss 0.7975524067878723, f_iou 0.6842824816703796: 46%|████████████████ | 34/74 [00:30<00:28, 1.38it/s]
epoch 115 | loss 0.8345066905021667, f_iou 0.6897237300872803: 46%|████████████████ | 34/74 [00:31<00:28, 1.38it/s]
epoch 115 | loss 0.8345066905021667, f_iou 0.6897237300872803: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 115 | loss 1.1058225631713867, f_iou 0.6773921847343445: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.39it/s]
epoch 115 | loss 1.1058225631713867, f_iou 0.6773921847343445: 49%|█████████████████ | 36/74 [00:31<00:27, 1.39it/s]
epoch 115 | loss 0.7389862537384033, f_iou 0.6815184950828552: 49%|█████████████████ | 36/74 [00:32<00:27, 1.39it/s]
epoch 115 | loss 0.7389862537384033, f_iou 0.6815184950828552: 50%|█████████████████▌ | 37/74 [00:32<00:26, 1.40it/s]
epoch 115 | loss 1.5723495483398438, f_iou 0.6779252886772156: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.40it/s]
epoch 115 | loss 1.5723495483398438, f_iou 0.6779252886772156: 51%|█████████████████▉ | 38/74 [00:33<00:25, 1.39it/s]
epoch 115 | loss 1.66614830493927, f_iou 0.6821339726448059: 51%|███████████████████ | 38/74 [00:33<00:25, 1.39it/s]
epoch 115 | loss 1.66614830493927, f_iou 0.6821339726448059: 53%|███████████████████▍ | 39/74 [00:33<00:25, 1.38it/s]
epoch 115 | loss 1.5565155744552612, f_iou 0.6817068457603455: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.38it/s]
epoch 115 | loss 1.5565155744552612, f_iou 0.6817068457603455: 54%|██████████████████▉ | 40/74 [00:34<00:24, 1.38it/s]
epoch 115 | loss 0.4680723547935486, f_iou 0.682313859462738: 54%|███████████████████▍ | 40/74 [00:35<00:24, 1.38it/s]
epoch 115 | loss 0.4680723547935486, f_iou 0.682313859462738: 55%|███████████████████▉ | 41/74 [00:35<00:23, 1.38it/s]
epoch 115 | loss 1.1316920518875122, f_iou 0.6733226180076599: 55%|███████████████████▍ | 41/74 [00:36<00:23, 1.38it/s]
epoch 115 | loss 1.1316920518875122, f_iou 0.6733226180076599: 57%|███████████████████▊ | 42/74 [00:36<00:23, 1.38it/s]
epoch 115 | loss 1.0051305294036865, f_iou 0.6723591089248657: 57%|███████████████████▊ | 42/74 [00:36<00:23, 1.38it/s]
epoch 115 | loss 1.0051305294036865, f_iou 0.6723591089248657: 58%|████████████████████▎ | 43/74 [00:36<00:22, 1.39it/s]
epoch 115 | loss 0.8319133520126343, f_iou 0.6742003560066223: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.39it/s]
epoch 115 | loss 0.8319133520126343, f_iou 0.6742003560066223: 59%|████████████████████▊ | 44/74 [00:37<00:21, 1.39it/s]
epoch 115 | loss 0.9199448823928833, f_iou 0.6776257157325745: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.39it/s]
epoch 115 | loss 0.9199448823928833, f_iou 0.6776257157325745: 61%|█████████████████████▎ | 45/74 [00:38<00:20, 1.39it/s]
epoch 115 | loss 0.0, f_iou 0.6827928423881531: 61%|██████████████████████████████▍ | 45/74 [00:39<00:20, 1.39it/s]
epoch 115 | loss 0.0, f_iou 0.6827928423881531: 62%|███████████████████████████████ | 46/74 [00:39<00:20, 1.39it/s]
epoch 115 | loss 0.9746593832969666, f_iou 0.6822079420089722: 62%|█████████████████████▊ | 46/74 [00:39<00:20, 1.39it/s]
epoch 115 | loss 0.9746593832969666, f_iou 0.6822079420089722: 64%|██████████████████████▏ | 47/74 [00:39<00:19, 1.40it/s]
epoch 115 | loss 0.3780286908149719, f_iou 0.6867220401763916: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.40it/s]
epoch 115 | loss 0.3780286908149719, f_iou 0.6867220401763916: 65%|██████████████████████▋ | 48/74 [00:40<00:18, 1.40it/s]
epoch 115 | loss 1.2107681035995483, f_iou 0.6875587701797485: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.40it/s]
epoch 115 | loss 1.2107681035995483, f_iou 0.6875587701797485: 66%|███████████████████████▏ | 49/74 [00:41<00:17, 1.41it/s]
epoch 115 | loss 0.6676165461540222, f_iou 0.6858787536621094: 66%|███████████████████████▏ | 49/74 [00:41<00:17, 1.41it/s]
epoch 115 | loss 0.6676165461540222, f_iou 0.6858787536621094: 68%|███████████████████████▋ | 50/74 [00:41<00:17, 1.40it/s]
epoch 115 | loss 0.44373878836631775, f_iou 0.673764705657959: 68%|███████████████████████▋ | 50/74 [00:42<00:17, 1.40it/s]
epoch 115 | loss 0.44373878836631775, f_iou 0.673764705657959: 69%|████████████████████████ | 51/74 [00:42<00:16, 1.40it/s]
epoch 115 | loss 0.5952568650245667, f_iou 0.6778111457824707: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.40it/s]
epoch 115 | loss 0.5952568650245667, f_iou 0.6778111457824707: 70%|████████████████████████▌ | 52/74 [00:43<00:15, 1.40it/s]
epoch 115 | loss 1.129705548286438, f_iou 0.678135871887207: 70%|██████████████████████████ | 52/74 [00:44<00:15, 1.40it/s]
epoch 115 | loss 1.129705548286438, f_iou 0.678135871887207: 72%|██████████████████████████▌ | 53/74 [00:44<00:15, 1.40it/s]
epoch 115 | loss 1.3264703750610352, f_iou 0.6808779835700989: 72%|█████████████████████████ | 53/74 [00:44<00:15, 1.40it/s]
epoch 115 | loss 1.3264703750610352, f_iou 0.6808779835700989: 73%|█████████████████████████▌ | 54/74 [00:44<00:14, 1.39it/s]
epoch 115 | loss 1.762076735496521, f_iou 0.6828272342681885: 73%|██████████████████████████▎ | 54/74 [00:45<00:14, 1.39it/s]
epoch 115 | loss 1.762076735496521, f_iou 0.6828272342681885: 74%|██████████████████████████▊ | 55/74 [00:45<00:13, 1.38it/s]
epoch 115 | loss 1.069094181060791, f_iou 0.6839666962623596: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.38it/s]
epoch 115 | loss 1.069094181060791, f_iou 0.6839666962623596: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.37it/s]
epoch 115 | loss 0.4073520302772522, f_iou 0.688809335231781: 76%|███████████████████████████▏ | 56/74 [00:46<00:13, 1.37it/s]
epoch 115 | loss 0.4073520302772522, f_iou 0.688809335231781: 77%|███████████████████████████▋ | 57/74 [00:46<00:12, 1.37it/s]
epoch 115 | loss 0.5578515529632568, f_iou 0.6921026706695557: 77%|██████████████████████████▉ | 57/74 [00:47<00:12, 1.37it/s]
epoch 115 | loss 0.5578515529632568, f_iou 0.6921026706695557: 78%|███████████████████████████▍ | 58/74 [00:47<00:11, 1.38it/s]
epoch 115 | loss 0.7377450466156006, f_iou 0.695512056350708: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.38it/s]
epoch 115 | loss 0.7377450466156006, f_iou 0.695512056350708: 80%|████████████████████████████▋ | 59/74 [00:48<00:10, 1.39it/s]
epoch 115 | loss 1.2065765857696533, f_iou 0.6989495754241943: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.39it/s]
epoch 115 | loss 1.2065765857696533, f_iou 0.6989495754241943: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.39it/s]
epoch 115 | loss 1.2196160554885864, f_iou 0.6962820291519165: 81%|████████████████████████████▍ | 60/74 [00:49<00:10, 1.39it/s]
epoch 115 | loss 1.2196160554885864, f_iou 0.6962820291519165: 82%|████████████████████████████▊ | 61/74 [00:49<00:09, 1.39it/s]
epoch 115 | loss 0.4235263466835022, f_iou 0.6940675973892212: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.39it/s]
epoch 115 | loss 0.4235263466835022, f_iou 0.6940675973892212: 84%|█████████████████████████████▎ | 62/74 [00:50<00:08, 1.39it/s]
epoch 115 | loss 0.46481460332870483, f_iou 0.6830673813819885: 84%|████████████████████████████▍ | 62/74 [00:51<00:08, 1.39it/s]
epoch 115 | loss 0.46481460332870483, f_iou 0.6830673813819885: 85%|████████████████████████████▉ | 63/74 [00:51<00:07, 1.39it/s]
epoch 115 | loss 1.900274634361267, f_iou 0.6819462776184082: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.39it/s]
epoch 115 | loss 1.900274634361267, f_iou 0.6819462776184082: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.36it/s]
epoch 115 | loss 0.9297366142272949, f_iou 0.679633617401123: 86%|███████████████████████████████▏ | 64/74 [00:52<00:07, 1.36it/s]
epoch 115 | loss 0.9297366142272949, f_iou 0.679633617401123: 88%|███████████████████████████████▌ | 65/74 [00:52<00:06, 1.35it/s]
epoch 115 | loss 0.3368718922138214, f_iou 0.6726117134094238: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.35it/s]
epoch 115 | loss 0.3368718922138214, f_iou 0.6726117134094238: 89%|███████████████████████████████▏ | 66/74 [00:53<00:05, 1.36it/s]
epoch 115 | loss 1.4089586734771729, f_iou 0.6726853251457214: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.36it/s]
epoch 115 | loss 1.4089586734771729, f_iou 0.6726853251457214: 91%|███████████████████████████████▋ | 67/74 [00:54<00:05, 1.37it/s]
epoch 115 | loss 1.0768600702285767, f_iou 0.6735532283782959: 91%|███████████████████████████████▋ | 67/74 [00:54<00:05, 1.37it/s]
epoch 115 | loss 1.0768600702285767, f_iou 0.6735532283782959: 92%|████████████████████████████████▏ | 68/74 [00:54<00:04, 1.38it/s]
epoch 115 | loss 1.186203956604004, f_iou 0.6650945544242859: 92%|█████████████████████████████████ | 68/74 [00:55<00:04, 1.38it/s]
epoch 115 | loss 1.186203956604004, f_iou 0.6650945544242859: 93%|█████████████████████████████████▌ | 69/74 [00:55<00:03, 1.39it/s]
epoch 115 | loss 0.5240929126739502, f_iou 0.6684145331382751: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.39it/s]
epoch 115 | loss 0.5240929126739502, f_iou 0.6684145331382751: 95%|█████████████████████████████████ | 70/74 [00:56<00:02, 1.39it/s]
epoch 115 | loss 0.6236613988876343, f_iou 0.6726349592208862: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 115 | loss 0.6236613988876343, f_iou 0.6726349592208862: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 115 | loss 0.7337009906768799, f_iou 0.6764447689056396: 96%|█████████████████████████████████▌ | 71/74 [00:57<00:02, 1.40it/s]
epoch 115 | loss 0.7337009906768799, f_iou 0.6764447689056396: 97%|██████████████████████████████████ | 72/74 [00:57<00:01, 1.40it/s]
epoch 115 | loss 0.5161331295967102, f_iou 0.6789198517799377: 97%|██████████████████████████████████ | 72/74 [00:58<00:01, 1.40it/s]
epoch 115 | loss 0.5161331295967102, f_iou 0.6789198517799377: 99%|██████████████████████████████████▌| 73/74 [00:58<00:00, 1.40it/s]
epoch 115 | loss 1.183530569076538, f_iou 0.6795905828475952: 99%|███████████████████████████████████▌| 73/74 [00:59<00:00, 1.40it/s]
epoch 115 | loss 1.183530569076538, f_iou 0.6795905828475952: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.40it/s]
epoch 115 | loss 1.183530569076538, f_iou 0.6795905828475952: 100%|████████████████████████████████████| 74/74 [00:59<00:00, 1.25it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 115 | valid.f_iou 0.7453100085258484, valid.f_f-score 0.84683: 0%| | 0/16 [00:05, ?it/s]
epoch 115 | valid.f_iou 0.7453100085258484, valid.f_f-score 0.84683: 6%|█▉ | 1/16 [00:05<01:23, 5.59s/it]
epoch 115 | valid.f_iou 0.7170900106430054, valid.f_f-score 0.86182: 6%|█▉ | 1/16 [00:06<01:23, 5.59s/it]
epoch 115 | valid.f_iou 0.7170900106430054, valid.f_f-score 0.86182: 12%|███▊ | 2/16 [00:06<00:35, 2.57s/it]
epoch 115 | valid.f_iou 0.5746200084686279, valid.f_f-score 0.77163: 12%|███▊ | 2/16 [00:06<00:35, 2.57s/it]
epoch 115 | valid.f_iou 0.5746200084686279, valid.f_f-score 0.77163: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 115 | valid.f_iou 0.6023899912834167, valid.f_f-score 0.75206: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 115 | valid.f_iou 0.6023899912834167, valid.f_f-score 0.75206: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 115 | valid.f_iou 0.6176499724388123, valid.f_f-score 0.77014: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 115 | valid.f_iou 0.6176499724388123, valid.f_f-score 0.77014: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 115 | valid.f_iou 0.5722699761390686, valid.f_f-score 0.72813: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 115 | valid.f_iou 0.5722699761390686, valid.f_f-score 0.72813: 38%|███████████▎ | 6/16 [00:07<00:07, 1.33it/s]
epoch 115 | valid.f_iou 0.5982300043106079, valid.f_f-score 0.75231: 38%|███████████▎ | 6/16 [00:08<00:07, 1.33it/s]
epoch 115 | valid.f_iou 0.5982300043106079, valid.f_f-score 0.75231: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 115 | valid.f_iou 0.5682799816131592, valid.f_f-score 0.73448: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 115 | valid.f_iou 0.5682799816131592, valid.f_f-score 0.73448: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 115 | valid.f_iou 0.5865100026130676, valid.f_f-score 0.74365: 50%|███████████████ | 8/16 [00:09<00:04, 1.72it/s]
epoch 115 | valid.f_iou 0.5865100026130676, valid.f_f-score 0.74365: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.92it/s]
epoch 115 | valid.f_iou 0.5832700133323669, valid.f_f-score 0.74426: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.92it/s]
epoch 115 | valid.f_iou 0.5832700133323669, valid.f_f-score 0.74426: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.01it/s]
epoch 115 | valid.f_iou 0.5869500041007996, valid.f_f-score 0.74372: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.01it/s]
epoch 115 | valid.f_iou 0.5869500041007996, valid.f_f-score 0.74372: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 115 | valid.f_iou 0.6085100173950195, valid.f_f-score 0.75919: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 115 | valid.f_iou 0.6085100173950195, valid.f_f-score 0.75919: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.12it/s]
epoch 115 | valid.f_iou 0.6160699725151062, valid.f_f-score 0.76523: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.12it/s]
epoch 115 | valid.f_iou 0.6160699725151062, valid.f_f-score 0.76523: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.15it/s]
epoch 115 | valid.f_iou 0.6094099879264832, valid.f_f-score 0.75899: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.15it/s]
epoch 115 | valid.f_iou 0.6094099879264832, valid.f_f-score 0.75899: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.18it/s]
epoch 115 | valid.f_iou 0.6149700284004211, valid.f_f-score 0.7591: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.18it/s]
epoch 115 | valid.f_iou 0.6149700284004211, valid.f_f-score 0.7591: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.32it/s]
epoch 115 | valid.f_iou 0.6169499754905701, valid.f_f-score 0.75628: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.32it/s]
epoch 115 | valid.f_iou 0.6169499754905701, valid.f_f-score 0.75628: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.43it/s]
epoch 115 | valid.f_iou 0.6169499754905701, valid.f_f-score 0.75628: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 115 | valid.f_iou 0.8023800253868103, valid.f_f-score 0.78556: 0%| | 0/16 [00:04, ?it/s]
epoch 115 | valid.f_iou 0.8023800253868103, valid.f_f-score 0.78556: 6%|█▉ | 1/16 [00:04<01:08, 4.54s/it]
epoch 115 | valid.f_iou 0.8394399881362915, valid.f_f-score 0.86361: 6%|█▉ | 1/16 [00:05<01:08, 4.54s/it]
epoch 115 | valid.f_iou 0.8394399881362915, valid.f_f-score 0.86361: 12%|███▊ | 2/16 [00:05<00:32, 2.30s/it]
epoch 115 | valid.f_iou 0.7844600081443787, valid.f_f-score 0.85251: 12%|███▊ | 2/16 [00:05<00:32, 2.30s/it]
epoch 115 | valid.f_iou 0.7844600081443787, valid.f_f-score 0.85251: 19%|█████▋ | 3/16 [00:05<00:18, 1.46s/it]
epoch 115 | valid.f_iou 0.7693700194358826, valid.f_f-score 0.81846: 19%|█████▋ | 3/16 [00:06<00:18, 1.46s/it]
epoch 115 | valid.f_iou 0.7693700194358826, valid.f_f-score 0.81846: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 115 | valid.f_iou 0.7525299787521362, valid.f_f-score 0.82449: 25%|███████▌ | 4/16 [00:06<00:12, 1.07s/it]
epoch 115 | valid.f_iou 0.7525299787521362, valid.f_f-score 0.82449: 31%|█████████▍ | 5/16 [00:06<00:09, 1.18it/s]
epoch 115 | valid.f_iou 0.7332599759101868, valid.f_f-score 0.80784: 31%|█████████▍ | 5/16 [00:07<00:09, 1.18it/s]
epoch 115 | valid.f_iou 0.7332599759101868, valid.f_f-score 0.80784: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 115 | valid.f_iou 0.7480700016021729, valid.f_f-score 0.82696: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 115 | valid.f_iou 0.7480700016021729, valid.f_f-score 0.82696: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.68it/s]
epoch 115 | valid.f_iou 0.734000027179718, valid.f_f-score 0.82307: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.68it/s]
epoch 115 | valid.f_iou 0.734000027179718, valid.f_f-score 0.82307: 50%|███████████████▌ | 8/16 [00:07<00:04, 1.83it/s]
epoch 115 | valid.f_iou 0.7367200255393982, valid.f_f-score 0.82437: 50%|███████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 115 | valid.f_iou 0.7367200255393982, valid.f_f-score 0.82437: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.06it/s]
epoch 115 | valid.f_iou 0.7505800127983093, valid.f_f-score 0.83518: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.06it/s]
epoch 115 | valid.f_iou 0.7505800127983093, valid.f_f-score 0.83518: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.11it/s]
epoch 115 | valid.f_iou 0.7403900027275085, valid.f_f-score 0.8232: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.11it/s]
epoch 115 | valid.f_iou 0.7403900027275085, valid.f_f-score 0.8232: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.16it/s]
epoch 115 | valid.f_iou 0.7506700158119202, valid.f_f-score 0.8323: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.16it/s]
epoch 115 | valid.f_iou 0.7506700158119202, valid.f_f-score 0.8323: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.20it/s]
epoch 115 | valid.f_iou 0.758620023727417, valid.f_f-score 0.83827: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.20it/s]
epoch 115 | valid.f_iou 0.758620023727417, valid.f_f-score 0.83827: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.32it/s]
epoch 115 | valid.f_iou 0.7474200129508972, valid.f_f-score 0.8292: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.32it/s]
epoch 115 | valid.f_iou 0.7474200129508972, valid.f_f-score 0.8292: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.43it/s]
epoch 115 | valid.f_iou 0.7567200064659119, valid.f_f-score 0.83778: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.43it/s]
epoch 115 | valid.f_iou 0.7567200064659119, valid.f_f-score 0.83778: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.51it/s]
epoch 115 | valid.f_iou 0.7533599734306335, valid.f_f-score 0.83507: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 115 | valid.f_iou 0.7533599734306335, valid.f_f-score 0.83507: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.55it/s]
epoch 115 | valid.f_iou 0.7533599734306335, valid.f_f-score 0.83507: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.45it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 115 | valid.f_iou 0.8023800253868103, valid.f_f-score 0.78556: 0%| | 0/16 [00:05, ?it/s]
epoch 115 | valid.f_iou 0.8023800253868103, valid.f_f-score 0.78556: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 115 | valid.f_iou 0.8394399881362915, valid.f_f-score 0.86361: 6%|█▉ | 1/16 [00:05<01:19, 5.27s/it]
epoch 115 | valid.f_iou 0.8394399881362915, valid.f_f-score 0.86361: 12%|███▊ | 2/16 [00:05<00:34, 2.45s/it]
epoch 115 | valid.f_iou 0.7844600081443787, valid.f_f-score 0.85251: 12%|███▊ | 2/16 [00:06<00:34, 2.45s/it]
epoch 115 | valid.f_iou 0.7844600081443787, valid.f_f-score 0.85251: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 115 | valid.f_iou 0.769540011882782, valid.f_f-score 0.81846: 19%|█████▊ | 3/16 [00:06<00:20, 1.55s/it]
epoch 115 | valid.f_iou 0.769540011882782, valid.f_f-score 0.81846: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 115 | valid.f_iou 0.7603099942207336, valid.f_f-score 0.82449: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 115 | valid.f_iou 0.7603099942207336, valid.f_f-score 0.82449: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 115 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.80784: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 115 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.80784: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 115 | valid.f_iou 0.7554000020027161, valid.f_f-score 0.82696: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 115 | valid.f_iou 0.7554000020027161, valid.f_f-score 0.82696: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 115 | valid.f_iou 0.7404199838638306, valid.f_f-score 0.82307: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 115 | valid.f_iou 0.7404199838638306, valid.f_f-score 0.82307: 50%|███████████████ | 8/16 [00:08<00:04, 1.71it/s]
epoch 115 | valid.f_iou 0.744379997253418, valid.f_f-score 0.82437: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.71it/s]
epoch 115 | valid.f_iou 0.744379997253418, valid.f_f-score 0.82437: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 115 | valid.f_iou 0.7535099983215332, valid.f_f-score 0.83169: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 115 | valid.f_iou 0.7535099983215332, valid.f_f-score 0.83169: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 115 | valid.f_iou 0.7430599927902222, valid.f_f-score 0.82004: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 115 | valid.f_iou 0.7430599927902222, valid.f_f-score 0.82004: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.04it/s]
epoch 115 | valid.f_iou 0.7531200051307678, valid.f_f-score 0.8294: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.04it/s]
epoch 115 | valid.f_iou 0.7531200051307678, valid.f_f-score 0.8294: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.11it/s]
epoch 115 | valid.f_iou 0.7608199715614319, valid.f_f-score 0.83621: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.11it/s]
epoch 115 | valid.f_iou 0.7608199715614319, valid.f_f-score 0.83621: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.15it/s]
epoch 115 | valid.f_iou 0.749459981918335, valid.f_f-score 0.8273: 81%|█████████████████████████▏ | 13/16 [00:11<00:01, 2.15it/s]
epoch 115 | valid.f_iou 0.749459981918335, valid.f_f-score 0.8273: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.18it/s]
epoch 115 | valid.f_iou 0.7586299777030945, valid.f_f-score 0.836: 88%|███████████████████████████▏ | 14/16 [00:11<00:00, 2.18it/s]
epoch 115 | valid.f_iou 0.7586299777030945, valid.f_f-score 0.836: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.20it/s]
epoch 115 | valid.f_iou 0.7556399703025818, valid.f_f-score 0.8334: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.20it/s]
epoch 115 | valid.f_iou 0.7556399703025818, valid.f_f-score 0.8334: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.21it/s]
epoch 115 | valid.f_iou 0.7556399703025818, valid.f_f-score 0.8334: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.33it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 116 | loss 0.8673213124275208, f_iou 0.6436823606491089: 0%| | 0/74 [00:06, ?it/s]
epoch 116 | loss 0.8673213124275208, f_iou 0.6436823606491089: 1%|▍ | 1/74 [00:06<08:15, 6.79s/it]
epoch 116 | loss 0.20099639892578125, f_iou 0.6733318567276001: 1%|▍ | 1/74 [00:07<08:15, 6.79s/it]
epoch 116 | loss 0.20099639892578125, f_iou 0.6733318567276001: 3%|▉ | 2/74 [00:07<03:55, 3.28s/it]
epoch 116 | loss 0.6938382387161255, f_iou 0.7402575016021729: 3%|▉ | 2/74 [00:08<03:55, 3.28s/it]
epoch 116 | loss 0.6938382387161255, f_iou 0.7402575016021729: 4%|█▍ | 3/74 [00:08<02:35, 2.18s/it]
epoch 116 | loss 1.073293685913086, f_iou 0.643172025680542: 4%|█▌ | 3/74 [00:09<02:35, 2.18s/it]
epoch 116 | loss 1.073293685913086, f_iou 0.643172025680542: 5%|██ | 4/74 [00:09<01:54, 1.64s/it]
epoch 116 | loss 0.5861198902130127, f_iou 0.6961087584495544: 5%|█▉ | 4/74 [00:10<01:54, 1.64s/it]
epoch 116 | loss 0.5861198902130127, f_iou 0.6961087584495544: 7%|██▍ | 5/74 [00:10<01:32, 1.34s/it]
epoch 116 | loss 0.6898701786994934, f_iou 0.6902195811271667: 7%|██▍ | 5/74 [00:10<01:32, 1.34s/it]
epoch 116 | loss 0.6898701786994934, f_iou 0.6902195811271667: 8%|██▉ | 6/74 [00:10<01:20, 1.18s/it]
epoch 116 | loss 1.0368432998657227, f_iou 0.6149893999099731: 8%|██▉ | 6/74 [00:11<01:20, 1.18s/it]
epoch 116 | loss 1.0368432998657227, f_iou 0.6149893999099731: 9%|███▍ | 7/74 [00:11<01:11, 1.06s/it]
epoch 116 | loss 1.0456820726394653, f_iou 0.6407268643379211: 9%|███▍ | 7/74 [00:12<01:11, 1.06s/it]
epoch 116 | loss 1.0456820726394653, f_iou 0.6407268643379211: 11%|███▉ | 8/74 [00:12<01:04, 1.03it/s]
epoch 116 | loss 1.4822558164596558, f_iou 0.6637192964553833: 11%|███▉ | 8/74 [00:13<01:04, 1.03it/s]
epoch 116 | loss 1.4822558164596558, f_iou 0.6637192964553833: 12%|████▍ | 9/74 [00:13<00:59, 1.09it/s]
epoch 116 | loss 1.5892282724380493, f_iou 0.6707770228385925: 12%|████▍ | 9/74 [00:14<00:59, 1.09it/s]
epoch 116 | loss 1.5892282724380493, f_iou 0.6707770228385925: 14%|████▋ | 10/74 [00:14<00:57, 1.12it/s]
epoch 116 | loss 1.5178710222244263, f_iou 0.6605719327926636: 14%|████▋ | 10/74 [00:15<00:57, 1.12it/s]
epoch 116 | loss 1.5178710222244263, f_iou 0.6605719327926636: 15%|█████▏ | 11/74 [00:15<00:54, 1.16it/s]
epoch 116 | loss 0.7580834627151489, f_iou 0.6834318041801453: 15%|█████▏ | 11/74 [00:15<00:54, 1.16it/s]
epoch 116 | loss 0.7580834627151489, f_iou 0.6834318041801453: 16%|█████▋ | 12/74 [00:15<00:52, 1.19it/s]
epoch 116 | loss 0.2855643630027771, f_iou 0.7054935693740845: 16%|█████▋ | 12/74 [00:16<00:52, 1.19it/s]
epoch 116 | loss 0.2855643630027771, f_iou 0.7054935693740845: 18%|██████▏ | 13/74 [00:16<00:52, 1.16it/s]
epoch 116 | loss 0.675410270690918, f_iou 0.7119038701057434: 18%|██████▎ | 13/74 [00:17<00:52, 1.16it/s]
epoch 116 | loss 0.675410270690918, f_iou 0.7119038701057434: 19%|██████▊ | 14/74 [00:17<00:50, 1.19it/s]
epoch 116 | loss 1.2408901453018188, f_iou 0.708672821521759: 19%|██████▊ | 14/74 [00:18<00:50, 1.19it/s]
epoch 116 | loss 1.2408901453018188, f_iou 0.708672821521759: 20%|███████▎ | 15/74 [00:18<00:48, 1.22it/s]
epoch 116 | loss 0.35798758268356323, f_iou 0.7215213775634766: 20%|██████▉ | 15/74 [00:19<00:48, 1.22it/s]
epoch 116 | loss 0.35798758268356323, f_iou 0.7215213775634766: 22%|███████▎ | 16/74 [00:19<00:46, 1.23it/s]
epoch 116 | loss 0.6373902559280396, f_iou 0.7326239347457886: 22%|███████▌ | 16/74 [00:19<00:46, 1.23it/s]
epoch 116 | loss 0.6373902559280396, f_iou 0.7326239347457886: 23%|████████ | 17/74 [00:19<00:45, 1.25it/s]
epoch 116 | loss 1.1263786554336548, f_iou 0.7370213866233826: 23%|████████ | 17/74 [00:20<00:45, 1.25it/s]
epoch 116 | loss 1.1263786554336548, f_iou 0.7370213866233826: 24%|████████▌ | 18/74 [00:20<00:44, 1.26it/s]
epoch 116 | loss 1.0870152711868286, f_iou 0.7419694662094116: 24%|████████▌ | 18/74 [00:21<00:44, 1.26it/s]
epoch 116 | loss 1.0870152711868286, f_iou 0.7419694662094116: 26%|████████▉ | 19/74 [00:21<00:42, 1.29it/s]
epoch 116 | loss 1.414684772491455, f_iou 0.7305275797843933: 26%|█████████▏ | 19/74 [00:22<00:42, 1.29it/s]
epoch 116 | loss 1.414684772491455, f_iou 0.7305275797843933: 27%|█████████▋ | 20/74 [00:22<00:40, 1.32it/s]
epoch 116 | loss 0.8854991793632507, f_iou 0.7344669699668884: 27%|█████████▍ | 20/74 [00:22<00:40, 1.32it/s]
epoch 116 | loss 0.8854991793632507, f_iou 0.7344669699668884: 28%|█████████▉ | 21/74 [00:22<00:39, 1.34it/s]
epoch 116 | loss 1.4052830934524536, f_iou 0.733430027961731: 28%|██████████▏ | 21/74 [00:23<00:39, 1.34it/s]
epoch 116 | loss 1.4052830934524536, f_iou 0.733430027961731: 30%|██████████▋ | 22/74 [00:23<00:39, 1.31it/s]
epoch 116 | loss 0.45010098814964294, f_iou 0.7332535982131958: 30%|██████████ | 22/74 [00:24<00:39, 1.31it/s]
epoch 116 | loss 0.45010098814964294, f_iou 0.7332535982131958: 31%|██████████▌ | 23/74 [00:24<00:39, 1.30it/s]
epoch 116 | loss 0.9788221120834351, f_iou 0.7331656217575073: 31%|██████████▉ | 23/74 [00:25<00:39, 1.30it/s]
epoch 116 | loss 0.9788221120834351, f_iou 0.7331656217575073: 32%|███████████▎ | 24/74 [00:25<00:37, 1.33it/s]
epoch 116 | loss 0.33138516545295715, f_iou 0.7414985299110413: 32%|███████████ | 24/74 [00:25<00:37, 1.33it/s]
epoch 116 | loss 0.33138516545295715, f_iou 0.7414985299110413: 34%|███████████▍ | 25/74 [00:25<00:36, 1.35it/s]
epoch 116 | loss 1.1089177131652832, f_iou 0.7386468052864075: 34%|███████████▊ | 25/74 [00:26<00:36, 1.35it/s]
epoch 116 | loss 1.1089177131652832, f_iou 0.7386468052864075: 35%|████████████▎ | 26/74 [00:26<00:36, 1.33it/s]
epoch 116 | loss 1.527980923652649, f_iou 0.735802948474884: 35%|█████████████ | 26/74 [00:27<00:36, 1.33it/s]
epoch 116 | loss 1.527980923652649, f_iou 0.735802948474884: 36%|█████████████▌ | 27/74 [00:27<00:35, 1.31it/s]
epoch 116 | loss 0.5516154766082764, f_iou 0.7265099287033081: 36%|████████████▊ | 27/74 [00:28<00:35, 1.31it/s]
epoch 116 | loss 0.5516154766082764, f_iou 0.7265099287033081: 38%|█████████████▏ | 28/74 [00:28<00:35, 1.30it/s]
epoch 116 | loss 0.42776980996131897, f_iou 0.7344177961349487: 38%|████████████▊ | 28/74 [00:28<00:35, 1.30it/s]
epoch 116 | loss 0.42776980996131897, f_iou 0.7344177961349487: 39%|█████████████▎ | 29/74 [00:28<00:34, 1.31it/s]
epoch 116 | loss 0.8846087455749512, f_iou 0.7162262797355652: 39%|█████████████▋ | 29/74 [00:29<00:34, 1.31it/s]
epoch 116 | loss 0.8846087455749512, f_iou 0.7162262797355652: 41%|██████████████▏ | 30/74 [00:29<00:33, 1.31it/s]
epoch 116 | loss 1.0373369455337524, f_iou 0.7022689580917358: 41%|██████████████▏ | 30/74 [00:30<00:33, 1.31it/s]
epoch 116 | loss 1.0373369455337524, f_iou 0.7022689580917358: 42%|██████████████▋ | 31/74 [00:30<00:32, 1.31it/s]
epoch 116 | loss 0.3857063055038452, f_iou 0.7102420330047607: 42%|██████████████▋ | 31/74 [00:31<00:32, 1.31it/s]
epoch 116 | loss 0.3857063055038452, f_iou 0.7102420330047607: 43%|███████████████▏ | 32/74 [00:31<00:32, 1.31it/s]
epoch 116 | loss 0.6991833448410034, f_iou 0.7165934443473816: 43%|███████████████▏ | 32/74 [00:31<00:32, 1.31it/s]
epoch 116 | loss 0.6991833448410034, f_iou 0.7165934443473816: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.31it/s]
epoch 116 | loss 1.6301215887069702, f_iou 0.7142786979675293: 45%|███████████████▌ | 33/74 [00:32<00:31, 1.31it/s]
epoch 116 | loss 1.6301215887069702, f_iou 0.7142786979675293: 46%|████████████████ | 34/74 [00:32<00:30, 1.31it/s]
epoch 116 | loss 0.6119754910469055, f_iou 0.7201060652732849: 46%|████████████████ | 34/74 [00:33<00:30, 1.31it/s]
epoch 116 | loss 0.6119754910469055, f_iou 0.7201060652732849: 47%|████████████████▌ | 35/74 [00:33<00:29, 1.31it/s]
epoch 116 | loss 1.0230706930160522, f_iou 0.7236431241035461: 47%|████████████████▌ | 35/74 [00:34<00:29, 1.31it/s]
epoch 116 | loss 1.0230706930160522, f_iou 0.7236431241035461: 49%|█████████████████ | 36/74 [00:34<00:29, 1.31it/s]
epoch 116 | loss 1.206583023071289, f_iou 0.7160074710845947: 49%|█████████████████▌ | 36/74 [00:35<00:29, 1.31it/s]
epoch 116 | loss 1.206583023071289, f_iou 0.7160074710845947: 50%|██████████████████ | 37/74 [00:35<00:28, 1.31it/s]
epoch 116 | loss 0.44899964332580566, f_iou 0.719556987285614: 50%|█████████████████▌ | 37/74 [00:35<00:28, 1.31it/s]
epoch 116 | loss 0.44899964332580566, f_iou 0.719556987285614: 51%|█████████████████▉ | 38/74 [00:35<00:27, 1.31it/s]
epoch 116 | loss 1.5845341682434082, f_iou 0.7096585035324097: 51%|█████████████████▉ | 38/74 [00:36<00:27, 1.31it/s]
epoch 116 | loss 1.5845341682434082, f_iou 0.7096585035324097: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.28it/s]
epoch 116 | loss 1.6808176040649414, f_iou 0.7065157890319824: 53%|██████████████████▍ | 39/74 [00:37<00:27, 1.28it/s]
epoch 116 | loss 1.6808176040649414, f_iou 0.7065157890319824: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.28it/s]
epoch 116 | loss 1.1597425937652588, f_iou 0.6943025588989258: 54%|██████████████████▉ | 40/74 [00:38<00:26, 1.28it/s]
epoch 116 | loss 1.1597425937652588, f_iou 0.6943025588989258: 55%|███████████████████▍ | 41/74 [00:38<00:25, 1.29it/s]
epoch 116 | loss 0.9553730487823486, f_iou 0.698503851890564: 55%|███████████████████▉ | 41/74 [00:38<00:25, 1.29it/s]
epoch 116 | loss 0.9553730487823486, f_iou 0.698503851890564: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.32it/s]
epoch 116 | loss 1.4108030796051025, f_iou 0.6974829435348511: 57%|███████████████████▊ | 42/74 [00:39<00:24, 1.32it/s]
epoch 116 | loss 1.4108030796051025, f_iou 0.6974829435348511: 58%|████████████████████▎ | 43/74 [00:39<00:23, 1.34it/s]
epoch 116 | loss 1.1277199983596802, f_iou 0.6955865025520325: 58%|████████████████████▎ | 43/74 [00:40<00:23, 1.34it/s]
epoch 116 | loss 1.1277199983596802, f_iou 0.6955865025520325: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.36it/s]
epoch 116 | loss 0.5900310277938843, f_iou 0.6995878219604492: 59%|████████████████████▊ | 44/74 [00:41<00:22, 1.36it/s]
epoch 116 | loss 0.5900310277938843, f_iou 0.6995878219604492: 61%|█████████████████████▎ | 45/74 [00:41<00:21, 1.37it/s]
epoch 116 | loss 0.47930455207824707, f_iou 0.7057381868362427: 61%|████████████████████▋ | 45/74 [00:41<00:21, 1.37it/s]
epoch 116 | loss 0.47930455207824707, f_iou 0.7057381868362427: 62%|█████████████████████▏ | 46/74 [00:41<00:20, 1.38it/s]
epoch 116 | loss 0.42316293716430664, f_iou 0.7113197445869446: 62%|█████████████████████▏ | 46/74 [00:42<00:20, 1.38it/s]
epoch 116 | loss 0.42316293716430664, f_iou 0.7113197445869446: 64%|█████████████████████▌ | 47/74 [00:42<00:19, 1.38it/s]
epoch 116 | loss 2.0704736709594727, f_iou 0.7150787115097046: 64%|██████████████████████▏ | 47/74 [00:43<00:19, 1.38it/s]
epoch 116 | loss 2.0704736709594727, f_iou 0.7150787115097046: 65%|██████████████████████▋ | 48/74 [00:43<00:18, 1.38it/s]
epoch 116 | loss 0.596582293510437, f_iou 0.716584324836731: 65%|████████████████████████ | 48/74 [00:43<00:18, 1.38it/s]
epoch 116 | loss 0.596582293510437, f_iou 0.716584324836731: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.37it/s]
epoch 116 | loss 1.1435648202896118, f_iou 0.7190514802932739: 66%|███████████████████████▏ | 49/74 [00:44<00:18, 1.37it/s]
epoch 116 | loss 1.1435648202896118, f_iou 0.7190514802932739: 68%|███████████████████████▋ | 50/74 [00:44<00:17, 1.38it/s]
epoch 116 | loss 1.1079106330871582, f_iou 0.7230548858642578: 68%|███████████████████████▋ | 50/74 [00:45<00:17, 1.38it/s]
epoch 116 | loss 1.1079106330871582, f_iou 0.7230548858642578: 69%|████████████████████████ | 51/74 [00:45<00:16, 1.39it/s]
epoch 116 | loss 0.759520411491394, f_iou 0.7236063480377197: 69%|████████████████████████▊ | 51/74 [00:46<00:16, 1.39it/s]
epoch 116 | loss 0.759520411491394, f_iou 0.7236063480377197: 70%|█████████████████████████▎ | 52/74 [00:46<00:15, 1.39it/s]
epoch 116 | loss 1.5141334533691406, f_iou 0.7277366518974304: 70%|████████████████████████▌ | 52/74 [00:46<00:15, 1.39it/s]
epoch 116 | loss 1.5141334533691406, f_iou 0.7277366518974304: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.39it/s]
epoch 116 | loss 0.9960235357284546, f_iou 0.7303757071495056: 72%|█████████████████████████ | 53/74 [00:47<00:15, 1.39it/s]
epoch 116 | loss 0.9960235357284546, f_iou 0.7303757071495056: 73%|█████████████████████████▌ | 54/74 [00:47<00:14, 1.39it/s]
epoch 116 | loss 0.8882363438606262, f_iou 0.73264479637146: 73%|███████████████████████████ | 54/74 [00:48<00:14, 1.39it/s]
epoch 116 | loss 0.8882363438606262, f_iou 0.73264479637146: 74%|███████████████████████████▌ | 55/74 [00:48<00:13, 1.40it/s]
epoch 116 | loss 1.2116619348526, f_iou 0.733211874961853: 74%|████████████████████████████▉ | 55/74 [00:48<00:13, 1.40it/s]
epoch 116 | loss 1.2116619348526, f_iou 0.733211874961853: 76%|█████████████████████████████▌ | 56/74 [00:48<00:12, 1.39it/s]
epoch 116 | loss 0.34811392426490784, f_iou 0.7374093532562256: 76%|█████████████████████████▋ | 56/74 [00:49<00:12, 1.39it/s]
epoch 116 | loss 0.34811392426490784, f_iou 0.7374093532562256: 77%|██████████████████████████▏ | 57/74 [00:49<00:12, 1.38it/s]
epoch 116 | loss 3.0650134086608887, f_iou 0.7345691323280334: 77%|██████████████████████████▉ | 57/74 [00:50<00:12, 1.38it/s]
epoch 116 | loss 3.0650134086608887, f_iou 0.7345691323280334: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.38it/s]
epoch 116 | loss 1.1962921619415283, f_iou 0.7239199280738831: 78%|███████████████████████████▍ | 58/74 [00:51<00:11, 1.38it/s]
epoch 116 | loss 1.1962921619415283, f_iou 0.7239199280738831: 80%|███████████████████████████▉ | 59/74 [00:51<00:10, 1.37it/s]
epoch 116 | loss 1.1474745273590088, f_iou 0.7167771458625793: 80%|███████████████████████████▉ | 59/74 [00:51<00:10, 1.37it/s]
epoch 116 | loss 1.1474745273590088, f_iou 0.7167771458625793: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.37it/s]
epoch 116 | loss 1.353026032447815, f_iou 0.7097014784812927: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.37it/s]
epoch 116 | loss 1.353026032447815, f_iou 0.7097014784812927: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.38it/s]
epoch 116 | loss 1.5462251901626587, f_iou 0.7121782302856445: 82%|████████████████████████████▊ | 61/74 [00:53<00:09, 1.38it/s]
epoch 116 | loss 1.5462251901626587, f_iou 0.7121782302856445: 84%|█████████████████████████████▎ | 62/74 [00:53<00:08, 1.38it/s]
epoch 116 | loss 0.6138650178909302, f_iou 0.7101433277130127: 84%|█████████████████████████████▎ | 62/74 [00:54<00:08, 1.38it/s]
epoch 116 | loss 0.6138650178909302, f_iou 0.7101433277130127: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.36it/s]
epoch 116 | loss 0.7317836880683899, f_iou 0.7128997445106506: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.36it/s]
epoch 116 | loss 0.7317836880683899, f_iou 0.7128997445106506: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.34it/s]
epoch 116 | loss 1.1082959175109863, f_iou 0.7114708423614502: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.34it/s]
epoch 116 | loss 1.1082959175109863, f_iou 0.7114708423614502: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.32it/s]
epoch 116 | loss 0.46480095386505127, f_iou 0.7121620178222656: 88%|█████████████████████████████▊ | 65/74 [00:56<00:06, 1.32it/s]
epoch 116 | loss 0.46480095386505127, f_iou 0.7121620178222656: 89%|██████████████████████████████▎ | 66/74 [00:56<00:06, 1.31it/s]
epoch 116 | loss 1.139043927192688, f_iou 0.71482253074646: 89%|█████████████████████████████████▉ | 66/74 [00:57<00:06, 1.31it/s]
epoch 116 | loss 1.139043927192688, f_iou 0.71482253074646: 91%|██████████████████████████████████▍ | 67/74 [00:57<00:05, 1.32it/s]
epoch 116 | loss 1.5784584283828735, f_iou 0.7134653925895691: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.32it/s]
epoch 116 | loss 1.5784584283828735, f_iou 0.7134653925895691: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.35it/s]
epoch 116 | loss 0.5567554831504822, f_iou 0.7167157530784607: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.35it/s]
epoch 116 | loss 0.5567554831504822, f_iou 0.7167157530784607: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.33it/s]
epoch 116 | loss 0.9847289323806763, f_iou 0.7175558805465698: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.33it/s]
epoch 116 | loss 0.9847289323806763, f_iou 0.7175558805465698: 95%|█████████████████████████████████ | 70/74 [00:59<00:03, 1.32it/s]
epoch 116 | loss 0.63484787940979, f_iou 0.720557689666748: 95%|███████████████████████████████████▉ | 70/74 [01:00<00:03, 1.32it/s]
epoch 116 | loss 0.63484787940979, f_iou 0.720557689666748: 96%|████████████████████████████████████▍ | 71/74 [01:00<00:02, 1.30it/s]
epoch 116 | loss 0.6152117252349854, f_iou 0.7220810055732727: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.30it/s]
epoch 116 | loss 0.6152117252349854, f_iou 0.7220810055732727: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.29it/s]
epoch 116 | loss 1.2658984661102295, f_iou 0.7243056297302246: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.29it/s]
epoch 116 | loss 1.2658984661102295, f_iou 0.7243056297302246: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.29it/s]
epoch 116 | loss 0.8788449764251709, f_iou 0.7167927026748657: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.29it/s]
epoch 116 | loss 0.8788449764251709, f_iou 0.7167927026748657: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.29it/s]
epoch 116 | loss 0.8788449764251709, f_iou 0.7167927026748657: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.18it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 116 | valid.f_iou 0.6876599788665771, valid.f_f-score 0.84253: 0%| | 0/16 [00:05, ?it/s]
epoch 116 | valid.f_iou 0.6876599788665771, valid.f_f-score 0.84253: 6%|█▉ | 1/16 [00:05<01:27, 5.85s/it]
epoch 116 | valid.f_iou 0.6602299809455872, valid.f_f-score 0.86952: 6%|█▉ | 1/16 [00:06<01:27, 5.85s/it]
epoch 116 | valid.f_iou 0.6602299809455872, valid.f_f-score 0.86952: 12%|███▊ | 2/16 [00:06<00:37, 2.68s/it]
epoch 116 | valid.f_iou 0.527999997138977, valid.f_f-score 0.7739: 12%|████ | 2/16 [00:06<00:37, 2.68s/it]
epoch 116 | valid.f_iou 0.527999997138977, valid.f_f-score 0.7739: 19%|██████ | 3/16 [00:06<00:21, 1.67s/it]
epoch 116 | valid.f_iou 0.5542899966239929, valid.f_f-score 0.76168: 19%|█████▋ | 3/16 [00:07<00:21, 1.67s/it]
epoch 116 | valid.f_iou 0.5542899966239929, valid.f_f-score 0.76168: 25%|███████▌ | 4/16 [00:07<00:14, 1.20s/it]
epoch 116 | valid.f_iou 0.5722900032997131, valid.f_f-score 0.76862: 25%|███████▌ | 4/16 [00:07<00:14, 1.20s/it]
epoch 116 | valid.f_iou 0.5722900032997131, valid.f_f-score 0.76862: 31%|█████████▍ | 5/16 [00:07<00:10, 1.08it/s]
epoch 116 | valid.f_iou 0.5305799841880798, valid.f_f-score 0.72236: 31%|█████████▍ | 5/16 [00:08<00:10, 1.08it/s]
epoch 116 | valid.f_iou 0.5305799841880798, valid.f_f-score 0.72236: 38%|███████████▎ | 6/16 [00:08<00:07, 1.30it/s]
epoch 116 | valid.f_iou 0.5550600290298462, valid.f_f-score 0.7423: 38%|███████████▋ | 6/16 [00:08<00:07, 1.30it/s]
epoch 116 | valid.f_iou 0.5550600290298462, valid.f_f-score 0.7423: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.51it/s]
epoch 116 | valid.f_iou 0.5311700105667114, valid.f_f-score 0.72246: 44%|█████████████▏ | 7/16 [00:09<00:05, 1.51it/s]
epoch 116 | valid.f_iou 0.5311700105667114, valid.f_f-score 0.72246: 50%|███████████████ | 8/16 [00:09<00:04, 1.67it/s]
epoch 116 | valid.f_iou 0.5530999898910522, valid.f_f-score 0.73298: 50%|███████████████ | 8/16 [00:09<00:04, 1.67it/s]
epoch 116 | valid.f_iou 0.5530999898910522, valid.f_f-score 0.73298: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.83it/s]
epoch 116 | valid.f_iou 0.5509399771690369, valid.f_f-score 0.7374: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.83it/s]
epoch 116 | valid.f_iou 0.5509399771690369, valid.f_f-score 0.7374: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.93it/s]
epoch 116 | valid.f_iou 0.5567299723625183, valid.f_f-score 0.73606: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.93it/s]
epoch 116 | valid.f_iou 0.5567299723625183, valid.f_f-score 0.73606: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.02it/s]
epoch 116 | valid.f_iou 0.5781999826431274, valid.f_f-score 0.7513: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.02it/s]
epoch 116 | valid.f_iou 0.5781999826431274, valid.f_f-score 0.7513: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.07it/s]
epoch 116 | valid.f_iou 0.5830600261688232, valid.f_f-score 0.75717: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.07it/s]
epoch 116 | valid.f_iou 0.5830600261688232, valid.f_f-score 0.75717: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.12it/s]
epoch 116 | valid.f_iou 0.578790009021759, valid.f_f-score 0.75336: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.12it/s]
epoch 116 | valid.f_iou 0.578790009021759, valid.f_f-score 0.75336: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.16it/s]
epoch 116 | valid.f_iou 0.5858700275421143, valid.f_f-score 0.75384: 88%|█████████████████████████▍ | 14/16 [00:12<00:00, 2.16it/s]
epoch 116 | valid.f_iou 0.5858700275421143, valid.f_f-score 0.75384: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.19it/s]
epoch 116 | valid.f_iou 0.590749979019165, valid.f_f-score 0.75164: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.19it/s]
epoch 116 | valid.f_iou 0.590749979019165, valid.f_f-score 0.75164: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.31it/s]
epoch 116 | valid.f_iou 0.590749979019165, valid.f_f-score 0.75164: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.27it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 116 | valid.f_iou 0.7907199859619141, valid.f_f-score 0.80046: 0%| | 0/16 [00:05, ?it/s]
epoch 116 | valid.f_iou 0.7907199859619141, valid.f_f-score 0.80046: 6%|█▉ | 1/16 [00:05<01:24, 5.61s/it]
epoch 116 | valid.f_iou 0.8265699744224548, valid.f_f-score 0.86916: 6%|█▉ | 1/16 [00:06<01:24, 5.61s/it]
epoch 116 | valid.f_iou 0.8265699744224548, valid.f_f-score 0.86916: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 116 | valid.f_iou 0.7696499824523926, valid.f_f-score 0.85207: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 116 | valid.f_iou 0.7696499824523926, valid.f_f-score 0.85207: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 116 | valid.f_iou 0.7581300139427185, valid.f_f-score 0.81798: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 116 | valid.f_iou 0.7581300139427185, valid.f_f-score 0.81798: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 116 | valid.f_iou 0.735539972782135, valid.f_f-score 0.81909: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 116 | valid.f_iou 0.735539972782135, valid.f_f-score 0.81909: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 116 | valid.f_iou 0.7144100069999695, valid.f_f-score 0.80634: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 116 | valid.f_iou 0.7144100069999695, valid.f_f-score 0.80634: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 116 | valid.f_iou 0.7304499745368958, valid.f_f-score 0.82533: 38%|███████████▎ | 6/16 [00:08<00:07, 1.38it/s]
epoch 116 | valid.f_iou 0.7304499745368958, valid.f_f-score 0.82533: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 116 | valid.f_iou 0.7200499773025513, valid.f_f-score 0.82202: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 116 | valid.f_iou 0.7200499773025513, valid.f_f-score 0.82202: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 116 | valid.f_iou 0.722599983215332, valid.f_f-score 0.8234: 50%|████████████████ | 8/16 [00:09<00:04, 1.76it/s]
epoch 116 | valid.f_iou 0.722599983215332, valid.f_f-score 0.8234: 56%|██████████████████ | 9/16 [00:09<00:03, 1.90it/s]
epoch 116 | valid.f_iou 0.7329999804496765, valid.f_f-score 0.83347: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 116 | valid.f_iou 0.7329999804496765, valid.f_f-score 0.83347: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.02it/s]
epoch 116 | valid.f_iou 0.7246599793434143, valid.f_f-score 0.82181: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.02it/s]
epoch 116 | valid.f_iou 0.7246599793434143, valid.f_f-score 0.82181: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 116 | valid.f_iou 0.7365599870681763, valid.f_f-score 0.83112: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.18it/s]
epoch 116 | valid.f_iou 0.7365599870681763, valid.f_f-score 0.83112: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.33it/s]
epoch 116 | valid.f_iou 0.743619978427887, valid.f_f-score 0.83487: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 116 | valid.f_iou 0.743619978427887, valid.f_f-score 0.83487: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 116 | valid.f_iou 0.7377899885177612, valid.f_f-score 0.82932: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 116 | valid.f_iou 0.7377899885177612, valid.f_f-score 0.82932: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.52it/s]
epoch 116 | valid.f_iou 0.7468799948692322, valid.f_f-score 0.8375: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 116 | valid.f_iou 0.7468799948692322, valid.f_f-score 0.8375: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 116 | valid.f_iou 0.7449300289154053, valid.f_f-score 0.8354: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 116 | valid.f_iou 0.7449300289154053, valid.f_f-score 0.8354: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 116 | valid.f_iou 0.7449300289154053, valid.f_f-score 0.8354: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 116 | valid.f_iou 0.7907199859619141, valid.f_f-score 0.80046: 0%| | 0/16 [00:05, ?it/s]
epoch 116 | valid.f_iou 0.7907199859619141, valid.f_f-score 0.80046: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 116 | valid.f_iou 0.8265699744224548, valid.f_f-score 0.86916: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 116 | valid.f_iou 0.8265699744224548, valid.f_f-score 0.86916: 12%|███▊ | 2/16 [00:05<00:34, 2.49s/it]
epoch 116 | valid.f_iou 0.7696499824523926, valid.f_f-score 0.85207: 12%|███▊ | 2/16 [00:06<00:34, 2.49s/it]
epoch 116 | valid.f_iou 0.7696499824523926, valid.f_f-score 0.85207: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 116 | valid.f_iou 0.7583400011062622, valid.f_f-score 0.81798: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 116 | valid.f_iou 0.7583400011062622, valid.f_f-score 0.81798: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 116 | valid.f_iou 0.743149995803833, valid.f_f-score 0.81909: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 116 | valid.f_iou 0.743149995803833, valid.f_f-score 0.81909: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 116 | valid.f_iou 0.7207499742507935, valid.f_f-score 0.80634: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 116 | valid.f_iou 0.7207499742507935, valid.f_f-score 0.80634: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 116 | valid.f_iou 0.7376300096511841, valid.f_f-score 0.82533: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 116 | valid.f_iou 0.7376300096511841, valid.f_f-score 0.82533: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 116 | valid.f_iou 0.7263399958610535, valid.f_f-score 0.82202: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 116 | valid.f_iou 0.7263399958610535, valid.f_f-score 0.82202: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 116 | valid.f_iou 0.7315999865531921, valid.f_f-score 0.8234: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 116 | valid.f_iou 0.7315999865531921, valid.f_f-score 0.8234: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.91it/s]
epoch 116 | valid.f_iou 0.7377499938011169, valid.f_f-score 0.82991: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 116 | valid.f_iou 0.7377499938011169, valid.f_f-score 0.82991: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.99it/s]
epoch 116 | valid.f_iou 0.7289800047874451, valid.f_f-score 0.81857: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.99it/s]
epoch 116 | valid.f_iou 0.7289800047874451, valid.f_f-score 0.81857: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.07it/s]
epoch 116 | valid.f_iou 0.7405099868774414, valid.f_f-score 0.82815: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 116 | valid.f_iou 0.7405099868774414, valid.f_f-score 0.82815: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.22it/s]
epoch 116 | valid.f_iou 0.7471699714660645, valid.f_f-score 0.83298: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.22it/s]
epoch 116 | valid.f_iou 0.7471699714660645, valid.f_f-score 0.83298: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.31it/s]
epoch 116 | valid.f_iou 0.7410799860954285, valid.f_f-score 0.82758: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.31it/s]
epoch 116 | valid.f_iou 0.7410799860954285, valid.f_f-score 0.82758: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.39it/s]
epoch 116 | valid.f_iou 0.7499600052833557, valid.f_f-score 0.83588: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.39it/s]
epoch 116 | valid.f_iou 0.7499600052833557, valid.f_f-score 0.83588: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.48it/s]
epoch 116 | valid.f_iou 0.7483000159263611, valid.f_f-score 0.83388: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.48it/s]
epoch 116 | valid.f_iou 0.7483000159263611, valid.f_f-score 0.83388: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.55it/s]
epoch 116 | valid.f_iou 0.7483000159263611, valid.f_f-score 0.83388: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 117 | loss 0.5304972529411316, f_iou 0.3905656039714813: 0%| | 0/74 [00:06, ?it/s]
epoch 117 | loss 0.5304972529411316, f_iou 0.3905656039714813: 1%|▍ | 1/74 [00:06<08:01, 6.60s/it]
epoch 117 | loss 0.6651251912117004, f_iou 0.5835866928100586: 1%|▍ | 1/74 [00:07<08:01, 6.60s/it]
epoch 117 | loss 0.6651251912117004, f_iou 0.5835866928100586: 3%|▉ | 2/74 [00:07<03:52, 3.23s/it]
epoch 117 | loss 1.0469571352005005, f_iou 0.5219094753265381: 3%|▉ | 2/74 [00:08<03:52, 3.23s/it]
epoch 117 | loss 1.0469571352005005, f_iou 0.5219094753265381: 4%|█▍ | 3/74 [00:08<02:30, 2.13s/it]
epoch 117 | loss 0.8902091383934021, f_iou 0.6032003164291382: 4%|█▍ | 3/74 [00:09<02:30, 2.13s/it]
epoch 117 | loss 0.8902091383934021, f_iou 0.6032003164291382: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 117 | loss 1.1299176216125488, f_iou 0.6514817476272583: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 117 | loss 1.1299176216125488, f_iou 0.6514817476272583: 7%|██▍ | 5/74 [00:09<01:30, 1.32s/it]
epoch 117 | loss 0.8867454528808594, f_iou 0.6854881048202515: 7%|██▍ | 5/74 [00:10<01:30, 1.32s/it]
epoch 117 | loss 0.8867454528808594, f_iou 0.6854881048202515: 8%|██▉ | 6/74 [00:10<01:17, 1.14s/it]
epoch 117 | loss 0.31612810492515564, f_iou 0.7273688912391663: 8%|██▊ | 6/74 [00:11<01:17, 1.14s/it]
epoch 117 | loss 0.31612810492515564, f_iou 0.7273688912391663: 9%|███▎ | 7/74 [00:11<01:07, 1.01s/it]
epoch 117 | loss 0.8042809963226318, f_iou 0.7429139614105225: 9%|███▍ | 7/74 [00:12<01:07, 1.01s/it]
epoch 117 | loss 0.8042809963226318, f_iou 0.7429139614105225: 11%|███▉ | 8/74 [00:12<01:01, 1.07it/s]
epoch 117 | loss 0.6949052214622498, f_iou 0.696221649646759: 11%|████ | 8/74 [00:12<01:01, 1.07it/s]
epoch 117 | loss 0.6949052214622498, f_iou 0.696221649646759: 12%|████▌ | 9/74 [00:12<00:57, 1.13it/s]
epoch 117 | loss 1.216418743133545, f_iou 0.6936838030815125: 12%|████▌ | 9/74 [00:13<00:57, 1.13it/s]
epoch 117 | loss 1.216418743133545, f_iou 0.6936838030815125: 14%|████▊ | 10/74 [00:13<00:54, 1.17it/s]
epoch 117 | loss 0.5764760971069336, f_iou 0.7056660652160645: 14%|████▋ | 10/74 [00:14<00:54, 1.17it/s]
epoch 117 | loss 0.5764760971069336, f_iou 0.7056660652160645: 15%|█████▏ | 11/74 [00:14<00:52, 1.19it/s]
epoch 117 | loss 0.7160958647727966, f_iou 0.7113349437713623: 15%|█████▏ | 11/74 [00:15<00:52, 1.19it/s]
epoch 117 | loss 0.7160958647727966, f_iou 0.7113349437713623: 16%|█████▋ | 12/74 [00:15<00:50, 1.22it/s]
epoch 117 | loss 0.3744644820690155, f_iou 0.6732959151268005: 16%|█████▋ | 12/74 [00:16<00:50, 1.22it/s]
epoch 117 | loss 0.3744644820690155, f_iou 0.6732959151268005: 18%|██████▏ | 13/74 [00:16<00:49, 1.24it/s]
epoch 117 | loss 0.15628136694431305, f_iou 0.6929700374603271: 18%|█████▉ | 13/74 [00:16<00:49, 1.24it/s]
epoch 117 | loss 0.15628136694431305, f_iou 0.6929700374603271: 19%|██████▍ | 14/74 [00:16<00:47, 1.27it/s]
epoch 117 | loss 0.6176024079322815, f_iou 0.7067486643791199: 19%|██████▌ | 14/74 [00:17<00:47, 1.27it/s]
epoch 117 | loss 0.6176024079322815, f_iou 0.7067486643791199: 20%|███████ | 15/74 [00:17<00:45, 1.29it/s]
epoch 117 | loss 0.9716726541519165, f_iou 0.7135990262031555: 20%|███████ | 15/74 [00:18<00:45, 1.29it/s]
epoch 117 | loss 0.9716726541519165, f_iou 0.7135990262031555: 22%|███████▌ | 16/74 [00:18<00:45, 1.28it/s]
epoch 117 | loss 0.6949496865272522, f_iou 0.7220568656921387: 22%|███████▌ | 16/74 [00:19<00:45, 1.28it/s]
epoch 117 | loss 0.6949496865272522, f_iou 0.7220568656921387: 23%|████████ | 17/74 [00:19<00:44, 1.28it/s]
epoch 117 | loss 1.494446039199829, f_iou 0.7305889129638672: 23%|████████▎ | 17/74 [00:19<00:44, 1.28it/s]
epoch 117 | loss 1.494446039199829, f_iou 0.7305889129638672: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 117 | loss 2.3478713035583496, f_iou 0.7123143672943115: 24%|████████▌ | 18/74 [00:20<00:43, 1.29it/s]
epoch 117 | loss 2.3478713035583496, f_iou 0.7123143672943115: 26%|████████▉ | 19/74 [00:20<00:43, 1.27it/s]
epoch 117 | loss 0.7679387927055359, f_iou 0.7199938297271729: 26%|████████▉ | 19/74 [00:21<00:43, 1.27it/s]
epoch 117 | loss 0.7679387927055359, f_iou 0.7199938297271729: 27%|█████████▍ | 20/74 [00:21<00:42, 1.27it/s]
epoch 117 | loss 1.7485849857330322, f_iou 0.6899427175521851: 27%|█████████▍ | 20/74 [00:22<00:42, 1.27it/s]
epoch 117 | loss 1.7485849857330322, f_iou 0.6899427175521851: 28%|█████████▉ | 21/74 [00:22<00:41, 1.27it/s]
epoch 117 | loss 1.2861100435256958, f_iou 0.6958884000778198: 28%|█████████▉ | 21/74 [00:23<00:41, 1.27it/s]
epoch 117 | loss 1.2861100435256958, f_iou 0.6958884000778198: 30%|██████████▍ | 22/74 [00:23<00:41, 1.26it/s]
epoch 117 | loss 0.8473320603370667, f_iou 0.7054722905158997: 30%|██████████▍ | 22/74 [00:23<00:41, 1.26it/s]
epoch 117 | loss 0.8473320603370667, f_iou 0.7054722905158997: 31%|██████████▉ | 23/74 [00:23<00:40, 1.25it/s]
epoch 117 | loss 1.5077964067459106, f_iou 0.6997721195220947: 31%|██████████▉ | 23/74 [00:24<00:40, 1.25it/s]
epoch 117 | loss 1.5077964067459106, f_iou 0.6997721195220947: 32%|███████████▎ | 24/74 [00:24<00:39, 1.25it/s]
epoch 117 | loss 1.0869477987289429, f_iou 0.6984915137290955: 32%|███████████▎ | 24/74 [00:25<00:39, 1.25it/s]
epoch 117 | loss 1.0869477987289429, f_iou 0.6984915137290955: 34%|███████████▊ | 25/74 [00:25<00:39, 1.26it/s]
epoch 117 | loss 1.1572741270065308, f_iou 0.7015594840049744: 34%|███████████▊ | 25/74 [00:26<00:39, 1.26it/s]
epoch 117 | loss 1.1572741270065308, f_iou 0.7015594840049744: 35%|████████████▎ | 26/74 [00:26<00:38, 1.26it/s]
epoch 117 | loss 1.0190669298171997, f_iou 0.7037095427513123: 35%|████████████▎ | 26/74 [00:27<00:38, 1.26it/s]
epoch 117 | loss 1.0190669298171997, f_iou 0.7037095427513123: 36%|████████████▊ | 27/74 [00:27<00:37, 1.26it/s]
epoch 117 | loss 1.3637559413909912, f_iou 0.7081838250160217: 36%|████████████▊ | 27/74 [00:27<00:37, 1.26it/s]
epoch 117 | loss 1.3637559413909912, f_iou 0.7081838250160217: 38%|█████████████▏ | 28/74 [00:27<00:36, 1.26it/s]
epoch 117 | loss 0.8208513259887695, f_iou 0.7131212949752808: 38%|█████████████▏ | 28/74 [00:28<00:36, 1.26it/s]
epoch 117 | loss 0.8208513259887695, f_iou 0.7131212949752808: 39%|█████████████▋ | 29/74 [00:28<00:36, 1.23it/s]
epoch 117 | loss 0.6826805472373962, f_iou 0.7208715081214905: 39%|█████████████▋ | 29/74 [00:29<00:36, 1.23it/s]
epoch 117 | loss 0.6826805472373962, f_iou 0.7208715081214905: 41%|██████████████▏ | 30/74 [00:29<00:35, 1.24it/s]
epoch 117 | loss 1.344975471496582, f_iou 0.7215606570243835: 41%|██████████████▌ | 30/74 [00:30<00:35, 1.24it/s]
epoch 117 | loss 1.344975471496582, f_iou 0.7215606570243835: 42%|███████████████ | 31/74 [00:30<00:34, 1.25it/s]
epoch 117 | loss 0.7780976891517639, f_iou 0.7291901111602783: 42%|██████████████▋ | 31/74 [00:31<00:34, 1.25it/s]
epoch 117 | loss 0.7780976891517639, f_iou 0.7291901111602783: 43%|███████████████▏ | 32/74 [00:31<00:33, 1.25it/s]
epoch 117 | loss 1.6490814685821533, f_iou 0.7280093431472778: 43%|███████████████▏ | 32/74 [00:31<00:33, 1.25it/s]
epoch 117 | loss 1.6490814685821533, f_iou 0.7280093431472778: 45%|███████████████▌ | 33/74 [00:31<00:32, 1.25it/s]
epoch 117 | loss 1.150422215461731, f_iou 0.7302207350730896: 45%|████████████████ | 33/74 [00:32<00:32, 1.25it/s]
epoch 117 | loss 1.150422215461731, f_iou 0.7302207350730896: 46%|████████████████▌ | 34/74 [00:32<00:31, 1.25it/s]
epoch 117 | loss 1.8401771783828735, f_iou 0.7231860160827637: 46%|████████████████ | 34/74 [00:33<00:31, 1.25it/s]
epoch 117 | loss 1.8401771783828735, f_iou 0.7231860160827637: 47%|████████████████▌ | 35/74 [00:33<00:31, 1.25it/s]
epoch 117 | loss 1.2332910299301147, f_iou 0.7180826663970947: 47%|████████████████▌ | 35/74 [00:34<00:31, 1.25it/s]
epoch 117 | loss 1.2332910299301147, f_iou 0.7180826663970947: 49%|█████████████████ | 36/74 [00:34<00:30, 1.26it/s]
epoch 117 | loss 2.1763901710510254, f_iou 0.7164247035980225: 49%|█████████████████ | 36/74 [00:35<00:30, 1.26it/s]
epoch 117 | loss 2.1763901710510254, f_iou 0.7164247035980225: 50%|█████████████████▌ | 37/74 [00:35<00:29, 1.26it/s]
epoch 117 | loss 1.4142396450042725, f_iou 0.720291018486023: 50%|██████████████████ | 37/74 [00:35<00:29, 1.26it/s]
epoch 117 | loss 1.4142396450042725, f_iou 0.720291018486023: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.29it/s]
epoch 117 | loss 0.6638792157173157, f_iou 0.7222044467926025: 51%|█████████████████▉ | 38/74 [00:36<00:27, 1.29it/s]
epoch 117 | loss 0.6638792157173157, f_iou 0.7222044467926025: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.29it/s]
epoch 117 | loss 2.260864496231079, f_iou 0.7178417444229126: 53%|██████████████████▉ | 39/74 [00:37<00:27, 1.29it/s]
epoch 117 | loss 2.260864496231079, f_iou 0.7178417444229126: 54%|███████████████████▍ | 40/74 [00:37<00:26, 1.28it/s]
epoch 117 | loss 0.4474020004272461, f_iou 0.7240452170372009: 54%|██████████████████▉ | 40/74 [00:38<00:26, 1.28it/s]
epoch 117 | loss 0.4474020004272461, f_iou 0.7240452170372009: 55%|███████████████████▍ | 41/74 [00:38<00:25, 1.29it/s]
epoch 117 | loss 0.7286590337753296, f_iou 0.720554769039154: 55%|███████████████████▉ | 41/74 [00:39<00:25, 1.29it/s]
epoch 117 | loss 0.7286590337753296, f_iou 0.720554769039154: 57%|████████████████████▍ | 42/74 [00:39<00:25, 1.28it/s]
epoch 117 | loss 0.6849007606506348, f_iou 0.7202147245407104: 57%|███████████████████▊ | 42/74 [00:39<00:25, 1.28it/s]
epoch 117 | loss 0.6849007606506348, f_iou 0.7202147245407104: 58%|████████████████████▎ | 43/74 [00:39<00:24, 1.27it/s]
epoch 117 | loss 0.40771839022636414, f_iou 0.7213402390480042: 58%|███████████████████▊ | 43/74 [00:40<00:24, 1.27it/s]
epoch 117 | loss 0.40771839022636414, f_iou 0.7213402390480042: 59%|████████████████████▏ | 44/74 [00:40<00:23, 1.27it/s]
epoch 117 | loss 0.9071226716041565, f_iou 0.7095874547958374: 59%|████████████████████▊ | 44/74 [00:41<00:23, 1.27it/s]
epoch 117 | loss 0.9071226716041565, f_iou 0.7095874547958374: 61%|█████████████████████▎ | 45/74 [00:41<00:22, 1.27it/s]
epoch 117 | loss 0.4361044466495514, f_iou 0.7127094268798828: 61%|█████████████████████▎ | 45/74 [00:42<00:22, 1.27it/s]
epoch 117 | loss 0.4361044466495514, f_iou 0.7127094268798828: 62%|█████████████████████▊ | 46/74 [00:42<00:21, 1.27it/s]
epoch 117 | loss 1.0327039957046509, f_iou 0.7094358801841736: 62%|█████████████████████▊ | 46/74 [00:42<00:21, 1.27it/s]
epoch 117 | loss 1.0327039957046509, f_iou 0.7094358801841736: 64%|██████████████████████▏ | 47/74 [00:42<00:21, 1.27it/s]
epoch 117 | loss 1.4246833324432373, f_iou 0.7086523771286011: 64%|██████████████████████▏ | 47/74 [00:43<00:21, 1.27it/s]
epoch 117 | loss 1.4246833324432373, f_iou 0.7086523771286011: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.28it/s]
epoch 117 | loss 1.1045615673065186, f_iou 0.7050303220748901: 65%|██████████████████████▋ | 48/74 [00:44<00:20, 1.28it/s]
epoch 117 | loss 1.1045615673065186, f_iou 0.7050303220748901: 66%|███████████████████████▏ | 49/74 [00:44<00:19, 1.30it/s]
epoch 117 | loss 1.4874389171600342, f_iou 0.7028899192810059: 66%|███████████████████████▏ | 49/74 [00:45<00:19, 1.30it/s]
epoch 117 | loss 1.4874389171600342, f_iou 0.7028899192810059: 68%|███████████████████████▋ | 50/74 [00:45<00:18, 1.32it/s]
epoch 117 | loss 0.8978915214538574, f_iou 0.7068763971328735: 68%|███████████████████████▋ | 50/74 [00:46<00:18, 1.32it/s]
epoch 117 | loss 0.8978915214538574, f_iou 0.7068763971328735: 69%|████████████████████████ | 51/74 [00:46<00:17, 1.29it/s]
epoch 117 | loss 1.355696201324463, f_iou 0.7062219977378845: 69%|████████████████████████▊ | 51/74 [00:46<00:17, 1.29it/s]
epoch 117 | loss 1.355696201324463, f_iou 0.7062219977378845: 70%|█████████████████████████▎ | 52/74 [00:46<00:17, 1.28it/s]
epoch 117 | loss 1.4889600276947021, f_iou 0.7069875597953796: 70%|████████████████████████▌ | 52/74 [00:47<00:17, 1.28it/s]
epoch 117 | loss 1.4889600276947021, f_iou 0.7069875597953796: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.27it/s]
epoch 117 | loss 0.5386567711830139, f_iou 0.7046554088592529: 72%|█████████████████████████ | 53/74 [00:48<00:16, 1.27it/s]
epoch 117 | loss 0.5386567711830139, f_iou 0.7046554088592529: 73%|█████████████████████████▌ | 54/74 [00:48<00:15, 1.25it/s]
epoch 117 | loss 0.8341786861419678, f_iou 0.7032784223556519: 73%|█████████████████████████▌ | 54/74 [00:49<00:15, 1.25it/s]
epoch 117 | loss 0.8341786861419678, f_iou 0.7032784223556519: 74%|██████████████████████████ | 55/74 [00:49<00:15, 1.25it/s]
epoch 117 | loss 0.5642098188400269, f_iou 0.7064810991287231: 74%|██████████████████████████ | 55/74 [00:50<00:15, 1.25it/s]
epoch 117 | loss 0.5642098188400269, f_iou 0.7064810991287231: 76%|██████████████████████████▍ | 56/74 [00:50<00:14, 1.25it/s]
epoch 117 | loss 0.9534918069839478, f_iou 0.7103479504585266: 76%|██████████████████████████▍ | 56/74 [00:50<00:14, 1.25it/s]
epoch 117 | loss 0.9534918069839478, f_iou 0.7103479504585266: 77%|██████████████████████████▉ | 57/74 [00:50<00:13, 1.25it/s]
epoch 117 | loss 2.683819055557251, f_iou 0.7093697190284729: 77%|███████████████████████████▋ | 57/74 [00:51<00:13, 1.25it/s]
epoch 117 | loss 2.683819055557251, f_iou 0.7093697190284729: 78%|████████████████████████████▏ | 58/74 [00:51<00:12, 1.25it/s]
epoch 117 | loss 0.7386952638626099, f_iou 0.7130438089370728: 78%|███████████████████████████▍ | 58/74 [00:52<00:12, 1.25it/s]
epoch 117 | loss 0.7386952638626099, f_iou 0.7130438089370728: 80%|███████████████████████████▉ | 59/74 [00:52<00:12, 1.25it/s]
epoch 117 | loss 0.2603778839111328, f_iou 0.7027457356452942: 80%|███████████████████████████▉ | 59/74 [00:53<00:12, 1.25it/s]
epoch 117 | loss 0.2603778839111328, f_iou 0.7027457356452942: 81%|████████████████████████████▍ | 60/74 [00:53<00:11, 1.24it/s]
epoch 117 | loss 0.35859790444374084, f_iou 0.7071383595466614: 81%|███████████████████████████▌ | 60/74 [00:54<00:11, 1.24it/s]
epoch 117 | loss 0.35859790444374084, f_iou 0.7071383595466614: 82%|████████████████████████████ | 61/74 [00:54<00:10, 1.24it/s]
epoch 117 | loss 1.399303913116455, f_iou 0.7079591751098633: 82%|█████████████████████████████▋ | 61/74 [00:54<00:10, 1.24it/s]
epoch 117 | loss 1.399303913116455, f_iou 0.7079591751098633: 84%|██████████████████████████████▏ | 62/74 [00:54<00:09, 1.25it/s]
epoch 117 | loss 0.6628215312957764, f_iou 0.7120206356048584: 84%|█████████████████████████████▎ | 62/74 [00:55<00:09, 1.25it/s]
epoch 117 | loss 0.6628215312957764, f_iou 0.7120206356048584: 85%|█████████████████████████████▊ | 63/74 [00:55<00:08, 1.25it/s]
epoch 117 | loss 1.085291862487793, f_iou 0.7106348276138306: 85%|██████████████████████████████▋ | 63/74 [00:56<00:08, 1.25it/s]
epoch 117 | loss 1.085291862487793, f_iou 0.7106348276138306: 86%|███████████████████████████████▏ | 64/74 [00:56<00:07, 1.26it/s]
epoch 117 | loss 1.4047331809997559, f_iou 0.7133573889732361: 86%|██████████████████████████████▎ | 64/74 [00:57<00:07, 1.26it/s]
epoch 117 | loss 1.4047331809997559, f_iou 0.7133573889732361: 88%|██████████████████████████████▋ | 65/74 [00:57<00:07, 1.28it/s]
epoch 117 | loss 1.1493566036224365, f_iou 0.7061083912849426: 88%|██████████████████████████████▋ | 65/74 [00:57<00:07, 1.28it/s]
epoch 117 | loss 1.1493566036224365, f_iou 0.7061083912849426: 89%|███████████████████████████████▏ | 66/74 [00:57<00:06, 1.30it/s]
epoch 117 | loss 0.5511628985404968, f_iou 0.7098836302757263: 89%|███████████████████████████████▏ | 66/74 [00:58<00:06, 1.30it/s]
epoch 117 | loss 0.5511628985404968, f_iou 0.7098836302757263: 91%|███████████████████████████████▋ | 67/74 [00:58<00:05, 1.32it/s]
epoch 117 | loss 0.6151080131530762, f_iou 0.7122380137443542: 91%|███████████████████████████████▋ | 67/74 [00:59<00:05, 1.32it/s]
epoch 117 | loss 0.6151080131530762, f_iou 0.7122380137443542: 92%|████████████████████████████████▏ | 68/74 [00:59<00:04, 1.34it/s]
epoch 117 | loss 2.0707545280456543, f_iou 0.7071451544761658: 92%|████████████████████████████████▏ | 68/74 [01:00<00:04, 1.34it/s]
epoch 117 | loss 2.0707545280456543, f_iou 0.7071451544761658: 93%|████████████████████████████████▋ | 69/74 [01:00<00:03, 1.35it/s]
epoch 117 | loss 0.8298094272613525, f_iou 0.7103027701377869: 93%|████████████████████████████████▋ | 69/74 [01:00<00:03, 1.35it/s]
epoch 117 | loss 0.8298094272613525, f_iou 0.7103027701377869: 95%|█████████████████████████████████ | 70/74 [01:00<00:02, 1.36it/s]
epoch 117 | loss 1.2175134420394897, f_iou 0.7069346308708191: 95%|█████████████████████████████████ | 70/74 [01:01<00:02, 1.36it/s]
epoch 117 | loss 1.2175134420394897, f_iou 0.7069346308708191: 96%|█████████████████████████████████▌ | 71/74 [01:01<00:02, 1.36it/s]
epoch 117 | loss 0.8986647725105286, f_iou 0.7082980275154114: 96%|█████████████████████████████████▌ | 71/74 [01:02<00:02, 1.36it/s]
epoch 117 | loss 0.8986647725105286, f_iou 0.7082980275154114: 97%|██████████████████████████████████ | 72/74 [01:02<00:01, 1.37it/s]
epoch 117 | loss 1.2022143602371216, f_iou 0.7103370428085327: 97%|██████████████████████████████████ | 72/74 [01:02<00:01, 1.37it/s]
epoch 117 | loss 1.2022143602371216, f_iou 0.7103370428085327: 99%|██████████████████████████████████▌| 73/74 [01:03<00:00, 1.37it/s]
epoch 117 | loss 0.7868525385856628, f_iou 0.713162362575531: 99%|███████████████████████████████████▌| 73/74 [01:03<00:00, 1.37it/s]
epoch 117 | loss 0.7868525385856628, f_iou 0.713162362575531: 100%|████████████████████████████████████| 74/74 [01:03<00:00, 1.37it/s]
epoch 117 | loss 0.7868525385856628, f_iou 0.713162362575531: 100%|████████████████████████████████████| 74/74 [01:03<00:00, 1.16it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 117 | valid.f_iou 0.6977300047874451, valid.f_f-score 0.82552: 0%| | 0/16 [00:05, ?it/s]
epoch 117 | valid.f_iou 0.6977300047874451, valid.f_f-score 0.82552: 6%|█▉ | 1/16 [00:05<01:27, 5.82s/it]
epoch 117 | valid.f_iou 0.6692399978637695, valid.f_f-score 0.85041: 6%|█▉ | 1/16 [00:06<01:27, 5.82s/it]
epoch 117 | valid.f_iou 0.6692399978637695, valid.f_f-score 0.85041: 12%|███▊ | 2/16 [00:06<00:37, 2.68s/it]
epoch 117 | valid.f_iou 0.5404300093650818, valid.f_f-score 0.76216: 12%|███▊ | 2/16 [00:06<00:37, 2.68s/it]
epoch 117 | valid.f_iou 0.5404300093650818, valid.f_f-score 0.76216: 19%|█████▋ | 3/16 [00:06<00:21, 1.68s/it]
epoch 117 | valid.f_iou 0.5849699974060059, valid.f_f-score 0.76179: 19%|█████▋ | 3/16 [00:07<00:21, 1.68s/it]
epoch 117 | valid.f_iou 0.5849699974060059, valid.f_f-score 0.76179: 25%|███████▌ | 4/16 [00:07<00:14, 1.19s/it]
epoch 117 | valid.f_iou 0.6000800132751465, valid.f_f-score 0.76722: 25%|███████▌ | 4/16 [00:07<00:14, 1.19s/it]
epoch 117 | valid.f_iou 0.6000800132751465, valid.f_f-score 0.76722: 31%|█████████▍ | 5/16 [00:07<00:10, 1.08it/s]
epoch 117 | valid.f_iou 0.5545099973678589, valid.f_f-score 0.72057: 31%|█████████▍ | 5/16 [00:08<00:10, 1.08it/s]
epoch 117 | valid.f_iou 0.5545099973678589, valid.f_f-score 0.72057: 38%|███████████▎ | 6/16 [00:08<00:07, 1.29it/s]
epoch 117 | valid.f_iou 0.5840200185775757, valid.f_f-score 0.74979: 38%|███████████▎ | 6/16 [00:08<00:07, 1.29it/s]
epoch 117 | valid.f_iou 0.5840200185775757, valid.f_f-score 0.74979: 44%|█████████████▏ | 7/16 [00:08<00:06, 1.50it/s]
epoch 117 | valid.f_iou 0.5630099773406982, valid.f_f-score 0.73571: 44%|█████████████▏ | 7/16 [00:09<00:06, 1.50it/s]
epoch 117 | valid.f_iou 0.5630099773406982, valid.f_f-score 0.73571: 50%|███████████████ | 8/16 [00:09<00:04, 1.68it/s]
epoch 117 | valid.f_iou 0.5817400217056274, valid.f_f-score 0.74495: 50%|███████████████ | 8/16 [00:09<00:04, 1.68it/s]
epoch 117 | valid.f_iou 0.5817400217056274, valid.f_f-score 0.74495: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.82it/s]
epoch 117 | valid.f_iou 0.5868099927902222, valid.f_f-score 0.75399: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.82it/s]
epoch 117 | valid.f_iou 0.5868099927902222, valid.f_f-score 0.75399: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.93it/s]
epoch 117 | valid.f_iou 0.5857399702072144, valid.f_f-score 0.74983: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.93it/s]
epoch 117 | valid.f_iou 0.5857399702072144, valid.f_f-score 0.74983: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.02it/s]
epoch 117 | valid.f_iou 0.6072900295257568, valid.f_f-score 0.7647: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.02it/s]
epoch 117 | valid.f_iou 0.6072900295257568, valid.f_f-score 0.7647: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.09it/s]
epoch 117 | valid.f_iou 0.6166099905967712, valid.f_f-score 0.76688: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.09it/s]
epoch 117 | valid.f_iou 0.6166099905967712, valid.f_f-score 0.76688: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.17it/s]
epoch 117 | valid.f_iou 0.6084100008010864, valid.f_f-score 0.7615: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.17it/s]
epoch 117 | valid.f_iou 0.6084100008010864, valid.f_f-score 0.7615: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.31it/s]
epoch 117 | valid.f_iou 0.6132199764251709, valid.f_f-score 0.76134: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.31it/s]
epoch 117 | valid.f_iou 0.6132199764251709, valid.f_f-score 0.76134: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 117 | valid.f_iou 0.6202899813652039, valid.f_f-score 0.76461: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.42it/s]
epoch 117 | valid.f_iou 0.6202899813652039, valid.f_f-score 0.76461: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.50it/s]
epoch 117 | valid.f_iou 0.6202899813652039, valid.f_f-score 0.76461: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.29it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 117 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.77708: 0%| | 0/16 [00:05, ?it/s]
epoch 117 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.77708: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 117 | valid.f_iou 0.8159999847412109, valid.f_f-score 0.85991: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 117 | valid.f_iou 0.8159999847412109, valid.f_f-score 0.85991: 12%|███▊ | 2/16 [00:05<00:35, 2.50s/it]
epoch 117 | valid.f_iou 0.7613599896430969, valid.f_f-score 0.84596: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 117 | valid.f_iou 0.7613599896430969, valid.f_f-score 0.84596: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 117 | valid.f_iou 0.754580020904541, valid.f_f-score 0.81452: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 117 | valid.f_iou 0.754580020904541, valid.f_f-score 0.81452: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 117 | valid.f_iou 0.7253299951553345, valid.f_f-score 0.80199: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 117 | valid.f_iou 0.7253299951553345, valid.f_f-score 0.80199: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 117 | valid.f_iou 0.7053899765014648, valid.f_f-score 0.78629: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 117 | valid.f_iou 0.7053899765014648, valid.f_f-score 0.78629: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 117 | valid.f_iou 0.7242000102996826, valid.f_f-score 0.80844: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 117 | valid.f_iou 0.7242000102996826, valid.f_f-score 0.80844: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 117 | valid.f_iou 0.7160300016403198, valid.f_f-score 0.80911: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 117 | valid.f_iou 0.7160300016403198, valid.f_f-score 0.80911: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 117 | valid.f_iou 0.7202100157737732, valid.f_f-score 0.81159: 50%|███████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 117 | valid.f_iou 0.7202100157737732, valid.f_f-score 0.81159: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.85it/s]
epoch 117 | valid.f_iou 0.734279990196228, valid.f_f-score 0.82333: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 117 | valid.f_iou 0.734279990196228, valid.f_f-score 0.82333: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.95it/s]
epoch 117 | valid.f_iou 0.7218999862670898, valid.f_f-score 0.80607: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.95it/s]
epoch 117 | valid.f_iou 0.7218999862670898, valid.f_f-score 0.80607: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.03it/s]
epoch 117 | valid.f_iou 0.7333700060844421, valid.f_f-score 0.81656: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.03it/s]
epoch 117 | valid.f_iou 0.7333700060844421, valid.f_f-score 0.81656: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.09it/s]
epoch 117 | valid.f_iou 0.7436800003051758, valid.f_f-score 0.8243: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.09it/s]
epoch 117 | valid.f_iou 0.7436800003051758, valid.f_f-score 0.8243: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.18it/s]
epoch 117 | valid.f_iou 0.7363200187683105, valid.f_f-score 0.82007: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.18it/s]
epoch 117 | valid.f_iou 0.7363200187683105, valid.f_f-score 0.82007: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.31it/s]
epoch 117 | valid.f_iou 0.7457600235939026, valid.f_f-score 0.82899: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.31it/s]
epoch 117 | valid.f_iou 0.7457600235939026, valid.f_f-score 0.82899: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 117 | valid.f_iou 0.7450900077819824, valid.f_f-score 0.82849: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 117 | valid.f_iou 0.7450900077819824, valid.f_f-score 0.82849: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.51it/s]
epoch 117 | valid.f_iou 0.7450900077819824, valid.f_f-score 0.82849: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 117 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.77708: 0%| | 0/16 [00:04, ?it/s]
epoch 117 | valid.f_iou 0.7524499893188477, valid.f_f-score 0.77708: 6%|█▉ | 1/16 [00:04<01:14, 4.94s/it]
epoch 117 | valid.f_iou 0.8159999847412109, valid.f_f-score 0.85991: 6%|█▉ | 1/16 [00:05<01:14, 4.94s/it]
epoch 117 | valid.f_iou 0.8159999847412109, valid.f_f-score 0.85991: 12%|███▊ | 2/16 [00:05<00:32, 2.30s/it]
epoch 117 | valid.f_iou 0.7613599896430969, valid.f_f-score 0.84596: 12%|███▊ | 2/16 [00:05<00:32, 2.30s/it]
epoch 117 | valid.f_iou 0.7613599896430969, valid.f_f-score 0.84596: 19%|█████▋ | 3/16 [00:05<00:18, 1.46s/it]
epoch 117 | valid.f_iou 0.754830002784729, valid.f_f-score 0.81452: 19%|█████▊ | 3/16 [00:06<00:18, 1.46s/it]
epoch 117 | valid.f_iou 0.754830002784729, valid.f_f-score 0.81452: 25%|███████▊ | 4/16 [00:06<00:12, 1.06s/it]
epoch 117 | valid.f_iou 0.7335600256919861, valid.f_f-score 0.80199: 25%|███████▌ | 4/16 [00:06<00:12, 1.06s/it]
epoch 117 | valid.f_iou 0.7335600256919861, valid.f_f-score 0.80199: 31%|█████████▍ | 5/16 [00:06<00:09, 1.19it/s]
epoch 117 | valid.f_iou 0.7122499942779541, valid.f_f-score 0.78629: 31%|█████████▍ | 5/16 [00:07<00:09, 1.19it/s]
epoch 117 | valid.f_iou 0.7122499942779541, valid.f_f-score 0.78629: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 117 | valid.f_iou 0.7318000197410583, valid.f_f-score 0.80844: 38%|███████████▎ | 6/16 [00:07<00:07, 1.41it/s]
epoch 117 | valid.f_iou 0.7318000197410583, valid.f_f-score 0.80844: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.60it/s]
epoch 117 | valid.f_iou 0.7226799726486206, valid.f_f-score 0.80911: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 117 | valid.f_iou 0.7226799726486206, valid.f_f-score 0.80911: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 117 | valid.f_iou 0.7280200123786926, valid.f_f-score 0.81159: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 117 | valid.f_iou 0.7280200123786926, valid.f_f-score 0.81159: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.88it/s]
epoch 117 | valid.f_iou 0.737500011920929, valid.f_f-score 0.81989: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.88it/s]
epoch 117 | valid.f_iou 0.737500011920929, valid.f_f-score 0.81989: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 117 | valid.f_iou 0.7248299717903137, valid.f_f-score 0.80294: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 117 | valid.f_iou 0.7248299717903137, valid.f_f-score 0.80294: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.05it/s]
epoch 117 | valid.f_iou 0.736050009727478, valid.f_f-score 0.81369: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.05it/s]
epoch 117 | valid.f_iou 0.736050009727478, valid.f_f-score 0.81369: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.10it/s]
epoch 117 | valid.f_iou 0.7460899949073792, valid.f_f-score 0.82258: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.10it/s]
epoch 117 | valid.f_iou 0.7460899949073792, valid.f_f-score 0.82258: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.20it/s]
epoch 117 | valid.f_iou 0.7385600209236145, valid.f_f-score 0.81848: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.20it/s]
epoch 117 | valid.f_iou 0.7385600209236145, valid.f_f-score 0.81848: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.33it/s]
epoch 117 | valid.f_iou 0.7478399872779846, valid.f_f-score 0.82751: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.33it/s]
epoch 117 | valid.f_iou 0.7478399872779846, valid.f_f-score 0.82751: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 117 | valid.f_iou 0.7475699782371521, valid.f_f-score 0.8271: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 117 | valid.f_iou 0.7475699782371521, valid.f_f-score 0.8271: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.36it/s]
epoch 117 | valid.f_iou 0.7475699782371521, valid.f_f-score 0.8271: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 118 | loss 0.8392478227615356, f_iou 0.7743903398513794: 0%| | 0/74 [00:06, ?it/s]
epoch 118 | loss 0.8392478227615356, f_iou 0.7743903398513794: 1%|▍ | 1/74 [00:06<08:03, 6.62s/it]
epoch 118 | loss 1.061339259147644, f_iou 0.7549436092376709: 1%|▌ | 1/74 [00:07<08:03, 6.62s/it]
epoch 118 | loss 1.061339259147644, f_iou 0.7549436092376709: 3%|█ | 2/74 [00:07<03:49, 3.19s/it]
epoch 118 | loss 0.9970878958702087, f_iou 0.8094992637634277: 3%|▉ | 2/74 [00:08<03:49, 3.19s/it]
epoch 118 | loss 0.9970878958702087, f_iou 0.8094992637634277: 4%|█▍ | 3/74 [00:08<02:28, 2.10s/it]
epoch 118 | loss 0.7663559913635254, f_iou 0.8360457420349121: 4%|█▍ | 3/74 [00:09<02:28, 2.10s/it]
epoch 118 | loss 0.7663559913635254, f_iou 0.8360457420349121: 5%|█▉ | 4/74 [00:09<01:50, 1.59s/it]
epoch 118 | loss 0.0, f_iou 0.8228446245193481: 5%|██▊ | 4/74 [00:09<01:50, 1.59s/it]
epoch 118 | loss 0.0, f_iou 0.8228446245193481: 7%|███▍ | 5/74 [00:09<01:30, 1.31s/it]
epoch 118 | loss 1.0504961013793945, f_iou 0.8163707256317139: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 118 | loss 1.0504961013793945, f_iou 0.8163707256317139: 8%|██▉ | 6/74 [00:10<01:17, 1.14s/it]
epoch 118 | loss 0.7209683656692505, f_iou 0.8279873132705688: 8%|██▉ | 6/74 [00:11<01:17, 1.14s/it]
epoch 118 | loss 0.7209683656692505, f_iou 0.8279873132705688: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 118 | loss 0.8485411405563354, f_iou 0.8357060551643372: 9%|███▍ | 7/74 [00:12<01:08, 1.02s/it]
epoch 118 | loss 0.8485411405563354, f_iou 0.8357060551643372: 11%|███▉ | 8/74 [00:12<01:02, 1.06it/s]
epoch 118 | loss 1.0116488933563232, f_iou 0.8381022810935974: 11%|███▉ | 8/74 [00:12<01:02, 1.06it/s]
epoch 118 | loss 1.0116488933563232, f_iou 0.8381022810935974: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 118 | loss 1.1579113006591797, f_iou 0.8157908320426941: 12%|████▍ | 9/74 [00:13<00:57, 1.13it/s]
epoch 118 | loss 1.1579113006591797, f_iou 0.8157908320426941: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 118 | loss 0.7204920053482056, f_iou 0.7448277473449707: 14%|████▋ | 10/74 [00:14<00:54, 1.17it/s]
epoch 118 | loss 0.7204920053482056, f_iou 0.7448277473449707: 15%|█████▏ | 11/74 [00:14<00:51, 1.23it/s]
epoch 118 | loss 1.6176586151123047, f_iou 0.7525479197502136: 15%|█████▏ | 11/74 [00:15<00:51, 1.23it/s]
epoch 118 | loss 1.6176586151123047, f_iou 0.7525479197502136: 16%|█████▋ | 12/74 [00:15<00:48, 1.27it/s]
epoch 118 | loss 0.6716874837875366, f_iou 0.7665772438049316: 16%|█████▋ | 12/74 [00:15<00:48, 1.27it/s]
epoch 118 | loss 0.6716874837875366, f_iou 0.7665772438049316: 18%|██████▏ | 13/74 [00:15<00:46, 1.31it/s]
epoch 118 | loss 0.8447505235671997, f_iou 0.7544410824775696: 18%|██████▏ | 13/74 [00:16<00:46, 1.31it/s]
epoch 118 | loss 0.8447505235671997, f_iou 0.7544410824775696: 19%|██████▌ | 14/74 [00:16<00:45, 1.31it/s]
epoch 118 | loss 0.9916209578514099, f_iou 0.743371307849884: 19%|██████▊ | 14/74 [00:17<00:45, 1.31it/s]
epoch 118 | loss 0.9916209578514099, f_iou 0.743371307849884: 20%|███████▎ | 15/74 [00:17<00:44, 1.33it/s]
epoch 118 | loss 0.797649621963501, f_iou 0.7504369616508484: 20%|███████▎ | 15/74 [00:18<00:44, 1.33it/s]
epoch 118 | loss 0.797649621963501, f_iou 0.7504369616508484: 22%|███████▊ | 16/74 [00:18<00:43, 1.35it/s]
epoch 118 | loss 0.5372509360313416, f_iou 0.7509599924087524: 22%|███████▌ | 16/74 [00:18<00:43, 1.35it/s]
epoch 118 | loss 0.5372509360313416, f_iou 0.7509599924087524: 23%|████████ | 17/74 [00:18<00:42, 1.36it/s]
epoch 118 | loss 0.835399866104126, f_iou 0.7312286496162415: 23%|████████▎ | 17/74 [00:19<00:42, 1.36it/s]
epoch 118 | loss 0.835399866104126, f_iou 0.7312286496162415: 24%|████████▊ | 18/74 [00:19<00:41, 1.35it/s]
epoch 118 | loss 1.3657900094985962, f_iou 0.708222508430481: 24%|████████▊ | 18/74 [00:20<00:41, 1.35it/s]
epoch 118 | loss 1.3657900094985962, f_iou 0.708222508430481: 26%|█████████▏ | 19/74 [00:20<00:41, 1.32it/s]
epoch 118 | loss 0.26782989501953125, f_iou 0.6771293878555298: 26%|████████▋ | 19/74 [00:21<00:41, 1.32it/s]
epoch 118 | loss 0.26782989501953125, f_iou 0.6771293878555298: 27%|█████████▏ | 20/74 [00:21<00:40, 1.33it/s]
epoch 118 | loss 0.31970641016960144, f_iou 0.6914368867874146: 27%|█████████▏ | 20/74 [00:21<00:40, 1.33it/s]
epoch 118 | loss 0.31970641016960144, f_iou 0.6914368867874146: 28%|█████████▋ | 21/74 [00:21<00:39, 1.34it/s]
epoch 118 | loss 1.2195414304733276, f_iou 0.6989811658859253: 28%|█████████▉ | 21/74 [00:22<00:39, 1.34it/s]
epoch 118 | loss 1.2195414304733276, f_iou 0.6989811658859253: 30%|██████████▍ | 22/74 [00:22<00:38, 1.36it/s]
epoch 118 | loss 0.8778590559959412, f_iou 0.7026797533035278: 30%|██████████▍ | 22/74 [00:23<00:38, 1.36it/s]
epoch 118 | loss 0.8778590559959412, f_iou 0.7026797533035278: 31%|██████████▉ | 23/74 [00:23<00:37, 1.37it/s]
epoch 118 | loss 0.48330965638160706, f_iou 0.6799606680870056: 31%|██████████▌ | 23/74 [00:24<00:37, 1.37it/s]
epoch 118 | loss 0.48330965638160706, f_iou 0.6799606680870056: 32%|███████████ | 24/74 [00:24<00:36, 1.35it/s]
epoch 118 | loss 0.9964489936828613, f_iou 0.682175874710083: 32%|███████████▋ | 24/74 [00:24<00:36, 1.35it/s]
epoch 118 | loss 0.9964489936828613, f_iou 0.682175874710083: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 118 | loss 0.7096075415611267, f_iou 0.656349778175354: 34%|████████████▏ | 25/74 [00:25<00:36, 1.33it/s]
epoch 118 | loss 0.7096075415611267, f_iou 0.656349778175354: 35%|████████████▋ | 26/74 [00:25<00:36, 1.32it/s]
epoch 118 | loss 1.6906147003173828, f_iou 0.6522321105003357: 35%|████████████▎ | 26/74 [00:26<00:36, 1.32it/s]
epoch 118 | loss 1.6906147003173828, f_iou 0.6522321105003357: 36%|████████████▊ | 27/74 [00:26<00:36, 1.30it/s]
epoch 118 | loss 1.8685364723205566, f_iou 0.6562910079956055: 36%|████████████▊ | 27/74 [00:27<00:36, 1.30it/s]
epoch 118 | loss 1.8685364723205566, f_iou 0.6562910079956055: 38%|█████████████▏ | 28/74 [00:27<00:35, 1.30it/s]
epoch 118 | loss 0.8274776339530945, f_iou 0.6661040782928467: 38%|█████████████▏ | 28/74 [00:27<00:35, 1.30it/s]
epoch 118 | loss 0.8274776339530945, f_iou 0.6661040782928467: 39%|█████████████▋ | 29/74 [00:27<00:34, 1.32it/s]
epoch 118 | loss 0.31680381298065186, f_iou 0.676713764667511: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.32it/s]
epoch 118 | loss 0.31680381298065186, f_iou 0.676713764667511: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.34it/s]
epoch 118 | loss 0.9144263863563538, f_iou 0.6739527583122253: 41%|██████████████▏ | 30/74 [00:29<00:32, 1.34it/s]
epoch 118 | loss 0.9144263863563538, f_iou 0.6739527583122253: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.36it/s]
epoch 118 | loss 2.54882550239563, f_iou 0.6695095896720886: 42%|███████████████▌ | 31/74 [00:30<00:31, 1.36it/s]
epoch 118 | loss 2.54882550239563, f_iou 0.6695095896720886: 43%|████████████████ | 32/74 [00:30<00:30, 1.37it/s]
epoch 118 | loss 0.73970627784729, f_iou 0.6736782789230347: 43%|████████████████ | 32/74 [00:30<00:30, 1.37it/s]
epoch 118 | loss 0.73970627784729, f_iou 0.6736782789230347: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.38it/s]
epoch 118 | loss 0.6958936452865601, f_iou 0.675758957862854: 45%|████████████████ | 33/74 [00:31<00:29, 1.38it/s]
epoch 118 | loss 0.6958936452865601, f_iou 0.675758957862854: 46%|████████████████▌ | 34/74 [00:31<00:28, 1.38it/s]
epoch 118 | loss 1.835296630859375, f_iou 0.6756511330604553: 46%|████████████████▌ | 34/74 [00:32<00:28, 1.38it/s]
epoch 118 | loss 1.835296630859375, f_iou 0.6756511330604553: 47%|█████████████████ | 35/74 [00:32<00:28, 1.39it/s]
epoch 118 | loss 0.7452043294906616, f_iou 0.6776024699211121: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.39it/s]
epoch 118 | loss 0.7452043294906616, f_iou 0.6776024699211121: 49%|█████████████████ | 36/74 [00:32<00:27, 1.38it/s]
epoch 118 | loss 2.4765448570251465, f_iou 0.6750304102897644: 49%|█████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 118 | loss 2.4765448570251465, f_iou 0.6750304102897644: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 118 | loss 0.5225755572319031, f_iou 0.6805463433265686: 50%|█████████████████▌ | 37/74 [00:34<00:26, 1.39it/s]
epoch 118 | loss 0.5225755572319031, f_iou 0.6805463433265686: 51%|█████████████████▉ | 38/74 [00:34<00:25, 1.39it/s]
epoch 118 | loss 0.44985875487327576, f_iou 0.6874179244041443: 51%|█████████████████▍ | 38/74 [00:35<00:25, 1.39it/s]
epoch 118 | loss 0.44985875487327576, f_iou 0.6874179244041443: 53%|█████████████████▉ | 39/74 [00:35<00:25, 1.39it/s]
epoch 118 | loss 0.9496758580207825, f_iou 0.6913917064666748: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.39it/s]
epoch 118 | loss 0.9496758580207825, f_iou 0.6913917064666748: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.37it/s]
epoch 118 | loss 1.3484454154968262, f_iou 0.6921878457069397: 54%|██████████████████▉ | 40/74 [00:36<00:24, 1.37it/s]
epoch 118 | loss 1.3484454154968262, f_iou 0.6921878457069397: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.34it/s]
epoch 118 | loss 0.38008928298950195, f_iou 0.6987716555595398: 55%|██████████████████▊ | 41/74 [00:37<00:24, 1.34it/s]
epoch 118 | loss 0.38008928298950195, f_iou 0.6987716555595398: 57%|███████████████████▎ | 42/74 [00:37<00:24, 1.33it/s]
epoch 118 | loss 1.1550357341766357, f_iou 0.6999025344848633: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.33it/s]
epoch 118 | loss 1.1550357341766357, f_iou 0.6999025344848633: 58%|████████████████████▎ | 43/74 [00:38<00:24, 1.29it/s]
epoch 118 | loss 1.103521466255188, f_iou 0.6980815529823303: 58%|████████████████████▉ | 43/74 [00:38<00:24, 1.29it/s]
epoch 118 | loss 1.103521466255188, f_iou 0.6980815529823303: 59%|█████████████████████▍ | 44/74 [00:38<00:23, 1.29it/s]
epoch 118 | loss 0.12886708974838257, f_iou 0.7036193013191223: 59%|████████████████████▏ | 44/74 [00:39<00:23, 1.29it/s]
epoch 118 | loss 0.12886708974838257, f_iou 0.7036193013191223: 61%|████████████████████▋ | 45/74 [00:39<00:22, 1.29it/s]
epoch 118 | loss 0.6066952347755432, f_iou 0.7029142379760742: 61%|█████████████████████▎ | 45/74 [00:40<00:22, 1.29it/s]
epoch 118 | loss 0.6066952347755432, f_iou 0.7029142379760742: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.29it/s]
epoch 118 | loss 1.0911210775375366, f_iou 0.7040488123893738: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.29it/s]
epoch 118 | loss 1.0911210775375366, f_iou 0.7040488123893738: 64%|██████████████████████▏ | 47/74 [00:41<00:20, 1.29it/s]
epoch 118 | loss 0.9085583686828613, f_iou 0.6927820444107056: 64%|██████████████████████▏ | 47/74 [00:42<00:20, 1.29it/s]
epoch 118 | loss 0.9085583686828613, f_iou 0.6927820444107056: 65%|██████████████████████▋ | 48/74 [00:42<00:20, 1.29it/s]
epoch 118 | loss 0.8220835328102112, f_iou 0.696380078792572: 65%|███████████████████████▎ | 48/74 [00:42<00:20, 1.29it/s]
epoch 118 | loss 0.8220835328102112, f_iou 0.696380078792572: 66%|███████████████████████▊ | 49/74 [00:42<00:19, 1.30it/s]
epoch 118 | loss 2.1532444953918457, f_iou 0.6953021287918091: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.30it/s]
epoch 118 | loss 2.1532444953918457, f_iou 0.6953021287918091: 68%|███████████████████████▋ | 50/74 [00:43<00:18, 1.30it/s]
epoch 118 | loss 0.9366427659988403, f_iou 0.6979495286941528: 68%|███████████████████████▋ | 50/74 [00:44<00:18, 1.30it/s]
epoch 118 | loss 0.9366427659988403, f_iou 0.6979495286941528: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.30it/s]
epoch 118 | loss 1.1901673078536987, f_iou 0.6989173889160156: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.30it/s]
epoch 118 | loss 1.1901673078536987, f_iou 0.6989173889160156: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.30it/s]
epoch 118 | loss 0.9352355003356934, f_iou 0.7020738124847412: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.30it/s]
epoch 118 | loss 0.9352355003356934, f_iou 0.7020738124847412: 72%|█████████████████████████ | 53/74 [00:45<00:16, 1.29it/s]
epoch 118 | loss 1.9818429946899414, f_iou 0.696153998374939: 72%|█████████████████████████▊ | 53/74 [00:46<00:16, 1.29it/s]
epoch 118 | loss 1.9818429946899414, f_iou 0.696153998374939: 73%|██████████████████████████▎ | 54/74 [00:46<00:15, 1.31it/s]
epoch 118 | loss 1.8061658143997192, f_iou 0.6950065493583679: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.31it/s]
epoch 118 | loss 1.8061658143997192, f_iou 0.6950065493583679: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.32it/s]
epoch 118 | loss 0.7638837695121765, f_iou 0.6926527619361877: 74%|██████████████████████████ | 55/74 [00:48<00:14, 1.32it/s]
epoch 118 | loss 0.7638837695121765, f_iou 0.6926527619361877: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.34it/s]
epoch 118 | loss 1.2587414979934692, f_iou 0.6958675384521484: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.34it/s]
epoch 118 | loss 1.2587414979934692, f_iou 0.6958675384521484: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.35it/s]
epoch 118 | loss 0.5524805784225464, f_iou 0.6977607011795044: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.35it/s]
epoch 118 | loss 0.5524805784225464, f_iou 0.6977607011795044: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.36it/s]
epoch 118 | loss 1.0908864736557007, f_iou 0.6996580362319946: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.36it/s]
epoch 118 | loss 1.0908864736557007, f_iou 0.6996580362319946: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.37it/s]
epoch 118 | loss 1.3662225008010864, f_iou 0.700415849685669: 80%|████████████████████████████▋ | 59/74 [00:51<00:10, 1.37it/s]
epoch 118 | loss 1.3662225008010864, f_iou 0.700415849685669: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.37it/s]
epoch 118 | loss 0.9479399919509888, f_iou 0.7027966380119324: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.37it/s]
epoch 118 | loss 0.9479399919509888, f_iou 0.7027966380119324: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.37it/s]
epoch 118 | loss 0.5366442203521729, f_iou 0.7062085270881653: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.37it/s]
epoch 118 | loss 0.5366442203521729, f_iou 0.7062085270881653: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.38it/s]
epoch 118 | loss 0.4070071280002594, f_iou 0.7100620269775391: 84%|█████████████████████████████▎ | 62/74 [00:53<00:08, 1.38it/s]
epoch 118 | loss 0.4070071280002594, f_iou 0.7100620269775391: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.38it/s]
epoch 118 | loss 0.5332003235816956, f_iou 0.7135903239250183: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.38it/s]
epoch 118 | loss 0.5332003235816956, f_iou 0.7135903239250183: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.38it/s]
epoch 118 | loss 0.3760524392127991, f_iou 0.7168645262718201: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.38it/s]
epoch 118 | loss 0.3760524392127991, f_iou 0.7168645262718201: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.37it/s]
epoch 118 | loss 0.44852781295776367, f_iou 0.7171756029129028: 88%|█████████████████████████████▊ | 65/74 [00:55<00:06, 1.37it/s]
epoch 118 | loss 0.44852781295776367, f_iou 0.7171756029129028: 89%|██████████████████████████████▎ | 66/74 [00:55<00:05, 1.38it/s]
epoch 118 | loss 1.306577205657959, f_iou 0.7178351879119873: 89%|████████████████████████████████ | 66/74 [00:56<00:05, 1.38it/s]
epoch 118 | loss 1.306577205657959, f_iou 0.7178351879119873: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 118 | loss 1.038866639137268, f_iou 0.7171164751052856: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 118 | loss 1.038866639137268, f_iou 0.7171164751052856: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.38it/s]
epoch 118 | loss 0.8744324445724487, f_iou 0.7200781106948853: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.38it/s]
epoch 118 | loss 0.8744324445724487, f_iou 0.7200781106948853: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.39it/s]
epoch 118 | loss 1.5343334674835205, f_iou 0.7193084955215454: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.39it/s]
epoch 118 | loss 1.5343334674835205, f_iou 0.7193084955215454: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 118 | loss 0.5584158897399902, f_iou 0.7227188348770142: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 118 | loss 0.5584158897399902, f_iou 0.7227188348770142: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 118 | loss 0.6902432441711426, f_iou 0.7249592542648315: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 118 | loss 0.6902432441711426, f_iou 0.7249592542648315: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 118 | loss 1.0222879648208618, f_iou 0.7269318699836731: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 118 | loss 1.0222879648208618, f_iou 0.7269318699836731: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.40it/s]
epoch 118 | loss 1.694244623184204, f_iou 0.7268519401550293: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.40it/s]
epoch 118 | loss 1.694244623184204, f_iou 0.7268519401550293: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.40it/s]
epoch 118 | loss 1.694244623184204, f_iou 0.7268519401550293: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 118 | valid.f_iou 0.7400799989700317, valid.f_f-score 0.85114: 0%| | 0/16 [00:05, ?it/s]
epoch 118 | valid.f_iou 0.7400799989700317, valid.f_f-score 0.85114: 6%|█▉ | 1/16 [00:05<01:21, 5.45s/it]
epoch 118 | valid.f_iou 0.6911200284957886, valid.f_f-score 0.86006: 6%|█▉ | 1/16 [00:05<01:21, 5.45s/it]
epoch 118 | valid.f_iou 0.6911200284957886, valid.f_f-score 0.86006: 12%|███▊ | 2/16 [00:05<00:35, 2.51s/it]
epoch 118 | valid.f_iou 0.555079996585846, valid.f_f-score 0.76644: 12%|███▉ | 2/16 [00:06<00:35, 2.51s/it]
epoch 118 | valid.f_iou 0.555079996585846, valid.f_f-score 0.76644: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 118 | valid.f_iou 0.5918099880218506, valid.f_f-score 0.76635: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 118 | valid.f_iou 0.5918099880218506, valid.f_f-score 0.76635: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 118 | valid.f_iou 0.6130300164222717, valid.f_f-score 0.77948: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 118 | valid.f_iou 0.6130300164222717, valid.f_f-score 0.77948: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 118 | valid.f_iou 0.5705299973487854, valid.f_f-score 0.73651: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 118 | valid.f_iou 0.5705299973487854, valid.f_f-score 0.73651: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 118 | valid.f_iou 0.5952699780464172, valid.f_f-score 0.75812: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 118 | valid.f_iou 0.5952699780464172, valid.f_f-score 0.75812: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 118 | valid.f_iou 0.5722600221633911, valid.f_f-score 0.7421: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 118 | valid.f_iou 0.5722600221633911, valid.f_f-score 0.7421: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 118 | valid.f_iou 0.5896900296211243, valid.f_f-score 0.75047: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 118 | valid.f_iou 0.5896900296211243, valid.f_f-score 0.75047: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.02it/s]
epoch 118 | valid.f_iou 0.5843700170516968, valid.f_f-score 0.74954: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.02it/s]
epoch 118 | valid.f_iou 0.5843700170516968, valid.f_f-score 0.74954: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.20it/s]
epoch 118 | valid.f_iou 0.5849400162696838, valid.f_f-score 0.74615: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.20it/s]
epoch 118 | valid.f_iou 0.5849400162696838, valid.f_f-score 0.74615: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.35it/s]
epoch 118 | valid.f_iou 0.6067500114440918, valid.f_f-score 0.76152: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.35it/s]
epoch 118 | valid.f_iou 0.6067500114440918, valid.f_f-score 0.76152: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.47it/s]
epoch 118 | valid.f_iou 0.6157900094985962, valid.f_f-score 0.76564: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.47it/s]
epoch 118 | valid.f_iou 0.6157900094985962, valid.f_f-score 0.76564: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.54it/s]
epoch 118 | valid.f_iou 0.6094599962234497, valid.f_f-score 0.76127: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.54it/s]
epoch 118 | valid.f_iou 0.6094599962234497, valid.f_f-score 0.76127: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.61it/s]
epoch 118 | valid.f_iou 0.6143800020217896, valid.f_f-score 0.76142: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.61it/s]
epoch 118 | valid.f_iou 0.6143800020217896, valid.f_f-score 0.76142: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 118 | valid.f_iou 0.6162700057029724, valid.f_f-score 0.75805: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 118 | valid.f_iou 0.6162700057029724, valid.f_f-score 0.75805: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.66it/s]
epoch 118 | valid.f_iou 0.6162700057029724, valid.f_f-score 0.75805: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 118 | valid.f_iou 0.805079996585846, valid.f_f-score 0.79459: 0%| | 0/16 [00:05, ?it/s]
epoch 118 | valid.f_iou 0.805079996585846, valid.f_f-score 0.79459: 6%|█▉ | 1/16 [00:05<01:23, 5.56s/it]
epoch 118 | valid.f_iou 0.8413400053977966, valid.f_f-score 0.86671: 6%|█▉ | 1/16 [00:06<01:23, 5.56s/it]
epoch 118 | valid.f_iou 0.8413400053977966, valid.f_f-score 0.86671: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 118 | valid.f_iou 0.7793599963188171, valid.f_f-score 0.8523: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 118 | valid.f_iou 0.7793599963188171, valid.f_f-score 0.8523: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 118 | valid.f_iou 0.737820029258728, valid.f_f-score 0.78504: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 118 | valid.f_iou 0.737820029258728, valid.f_f-score 0.78504: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 118 | valid.f_iou 0.7090499997138977, valid.f_f-score 0.77474: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 118 | valid.f_iou 0.7090499997138977, valid.f_f-score 0.77474: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 118 | valid.f_iou 0.7005000114440918, valid.f_f-score 0.7735: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 118 | valid.f_iou 0.7005000114440918, valid.f_f-score 0.7735: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 118 | valid.f_iou 0.7197999954223633, valid.f_f-score 0.79775: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 118 | valid.f_iou 0.7197999954223633, valid.f_f-score 0.79775: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 118 | valid.f_iou 0.7139099836349487, valid.f_f-score 0.80165: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 118 | valid.f_iou 0.7139099836349487, valid.f_f-score 0.80165: 50%|███████████████ | 8/16 [00:08<00:04, 1.69it/s]
epoch 118 | valid.f_iou 0.7191399931907654, valid.f_f-score 0.80538: 50%|███████████████ | 8/16 [00:09<00:04, 1.69it/s]
epoch 118 | valid.f_iou 0.7191399931907654, valid.f_f-score 0.80538: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.83it/s]
epoch 118 | valid.f_iou 0.7344499826431274, valid.f_f-score 0.81795: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.83it/s]
epoch 118 | valid.f_iou 0.7344499826431274, valid.f_f-score 0.81795: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 118 | valid.f_iou 0.7234500050544739, valid.f_f-score 0.80157: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 118 | valid.f_iou 0.7234500050544739, valid.f_f-score 0.80157: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.21it/s]
epoch 118 | valid.f_iou 0.7346000075340271, valid.f_f-score 0.81245: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.21it/s]
epoch 118 | valid.f_iou 0.7346000075340271, valid.f_f-score 0.81245: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.34it/s]
epoch 118 | valid.f_iou 0.7418500185012817, valid.f_f-score 0.81734: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.34it/s]
epoch 118 | valid.f_iou 0.7418500185012817, valid.f_f-score 0.81734: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.45it/s]
epoch 118 | valid.f_iou 0.7310600280761719, valid.f_f-score 0.80907: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.45it/s]
epoch 118 | valid.f_iou 0.7310600280761719, valid.f_f-score 0.80907: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.52it/s]
epoch 118 | valid.f_iou 0.7407500147819519, valid.f_f-score 0.81853: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 118 | valid.f_iou 0.7407500147819519, valid.f_f-score 0.81853: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 118 | valid.f_iou 0.7362300157546997, valid.f_f-score 0.81543: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 118 | valid.f_iou 0.7362300157546997, valid.f_f-score 0.81543: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 118 | valid.f_iou 0.7362300157546997, valid.f_f-score 0.81543: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 118 | valid.f_iou 0.805079996585846, valid.f_f-score 0.79459: 0%| | 0/16 [00:05, ?it/s]
epoch 118 | valid.f_iou 0.805079996585846, valid.f_f-score 0.79459: 6%|█▉ | 1/16 [00:05<01:27, 5.81s/it]
epoch 118 | valid.f_iou 0.8413400053977966, valid.f_f-score 0.86671: 6%|█▉ | 1/16 [00:06<01:27, 5.81s/it]
epoch 118 | valid.f_iou 0.8413400053977966, valid.f_f-score 0.86671: 12%|███▊ | 2/16 [00:06<00:37, 2.66s/it]
epoch 118 | valid.f_iou 0.7793599963188171, valid.f_f-score 0.8523: 12%|███▉ | 2/16 [00:06<00:37, 2.66s/it]
epoch 118 | valid.f_iou 0.7793599963188171, valid.f_f-score 0.8523: 19%|█████▊ | 3/16 [00:06<00:21, 1.66s/it]
epoch 118 | valid.f_iou 0.7333599925041199, valid.f_f-score 0.77618: 19%|█████▋ | 3/16 [00:07<00:21, 1.66s/it]
epoch 118 | valid.f_iou 0.7333599925041199, valid.f_f-score 0.77618: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 118 | valid.f_iou 0.7139099836349487, valid.f_f-score 0.76765: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 118 | valid.f_iou 0.7139099836349487, valid.f_f-score 0.76765: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 118 | valid.f_iou 0.70455002784729, valid.f_f-score 0.76759: 31%|██████████ | 5/16 [00:08<00:09, 1.11it/s]
epoch 118 | valid.f_iou 0.70455002784729, valid.f_f-score 0.76759: 38%|████████████ | 6/16 [00:08<00:07, 1.34it/s]
epoch 118 | valid.f_iou 0.7250400185585022, valid.f_f-score 0.79268: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 118 | valid.f_iou 0.7250400185585022, valid.f_f-score 0.79268: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 118 | valid.f_iou 0.7184900045394897, valid.f_f-score 0.79722: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 118 | valid.f_iou 0.7184900045394897, valid.f_f-score 0.79722: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 118 | valid.f_iou 0.7250300049781799, valid.f_f-score 0.80144: 50%|███████████████ | 8/16 [00:09<00:04, 1.76it/s]
epoch 118 | valid.f_iou 0.7250300049781799, valid.f_f-score 0.80144: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 118 | valid.f_iou 0.7356899976730347, valid.f_f-score 0.81088: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 118 | valid.f_iou 0.7356899976730347, valid.f_f-score 0.81088: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.14it/s]
epoch 118 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.79514: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.14it/s]
epoch 118 | valid.f_iou 0.7245799899101257, valid.f_f-score 0.79514: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 118 | valid.f_iou 0.7356299757957458, valid.f_f-score 0.80656: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.29it/s]
epoch 118 | valid.f_iou 0.7356299757957458, valid.f_f-score 0.80656: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 118 | valid.f_iou 0.7427600026130676, valid.f_f-score 0.81294: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 118 | valid.f_iou 0.7427600026130676, valid.f_f-score 0.81294: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.51it/s]
epoch 118 | valid.f_iou 0.7318999767303467, valid.f_f-score 0.80499: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.51it/s]
epoch 118 | valid.f_iou 0.7318999767303467, valid.f_f-score 0.80499: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 118 | valid.f_iou 0.7415300011634827, valid.f_f-score 0.81472: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 118 | valid.f_iou 0.7415300011634827, valid.f_f-score 0.81472: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 118 | valid.f_iou 0.7375400066375732, valid.f_f-score 0.81186: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 118 | valid.f_iou 0.7375400066375732, valid.f_f-score 0.81186: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 118 | valid.f_iou 0.7375400066375732, valid.f_f-score 0.81186: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 119 | loss 0.7505881786346436, f_iou 0.6002024412155151: 0%| | 0/74 [00:06, ?it/s]
epoch 119 | loss 0.7505881786346436, f_iou 0.6002024412155151: 1%|▍ | 1/74 [00:06<07:58, 6.55s/it]
epoch 119 | loss 0.5658209323883057, f_iou 0.49740123748779297: 1%|▍ | 1/74 [00:07<07:58, 6.55s/it]
epoch 119 | loss 0.5658209323883057, f_iou 0.49740123748779297: 3%|▉ | 2/74 [00:07<03:52, 3.22s/it]
epoch 119 | loss 0.38104867935180664, f_iou 0.6512682437896729: 3%|▉ | 2/74 [00:08<03:52, 3.22s/it]
epoch 119 | loss 0.38104867935180664, f_iou 0.6512682437896729: 4%|█▍ | 3/74 [00:08<02:30, 2.12s/it]
epoch 119 | loss 0.7920347452163696, f_iou 0.7094368934631348: 4%|█▍ | 3/74 [00:09<02:30, 2.12s/it]
epoch 119 | loss 0.7920347452163696, f_iou 0.7094368934631348: 5%|█▉ | 4/74 [00:09<01:51, 1.60s/it]
epoch 119 | loss 1.1291794776916504, f_iou 0.724237859249115: 5%|██ | 4/74 [00:09<01:51, 1.60s/it]
epoch 119 | loss 1.1291794776916504, f_iou 0.724237859249115: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 119 | loss 0.37937498092651367, f_iou 0.7610899806022644: 7%|██▎ | 5/74 [00:10<01:30, 1.31s/it]
epoch 119 | loss 0.37937498092651367, f_iou 0.7610899806022644: 8%|██▊ | 6/74 [00:10<01:17, 1.13s/it]
epoch 119 | loss 0.7601974010467529, f_iou 0.7788812518119812: 8%|██▉ | 6/74 [00:11<01:17, 1.13s/it]
epoch 119 | loss 0.7601974010467529, f_iou 0.7788812518119812: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 119 | loss 0.5524483919143677, f_iou 0.8034765124320984: 9%|███▍ | 7/74 [00:12<01:08, 1.02s/it]
epoch 119 | loss 0.5524483919143677, f_iou 0.8034765124320984: 11%|███▉ | 8/74 [00:12<01:02, 1.06it/s]
epoch 119 | loss 3.604306221008301, f_iou 0.809840202331543: 11%|████ | 8/74 [00:12<01:02, 1.06it/s]
epoch 119 | loss 3.604306221008301, f_iou 0.809840202331543: 12%|████▌ | 9/74 [00:12<00:57, 1.14it/s]
epoch 119 | loss 2.7649548053741455, f_iou 0.7711524367332458: 12%|████▍ | 9/74 [00:13<00:57, 1.14it/s]
epoch 119 | loss 2.7649548053741455, f_iou 0.7711524367332458: 14%|████▋ | 10/74 [00:13<00:53, 1.20it/s]
epoch 119 | loss 1.2654701471328735, f_iou 0.7728287577629089: 14%|████▋ | 10/74 [00:14<00:53, 1.20it/s]
epoch 119 | loss 1.2654701471328735, f_iou 0.7728287577629089: 15%|█████▏ | 11/74 [00:14<00:50, 1.25it/s]
epoch 119 | loss 0.691525399684906, f_iou 0.7817502021789551: 15%|█████▎ | 11/74 [00:15<00:50, 1.25it/s]
epoch 119 | loss 0.691525399684906, f_iou 0.7817502021789551: 16%|█████▊ | 12/74 [00:15<00:48, 1.29it/s]
epoch 119 | loss 2.0802407264709473, f_iou 0.7747249007225037: 16%|█████▋ | 12/74 [00:15<00:48, 1.29it/s]
epoch 119 | loss 2.0802407264709473, f_iou 0.7747249007225037: 18%|██████▏ | 13/74 [00:15<00:46, 1.32it/s]
epoch 119 | loss 1.792429804801941, f_iou 0.7657088041305542: 18%|██████▎ | 13/74 [00:16<00:46, 1.32it/s]
epoch 119 | loss 1.792429804801941, f_iou 0.7657088041305542: 19%|██████▊ | 14/74 [00:16<00:44, 1.33it/s]
epoch 119 | loss 1.0804078578948975, f_iou 0.7750465869903564: 19%|██████▌ | 14/74 [00:17<00:44, 1.33it/s]
epoch 119 | loss 1.0804078578948975, f_iou 0.7750465869903564: 20%|███████ | 15/74 [00:17<00:43, 1.35it/s]
epoch 119 | loss 1.3768069744110107, f_iou 0.7767539620399475: 20%|███████ | 15/74 [00:18<00:43, 1.35it/s]
epoch 119 | loss 1.3768069744110107, f_iou 0.7767539620399475: 22%|███████▌ | 16/74 [00:18<00:42, 1.35it/s]
epoch 119 | loss 0.0, f_iou 0.7896143198013306: 22%|██████████▊ | 16/74 [00:18<00:42, 1.35it/s]
epoch 119 | loss 0.0, f_iou 0.7896143198013306: 23%|███████████▍ | 17/74 [00:18<00:41, 1.36it/s]
epoch 119 | loss 1.3044509887695312, f_iou 0.7825912833213806: 23%|████████ | 17/74 [00:19<00:41, 1.36it/s]
epoch 119 | loss 1.3044509887695312, f_iou 0.7825912833213806: 24%|████████▌ | 18/74 [00:19<00:41, 1.36it/s]
epoch 119 | loss 1.8673466444015503, f_iou 0.7870875597000122: 24%|████████▌ | 18/74 [00:20<00:41, 1.36it/s]
epoch 119 | loss 1.8673466444015503, f_iou 0.7870875597000122: 26%|████████▉ | 19/74 [00:20<00:40, 1.37it/s]
epoch 119 | loss 0.8740022778511047, f_iou 0.7879757881164551: 26%|████████▉ | 19/74 [00:20<00:40, 1.37it/s]
epoch 119 | loss 0.8740022778511047, f_iou 0.7879757881164551: 27%|█████████▍ | 20/74 [00:20<00:39, 1.37it/s]
epoch 119 | loss 1.994227647781372, f_iou 0.7765334248542786: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 119 | loss 1.994227647781372, f_iou 0.7765334248542786: 28%|██████████▏ | 21/74 [00:21<00:39, 1.36it/s]
epoch 119 | loss 0.238592728972435, f_iou 0.7742826342582703: 28%|██████████▏ | 21/74 [00:22<00:39, 1.36it/s]
epoch 119 | loss 0.238592728972435, f_iou 0.7742826342582703: 30%|██████████▋ | 22/74 [00:22<00:38, 1.35it/s]
epoch 119 | loss 1.1853716373443604, f_iou 0.7742334604263306: 30%|██████████▍ | 22/74 [00:23<00:38, 1.35it/s]
epoch 119 | loss 1.1853716373443604, f_iou 0.7742334604263306: 31%|██████████▉ | 23/74 [00:23<00:38, 1.33it/s]
epoch 119 | loss 0.7001850605010986, f_iou 0.775097131729126: 31%|███████████▏ | 23/74 [00:24<00:38, 1.33it/s]
epoch 119 | loss 0.7001850605010986, f_iou 0.775097131729126: 32%|███████████▋ | 24/74 [00:24<00:38, 1.30it/s]
epoch 119 | loss 0.951791524887085, f_iou 0.770262598991394: 32%|████████████ | 24/74 [00:24<00:38, 1.30it/s]
epoch 119 | loss 0.951791524887085, f_iou 0.770262598991394: 34%|████████████▌ | 25/74 [00:24<00:38, 1.29it/s]
epoch 119 | loss 0.7617048621177673, f_iou 0.7704641222953796: 34%|███████████▊ | 25/74 [00:25<00:38, 1.29it/s]
epoch 119 | loss 0.7617048621177673, f_iou 0.7704641222953796: 35%|████████████▎ | 26/74 [00:25<00:37, 1.27it/s]
epoch 119 | loss 0.8200809955596924, f_iou 0.7778162956237793: 35%|████████████▎ | 26/74 [00:26<00:37, 1.27it/s]
epoch 119 | loss 0.8200809955596924, f_iou 0.7778162956237793: 36%|████████████▊ | 27/74 [00:26<00:37, 1.26it/s]
epoch 119 | loss 2.691035270690918, f_iou 0.7730506658554077: 36%|█████████████▏ | 27/74 [00:27<00:37, 1.26it/s]
epoch 119 | loss 2.691035270690918, f_iou 0.7730506658554077: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.28it/s]
epoch 119 | loss 3.172175645828247, f_iou 0.7652056217193604: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.28it/s]
epoch 119 | loss 3.172175645828247, f_iou 0.7652056217193604: 39%|██████████████ | 29/74 [00:27<00:34, 1.30it/s]
epoch 119 | loss 0.9469802975654602, f_iou 0.7683536410331726: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.30it/s]
epoch 119 | loss 0.9469802975654602, f_iou 0.7683536410331726: 41%|██████████████▏ | 30/74 [00:28<00:34, 1.29it/s]
epoch 119 | loss 0.6130400896072388, f_iou 0.7737625241279602: 41%|██████████████▏ | 30/74 [00:29<00:34, 1.29it/s]
epoch 119 | loss 0.6130400896072388, f_iou 0.7737625241279602: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.31it/s]
epoch 119 | loss 0.5507246255874634, f_iou 0.7779017686843872: 42%|██████████████▋ | 31/74 [00:30<00:32, 1.31it/s]
epoch 119 | loss 0.5507246255874634, f_iou 0.7779017686843872: 43%|███████████████▏ | 32/74 [00:30<00:31, 1.31it/s]
epoch 119 | loss 0.6447024941444397, f_iou 0.7651305198669434: 43%|███████████████▏ | 32/74 [00:30<00:31, 1.31it/s]
epoch 119 | loss 0.6447024941444397, f_iou 0.7651305198669434: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.30it/s]
epoch 119 | loss 0.5092855095863342, f_iou 0.7680296301841736: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.30it/s]
epoch 119 | loss 0.5092855095863342, f_iou 0.7680296301841736: 46%|████████████████ | 34/74 [00:31<00:31, 1.29it/s]
epoch 119 | loss 1.4612665176391602, f_iou 0.7665138244628906: 46%|████████████████ | 34/74 [00:32<00:31, 1.29it/s]
epoch 119 | loss 1.4612665176391602, f_iou 0.7665138244628906: 47%|████████████████▌ | 35/74 [00:32<00:30, 1.28it/s]
epoch 119 | loss 0.7244130373001099, f_iou 0.7648447155952454: 47%|████████████████▌ | 35/74 [00:33<00:30, 1.28it/s]
epoch 119 | loss 0.7244130373001099, f_iou 0.7648447155952454: 49%|█████████████████ | 36/74 [00:33<00:30, 1.25it/s]
epoch 119 | loss 1.1947814226150513, f_iou 0.7651554346084595: 49%|█████████████████ | 36/74 [00:34<00:30, 1.25it/s]
epoch 119 | loss 1.1947814226150513, f_iou 0.7651554346084595: 50%|█████████████████▌ | 37/74 [00:34<00:29, 1.26it/s]
epoch 119 | loss 0.8854281902313232, f_iou 0.7559667229652405: 50%|█████████████████▌ | 37/74 [00:34<00:29, 1.26it/s]
epoch 119 | loss 0.8854281902313232, f_iou 0.7559667229652405: 51%|█████████████████▉ | 38/74 [00:34<00:28, 1.27it/s]
epoch 119 | loss 0.6514177322387695, f_iou 0.7599405646324158: 51%|█████████████████▉ | 38/74 [00:35<00:28, 1.27it/s]
epoch 119 | loss 0.6514177322387695, f_iou 0.7599405646324158: 53%|██████████████████▍ | 39/74 [00:35<00:27, 1.28it/s]
epoch 119 | loss 1.0246751308441162, f_iou 0.7630431056022644: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.28it/s]
epoch 119 | loss 1.0246751308441162, f_iou 0.7630431056022644: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.29it/s]
epoch 119 | loss 0.8243812322616577, f_iou 0.765292227268219: 54%|███████████████████▍ | 40/74 [00:37<00:26, 1.29it/s]
epoch 119 | loss 0.8243812322616577, f_iou 0.765292227268219: 55%|███████████████████▉ | 41/74 [00:37<00:25, 1.29it/s]
epoch 119 | loss 1.2012349367141724, f_iou 0.7689675092697144: 55%|███████████████████▍ | 41/74 [00:38<00:25, 1.29it/s]
epoch 119 | loss 1.2012349367141724, f_iou 0.7689675092697144: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.30it/s]
epoch 119 | loss 0.8062877655029297, f_iou 0.768084704875946: 57%|████████████████████▍ | 42/74 [00:38<00:24, 1.30it/s]
epoch 119 | loss 0.8062877655029297, f_iou 0.768084704875946: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.32it/s]
epoch 119 | loss 0.13987791538238525, f_iou 0.7721521258354187: 58%|███████████████████▊ | 43/74 [00:39<00:23, 1.32it/s]
epoch 119 | loss 0.13987791538238525, f_iou 0.7721521258354187: 59%|████████████████████▏ | 44/74 [00:39<00:22, 1.34it/s]
epoch 119 | loss 1.2097132205963135, f_iou 0.767112672328949: 59%|█████████████████████▍ | 44/74 [00:40<00:22, 1.34it/s]
epoch 119 | loss 1.2097132205963135, f_iou 0.767112672328949: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.33it/s]
epoch 119 | loss 1.1092256307601929, f_iou 0.7683234214782715: 61%|█████████████████████▎ | 45/74 [00:41<00:21, 1.33it/s]
epoch 119 | loss 1.1092256307601929, f_iou 0.7683234214782715: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.32it/s]
epoch 119 | loss 0.869140625, f_iou 0.7714986205101013: 62%|██████████████████████████ | 46/74 [00:41<00:21, 1.32it/s]
epoch 119 | loss 0.869140625, f_iou 0.7714986205101013: 64%|██████████████████████████▋ | 47/74 [00:41<00:20, 1.30it/s]
epoch 119 | loss 0.9566641449928284, f_iou 0.7729986906051636: 64%|██████████████████████▏ | 47/74 [00:42<00:20, 1.30it/s]
epoch 119 | loss 0.9566641449928284, f_iou 0.7729986906051636: 65%|██████████████████████▋ | 48/74 [00:42<00:20, 1.29it/s]
epoch 119 | loss 0.8374415040016174, f_iou 0.7747716903686523: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.29it/s]
epoch 119 | loss 0.8374415040016174, f_iou 0.7747716903686523: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.28it/s]
epoch 119 | loss 1.25137197971344, f_iou 0.7723695039749146: 66%|████████████████████████▌ | 49/74 [00:44<00:19, 1.28it/s]
epoch 119 | loss 1.25137197971344, f_iou 0.7723695039749146: 68%|█████████████████████████ | 50/74 [00:44<00:18, 1.29it/s]
epoch 119 | loss 0.7621891498565674, f_iou 0.7744423747062683: 68%|███████████████████████▋ | 50/74 [00:44<00:18, 1.29it/s]
epoch 119 | loss 0.7621891498565674, f_iou 0.7744423747062683: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.31it/s]
epoch 119 | loss 0.7156153917312622, f_iou 0.767554759979248: 69%|████████████████████████▊ | 51/74 [00:45<00:17, 1.31it/s]
epoch 119 | loss 0.7156153917312622, f_iou 0.767554759979248: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.33it/s]
epoch 119 | loss 1.0805317163467407, f_iou 0.765314519405365: 70%|█████████████████████████▎ | 52/74 [00:46<00:16, 1.33it/s]
epoch 119 | loss 1.0805317163467407, f_iou 0.765314519405365: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.32it/s]
epoch 119 | loss 1.6140363216400146, f_iou 0.7602739334106445: 72%|█████████████████████████ | 53/74 [00:47<00:15, 1.32it/s]
epoch 119 | loss 1.6140363216400146, f_iou 0.7602739334106445: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.31it/s]
epoch 119 | loss 0.7056421041488647, f_iou 0.7631816864013672: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.31it/s]
epoch 119 | loss 0.7056421041488647, f_iou 0.7631816864013672: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.30it/s]
epoch 119 | loss 0.8263900279998779, f_iou 0.7632771730422974: 74%|██████████████████████████ | 55/74 [00:48<00:14, 1.30it/s]
epoch 119 | loss 0.8263900279998779, f_iou 0.7632771730422974: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.29it/s]
epoch 119 | loss 1.2362170219421387, f_iou 0.7665716409683228: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.29it/s]
epoch 119 | loss 1.2362170219421387, f_iou 0.7665716409683228: 77%|██████████████████████████▉ | 57/74 [00:49<00:13, 1.31it/s]
epoch 119 | loss 0.7305409908294678, f_iou 0.7661033868789673: 77%|██████████████████████████▉ | 57/74 [00:50<00:13, 1.31it/s]
epoch 119 | loss 0.7305409908294678, f_iou 0.7661033868789673: 78%|███████████████████████████▍ | 58/74 [00:50<00:12, 1.32it/s]
epoch 119 | loss 1.3854238986968994, f_iou 0.767645001411438: 78%|████████████████████████████▏ | 58/74 [00:50<00:12, 1.32it/s]
epoch 119 | loss 1.3854238986968994, f_iou 0.767645001411438: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.33it/s]
epoch 119 | loss 0.6528353691101074, f_iou 0.7707347869873047: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.33it/s]
epoch 119 | loss 0.6528353691101074, f_iou 0.7707347869873047: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.34it/s]
epoch 119 | loss 1.252119541168213, f_iou 0.7612749934196472: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.34it/s]
epoch 119 | loss 1.252119541168213, f_iou 0.7612749934196472: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.35it/s]
epoch 119 | loss 1.6031789779663086, f_iou 0.7519206404685974: 82%|████████████████████████████▊ | 61/74 [00:53<00:09, 1.35it/s]
epoch 119 | loss 1.6031789779663086, f_iou 0.7519206404685974: 84%|█████████████████████████████▎ | 62/74 [00:53<00:09, 1.21it/s]
epoch 119 | loss 0.6951055526733398, f_iou 0.7411863803863525: 84%|█████████████████████████████▎ | 62/74 [00:54<00:09, 1.21it/s]
epoch 119 | loss 0.6951055526733398, f_iou 0.7411863803863525: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.26it/s]
epoch 119 | loss 1.0609009265899658, f_iou 0.7415734529495239: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.26it/s]
epoch 119 | loss 1.0609009265899658, f_iou 0.7415734529495239: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.26it/s]
epoch 119 | loss 0.3224280774593353, f_iou 0.7449214458465576: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.26it/s]
epoch 119 | loss 0.3224280774593353, f_iou 0.7449214458465576: 88%|██████████████████████████████▋ | 65/74 [00:55<00:07, 1.27it/s]
epoch 119 | loss 0.3571140766143799, f_iou 0.7483722567558289: 88%|██████████████████████████████▋ | 65/74 [00:56<00:07, 1.27it/s]
epoch 119 | loss 0.3571140766143799, f_iou 0.7483722567558289: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.27it/s]
epoch 119 | loss 1.0175687074661255, f_iou 0.746712863445282: 89%|████████████████████████████████ | 66/74 [00:57<00:06, 1.27it/s]
epoch 119 | loss 1.0175687074661255, f_iou 0.746712863445282: 91%|████████████████████████████████▌ | 67/74 [00:57<00:05, 1.29it/s]
epoch 119 | loss 0.5506365299224854, f_iou 0.7498854994773865: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.29it/s]
epoch 119 | loss 0.5506365299224854, f_iou 0.7498854994773865: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.32it/s]
epoch 119 | loss 2.5995559692382812, f_iou 0.7471502423286438: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.32it/s]
epoch 119 | loss 2.5995559692382812, f_iou 0.7471502423286438: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.34it/s]
epoch 119 | loss 0.4034607708454132, f_iou 0.7470446825027466: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.34it/s]
epoch 119 | loss 0.4034607708454132, f_iou 0.7470446825027466: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.35it/s]
epoch 119 | loss 0.3927433490753174, f_iou 0.7503570318222046: 95%|█████████████████████████████████ | 70/74 [01:00<00:02, 1.35it/s]
epoch 119 | loss 0.3927433490753174, f_iou 0.7503570318222046: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.36it/s]
epoch 119 | loss 1.1735444068908691, f_iou 0.7503594160079956: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.36it/s]
epoch 119 | loss 1.1735444068908691, f_iou 0.7503594160079956: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.37it/s]
epoch 119 | loss 0.5766304731369019, f_iou 0.7519320249557495: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.37it/s]
epoch 119 | loss 0.5766304731369019, f_iou 0.7519320249557495: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.38it/s]
epoch 119 | loss 1.8949904441833496, f_iou 0.7484216094017029: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.38it/s]
epoch 119 | loss 1.8949904441833496, f_iou 0.7484216094017029: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.38it/s]
epoch 119 | loss 1.8949904441833496, f_iou 0.7484216094017029: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.19it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 119 | valid.f_iou 0.7205399870872498, valid.f_f-score 0.83972: 0%| | 0/16 [00:05, ?it/s]
epoch 119 | valid.f_iou 0.7205399870872498, valid.f_f-score 0.83972: 6%|█▉ | 1/16 [00:05<01:24, 5.66s/it]
epoch 119 | valid.f_iou 0.6771699786186218, valid.f_f-score 0.84937: 6%|█▉ | 1/16 [00:06<01:24, 5.66s/it]
epoch 119 | valid.f_iou 0.6771699786186218, valid.f_f-score 0.84937: 12%|███▊ | 2/16 [00:06<00:36, 2.61s/it]
epoch 119 | valid.f_iou 0.5440800189971924, valid.f_f-score 0.75903: 12%|███▊ | 2/16 [00:06<00:36, 2.61s/it]
epoch 119 | valid.f_iou 0.5440800189971924, valid.f_f-score 0.75903: 19%|█████▋ | 3/16 [00:06<00:21, 1.62s/it]
epoch 119 | valid.f_iou 0.5723599791526794, valid.f_f-score 0.74634: 19%|█████▋ | 3/16 [00:07<00:21, 1.62s/it]
epoch 119 | valid.f_iou 0.5723599791526794, valid.f_f-score 0.74634: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 119 | valid.f_iou 0.5868200063705444, valid.f_f-score 0.74969: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 119 | valid.f_iou 0.5868200063705444, valid.f_f-score 0.74969: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 119 | valid.f_iou 0.5490300059318542, valid.f_f-score 0.71237: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 119 | valid.f_iou 0.5490300059318542, valid.f_f-score 0.71237: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 119 | valid.f_iou 0.5793799757957458, valid.f_f-score 0.73587: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 119 | valid.f_iou 0.5793799757957458, valid.f_f-score 0.73587: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 119 | valid.f_iou 0.5467900037765503, valid.f_f-score 0.71517: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 119 | valid.f_iou 0.5467900037765503, valid.f_f-score 0.71517: 50%|███████████████ | 8/16 [00:08<00:04, 1.69it/s]
epoch 119 | valid.f_iou 0.5615900158882141, valid.f_f-score 0.71962: 50%|███████████████ | 8/16 [00:09<00:04, 1.69it/s]
epoch 119 | valid.f_iou 0.5615900158882141, valid.f_f-score 0.71962: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.83it/s]
epoch 119 | valid.f_iou 0.5561800003051758, valid.f_f-score 0.7209: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.83it/s]
epoch 119 | valid.f_iou 0.5561800003051758, valid.f_f-score 0.7209: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.95it/s]
epoch 119 | valid.f_iou 0.5584700107574463, valid.f_f-score 0.72162: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.95it/s]
epoch 119 | valid.f_iou 0.5584700107574463, valid.f_f-score 0.72162: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 119 | valid.f_iou 0.5825600028038025, valid.f_f-score 0.73898: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 119 | valid.f_iou 0.5825600028038025, valid.f_f-score 0.73898: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 119 | valid.f_iou 0.5848399996757507, valid.f_f-score 0.74242: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 119 | valid.f_iou 0.5848399996757507, valid.f_f-score 0.74242: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.41it/s]
epoch 119 | valid.f_iou 0.5799199938774109, valid.f_f-score 0.73797: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.41it/s]
epoch 119 | valid.f_iou 0.5799199938774109, valid.f_f-score 0.73797: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 119 | valid.f_iou 0.5850899815559387, valid.f_f-score 0.7389: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.49it/s]
epoch 119 | valid.f_iou 0.5850899815559387, valid.f_f-score 0.7389: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 119 | valid.f_iou 0.5880600214004517, valid.f_f-score 0.7357: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 119 | valid.f_iou 0.5880600214004517, valid.f_f-score 0.7357: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 119 | valid.f_iou 0.5880600214004517, valid.f_f-score 0.7357: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 119 | valid.f_iou 0.7545300126075745, valid.f_f-score 0.84104: 0%| | 0/16 [00:05, ?it/s]
epoch 119 | valid.f_iou 0.7545300126075745, valid.f_f-score 0.84104: 6%|█▉ | 1/16 [00:05<01:22, 5.52s/it]
epoch 119 | valid.f_iou 0.8141700029373169, valid.f_f-score 0.89008: 6%|█▉ | 1/16 [00:06<01:22, 5.52s/it]
epoch 119 | valid.f_iou 0.8141700029373169, valid.f_f-score 0.89008: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 119 | valid.f_iou 0.7646700143814087, valid.f_f-score 0.86919: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 119 | valid.f_iou 0.7646700143814087, valid.f_f-score 0.86919: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 119 | valid.f_iou 0.7542600035667419, valid.f_f-score 0.83084: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 119 | valid.f_iou 0.7542600035667419, valid.f_f-score 0.83084: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 119 | valid.f_iou 0.7313399910926819, valid.f_f-score 0.8192: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 119 | valid.f_iou 0.7313399910926819, valid.f_f-score 0.8192: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 119 | valid.f_iou 0.7166600227355957, valid.f_f-score 0.81011: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 119 | valid.f_iou 0.7166600227355957, valid.f_f-score 0.81011: 38%|███████████▎ | 6/16 [00:07<00:07, 1.39it/s]
epoch 119 | valid.f_iou 0.7334399819374084, valid.f_f-score 0.82881: 38%|███████████▎ | 6/16 [00:08<00:07, 1.39it/s]
epoch 119 | valid.f_iou 0.7334399819374084, valid.f_f-score 0.82881: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 119 | valid.f_iou 0.7222899794578552, valid.f_f-score 0.82558: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 119 | valid.f_iou 0.7222899794578552, valid.f_f-score 0.82558: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 119 | valid.f_iou 0.7266600131988525, valid.f_f-score 0.82611: 50%|███████████████ | 8/16 [00:09<00:04, 1.77it/s]
epoch 119 | valid.f_iou 0.7266600131988525, valid.f_f-score 0.82611: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 119 | valid.f_iou 0.7332900166511536, valid.f_f-score 0.83472: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 119 | valid.f_iou 0.7332900166511536, valid.f_f-score 0.83472: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.09it/s]
epoch 119 | valid.f_iou 0.7193400263786316, valid.f_f-score 0.81344: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.09it/s]
epoch 119 | valid.f_iou 0.7193400263786316, valid.f_f-score 0.81344: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.26it/s]
epoch 119 | valid.f_iou 0.7315300107002258, valid.f_f-score 0.82346: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.26it/s]
epoch 119 | valid.f_iou 0.7315300107002258, valid.f_f-score 0.82346: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.40it/s]
epoch 119 | valid.f_iou 0.7427200078964233, valid.f_f-score 0.83115: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.40it/s]
epoch 119 | valid.f_iou 0.7427200078964233, valid.f_f-score 0.83115: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 119 | valid.f_iou 0.7354900240898132, valid.f_f-score 0.8266: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.49it/s]
epoch 119 | valid.f_iou 0.7354900240898132, valid.f_f-score 0.8266: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.55it/s]
epoch 119 | valid.f_iou 0.7450000047683716, valid.f_f-score 0.83506: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 119 | valid.f_iou 0.7450000047683716, valid.f_f-score 0.83506: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 119 | valid.f_iou 0.7440800070762634, valid.f_f-score 0.83404: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 119 | valid.f_iou 0.7440800070762634, valid.f_f-score 0.83404: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 119 | valid.f_iou 0.7440800070762634, valid.f_f-score 0.83404: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 119 | valid.f_iou 0.700659990310669, valid.f_f-score 0.79373: 0%| | 0/16 [00:04, ?it/s]
epoch 119 | valid.f_iou 0.700659990310669, valid.f_f-score 0.79373: 6%|█▉ | 1/16 [00:04<01:09, 4.65s/it]
epoch 119 | valid.f_iou 0.7872400283813477, valid.f_f-score 0.86643: 6%|█▉ | 1/16 [00:05<01:09, 4.65s/it]
epoch 119 | valid.f_iou 0.7872400283813477, valid.f_f-score 0.86643: 12%|███▊ | 2/16 [00:05<00:30, 2.18s/it]
epoch 119 | valid.f_iou 0.7467100024223328, valid.f_f-score 0.85342: 12%|███▊ | 2/16 [00:05<00:30, 2.18s/it]
epoch 119 | valid.f_iou 0.7467100024223328, valid.f_f-score 0.85342: 19%|█████▋ | 3/16 [00:05<00:18, 1.39s/it]
epoch 119 | valid.f_iou 0.739300012588501, valid.f_f-score 0.81337: 19%|█████▊ | 3/16 [00:05<00:18, 1.39s/it]
epoch 119 | valid.f_iou 0.739300012588501, valid.f_f-score 0.81337: 25%|███████▊ | 4/16 [00:05<00:11, 1.01it/s]
epoch 119 | valid.f_iou 0.7265400290489197, valid.f_f-score 0.80522: 25%|███████▌ | 4/16 [00:06<00:11, 1.01it/s]
epoch 119 | valid.f_iou 0.7265400290489197, valid.f_f-score 0.80522: 31%|█████████▍ | 5/16 [00:06<00:08, 1.25it/s]
epoch 119 | valid.f_iou 0.712660014629364, valid.f_f-score 0.79847: 31%|█████████▋ | 5/16 [00:06<00:08, 1.25it/s]
epoch 119 | valid.f_iou 0.712660014629364, valid.f_f-score 0.79847: 38%|███████████▋ | 6/16 [00:06<00:06, 1.48it/s]
epoch 119 | valid.f_iou 0.7317500114440918, valid.f_f-score 0.81883: 38%|███████████▎ | 6/16 [00:07<00:06, 1.48it/s]
epoch 119 | valid.f_iou 0.7317500114440918, valid.f_f-score 0.81883: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.72it/s]
epoch 119 | valid.f_iou 0.72079998254776, valid.f_f-score 0.81684: 44%|██████████████ | 7/16 [00:07<00:05, 1.72it/s]
epoch 119 | valid.f_iou 0.72079998254776, valid.f_f-score 0.81684: 50%|████████████████ | 8/16 [00:07<00:04, 1.86it/s]
epoch 119 | valid.f_iou 0.7269200086593628, valid.f_f-score 0.81834: 50%|███████████████ | 8/16 [00:08<00:04, 1.86it/s]
epoch 119 | valid.f_iou 0.7269200086593628, valid.f_f-score 0.81834: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.04it/s]
epoch 119 | valid.f_iou 0.7316700220108032, valid.f_f-score 0.82459: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.04it/s]
epoch 119 | valid.f_iou 0.7316700220108032, valid.f_f-score 0.82459: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.09it/s]
epoch 119 | valid.f_iou 0.7135499715805054, valid.f_f-score 0.80219: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.09it/s]
epoch 119 | valid.f_iou 0.7135499715805054, valid.f_f-score 0.80219: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.13it/s]
epoch 119 | valid.f_iou 0.7262200117111206, valid.f_f-score 0.81315: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.13it/s]
epoch 119 | valid.f_iou 0.7262200117111206, valid.f_f-score 0.81315: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.16it/s]
epoch 119 | valid.f_iou 0.737779974937439, valid.f_f-score 0.82283: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.16it/s]
epoch 119 | valid.f_iou 0.737779974937439, valid.f_f-score 0.82283: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.30it/s]
epoch 119 | valid.f_iou 0.7276700139045715, valid.f_f-score 0.81588: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.30it/s]
epoch 119 | valid.f_iou 0.7276700139045715, valid.f_f-score 0.81588: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.42it/s]
epoch 119 | valid.f_iou 0.7376999855041504, valid.f_f-score 0.82506: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.42it/s]
epoch 119 | valid.f_iou 0.7376999855041504, valid.f_f-score 0.82506: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.51it/s]
epoch 119 | valid.f_iou 0.7377300262451172, valid.f_f-score 0.82466: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.51it/s]
epoch 119 | valid.f_iou 0.7377300262451172, valid.f_f-score 0.82466: 100%|█████████████████████████████| 16/16 [00:10<00:00, 2.57it/s]
epoch 119 | valid.f_iou 0.7377300262451172, valid.f_f-score 0.82466: 100%|█████████████████████████████| 16/16 [00:10<00:00, 1.47it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 120 | loss 0.5651693344116211, f_iou 0.8048297762870789: 0%| | 0/74 [00:05, ?it/s]
epoch 120 | loss 0.5651693344116211, f_iou 0.8048297762870789: 1%|▍ | 1/74 [00:05<07:03, 5.80s/it]
epoch 120 | loss 0.38539600372314453, f_iou 0.8873720169067383: 1%|▍ | 1/74 [00:06<07:03, 5.80s/it]
epoch 120 | loss 0.38539600372314453, f_iou 0.8873720169067383: 3%|▉ | 2/74 [00:06<03:27, 2.89s/it]
epoch 120 | loss 1.2350261211395264, f_iou 0.7677847146987915: 3%|▉ | 2/74 [00:07<03:27, 2.89s/it]
epoch 120 | loss 1.2350261211395264, f_iou 0.7677847146987915: 4%|█▍ | 3/74 [00:07<02:17, 1.94s/it]
epoch 120 | loss 1.6774578094482422, f_iou 0.6196821928024292: 4%|█▍ | 3/74 [00:08<02:17, 1.94s/it]
epoch 120 | loss 1.6774578094482422, f_iou 0.6196821928024292: 5%|█▉ | 4/74 [00:08<01:43, 1.48s/it]
epoch 120 | loss 1.0381348133087158, f_iou 0.6612850427627563: 5%|█▉ | 4/74 [00:09<01:43, 1.48s/it]
epoch 120 | loss 1.0381348133087158, f_iou 0.6612850427627563: 7%|██▍ | 5/74 [00:09<01:25, 1.23s/it]
epoch 120 | loss 0.4221210479736328, f_iou 0.7049058675765991: 7%|██▍ | 5/74 [00:09<01:25, 1.23s/it]
epoch 120 | loss 0.4221210479736328, f_iou 0.7049058675765991: 8%|██▉ | 6/74 [00:09<01:13, 1.08s/it]
epoch 120 | loss 1.2692092657089233, f_iou 0.6854346990585327: 8%|██▉ | 6/74 [00:10<01:13, 1.08s/it]
epoch 120 | loss 1.2692092657089233, f_iou 0.6854346990585327: 9%|███▍ | 7/74 [00:10<01:05, 1.02it/s]
epoch 120 | loss 1.8461467027664185, f_iou 0.6951620578765869: 9%|███▍ | 7/74 [00:11<01:05, 1.02it/s]
epoch 120 | loss 1.8461467027664185, f_iou 0.6951620578765869: 11%|███▉ | 8/74 [00:11<01:01, 1.08it/s]
epoch 120 | loss 0.6812576651573181, f_iou 0.7152634263038635: 11%|███▉ | 8/74 [00:12<01:01, 1.08it/s]
epoch 120 | loss 0.6812576651573181, f_iou 0.7152634263038635: 12%|████▍ | 9/74 [00:12<00:57, 1.14it/s]
epoch 120 | loss 1.2306036949157715, f_iou 0.7117332220077515: 12%|████▍ | 9/74 [00:12<00:57, 1.14it/s]
epoch 120 | loss 1.2306036949157715, f_iou 0.7117332220077515: 14%|████▋ | 10/74 [00:12<00:53, 1.19it/s]
epoch 120 | loss 0.5428052544593811, f_iou 0.6588231921195984: 14%|████▋ | 10/74 [00:13<00:53, 1.19it/s]
epoch 120 | loss 0.5428052544593811, f_iou 0.6588231921195984: 15%|█████▏ | 11/74 [00:13<00:51, 1.22it/s]
epoch 120 | loss 0.9436908960342407, f_iou 0.6148817539215088: 15%|█████▏ | 11/74 [00:14<00:51, 1.22it/s]
epoch 120 | loss 0.9436908960342407, f_iou 0.6148817539215088: 16%|█████▋ | 12/74 [00:14<00:49, 1.24it/s]
epoch 120 | loss 0.45280179381370544, f_iou 0.6237969994544983: 16%|█████▌ | 12/74 [00:15<00:49, 1.24it/s]
epoch 120 | loss 0.45280179381370544, f_iou 0.6237969994544983: 18%|█████▉ | 13/74 [00:15<00:48, 1.25it/s]
epoch 120 | loss 1.2032537460327148, f_iou 0.6377078890800476: 18%|██████▏ | 13/74 [00:15<00:48, 1.25it/s]
epoch 120 | loss 1.2032537460327148, f_iou 0.6377078890800476: 19%|██████▌ | 14/74 [00:15<00:46, 1.28it/s]
epoch 120 | loss 1.161706805229187, f_iou 0.6588057279586792: 19%|██████▊ | 14/74 [00:16<00:46, 1.28it/s]
epoch 120 | loss 1.161706805229187, f_iou 0.6588057279586792: 20%|███████▎ | 15/74 [00:16<00:45, 1.31it/s]
epoch 120 | loss 1.2982244491577148, f_iou 0.6649507880210876: 20%|███████ | 15/74 [00:17<00:45, 1.31it/s]
epoch 120 | loss 1.2982244491577148, f_iou 0.6649507880210876: 22%|███████▌ | 16/74 [00:17<00:43, 1.34it/s]
epoch 120 | loss 1.767651915550232, f_iou 0.6704661250114441: 22%|███████▊ | 16/74 [00:18<00:43, 1.34it/s]
epoch 120 | loss 1.767651915550232, f_iou 0.6704661250114441: 23%|████████▎ | 17/74 [00:18<00:42, 1.35it/s]
epoch 120 | loss 0.45718255639076233, f_iou 0.6535372734069824: 23%|███████▊ | 17/74 [00:18<00:42, 1.35it/s]
epoch 120 | loss 0.45718255639076233, f_iou 0.6535372734069824: 24%|████████▎ | 18/74 [00:18<00:42, 1.31it/s]
epoch 120 | loss 0.9500584602355957, f_iou 0.6576706171035767: 24%|████████▌ | 18/74 [00:19<00:42, 1.31it/s]
epoch 120 | loss 0.9500584602355957, f_iou 0.6576706171035767: 26%|████████▉ | 19/74 [00:19<00:42, 1.30it/s]
epoch 120 | loss 0.6308172941207886, f_iou 0.6534004807472229: 26%|████████▉ | 19/74 [00:20<00:42, 1.30it/s]
epoch 120 | loss 0.6308172941207886, f_iou 0.6534004807472229: 27%|█████████▍ | 20/74 [00:20<00:41, 1.30it/s]
epoch 120 | loss 0.20546235144138336, f_iou 0.6590849161148071: 27%|█████████▏ | 20/74 [00:21<00:41, 1.30it/s]
epoch 120 | loss 0.20546235144138336, f_iou 0.6590849161148071: 28%|█████████▋ | 21/74 [00:21<00:40, 1.30it/s]
epoch 120 | loss 0.0, f_iou 0.6707072257995605: 28%|██████████████▏ | 21/74 [00:22<00:40, 1.30it/s]
epoch 120 | loss 0.0, f_iou 0.6707072257995605: 30%|██████████████▊ | 22/74 [00:22<00:40, 1.30it/s]
epoch 120 | loss 0.6935096383094788, f_iou 0.6753616333007812: 30%|██████████▍ | 22/74 [00:22<00:40, 1.30it/s]
epoch 120 | loss 0.6935096383094788, f_iou 0.6753616333007812: 31%|██████████▉ | 23/74 [00:22<00:39, 1.30it/s]
epoch 120 | loss 1.2962456941604614, f_iou 0.6748276948928833: 31%|██████████▉ | 23/74 [00:23<00:39, 1.30it/s]
epoch 120 | loss 1.2962456941604614, f_iou 0.6748276948928833: 32%|███████████▎ | 24/74 [00:23<00:38, 1.30it/s]
epoch 120 | loss 0.45074209570884705, f_iou 0.6858491897583008: 32%|███████████ | 24/74 [00:24<00:38, 1.30it/s]
epoch 120 | loss 0.45074209570884705, f_iou 0.6858491897583008: 34%|███████████▍ | 25/74 [00:24<00:37, 1.32it/s]
epoch 120 | loss 0.9987969398498535, f_iou 0.6941485404968262: 34%|███████████▊ | 25/74 [00:25<00:37, 1.32it/s]
epoch 120 | loss 0.9987969398498535, f_iou 0.6941485404968262: 35%|████████████▎ | 26/74 [00:25<00:35, 1.34it/s]
epoch 120 | loss 0.5446086525917053, f_iou 0.702678382396698: 35%|████████████▋ | 26/74 [00:25<00:35, 1.34it/s]
epoch 120 | loss 0.5446086525917053, f_iou 0.702678382396698: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.35it/s]
epoch 120 | loss 1.5048637390136719, f_iou 0.703026533126831: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.35it/s]
epoch 120 | loss 1.5048637390136719, f_iou 0.703026533126831: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.36it/s]
epoch 120 | loss 0.4104872941970825, f_iou 0.712695837020874: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.36it/s]
epoch 120 | loss 0.4104872941970825, f_iou 0.712695837020874: 39%|██████████████ | 29/74 [00:27<00:33, 1.35it/s]
epoch 120 | loss 0.6021695137023926, f_iou 0.7189723253250122: 39%|█████████████▋ | 29/74 [00:28<00:33, 1.35it/s]
epoch 120 | loss 0.6021695137023926, f_iou 0.7189723253250122: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.33it/s]
epoch 120 | loss 1.3306801319122314, f_iou 0.7119829058647156: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.33it/s]
epoch 120 | loss 1.3306801319122314, f_iou 0.7119829058647156: 42%|██████████████▋ | 31/74 [00:28<00:32, 1.31it/s]
epoch 120 | loss 0.9247543811798096, f_iou 0.7171242237091064: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.31it/s]
epoch 120 | loss 0.9247543811798096, f_iou 0.7171242237091064: 43%|███████████████▏ | 32/74 [00:29<00:32, 1.30it/s]
epoch 120 | loss 0.9824622869491577, f_iou 0.716238796710968: 43%|███████████████▌ | 32/74 [00:30<00:32, 1.30it/s]
epoch 120 | loss 0.9824622869491577, f_iou 0.716238796710968: 45%|████████████████ | 33/74 [00:30<00:31, 1.29it/s]
epoch 120 | loss 0.0, f_iou 0.7241269946098328: 45%|██████████████████████▎ | 33/74 [00:31<00:31, 1.29it/s]
epoch 120 | loss 0.0, f_iou 0.7241269946098328: 46%|██████████████████████▉ | 34/74 [00:31<00:31, 1.28it/s]
epoch 120 | loss 1.0650779008865356, f_iou 0.7242971062660217: 46%|████████████████ | 34/74 [00:31<00:31, 1.28it/s]
epoch 120 | loss 1.0650779008865356, f_iou 0.7242971062660217: 47%|████████████████▌ | 35/74 [00:31<00:30, 1.28it/s]
epoch 120 | loss 0.9476127028465271, f_iou 0.7266621589660645: 47%|████████████████▌ | 35/74 [00:32<00:30, 1.28it/s]
epoch 120 | loss 0.9476127028465271, f_iou 0.7266621589660645: 49%|█████████████████ | 36/74 [00:32<00:29, 1.30it/s]
epoch 120 | loss 2.0336225032806396, f_iou 0.715837836265564: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.30it/s]
epoch 120 | loss 2.0336225032806396, f_iou 0.715837836265564: 50%|██████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 120 | loss 2.1468441486358643, f_iou 0.7074257731437683: 50%|█████████████████▌ | 37/74 [00:34<00:27, 1.33it/s]
epoch 120 | loss 2.1468441486358643, f_iou 0.7074257731437683: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.33it/s]
epoch 120 | loss 0.9077496528625488, f_iou 0.712922990322113: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.33it/s]
epoch 120 | loss 0.9077496528625488, f_iou 0.712922990322113: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.31it/s]
epoch 120 | loss 0.5329367518424988, f_iou 0.7176795601844788: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 120 | loss 0.5329367518424988, f_iou 0.7176795601844788: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.31it/s]
epoch 120 | loss 1.3030129671096802, f_iou 0.7151976823806763: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.31it/s]
epoch 120 | loss 1.3030129671096802, f_iou 0.7151976823806763: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.33it/s]
epoch 120 | loss 0.7734311819076538, f_iou 0.7199721932411194: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.33it/s]
epoch 120 | loss 0.7734311819076538, f_iou 0.7199721932411194: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.34it/s]
epoch 120 | loss 2.664581537246704, f_iou 0.7183158993721008: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.34it/s]
epoch 120 | loss 2.664581537246704, f_iou 0.7183158993721008: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.35it/s]
epoch 120 | loss 0.7216265201568604, f_iou 0.7218434810638428: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.35it/s]
epoch 120 | loss 0.7216265201568604, f_iou 0.7218434810638428: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.36it/s]
epoch 120 | loss 1.4311922788619995, f_iou 0.7225348949432373: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.36it/s]
epoch 120 | loss 1.4311922788619995, f_iou 0.7225348949432373: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.36it/s]
epoch 120 | loss 1.824255347251892, f_iou 0.7200908064842224: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.36it/s]
epoch 120 | loss 1.824255347251892, f_iou 0.7200908064842224: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.37it/s]
epoch 120 | loss 1.5128719806671143, f_iou 0.7223332524299622: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.37it/s]
epoch 120 | loss 1.5128719806671143, f_iou 0.7223332524299622: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.35it/s]
epoch 120 | loss 0.42442336678504944, f_iou 0.7273179292678833: 64%|█████████████████████▌ | 47/74 [00:41<00:20, 1.35it/s]
epoch 120 | loss 0.42442336678504944, f_iou 0.7273179292678833: 65%|██████████████████████ | 48/74 [00:41<00:19, 1.34it/s]
epoch 120 | loss 0.7644952535629272, f_iou 0.7308319807052612: 65%|██████████████████████▋ | 48/74 [00:42<00:19, 1.34it/s]
epoch 120 | loss 0.7644952535629272, f_iou 0.7308319807052612: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.36it/s]
epoch 120 | loss 1.0993444919586182, f_iou 0.7186046242713928: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.36it/s]
epoch 120 | loss 1.0993444919586182, f_iou 0.7186046242713928: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.36it/s]
epoch 120 | loss 1.0438554286956787, f_iou 0.7151510715484619: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.36it/s]
epoch 120 | loss 1.0438554286956787, f_iou 0.7151510715484619: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.37it/s]
epoch 120 | loss 1.4443237781524658, f_iou 0.7152508497238159: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.37it/s]
epoch 120 | loss 1.4443237781524658, f_iou 0.7152508497238159: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.38it/s]
epoch 120 | loss 1.966275691986084, f_iou 0.708526074886322: 70%|██████████████████████████ | 52/74 [00:45<00:15, 1.38it/s]
epoch 120 | loss 1.966275691986084, f_iou 0.708526074886322: 72%|██████████████████████████▌ | 53/74 [00:45<00:15, 1.38it/s]
epoch 120 | loss 0.33415156602859497, f_iou 0.7132477164268494: 72%|████████████████████████▎ | 53/74 [00:45<00:15, 1.38it/s]
epoch 120 | loss 0.33415156602859497, f_iou 0.7132477164268494: 73%|████████████████████████▊ | 54/74 [00:45<00:14, 1.38it/s]
epoch 120 | loss 0.2802819013595581, f_iou 0.7180722951889038: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 120 | loss 0.2802819013595581, f_iou 0.7180722951889038: 74%|██████████████████████████ | 55/74 [00:46<00:14, 1.34it/s]
epoch 120 | loss 0.3206925094127655, f_iou 0.7080971598625183: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.34it/s]
epoch 120 | loss 0.3206925094127655, f_iou 0.7080971598625183: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.34it/s]
epoch 120 | loss 1.136055588722229, f_iou 0.6973747611045837: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.34it/s]
epoch 120 | loss 1.136055588722229, f_iou 0.6973747611045837: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.35it/s]
epoch 120 | loss 0.7389510869979858, f_iou 0.7010782361030579: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.35it/s]
epoch 120 | loss 0.7389510869979858, f_iou 0.7010782361030579: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.36it/s]
epoch 120 | loss 0.797652006149292, f_iou 0.7031418085098267: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.36it/s]
epoch 120 | loss 0.797652006149292, f_iou 0.7031418085098267: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.37it/s]
epoch 120 | loss 0.9591773748397827, f_iou 0.7062265872955322: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.37it/s]
epoch 120 | loss 0.9591773748397827, f_iou 0.7062265872955322: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.37it/s]
epoch 120 | loss 1.1802589893341064, f_iou 0.706214964389801: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.37it/s]
epoch 120 | loss 1.1802589893341064, f_iou 0.706214964389801: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.38it/s]
epoch 120 | loss 2.066774845123291, f_iou 0.700563371181488: 82%|██████████████████████████████▌ | 61/74 [00:51<00:09, 1.38it/s]
epoch 120 | loss 2.066774845123291, f_iou 0.700563371181488: 84%|███████████████████████████████ | 62/74 [00:51<00:08, 1.38it/s]
epoch 120 | loss 1.039525032043457, f_iou 0.7042725086212158: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.38it/s]
epoch 120 | loss 1.039525032043457, f_iou 0.7042725086212158: 85%|██████████████████████████████▋ | 63/74 [00:52<00:07, 1.38it/s]
epoch 120 | loss 1.2948390245437622, f_iou 0.7020047307014465: 85%|█████████████████████████████▊ | 63/74 [00:53<00:07, 1.38it/s]
epoch 120 | loss 1.2948390245437622, f_iou 0.7020047307014465: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.38it/s]
epoch 120 | loss 0.5105682015419006, f_iou 0.7051494121551514: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.38it/s]
epoch 120 | loss 0.5105682015419006, f_iou 0.7051494121551514: 88%|██████████████████████████████▋ | 65/74 [00:53<00:06, 1.39it/s]
epoch 120 | loss 0.7827696204185486, f_iou 0.7079484462738037: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.39it/s]
epoch 120 | loss 0.7827696204185486, f_iou 0.7079484462738037: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.38it/s]
epoch 120 | loss 0.5658599138259888, f_iou 0.7108591794967651: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.38it/s]
epoch 120 | loss 0.5658599138259888, f_iou 0.7108591794967651: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.38it/s]
epoch 120 | loss 0.9054631590843201, f_iou 0.711517870426178: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.38it/s]
epoch 120 | loss 0.9054631590843201, f_iou 0.711517870426178: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.36it/s]
epoch 120 | loss 0.6620831489562988, f_iou 0.7129899859428406: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.36it/s]
epoch 120 | loss 0.6620831489562988, f_iou 0.7129899859428406: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.34it/s]
epoch 120 | loss 0.9501697421073914, f_iou 0.7143581509590149: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.34it/s]
epoch 120 | loss 0.9501697421073914, f_iou 0.7143581509590149: 95%|█████████████████████████████████ | 70/74 [00:57<00:03, 1.32it/s]
epoch 120 | loss 1.064071536064148, f_iou 0.7144764065742493: 95%|██████████████████████████████████ | 70/74 [00:58<00:03, 1.32it/s]
epoch 120 | loss 1.064071536064148, f_iou 0.7144764065742493: 96%|██████████████████████████████████▌ | 71/74 [00:58<00:02, 1.32it/s]
epoch 120 | loss 1.2812037467956543, f_iou 0.7057047486305237: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.32it/s]
epoch 120 | loss 1.2812037467956543, f_iou 0.7057047486305237: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.33it/s]
epoch 120 | loss 0.5808604955673218, f_iou 0.7088096737861633: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.33it/s]
epoch 120 | loss 0.5808604955673218, f_iou 0.7088096737861633: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.35it/s]
epoch 120 | loss 0.9789329767227173, f_iou 0.7113852500915527: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.35it/s]
epoch 120 | loss 0.9789329767227173, f_iou 0.7113852500915527: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.36it/s]
epoch 120 | loss 0.9789329767227173, f_iou 0.7113852500915527: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 120 | valid.f_iou 0.7407699823379517, valid.f_f-score 0.83138: 0%| | 0/16 [00:05, ?it/s]
epoch 120 | valid.f_iou 0.7407699823379517, valid.f_f-score 0.83138: 6%|█▉ | 1/16 [00:05<01:26, 5.76s/it]
epoch 120 | valid.f_iou 0.6676300168037415, valid.f_f-score 0.82379: 6%|█▉ | 1/16 [00:06<01:26, 5.76s/it]
epoch 120 | valid.f_iou 0.6676300168037415, valid.f_f-score 0.82379: 12%|███▊ | 2/16 [00:06<00:36, 2.63s/it]
epoch 120 | valid.f_iou 0.5418199896812439, valid.f_f-score 0.74232: 12%|███▊ | 2/16 [00:06<00:36, 2.63s/it]
epoch 120 | valid.f_iou 0.5418199896812439, valid.f_f-score 0.74232: 19%|█████▋ | 3/16 [00:06<00:21, 1.64s/it]
epoch 120 | valid.f_iou 0.5814399719238281, valid.f_f-score 0.74436: 19%|█████▋ | 3/16 [00:07<00:21, 1.64s/it]
epoch 120 | valid.f_iou 0.5814399719238281, valid.f_f-score 0.74436: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 120 | valid.f_iou 0.5999100208282471, valid.f_f-score 0.75667: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 120 | valid.f_iou 0.5999100208282471, valid.f_f-score 0.75667: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 120 | valid.f_iou 0.5593400001525879, valid.f_f-score 0.71593: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 120 | valid.f_iou 0.5593400001525879, valid.f_f-score 0.71593: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 120 | valid.f_iou 0.5884699821472168, valid.f_f-score 0.73869: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 120 | valid.f_iou 0.5884699821472168, valid.f_f-score 0.73869: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 120 | valid.f_iou 0.562030017375946, valid.f_f-score 0.72027: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 120 | valid.f_iou 0.562030017375946, valid.f_f-score 0.72027: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 120 | valid.f_iou 0.5806800127029419, valid.f_f-score 0.7307: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 120 | valid.f_iou 0.5806800127029419, valid.f_f-score 0.7307: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.89it/s]
epoch 120 | valid.f_iou 0.5766199827194214, valid.f_f-score 0.73242: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.89it/s]
epoch 120 | valid.f_iou 0.5766199827194214, valid.f_f-score 0.73242: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 120 | valid.f_iou 0.5760999917984009, valid.f_f-score 0.73251: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.98it/s]
epoch 120 | valid.f_iou 0.5760999917984009, valid.f_f-score 0.73251: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 120 | valid.f_iou 0.5985699892044067, valid.f_f-score 0.74908: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 120 | valid.f_iou 0.5985699892044067, valid.f_f-score 0.74908: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.07it/s]
epoch 120 | valid.f_iou 0.6012899875640869, valid.f_f-score 0.75206: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.07it/s]
epoch 120 | valid.f_iou 0.6012899875640869, valid.f_f-score 0.75206: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.13it/s]
epoch 120 | valid.f_iou 0.5940799713134766, valid.f_f-score 0.74732: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.13it/s]
epoch 120 | valid.f_iou 0.5940799713134766, valid.f_f-score 0.74732: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.18it/s]
epoch 120 | valid.f_iou 0.5968499779701233, valid.f_f-score 0.7469: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.18it/s]
epoch 120 | valid.f_iou 0.5968499779701233, valid.f_f-score 0.7469: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.22it/s]
epoch 120 | valid.f_iou 0.598580002784729, valid.f_f-score 0.74365: 94%|████████████████████████████▏ | 15/16 [00:12<00:00, 2.22it/s]
epoch 120 | valid.f_iou 0.598580002784729, valid.f_f-score 0.74365: 100%|██████████████████████████████| 16/16 [00:12<00:00, 2.32it/s]
epoch 120 | valid.f_iou 0.598580002784729, valid.f_f-score 0.74365: 100%|██████████████████████████████| 16/16 [00:12<00:00, 1.30it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 120 | valid.f_iou 0.7943699955940247, valid.f_f-score 0.79411: 0%| | 0/16 [00:05, ?it/s]
epoch 120 | valid.f_iou 0.7943699955940247, valid.f_f-score 0.79411: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 120 | valid.f_iou 0.8339200019836426, valid.f_f-score 0.86643: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 120 | valid.f_iou 0.8339200019836426, valid.f_f-score 0.86643: 12%|███▊ | 2/16 [00:05<00:35, 2.50s/it]
epoch 120 | valid.f_iou 0.7778599858283997, valid.f_f-score 0.85394: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 120 | valid.f_iou 0.7778599858283997, valid.f_f-score 0.85394: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 120 | valid.f_iou 0.7699800133705139, valid.f_f-score 0.8269: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 120 | valid.f_iou 0.7699800133705139, valid.f_f-score 0.8269: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 120 | valid.f_iou 0.7387800216674805, valid.f_f-score 0.81639: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 120 | valid.f_iou 0.7387800216674805, valid.f_f-score 0.81639: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 120 | valid.f_iou 0.724370002746582, valid.f_f-score 0.80825: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 120 | valid.f_iou 0.724370002746582, valid.f_f-score 0.80825: 38%|███████████▋ | 6/16 [00:07<00:07, 1.41it/s]
epoch 120 | valid.f_iou 0.7415500283241272, valid.f_f-score 0.82721: 38%|███████████▎ | 6/16 [00:08<00:07, 1.41it/s]
epoch 120 | valid.f_iou 0.7415500283241272, valid.f_f-score 0.82721: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 120 | valid.f_iou 0.7310299873352051, valid.f_f-score 0.82608: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 120 | valid.f_iou 0.7310299873352051, valid.f_f-score 0.82608: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 120 | valid.f_iou 0.7338899970054626, valid.f_f-score 0.82711: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 120 | valid.f_iou 0.7338899970054626, valid.f_f-score 0.82711: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.90it/s]
epoch 120 | valid.f_iou 0.7392100095748901, valid.f_f-score 0.83588: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 120 | valid.f_iou 0.7392100095748901, valid.f_f-score 0.83588: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.10it/s]
epoch 120 | valid.f_iou 0.7279999852180481, valid.f_f-score 0.81831: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.10it/s]
epoch 120 | valid.f_iou 0.7279999852180481, valid.f_f-score 0.81831: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.25it/s]
epoch 120 | valid.f_iou 0.7393100261688232, valid.f_f-score 0.82784: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.25it/s]
epoch 120 | valid.f_iou 0.7393100261688232, valid.f_f-score 0.82784: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.38it/s]
epoch 120 | valid.f_iou 0.7490599751472473, valid.f_f-score 0.83476: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.38it/s]
epoch 120 | valid.f_iou 0.7490599751472473, valid.f_f-score 0.83476: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 120 | valid.f_iou 0.7429999709129333, valid.f_f-score 0.83182: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 120 | valid.f_iou 0.7429999709129333, valid.f_f-score 0.83182: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 120 | valid.f_iou 0.7519599795341492, valid.f_f-score 0.83986: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 120 | valid.f_iou 0.7519599795341492, valid.f_f-score 0.83986: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 120 | valid.f_iou 0.7485399842262268, valid.f_f-score 0.83657: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 120 | valid.f_iou 0.7485399842262268, valid.f_f-score 0.83657: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 120 | valid.f_iou 0.7485399842262268, valid.f_f-score 0.83657: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 120 | valid.f_iou 0.7481899857521057, valid.f_f-score 0.76444: 0%| | 0/16 [00:05, ?it/s]
epoch 120 | valid.f_iou 0.7481899857521057, valid.f_f-score 0.76444: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 120 | valid.f_iou 0.8108299970626831, valid.f_f-score 0.85159: 6%|█▉ | 1/16 [00:05<01:20, 5.38s/it]
epoch 120 | valid.f_iou 0.8108299970626831, valid.f_f-score 0.85159: 12%|███▊ | 2/16 [00:05<00:35, 2.50s/it]
epoch 120 | valid.f_iou 0.7624599933624268, valid.f_f-score 0.84405: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 120 | valid.f_iou 0.7624599933624268, valid.f_f-score 0.84405: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 120 | valid.f_iou 0.7529100179672241, valid.f_f-score 0.8079: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 120 | valid.f_iou 0.7529100179672241, valid.f_f-score 0.8079: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 120 | valid.f_iou 0.732990026473999, valid.f_f-score 0.80119: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 120 | valid.f_iou 0.732990026473999, valid.f_f-score 0.80119: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 120 | valid.f_iou 0.7195500135421753, valid.f_f-score 0.79559: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 120 | valid.f_iou 0.7195500135421753, valid.f_f-score 0.79559: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 120 | valid.f_iou 0.7391800284385681, valid.f_f-score 0.81635: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 120 | valid.f_iou 0.7391800284385681, valid.f_f-score 0.81635: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 120 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81658: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 120 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81658: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 120 | valid.f_iou 0.7343599796295166, valid.f_f-score 0.81867: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 120 | valid.f_iou 0.7343599796295166, valid.f_f-score 0.81867: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.90it/s]
epoch 120 | valid.f_iou 0.737559974193573, valid.f_f-score 0.82504: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.90it/s]
epoch 120 | valid.f_iou 0.737559974193573, valid.f_f-score 0.82504: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 120 | valid.f_iou 0.7221800088882446, valid.f_f-score 0.80641: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.10it/s]
epoch 120 | valid.f_iou 0.7221800088882446, valid.f_f-score 0.80641: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.26it/s]
epoch 120 | valid.f_iou 0.7339800000190735, valid.f_f-score 0.81694: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.26it/s]
epoch 120 | valid.f_iou 0.7339800000190735, valid.f_f-score 0.81694: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.38it/s]
epoch 120 | valid.f_iou 0.7441099882125854, valid.f_f-score 0.82557: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.38it/s]
epoch 120 | valid.f_iou 0.7441099882125854, valid.f_f-score 0.82557: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 120 | valid.f_iou 0.7351599931716919, valid.f_f-score 0.82031: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 120 | valid.f_iou 0.7351599931716919, valid.f_f-score 0.82031: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 120 | valid.f_iou 0.7446399927139282, valid.f_f-score 0.82912: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 120 | valid.f_iou 0.7446399927139282, valid.f_f-score 0.82912: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 120 | valid.f_iou 0.7421600222587585, valid.f_f-score 0.82649: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 120 | valid.f_iou 0.7421600222587585, valid.f_f-score 0.82649: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 120 | valid.f_iou 0.7421600222587585, valid.f_f-score 0.82649: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 121 | loss 0.32391226291656494, f_iou 0.7436658143997192: 0%| | 0/74 [00:06, ?it/s]
epoch 121 | loss 0.32391226291656494, f_iou 0.7436658143997192: 1%|▍ | 1/74 [00:06<08:21, 6.86s/it]
epoch 121 | loss 1.2158666849136353, f_iou 0.8240780830383301: 1%|▍ | 1/74 [00:07<08:21, 6.86s/it]
epoch 121 | loss 1.2158666849136353, f_iou 0.8240780830383301: 3%|▉ | 2/74 [00:07<03:58, 3.31s/it]
epoch 121 | loss 1.166154146194458, f_iou 0.8221086263656616: 3%|█ | 2/74 [00:08<03:58, 3.31s/it]
epoch 121 | loss 1.166154146194458, f_iou 0.8221086263656616: 4%|█▌ | 3/74 [00:08<02:44, 2.32s/it]
epoch 121 | loss 0.8037847280502319, f_iou 0.845451295375824: 4%|█▌ | 3/74 [00:09<02:44, 2.32s/it]
epoch 121 | loss 0.8037847280502319, f_iou 0.845451295375824: 5%|██ | 4/74 [00:09<02:00, 1.73s/it]
epoch 121 | loss 0.6095846891403198, f_iou 0.8448253870010376: 5%|█▉ | 4/74 [00:10<02:00, 1.73s/it]
epoch 121 | loss 0.6095846891403198, f_iou 0.8448253870010376: 7%|██▍ | 5/74 [00:10<01:37, 1.41s/it]
epoch 121 | loss 0.8566586971282959, f_iou 0.8169991374015808: 7%|██▍ | 5/74 [00:11<01:37, 1.41s/it]
epoch 121 | loss 0.8566586971282959, f_iou 0.8169991374015808: 8%|██▉ | 6/74 [00:11<01:22, 1.21s/it]
epoch 121 | loss 0.46564751863479614, f_iou 0.8383360505104065: 8%|██▊ | 6/74 [00:12<01:22, 1.21s/it]
epoch 121 | loss 0.46564751863479614, f_iou 0.8383360505104065: 9%|███▎ | 7/74 [00:12<01:12, 1.08s/it]
epoch 121 | loss 0.5157047510147095, f_iou 0.7835416197776794: 9%|███▍ | 7/74 [00:12<01:12, 1.08s/it]
epoch 121 | loss 0.5157047510147095, f_iou 0.7835416197776794: 11%|███▉ | 8/74 [00:12<01:05, 1.00it/s]
epoch 121 | loss 1.6946706771850586, f_iou 0.7599557042121887: 11%|███▉ | 8/74 [00:13<01:05, 1.00it/s]
epoch 121 | loss 1.6946706771850586, f_iou 0.7599557042121887: 12%|████▍ | 9/74 [00:13<01:01, 1.06it/s]
epoch 121 | loss 1.4848642349243164, f_iou 0.7530184388160706: 12%|████▍ | 9/74 [00:14<01:01, 1.06it/s]
epoch 121 | loss 1.4848642349243164, f_iou 0.7530184388160706: 14%|████▋ | 10/74 [00:14<00:57, 1.11it/s]
epoch 121 | loss 0.7063451409339905, f_iou 0.7025785446166992: 14%|████▋ | 10/74 [00:15<00:57, 1.11it/s]
epoch 121 | loss 0.7063451409339905, f_iou 0.7025785446166992: 15%|█████▏ | 11/74 [00:15<00:55, 1.14it/s]
epoch 121 | loss 0.6044602394104004, f_iou 0.6756531596183777: 15%|█████▏ | 11/74 [00:16<00:55, 1.14it/s]
epoch 121 | loss 0.6044602394104004, f_iou 0.6756531596183777: 16%|█████▋ | 12/74 [00:16<00:52, 1.18it/s]
epoch 121 | loss 0.8637125492095947, f_iou 0.692457377910614: 16%|█████▊ | 12/74 [00:16<00:52, 1.18it/s]
epoch 121 | loss 0.8637125492095947, f_iou 0.692457377910614: 18%|██████▎ | 13/74 [00:16<00:50, 1.21it/s]
epoch 121 | loss 1.7634395360946655, f_iou 0.6788092851638794: 18%|██████▏ | 13/74 [00:17<00:50, 1.21it/s]
epoch 121 | loss 1.7634395360946655, f_iou 0.6788092851638794: 19%|██████▌ | 14/74 [00:17<00:49, 1.22it/s]
epoch 121 | loss 2.8560426235198975, f_iou 0.6613699197769165: 19%|██████▌ | 14/74 [00:18<00:49, 1.22it/s]
epoch 121 | loss 2.8560426235198975, f_iou 0.6613699197769165: 20%|███████ | 15/74 [00:18<00:48, 1.23it/s]
epoch 121 | loss 0.536906361579895, f_iou 0.6734359264373779: 20%|███████▎ | 15/74 [00:19<00:48, 1.23it/s]
epoch 121 | loss 0.536906361579895, f_iou 0.6734359264373779: 22%|███████▊ | 16/74 [00:19<00:46, 1.24it/s]
epoch 121 | loss 1.2019144296646118, f_iou 0.6396321058273315: 22%|███████▌ | 16/74 [00:20<00:46, 1.24it/s]
epoch 121 | loss 1.2019144296646118, f_iou 0.6396321058273315: 23%|████████ | 17/74 [00:20<00:46, 1.24it/s]
epoch 121 | loss 0.814815104007721, f_iou 0.6551082730293274: 23%|████████▎ | 17/74 [00:20<00:46, 1.24it/s]
epoch 121 | loss 0.814815104007721, f_iou 0.6551082730293274: 24%|████████▊ | 18/74 [00:20<00:44, 1.25it/s]
epoch 121 | loss 1.2417147159576416, f_iou 0.6588371396064758: 24%|████████▌ | 18/74 [00:21<00:44, 1.25it/s]
epoch 121 | loss 1.2417147159576416, f_iou 0.6588371396064758: 26%|████████▉ | 19/74 [00:21<00:43, 1.26it/s]
epoch 121 | loss 0.3470248579978943, f_iou 0.6746399998664856: 26%|████████▉ | 19/74 [00:22<00:43, 1.26it/s]
epoch 121 | loss 0.3470248579978943, f_iou 0.6746399998664856: 27%|█████████▍ | 20/74 [00:22<00:42, 1.27it/s]
epoch 121 | loss 1.0157331228256226, f_iou 0.6771632432937622: 27%|█████████▍ | 20/74 [00:23<00:42, 1.27it/s]
epoch 121 | loss 1.0157331228256226, f_iou 0.6771632432937622: 28%|█████████▉ | 21/74 [00:23<00:41, 1.27it/s]
epoch 121 | loss 1.3426647186279297, f_iou 0.6849998235702515: 28%|█████████▉ | 21/74 [00:24<00:41, 1.27it/s]
epoch 121 | loss 1.3426647186279297, f_iou 0.6849998235702515: 30%|██████████▍ | 22/74 [00:24<00:40, 1.27it/s]
epoch 121 | loss 1.0295052528381348, f_iou 0.6763273477554321: 30%|██████████▍ | 22/74 [00:24<00:40, 1.27it/s]
epoch 121 | loss 1.0295052528381348, f_iou 0.6763273477554321: 31%|██████████▉ | 23/74 [00:24<00:39, 1.29it/s]
epoch 121 | loss 1.3387277126312256, f_iou 0.6771339774131775: 31%|██████████▉ | 23/74 [00:25<00:39, 1.29it/s]
epoch 121 | loss 1.3387277126312256, f_iou 0.6771339774131775: 32%|███████████▎ | 24/74 [00:25<00:38, 1.31it/s]
epoch 121 | loss 0.888848602771759, f_iou 0.6812516450881958: 32%|███████████▋ | 24/74 [00:26<00:38, 1.31it/s]
epoch 121 | loss 0.888848602771759, f_iou 0.6812516450881958: 34%|████████████▏ | 25/74 [00:26<00:37, 1.32it/s]
epoch 121 | loss 1.0693622827529907, f_iou 0.6835049390792847: 34%|███████████▊ | 25/74 [00:27<00:37, 1.32it/s]
epoch 121 | loss 1.0693622827529907, f_iou 0.6835049390792847: 35%|████████████▎ | 26/74 [00:27<00:36, 1.33it/s]
epoch 121 | loss 0.6371289491653442, f_iou 0.6933494210243225: 35%|████████████▎ | 26/74 [00:27<00:36, 1.33it/s]
epoch 121 | loss 0.6371289491653442, f_iou 0.6933494210243225: 36%|████████████▊ | 27/74 [00:27<00:35, 1.32it/s]
epoch 121 | loss 1.1648722887039185, f_iou 0.6901769042015076: 36%|████████████▊ | 27/74 [00:28<00:35, 1.32it/s]
epoch 121 | loss 1.1648722887039185, f_iou 0.6901769042015076: 38%|█████████████▏ | 28/74 [00:28<00:35, 1.31it/s]
epoch 121 | loss 1.3448271751403809, f_iou 0.6952567100524902: 38%|█████████████▏ | 28/74 [00:29<00:35, 1.31it/s]
epoch 121 | loss 1.3448271751403809, f_iou 0.6952567100524902: 39%|█████████████▋ | 29/74 [00:29<00:34, 1.29it/s]
epoch 121 | loss 1.3433444499969482, f_iou 0.6901779174804688: 39%|█████████████▋ | 29/74 [00:30<00:34, 1.29it/s]
epoch 121 | loss 1.3433444499969482, f_iou 0.6901779174804688: 41%|██████████████▏ | 30/74 [00:30<00:34, 1.29it/s]
epoch 121 | loss 0.7557528614997864, f_iou 0.6932862401008606: 41%|██████████████▏ | 30/74 [00:30<00:34, 1.29it/s]
epoch 121 | loss 0.7557528614997864, f_iou 0.6932862401008606: 42%|██████████████▋ | 31/74 [00:30<00:33, 1.28it/s]
epoch 121 | loss 2.576871156692505, f_iou 0.6919596195220947: 42%|███████████████ | 31/74 [00:31<00:33, 1.28it/s]
epoch 121 | loss 2.576871156692505, f_iou 0.6919596195220947: 43%|███████████████▌ | 32/74 [00:31<00:33, 1.27it/s]
epoch 121 | loss 0.9239829778671265, f_iou 0.6815994381904602: 43%|███████████████▏ | 32/74 [00:32<00:33, 1.27it/s]
epoch 121 | loss 0.9239829778671265, f_iou 0.6815994381904602: 45%|███████████████▌ | 33/74 [00:32<00:31, 1.30it/s]
epoch 121 | loss 0.804358720779419, f_iou 0.6875506639480591: 45%|████████████████ | 33/74 [00:33<00:31, 1.30it/s]
epoch 121 | loss 0.804358720779419, f_iou 0.6875506639480591: 46%|████████████████▌ | 34/74 [00:33<00:30, 1.31it/s]
epoch 121 | loss 0.7390753030776978, f_iou 0.6926844716072083: 46%|████████████████ | 34/74 [00:33<00:30, 1.31it/s]
epoch 121 | loss 0.7390753030776978, f_iou 0.6926844716072083: 47%|████████████████▌ | 35/74 [00:33<00:29, 1.33it/s]
epoch 121 | loss 1.3624051809310913, f_iou 0.6900972127914429: 47%|████████████████▌ | 35/74 [00:34<00:29, 1.33it/s]
epoch 121 | loss 1.3624051809310913, f_iou 0.6900972127914429: 49%|█████████████████ | 36/74 [00:34<00:28, 1.34it/s]
epoch 121 | loss 0.5422000885009766, f_iou 0.6968231201171875: 49%|█████████████████ | 36/74 [00:35<00:28, 1.34it/s]
epoch 121 | loss 0.5422000885009766, f_iou 0.6968231201171875: 50%|█████████████████▌ | 37/74 [00:35<00:27, 1.33it/s]
epoch 121 | loss 0.5259192585945129, f_iou 0.689446210861206: 50%|██████████████████ | 37/74 [00:36<00:27, 1.33it/s]
epoch 121 | loss 0.5259192585945129, f_iou 0.689446210861206: 51%|██████████████████▍ | 38/74 [00:36<00:27, 1.32it/s]
epoch 121 | loss 0.6778116226196289, f_iou 0.6926836371421814: 51%|█████████████████▉ | 38/74 [00:37<00:27, 1.32it/s]
epoch 121 | loss 0.6778116226196289, f_iou 0.6926836371421814: 53%|██████████████████▍ | 39/74 [00:37<00:26, 1.30it/s]
epoch 121 | loss 1.3470951318740845, f_iou 0.686870276927948: 53%|██████████████████▉ | 39/74 [00:37<00:26, 1.30it/s]
epoch 121 | loss 1.3470951318740845, f_iou 0.686870276927948: 54%|███████████████████▍ | 40/74 [00:37<00:26, 1.30it/s]
epoch 121 | loss 1.3479498624801636, f_iou 0.6843404173851013: 54%|██████████████████▉ | 40/74 [00:38<00:26, 1.30it/s]
epoch 121 | loss 1.3479498624801636, f_iou 0.6843404173851013: 55%|███████████████████▍ | 41/74 [00:38<00:25, 1.31it/s]
epoch 121 | loss 0.7769047021865845, f_iou 0.6847895979881287: 55%|███████████████████▍ | 41/74 [00:39<00:25, 1.31it/s]
epoch 121 | loss 0.7769047021865845, f_iou 0.6847895979881287: 57%|███████████████████▊ | 42/74 [00:39<00:24, 1.32it/s]
epoch 121 | loss 1.0178050994873047, f_iou 0.6885526776313782: 57%|███████████████████▊ | 42/74 [00:40<00:24, 1.32it/s]
epoch 121 | loss 1.0178050994873047, f_iou 0.6885526776313782: 58%|████████████████████▎ | 43/74 [00:40<00:23, 1.33it/s]
epoch 121 | loss 0.5121701955795288, f_iou 0.6878859400749207: 58%|████████████████████▎ | 43/74 [00:40<00:23, 1.33it/s]
epoch 121 | loss 0.5121701955795288, f_iou 0.6878859400749207: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.34it/s]
epoch 121 | loss 0.9240930080413818, f_iou 0.6878337264060974: 59%|████████████████████▊ | 44/74 [00:41<00:22, 1.34it/s]
epoch 121 | loss 0.9240930080413818, f_iou 0.6878337264060974: 61%|█████████████████████▎ | 45/74 [00:41<00:21, 1.35it/s]
epoch 121 | loss 0.6295965313911438, f_iou 0.6933028101921082: 61%|█████████████████████▎ | 45/74 [00:42<00:21, 1.35it/s]
epoch 121 | loss 0.6295965313911438, f_iou 0.6933028101921082: 62%|█████████████████████▊ | 46/74 [00:42<00:21, 1.32it/s]
epoch 121 | loss 0.5284183621406555, f_iou 0.6978619694709778: 62%|█████████████████████▊ | 46/74 [00:43<00:21, 1.32it/s]
epoch 121 | loss 0.5284183621406555, f_iou 0.6978619694709778: 64%|██████████████████████▏ | 47/74 [00:43<00:20, 1.30it/s]
epoch 121 | loss 0.6528267860412598, f_iou 0.6996650695800781: 64%|██████████████████████▏ | 47/74 [00:43<00:20, 1.30it/s]
epoch 121 | loss 0.6528267860412598, f_iou 0.6996650695800781: 65%|██████████████████████▋ | 48/74 [00:43<00:19, 1.32it/s]
epoch 121 | loss 0.6788339614868164, f_iou 0.6976135969161987: 65%|██████████████████████▋ | 48/74 [00:44<00:19, 1.32it/s]
epoch 121 | loss 0.6788339614868164, f_iou 0.6976135969161987: 66%|███████████████████████▏ | 49/74 [00:44<00:18, 1.33it/s]
epoch 121 | loss 0.7822433710098267, f_iou 0.6954270601272583: 66%|███████████████████████▏ | 49/74 [00:45<00:18, 1.33it/s]
epoch 121 | loss 0.7822433710098267, f_iou 0.6954270601272583: 68%|███████████████████████▋ | 50/74 [00:45<00:17, 1.34it/s]
epoch 121 | loss 1.5250343084335327, f_iou 0.693784773349762: 68%|████████████████████████▎ | 50/74 [00:46<00:17, 1.34it/s]
epoch 121 | loss 1.5250343084335327, f_iou 0.693784773349762: 69%|████████████████████████▊ | 51/74 [00:46<00:17, 1.32it/s]
epoch 121 | loss 1.157509684562683, f_iou 0.6939512491226196: 69%|████████████████████████▊ | 51/74 [00:46<00:17, 1.32it/s]
epoch 121 | loss 1.157509684562683, f_iou 0.6939512491226196: 70%|█████████████████████████▎ | 52/74 [00:46<00:16, 1.31it/s]
epoch 121 | loss 0.5894455313682556, f_iou 0.6976996660232544: 70%|████████████████████████▌ | 52/74 [00:47<00:16, 1.31it/s]
epoch 121 | loss 0.5894455313682556, f_iou 0.6976996660232544: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.30it/s]
epoch 121 | loss 0.7952149510383606, f_iou 0.6978315711021423: 72%|█████████████████████████ | 53/74 [00:48<00:16, 1.30it/s]
epoch 121 | loss 0.7952149510383606, f_iou 0.6978315711021423: 73%|█████████████████████████▌ | 54/74 [00:48<00:15, 1.30it/s]
epoch 121 | loss 0.7576286792755127, f_iou 0.6999243497848511: 73%|█████████████████████████▌ | 54/74 [00:49<00:15, 1.30it/s]
epoch 121 | loss 0.7576286792755127, f_iou 0.6999243497848511: 74%|██████████████████████████ | 55/74 [00:49<00:14, 1.30it/s]
epoch 121 | loss 1.5058151483535767, f_iou 0.702093243598938: 74%|██████████████████████████▊ | 55/74 [00:49<00:14, 1.30it/s]
epoch 121 | loss 1.5058151483535767, f_iou 0.702093243598938: 76%|███████████████████████████▏ | 56/74 [00:49<00:13, 1.30it/s]
epoch 121 | loss 0.3542296588420868, f_iou 0.7069483399391174: 76%|██████████████████████████▍ | 56/74 [00:50<00:13, 1.30it/s]
epoch 121 | loss 0.3542296588420868, f_iou 0.7069483399391174: 77%|██████████████████████████▉ | 57/74 [00:50<00:13, 1.30it/s]
epoch 121 | loss 1.1594582796096802, f_iou 0.7092567086219788: 77%|██████████████████████████▉ | 57/74 [00:51<00:13, 1.30it/s]
epoch 121 | loss 1.1594582796096802, f_iou 0.7092567086219788: 78%|███████████████████████████▍ | 58/74 [00:51<00:12, 1.29it/s]
epoch 121 | loss 0.6562856435775757, f_iou 0.7033273577690125: 78%|███████████████████████████▍ | 58/74 [00:52<00:12, 1.29it/s]
epoch 121 | loss 0.6562856435775757, f_iou 0.7033273577690125: 80%|███████████████████████████▉ | 59/74 [00:52<00:11, 1.29it/s]
epoch 121 | loss 1.269790530204773, f_iou 0.6972900032997131: 80%|████████████████████████████▋ | 59/74 [00:53<00:11, 1.29it/s]
epoch 121 | loss 1.269790530204773, f_iou 0.6972900032997131: 81%|█████████████████████████████▏ | 60/74 [00:53<00:10, 1.28it/s]
epoch 121 | loss 0.6479510068893433, f_iou 0.7015141844749451: 81%|████████████████████████████▍ | 60/74 [00:53<00:10, 1.28it/s]
epoch 121 | loss 0.6479510068893433, f_iou 0.7015141844749451: 82%|████████████████████████████▊ | 61/74 [00:53<00:10, 1.28it/s]
epoch 121 | loss 0.7357696294784546, f_iou 0.7043601870536804: 82%|████████████████████████████▊ | 61/74 [00:54<00:10, 1.28it/s]
epoch 121 | loss 0.7357696294784546, f_iou 0.7043601870536804: 84%|█████████████████████████████▎ | 62/74 [00:54<00:09, 1.29it/s]
epoch 121 | loss 0.7903270721435547, f_iou 0.7074429392814636: 84%|█████████████████████████████▎ | 62/74 [00:55<00:09, 1.29it/s]
epoch 121 | loss 0.7903270721435547, f_iou 0.7074429392814636: 85%|█████████████████████████████▊ | 63/74 [00:55<00:08, 1.31it/s]
epoch 121 | loss 1.0334731340408325, f_iou 0.7076877951622009: 85%|█████████████████████████████▊ | 63/74 [00:56<00:08, 1.31it/s]
epoch 121 | loss 1.0334731340408325, f_iou 0.7076877951622009: 86%|██████████████████████████████▎ | 64/74 [00:56<00:07, 1.33it/s]
epoch 121 | loss 1.0717408657073975, f_iou 0.709610104560852: 86%|███████████████████████████████▏ | 64/74 [00:56<00:07, 1.33it/s]
epoch 121 | loss 1.0717408657073975, f_iou 0.709610104560852: 88%|███████████████████████████████▌ | 65/74 [00:56<00:06, 1.35it/s]
epoch 121 | loss 1.0975397825241089, f_iou 0.7111054062843323: 88%|██████████████████████████████▋ | 65/74 [00:57<00:06, 1.35it/s]
epoch 121 | loss 1.0975397825241089, f_iou 0.7111054062843323: 89%|███████████████████████████████▏ | 66/74 [00:57<00:05, 1.36it/s]
epoch 121 | loss 0.6868822574615479, f_iou 0.7142722606658936: 89%|███████████████████████████████▏ | 66/74 [00:58<00:05, 1.36it/s]
epoch 121 | loss 0.6868822574615479, f_iou 0.7142722606658936: 91%|███████████████████████████████▋ | 67/74 [00:58<00:05, 1.37it/s]
epoch 121 | loss 0.812523603439331, f_iou 0.7050287127494812: 91%|████████████████████████████████▌ | 67/74 [00:58<00:05, 1.37it/s]
epoch 121 | loss 0.812523603439331, f_iou 0.7050287127494812: 92%|█████████████████████████████████ | 68/74 [00:58<00:04, 1.37it/s]
epoch 121 | loss 1.0045130252838135, f_iou 0.7063084840774536: 92%|████████████████████████████████▏ | 68/74 [00:59<00:04, 1.37it/s]
epoch 121 | loss 1.0045130252838135, f_iou 0.7063084840774536: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.38it/s]
epoch 121 | loss 1.0652134418487549, f_iou 0.7093033194541931: 93%|████████████████████████████████▋ | 69/74 [01:00<00:03, 1.38it/s]
epoch 121 | loss 1.0652134418487549, f_iou 0.7093033194541931: 95%|█████████████████████████████████ | 70/74 [01:00<00:02, 1.39it/s]
epoch 121 | loss 1.1384217739105225, f_iou 0.7122169137001038: 95%|█████████████████████████████████ | 70/74 [01:01<00:02, 1.39it/s]
epoch 121 | loss 1.1384217739105225, f_iou 0.7122169137001038: 96%|█████████████████████████████████▌ | 71/74 [01:01<00:02, 1.39it/s]
epoch 121 | loss 0.6714380979537964, f_iou 0.7148897051811218: 96%|█████████████████████████████████▌ | 71/74 [01:01<00:02, 1.39it/s]
epoch 121 | loss 0.6714380979537964, f_iou 0.7148897051811218: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.39it/s]
epoch 121 | loss 0.6057302355766296, f_iou 0.7177468538284302: 97%|██████████████████████████████████ | 72/74 [01:02<00:01, 1.39it/s]
epoch 121 | loss 0.6057302355766296, f_iou 0.7177468538284302: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.39it/s]
epoch 121 | loss 1.0835380554199219, f_iou 0.7204857468605042: 99%|██████████████████████████████████▌| 73/74 [01:03<00:00, 1.39it/s]
epoch 121 | loss 1.0835380554199219, f_iou 0.7204857468605042: 100%|███████████████████████████████████| 74/74 [01:03<00:00, 1.39it/s]
epoch 121 | loss 1.0835380554199219, f_iou 0.7204857468605042: 100%|███████████████████████████████████| 74/74 [01:03<00:00, 1.17it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 121 | valid.f_iou 0.7551199793815613, valid.f_f-score 0.82263: 0%| | 0/16 [00:05, ?it/s]
epoch 121 | valid.f_iou 0.7551199793815613, valid.f_f-score 0.82263: 6%|█▉ | 1/16 [00:05<01:24, 5.63s/it]
epoch 121 | valid.f_iou 0.7283200025558472, valid.f_f-score 0.86154: 6%|█▉ | 1/16 [00:06<01:24, 5.63s/it]
epoch 121 | valid.f_iou 0.7283200025558472, valid.f_f-score 0.86154: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 121 | valid.f_iou 0.5926100015640259, valid.f_f-score 0.77013: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 121 | valid.f_iou 0.5926100015640259, valid.f_f-score 0.77013: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 121 | valid.f_iou 0.619949996471405, valid.f_f-score 0.75329: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 121 | valid.f_iou 0.619949996471405, valid.f_f-score 0.75329: 25%|███████▊ | 4/16 [00:06<00:13, 1.13s/it]
epoch 121 | valid.f_iou 0.6263700127601624, valid.f_f-score 0.76399: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 121 | valid.f_iou 0.6263700127601624, valid.f_f-score 0.76399: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 121 | valid.f_iou 0.5867699980735779, valid.f_f-score 0.72634: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 121 | valid.f_iou 0.5867699980735779, valid.f_f-score 0.72634: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 121 | valid.f_iou 0.6153600215911865, valid.f_f-score 0.75339: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 121 | valid.f_iou 0.6153600215911865, valid.f_f-score 0.75339: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 121 | valid.f_iou 0.6012200117111206, valid.f_f-score 0.74608: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 121 | valid.f_iou 0.6012200117111206, valid.f_f-score 0.74608: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 121 | valid.f_iou 0.6144199967384338, valid.f_f-score 0.75289: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 121 | valid.f_iou 0.6144199967384338, valid.f_f-score 0.75289: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.03it/s]
epoch 121 | valid.f_iou 0.6121299862861633, valid.f_f-score 0.75512: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.03it/s]
epoch 121 | valid.f_iou 0.6121299862861633, valid.f_f-score 0.75512: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.21it/s]
epoch 121 | valid.f_iou 0.6063299775123596, valid.f_f-score 0.75043: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.21it/s]
epoch 121 | valid.f_iou 0.6063299775123596, valid.f_f-score 0.75043: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.34it/s]
epoch 121 | valid.f_iou 0.6262999773025513, valid.f_f-score 0.76544: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.34it/s]
epoch 121 | valid.f_iou 0.6262999773025513, valid.f_f-score 0.76544: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.45it/s]
epoch 121 | valid.f_iou 0.6340100169181824, valid.f_f-score 0.77147: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.45it/s]
epoch 121 | valid.f_iou 0.6340100169181824, valid.f_f-score 0.77147: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.53it/s]
epoch 121 | valid.f_iou 0.6274899840354919, valid.f_f-score 0.76648: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.53it/s]
epoch 121 | valid.f_iou 0.6274899840354919, valid.f_f-score 0.76648: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.60it/s]
epoch 121 | valid.f_iou 0.6274600028991699, valid.f_f-score 0.76384: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.60it/s]
epoch 121 | valid.f_iou 0.6274600028991699, valid.f_f-score 0.76384: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 121 | valid.f_iou 0.6319400072097778, valid.f_f-score 0.76369: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.65it/s]
epoch 121 | valid.f_iou 0.6319400072097778, valid.f_f-score 0.76369: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 121 | valid.f_iou 0.6319400072097778, valid.f_f-score 0.76369: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 121 | valid.f_iou 0.8014400005340576, valid.f_f-score 0.78808: 0%| | 0/16 [00:05, ?it/s]
epoch 121 | valid.f_iou 0.8014400005340576, valid.f_f-score 0.78808: 6%|█▉ | 1/16 [00:05<01:21, 5.44s/it]
epoch 121 | valid.f_iou 0.8393599987030029, valid.f_f-score 0.86384: 6%|█▉ | 1/16 [00:05<01:21, 5.44s/it]
epoch 121 | valid.f_iou 0.8393599987030029, valid.f_f-score 0.86384: 12%|███▊ | 2/16 [00:05<00:35, 2.53s/it]
epoch 121 | valid.f_iou 0.7768700122833252, valid.f_f-score 0.84986: 12%|███▊ | 2/16 [00:06<00:35, 2.53s/it]
epoch 121 | valid.f_iou 0.7768700122833252, valid.f_f-score 0.84986: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 121 | valid.f_iou 0.7512000203132629, valid.f_f-score 0.80035: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 121 | valid.f_iou 0.7512000203132629, valid.f_f-score 0.80035: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 121 | valid.f_iou 0.7051799893379211, valid.f_f-score 0.76688: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 121 | valid.f_iou 0.7051799893379211, valid.f_f-score 0.76688: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 121 | valid.f_iou 0.6949999928474426, valid.f_f-score 0.75975: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 121 | valid.f_iou 0.6949999928474426, valid.f_f-score 0.75975: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 121 | valid.f_iou 0.715690016746521, valid.f_f-score 0.78579: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 121 | valid.f_iou 0.715690016746521, valid.f_f-score 0.78579: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.56it/s]
epoch 121 | valid.f_iou 0.7089400291442871, valid.f_f-score 0.79004: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 121 | valid.f_iou 0.7089400291442871, valid.f_f-score 0.79004: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 121 | valid.f_iou 0.7135099768638611, valid.f_f-score 0.78754: 50%|███████████████ | 8/16 [00:09<00:04, 1.74it/s]
epoch 121 | valid.f_iou 0.7135099768638611, valid.f_f-score 0.78754: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 121 | valid.f_iou 0.7284899950027466, valid.f_f-score 0.80174: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 121 | valid.f_iou 0.7284899950027466, valid.f_f-score 0.80174: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.97it/s]
epoch 121 | valid.f_iou 0.7086499929428101, valid.f_f-score 0.77781: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.97it/s]
epoch 121 | valid.f_iou 0.7086499929428101, valid.f_f-score 0.77781: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.03it/s]
epoch 121 | valid.f_iou 0.7204399704933167, valid.f_f-score 0.79047: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.03it/s]
epoch 121 | valid.f_iou 0.7204399704933167, valid.f_f-score 0.79047: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.20it/s]
epoch 121 | valid.f_iou 0.7313299775123596, valid.f_f-score 0.79992: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.20it/s]
epoch 121 | valid.f_iou 0.7313299775123596, valid.f_f-score 0.79992: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.33it/s]
epoch 121 | valid.f_iou 0.7240399718284607, valid.f_f-score 0.79521: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.33it/s]
epoch 121 | valid.f_iou 0.7240399718284607, valid.f_f-score 0.79521: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.43it/s]
epoch 121 | valid.f_iou 0.7291899919509888, valid.f_f-score 0.80337: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.43it/s]
epoch 121 | valid.f_iou 0.7291899919509888, valid.f_f-score 0.80337: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 121 | valid.f_iou 0.7271299958229065, valid.f_f-score 0.80362: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 121 | valid.f_iou 0.7271299958229065, valid.f_f-score 0.80362: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 121 | valid.f_iou 0.7271299958229065, valid.f_f-score 0.80362: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 121 | valid.f_iou 0.7533800005912781, valid.f_f-score 0.75803: 0%| | 0/16 [00:05, ?it/s]
epoch 121 | valid.f_iou 0.7533800005912781, valid.f_f-score 0.75803: 6%|█▉ | 1/16 [00:05<01:16, 5.13s/it]
epoch 121 | valid.f_iou 0.8153300285339355, valid.f_f-score 0.84882: 6%|█▉ | 1/16 [00:05<01:16, 5.13s/it]
epoch 121 | valid.f_iou 0.8153300285339355, valid.f_f-score 0.84882: 12%|███▊ | 2/16 [00:05<00:33, 2.39s/it]
epoch 121 | valid.f_iou 0.7608500123023987, valid.f_f-score 0.83984: 12%|███▊ | 2/16 [00:06<00:33, 2.39s/it]
epoch 121 | valid.f_iou 0.7608500123023987, valid.f_f-score 0.83984: 19%|█████▋ | 3/16 [00:06<00:19, 1.51s/it]
epoch 121 | valid.f_iou 0.7393900156021118, valid.f_f-score 0.79284: 19%|█████▋ | 3/16 [00:06<00:19, 1.51s/it]
epoch 121 | valid.f_iou 0.7393900156021118, valid.f_f-score 0.79284: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 121 | valid.f_iou 0.7039600014686584, valid.f_f-score 0.76087: 25%|███████▌ | 4/16 [00:06<00:13, 1.09s/it]
epoch 121 | valid.f_iou 0.7039600014686584, valid.f_f-score 0.76087: 31%|█████████▍ | 5/16 [00:06<00:09, 1.16it/s]
epoch 121 | valid.f_iou 0.6939799785614014, valid.f_f-score 0.75475: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 121 | valid.f_iou 0.6939799785614014, valid.f_f-score 0.75475: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 121 | valid.f_iou 0.7165499925613403, valid.f_f-score 0.7815: 38%|███████████▋ | 6/16 [00:07<00:07, 1.38it/s]
epoch 121 | valid.f_iou 0.7165499925613403, valid.f_f-score 0.7815: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.58it/s]
epoch 121 | valid.f_iou 0.7096899747848511, valid.f_f-score 0.78628: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 121 | valid.f_iou 0.7096899747848511, valid.f_f-score 0.78628: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 121 | valid.f_iou 0.7153699994087219, valid.f_f-score 0.78421: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 121 | valid.f_iou 0.7153699994087219, valid.f_f-score 0.78421: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.86it/s]
epoch 121 | valid.f_iou 0.7262700200080872, valid.f_f-score 0.79526: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 121 | valid.f_iou 0.7262700200080872, valid.f_f-score 0.79526: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 121 | valid.f_iou 0.7066299915313721, valid.f_f-score 0.77192: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 121 | valid.f_iou 0.7066299915313721, valid.f_f-score 0.77192: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.20it/s]
epoch 121 | valid.f_iou 0.7185800075531006, valid.f_f-score 0.78507: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.20it/s]
epoch 121 | valid.f_iou 0.7185800075531006, valid.f_f-score 0.78507: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.33it/s]
epoch 121 | valid.f_iou 0.7296000123023987, valid.f_f-score 0.79575: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.33it/s]
epoch 121 | valid.f_iou 0.7296000123023987, valid.f_f-score 0.79575: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 121 | valid.f_iou 0.7224400043487549, valid.f_f-score 0.79135: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 121 | valid.f_iou 0.7224400043487549, valid.f_f-score 0.79135: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.52it/s]
epoch 121 | valid.f_iou 0.7276899814605713, valid.f_f-score 0.79977: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 121 | valid.f_iou 0.7276899814605713, valid.f_f-score 0.79977: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 121 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.80025: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.56it/s]
epoch 121 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.80025: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 121 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.80025: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 122 | loss 1.9373869895935059, f_iou 0.6365797519683838: 0%| | 0/74 [00:06, ?it/s]
epoch 122 | loss 1.9373869895935059, f_iou 0.6365797519683838: 1%|▍ | 1/74 [00:06<07:47, 6.40s/it]
epoch 122 | loss 1.0285054445266724, f_iou 0.6215503811836243: 1%|▍ | 1/74 [00:07<07:47, 6.40s/it]
epoch 122 | loss 1.0285054445266724, f_iou 0.6215503811836243: 3%|▉ | 2/74 [00:07<03:44, 3.12s/it]
epoch 122 | loss 1.1140207052230835, f_iou 0.7016014456748962: 3%|▉ | 2/74 [00:08<03:44, 3.12s/it]
epoch 122 | loss 1.1140207052230835, f_iou 0.7016014456748962: 4%|█▍ | 3/74 [00:08<02:29, 2.11s/it]
epoch 122 | loss 1.985210657119751, f_iou 0.5633572936058044: 4%|█▌ | 3/74 [00:08<02:29, 2.11s/it]
epoch 122 | loss 1.985210657119751, f_iou 0.5633572936058044: 5%|██ | 4/74 [00:08<01:51, 1.60s/it]
epoch 122 | loss 0.4265141487121582, f_iou 0.6023300886154175: 5%|█▉ | 4/74 [00:09<01:51, 1.60s/it]
epoch 122 | loss 0.4265141487121582, f_iou 0.6023300886154175: 7%|██▍ | 5/74 [00:09<01:30, 1.31s/it]
epoch 122 | loss 2.4186935424804688, f_iou 0.6253243088722229: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 122 | loss 2.4186935424804688, f_iou 0.6253243088722229: 8%|██▉ | 6/74 [00:10<01:17, 1.14s/it]
epoch 122 | loss 0.6094397306442261, f_iou 0.6548673510551453: 8%|██▉ | 6/74 [00:11<01:17, 1.14s/it]
epoch 122 | loss 0.6094397306442261, f_iou 0.6548673510551453: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 122 | loss 0.5984630584716797, f_iou 0.687976598739624: 9%|███▌ | 7/74 [00:12<01:08, 1.02s/it]
epoch 122 | loss 0.5984630584716797, f_iou 0.687976598739624: 11%|████ | 8/74 [00:12<01:03, 1.04it/s]
epoch 122 | loss 1.32652747631073, f_iou 0.6712570786476135: 11%|████ | 8/74 [00:12<01:03, 1.04it/s]
epoch 122 | loss 1.32652747631073, f_iou 0.6712570786476135: 12%|████▌ | 9/74 [00:12<00:58, 1.11it/s]
epoch 122 | loss 1.1840013265609741, f_iou 0.6806616187095642: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 122 | loss 1.1840013265609741, f_iou 0.6806616187095642: 14%|████▋ | 10/74 [00:13<00:55, 1.16it/s]
epoch 122 | loss 0.6524213552474976, f_iou 0.7056395411491394: 14%|████▋ | 10/74 [00:14<00:55, 1.16it/s]
epoch 122 | loss 0.6524213552474976, f_iou 0.7056395411491394: 15%|█████▏ | 11/74 [00:14<00:51, 1.22it/s]
epoch 122 | loss 1.2556623220443726, f_iou 0.7099823951721191: 15%|█████▏ | 11/74 [00:15<00:51, 1.22it/s]
epoch 122 | loss 1.2556623220443726, f_iou 0.7099823951721191: 16%|█████▋ | 12/74 [00:15<00:49, 1.26it/s]
epoch 122 | loss 0.8097517490386963, f_iou 0.674519956111908: 16%|█████▊ | 12/74 [00:15<00:49, 1.26it/s]
epoch 122 | loss 0.8097517490386963, f_iou 0.674519956111908: 18%|██████▎ | 13/74 [00:15<00:47, 1.29it/s]
epoch 122 | loss 1.6640719175338745, f_iou 0.6498395800590515: 18%|██████▏ | 13/74 [00:16<00:47, 1.29it/s]
epoch 122 | loss 1.6640719175338745, f_iou 0.6498395800590515: 19%|██████▌ | 14/74 [00:16<00:45, 1.32it/s]
epoch 122 | loss 0.8244786262512207, f_iou 0.6621893048286438: 19%|██████▌ | 14/74 [00:17<00:45, 1.32it/s]
epoch 122 | loss 0.8244786262512207, f_iou 0.6621893048286438: 20%|███████ | 15/74 [00:17<00:44, 1.34it/s]
epoch 122 | loss 1.957657814025879, f_iou 0.6444909572601318: 20%|███████▎ | 15/74 [00:18<00:44, 1.34it/s]
epoch 122 | loss 1.957657814025879, f_iou 0.6444909572601318: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 122 | loss 2.491368532180786, f_iou 0.6329654455184937: 22%|███████▊ | 16/74 [00:18<00:42, 1.36it/s]
epoch 122 | loss 2.491368532180786, f_iou 0.6329654455184937: 23%|████████▎ | 17/74 [00:18<00:41, 1.37it/s]
epoch 122 | loss 2.318049669265747, f_iou 0.6403358578681946: 23%|████████▎ | 17/74 [00:19<00:41, 1.37it/s]
epoch 122 | loss 2.318049669265747, f_iou 0.6403358578681946: 24%|████████▊ | 18/74 [00:19<00:40, 1.38it/s]
epoch 122 | loss 1.4706145524978638, f_iou 0.6382943391799927: 24%|████████▌ | 18/74 [00:20<00:40, 1.38it/s]
epoch 122 | loss 1.4706145524978638, f_iou 0.6382943391799927: 26%|████████▉ | 19/74 [00:20<00:39, 1.38it/s]
epoch 122 | loss 0.6483904123306274, f_iou 0.6533154249191284: 26%|████████▉ | 19/74 [00:20<00:39, 1.38it/s]
epoch 122 | loss 0.6483904123306274, f_iou 0.6533154249191284: 27%|█████████▍ | 20/74 [00:20<00:39, 1.37it/s]
epoch 122 | loss 0.7165484428405762, f_iou 0.6663795113563538: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 122 | loss 0.7165484428405762, f_iou 0.6663795113563538: 28%|█████████▉ | 21/74 [00:21<00:38, 1.37it/s]
epoch 122 | loss 1.197869896888733, f_iou 0.6768419146537781: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 122 | loss 1.197869896888733, f_iou 0.6768419146537781: 30%|██████████▋ | 22/74 [00:22<00:38, 1.37it/s]
epoch 122 | loss 0.8718353509902954, f_iou 0.6751842498779297: 30%|██████████▍ | 22/74 [00:23<00:38, 1.37it/s]
epoch 122 | loss 0.8718353509902954, f_iou 0.6751842498779297: 31%|██████████▉ | 23/74 [00:23<00:37, 1.37it/s]
epoch 122 | loss 0.7941630482673645, f_iou 0.6837384700775146: 31%|██████████▉ | 23/74 [00:23<00:37, 1.37it/s]
epoch 122 | loss 0.7941630482673645, f_iou 0.6837384700775146: 32%|███████████▎ | 24/74 [00:23<00:36, 1.38it/s]
epoch 122 | loss 0.9668493270874023, f_iou 0.68973708152771: 32%|████████████ | 24/74 [00:24<00:36, 1.38it/s]
epoch 122 | loss 0.9668493270874023, f_iou 0.68973708152771: 34%|████████████▌ | 25/74 [00:24<00:35, 1.38it/s]
epoch 122 | loss 0.32639557123184204, f_iou 0.6997026801109314: 34%|███████████▍ | 25/74 [00:25<00:35, 1.38it/s]
epoch 122 | loss 0.32639557123184204, f_iou 0.6997026801109314: 35%|███████████▉ | 26/74 [00:25<00:34, 1.38it/s]
epoch 122 | loss 0.7996875643730164, f_iou 0.7058338522911072: 35%|████████████▎ | 26/74 [00:26<00:34, 1.38it/s]
epoch 122 | loss 0.7996875643730164, f_iou 0.7058338522911072: 36%|████████████▊ | 27/74 [00:26<00:33, 1.38it/s]
epoch 122 | loss 1.0201643705368042, f_iou 0.7017377614974976: 36%|████████████▊ | 27/74 [00:26<00:33, 1.38it/s]
epoch 122 | loss 1.0201643705368042, f_iou 0.7017377614974976: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 122 | loss 0.9342098236083984, f_iou 0.7028536200523376: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.38it/s]
epoch 122 | loss 0.9342098236083984, f_iou 0.7028536200523376: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.39it/s]
epoch 122 | loss 0.8728435635566711, f_iou 0.7109386324882507: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.39it/s]
epoch 122 | loss 0.8728435635566711, f_iou 0.7109386324882507: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.36it/s]
epoch 122 | loss 0.969498872756958, f_iou 0.7173086404800415: 41%|██████████████▌ | 30/74 [00:29<00:32, 1.36it/s]
epoch 122 | loss 0.969498872756958, f_iou 0.7173086404800415: 42%|███████████████ | 31/74 [00:29<00:32, 1.34it/s]
epoch 122 | loss 0.6216697096824646, f_iou 0.7253831028938293: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.34it/s]
epoch 122 | loss 0.6216697096824646, f_iou 0.7253831028938293: 43%|███████████████▏ | 32/74 [00:29<00:31, 1.35it/s]
epoch 122 | loss 0.4693187177181244, f_iou 0.7272499799728394: 43%|███████████████▏ | 32/74 [00:30<00:31, 1.35it/s]
epoch 122 | loss 0.4693187177181244, f_iou 0.7272499799728394: 45%|███████████████▌ | 33/74 [00:30<00:30, 1.36it/s]
epoch 122 | loss 1.0789225101470947, f_iou 0.7288351655006409: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.36it/s]
epoch 122 | loss 1.0789225101470947, f_iou 0.7288351655006409: 46%|████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 122 | loss 0.9188926219940186, f_iou 0.7288009524345398: 46%|████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 122 | loss 0.9188926219940186, f_iou 0.7288009524345398: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.38it/s]
epoch 122 | loss 0.6323844790458679, f_iou 0.7355750203132629: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.38it/s]
epoch 122 | loss 0.6323844790458679, f_iou 0.7355750203132629: 49%|█████████████████ | 36/74 [00:32<00:27, 1.38it/s]
epoch 122 | loss 0.425601601600647, f_iou 0.7401293516159058: 49%|█████████████████▌ | 36/74 [00:33<00:27, 1.38it/s]
epoch 122 | loss 0.425601601600647, f_iou 0.7401293516159058: 50%|██████████████████ | 37/74 [00:33<00:27, 1.34it/s]
epoch 122 | loss 1.2462924718856812, f_iou 0.73821622133255: 50%|██████████████████▌ | 37/74 [00:34<00:27, 1.34it/s]
epoch 122 | loss 1.2462924718856812, f_iou 0.73821622133255: 51%|███████████████████ | 38/74 [00:34<00:27, 1.32it/s]
epoch 122 | loss 2.5716309547424316, f_iou 0.733531653881073: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 122 | loss 2.5716309547424316, f_iou 0.733531653881073: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.30it/s]
epoch 122 | loss 0.9677048921585083, f_iou 0.7378805875778198: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.30it/s]
epoch 122 | loss 0.9677048921585083, f_iou 0.7378805875778198: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.31it/s]
epoch 122 | loss 1.3040786981582642, f_iou 0.7335873246192932: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.31it/s]
epoch 122 | loss 1.3040786981582642, f_iou 0.7335873246192932: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.33it/s]
epoch 122 | loss 0.4676435589790344, f_iou 0.7379849553108215: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.33it/s]
epoch 122 | loss 0.4676435589790344, f_iou 0.7379849553108215: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.35it/s]
epoch 122 | loss 0.2864968478679657, f_iou 0.743435800075531: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.35it/s]
epoch 122 | loss 0.2864968478679657, f_iou 0.743435800075531: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.36it/s]
epoch 122 | loss 0.7098227739334106, f_iou 0.7480716109275818: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.36it/s]
epoch 122 | loss 0.7098227739334106, f_iou 0.7480716109275818: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.35it/s]
epoch 122 | loss 0.8586423993110657, f_iou 0.7522532343864441: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.35it/s]
epoch 122 | loss 0.8586423993110657, f_iou 0.7522532343864441: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.35it/s]
epoch 122 | loss 1.1727951765060425, f_iou 0.7503578662872314: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.35it/s]
epoch 122 | loss 1.1727951765060425, f_iou 0.7503578662872314: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.36it/s]
epoch 122 | loss 0.6009907126426697, f_iou 0.753270149230957: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.36it/s]
epoch 122 | loss 0.6009907126426697, f_iou 0.753270149230957: 64%|██████████████████████▊ | 47/74 [00:40<00:19, 1.37it/s]
epoch 122 | loss 1.192518711090088, f_iou 0.7509456872940063: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.37it/s]
epoch 122 | loss 1.192518711090088, f_iou 0.7509456872940063: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 122 | loss 0.7276512384414673, f_iou 0.7535656094551086: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.38it/s]
epoch 122 | loss 0.7276512384414673, f_iou 0.7535656094551086: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 122 | loss 0.32678115367889404, f_iou 0.7557100653648376: 66%|██████████████████████▌ | 49/74 [00:42<00:18, 1.38it/s]
epoch 122 | loss 0.32678115367889404, f_iou 0.7557100653648376: 68%|██████████████████████▉ | 50/74 [00:42<00:17, 1.38it/s]
epoch 122 | loss 2.8153443336486816, f_iou 0.7512057423591614: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 122 | loss 2.8153443336486816, f_iou 0.7512057423591614: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.37it/s]
epoch 122 | loss 1.0348615646362305, f_iou 0.7390881776809692: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.37it/s]
epoch 122 | loss 1.0348615646362305, f_iou 0.7390881776809692: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.38it/s]
epoch 122 | loss 0.4528862237930298, f_iou 0.7417004108428955: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.38it/s]
epoch 122 | loss 0.4528862237930298, f_iou 0.7417004108428955: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 122 | loss 0.6347801089286804, f_iou 0.7442916035652161: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 122 | loss 0.6347801089286804, f_iou 0.7442916035652161: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.38it/s]
epoch 122 | loss 0.0, f_iou 0.7487015724182129: 73%|████████████████████████████████████▍ | 54/74 [00:46<00:14, 1.38it/s]
epoch 122 | loss 0.0, f_iou 0.7487015724182129: 74%|█████████████████████████████████████▏ | 55/74 [00:46<00:13, 1.39it/s]
epoch 122 | loss 1.4110881090164185, f_iou 0.7465685606002808: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.39it/s]
epoch 122 | loss 1.4110881090164185, f_iou 0.7465685606002808: 76%|██████████████████████████▍ | 56/74 [00:47<00:12, 1.39it/s]
epoch 122 | loss 1.2239923477172852, f_iou 0.7462711930274963: 76%|██████████████████████████▍ | 56/74 [00:48<00:12, 1.39it/s]
epoch 122 | loss 1.2239923477172852, f_iou 0.7462711930274963: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.36it/s]
epoch 122 | loss 1.0638477802276611, f_iou 0.7467517852783203: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.36it/s]
epoch 122 | loss 1.0638477802276611, f_iou 0.7467517852783203: 78%|███████████████████████████▍ | 58/74 [00:48<00:12, 1.33it/s]
epoch 122 | loss 0.3880153000354767, f_iou 0.7500417232513428: 78%|███████████████████████████▍ | 58/74 [00:49<00:12, 1.33it/s]
epoch 122 | loss 0.3880153000354767, f_iou 0.7500417232513428: 80%|███████████████████████████▉ | 59/74 [00:49<00:11, 1.32it/s]
epoch 122 | loss 1.6240817308425903, f_iou 0.7446646094322205: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.32it/s]
epoch 122 | loss 1.6240817308425903, f_iou 0.7446646094322205: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.31it/s]
epoch 122 | loss 0.5900943279266357, f_iou 0.7479059100151062: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.31it/s]
epoch 122 | loss 0.5900943279266357, f_iou 0.7479059100151062: 82%|████████████████████████████▊ | 61/74 [00:51<00:10, 1.29it/s]
epoch 122 | loss 0.812465488910675, f_iou 0.7494643926620483: 82%|█████████████████████████████▋ | 61/74 [00:51<00:10, 1.29it/s]
epoch 122 | loss 0.812465488910675, f_iou 0.7494643926620483: 84%|██████████████████████████████▏ | 62/74 [00:51<00:09, 1.31it/s]
epoch 122 | loss 0.5900624990463257, f_iou 0.7488847970962524: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.31it/s]
epoch 122 | loss 0.5900624990463257, f_iou 0.7488847970962524: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.33it/s]
epoch 122 | loss 0.9094178676605225, f_iou 0.7438416481018066: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.33it/s]
epoch 122 | loss 0.9094178676605225, f_iou 0.7438416481018066: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.34it/s]
epoch 122 | loss 1.017832636833191, f_iou 0.7455520629882812: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.34it/s]
epoch 122 | loss 1.017832636833191, f_iou 0.7455520629882812: 88%|███████████████████████████████▌ | 65/74 [00:54<00:06, 1.36it/s]
epoch 122 | loss 1.3301671743392944, f_iou 0.7444892525672913: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.36it/s]
epoch 122 | loss 1.3301671743392944, f_iou 0.7444892525672913: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.36it/s]
epoch 122 | loss 0.3751404285430908, f_iou 0.7479469776153564: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.36it/s]
epoch 122 | loss 0.3751404285430908, f_iou 0.7479469776153564: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.35it/s]
epoch 122 | loss 0.5697644948959351, f_iou 0.7390549182891846: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.35it/s]
epoch 122 | loss 0.5697644948959351, f_iou 0.7390549182891846: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.37it/s]
epoch 122 | loss 0.6131063103675842, f_iou 0.7362480759620667: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.37it/s]
epoch 122 | loss 0.6131063103675842, f_iou 0.7362480759620667: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.38it/s]
epoch 122 | loss 1.4502263069152832, f_iou 0.7370015382766724: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.38it/s]
epoch 122 | loss 1.4502263069152832, f_iou 0.7370015382766724: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.38it/s]
epoch 122 | loss 0.7232200503349304, f_iou 0.7388626337051392: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.38it/s]
epoch 122 | loss 0.7232200503349304, f_iou 0.7388626337051392: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 122 | loss 0.9783816337585449, f_iou 0.7411718964576721: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 122 | loss 0.9783816337585449, f_iou 0.7411718964576721: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 122 | loss 0.6897463798522949, f_iou 0.7394869923591614: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 122 | loss 0.6897463798522949, f_iou 0.7394869923591614: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.39it/s]
epoch 122 | loss 1.0687055587768555, f_iou 0.7420417070388794: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 122 | loss 1.0687055587768555, f_iou 0.7420417070388794: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.39it/s]
epoch 122 | loss 1.0687055587768555, f_iou 0.7420417070388794: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 122 | valid.f_iou 0.7343800067901611, valid.f_f-score 0.83887: 0%| | 0/16 [00:05, ?it/s]
epoch 122 | valid.f_iou 0.7343800067901611, valid.f_f-score 0.83887: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 122 | valid.f_iou 0.7206500172615051, valid.f_f-score 0.86924: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 122 | valid.f_iou 0.7206500172615051, valid.f_f-score 0.86924: 12%|███▊ | 2/16 [00:05<00:35, 2.55s/it]
epoch 122 | valid.f_iou 0.5768899917602539, valid.f_f-score 0.77582: 12%|███▊ | 2/16 [00:06<00:35, 2.55s/it]
epoch 122 | valid.f_iou 0.5768899917602539, valid.f_f-score 0.77582: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 122 | valid.f_iou 0.6045200228691101, valid.f_f-score 0.7544: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 122 | valid.f_iou 0.6045200228691101, valid.f_f-score 0.7544: 25%|███████▊ | 4/16 [00:06<00:13, 1.16s/it]
epoch 122 | valid.f_iou 0.6166999936103821, valid.f_f-score 0.75988: 25%|███████▌ | 4/16 [00:07<00:13, 1.16s/it]
epoch 122 | valid.f_iou 0.6166999936103821, valid.f_f-score 0.75988: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 122 | valid.f_iou 0.5727900266647339, valid.f_f-score 0.72012: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 122 | valid.f_iou 0.5727900266647339, valid.f_f-score 0.72012: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 122 | valid.f_iou 0.5996699929237366, valid.f_f-score 0.74656: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 122 | valid.f_iou 0.5996699929237366, valid.f_f-score 0.74656: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 122 | valid.f_iou 0.5674999952316284, valid.f_f-score 0.72727: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 122 | valid.f_iou 0.5674999952316284, valid.f_f-score 0.72727: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 122 | valid.f_iou 0.5860599875450134, valid.f_f-score 0.73727: 50%|███████████████ | 8/16 [00:09<00:04, 1.72it/s]
epoch 122 | valid.f_iou 0.5860599875450134, valid.f_f-score 0.73727: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.87it/s]
epoch 122 | valid.f_iou 0.5812100172042847, valid.f_f-score 0.73838: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.87it/s]
epoch 122 | valid.f_iou 0.5812100172042847, valid.f_f-score 0.73838: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 122 | valid.f_iou 0.5803999900817871, valid.f_f-score 0.7361: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 122 | valid.f_iou 0.5803999900817871, valid.f_f-score 0.7361: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 122 | valid.f_iou 0.6030099987983704, valid.f_f-score 0.75216: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.23it/s]
epoch 122 | valid.f_iou 0.6030099987983704, valid.f_f-score 0.75216: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.35it/s]
epoch 122 | valid.f_iou 0.606410026550293, valid.f_f-score 0.758: 75%|████████████████████████ | 12/16 [00:10<00:01, 2.35it/s]
epoch 122 | valid.f_iou 0.606410026550293, valid.f_f-score 0.758: 81%|██████████████████████████ | 13/16 [00:10<00:01, 2.46it/s]
epoch 122 | valid.f_iou 0.5983200073242188, valid.f_f-score 0.75176: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.46it/s]
epoch 122 | valid.f_iou 0.5983200073242188, valid.f_f-score 0.75176: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.53it/s]
epoch 122 | valid.f_iou 0.6026700139045715, valid.f_f-score 0.7519: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.53it/s]
epoch 122 | valid.f_iou 0.6026700139045715, valid.f_f-score 0.7519: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 122 | valid.f_iou 0.6059799790382385, valid.f_f-score 0.74981: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 122 | valid.f_iou 0.6059799790382385, valid.f_f-score 0.74981: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 122 | valid.f_iou 0.6059799790382385, valid.f_f-score 0.74981: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 122 | valid.f_iou 0.8010500073432922, valid.f_f-score 0.79906: 0%| | 0/16 [00:05, ?it/s]
epoch 122 | valid.f_iou 0.8010500073432922, valid.f_f-score 0.79906: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 122 | valid.f_iou 0.8316299915313721, valid.f_f-score 0.86733: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 122 | valid.f_iou 0.8316299915313721, valid.f_f-score 0.86733: 12%|███▊ | 2/16 [00:05<00:34, 2.46s/it]
epoch 122 | valid.f_iou 0.7769399881362915, valid.f_f-score 0.85449: 12%|███▊ | 2/16 [00:06<00:34, 2.46s/it]
epoch 122 | valid.f_iou 0.7769399881362915, valid.f_f-score 0.85449: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 122 | valid.f_iou 0.7643499970436096, valid.f_f-score 0.81967: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 122 | valid.f_iou 0.7643499970436096, valid.f_f-score 0.81967: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 122 | valid.f_iou 0.7332299947738647, valid.f_f-score 0.8065: 25%|███████▊ | 4/16 [00:07<00:13, 1.11s/it]
epoch 122 | valid.f_iou 0.7332299947738647, valid.f_f-score 0.8065: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 122 | valid.f_iou 0.7165399789810181, valid.f_f-score 0.79259: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 122 | valid.f_iou 0.7165399789810181, valid.f_f-score 0.79259: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 122 | valid.f_iou 0.7287300229072571, valid.f_f-score 0.81008: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 122 | valid.f_iou 0.7287300229072571, valid.f_f-score 0.81008: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.60it/s]
epoch 122 | valid.f_iou 0.7199000120162964, valid.f_f-score 0.80999: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 122 | valid.f_iou 0.7199000120162964, valid.f_f-score 0.80999: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 122 | valid.f_iou 0.7224100232124329, valid.f_f-score 0.81295: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 122 | valid.f_iou 0.7224100232124329, valid.f_f-score 0.81295: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.90it/s]
epoch 122 | valid.f_iou 0.7341899871826172, valid.f_f-score 0.82412: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 122 | valid.f_iou 0.7341899871826172, valid.f_f-score 0.82412: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 122 | valid.f_iou 0.7160000205039978, valid.f_f-score 0.79979: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 122 | valid.f_iou 0.7160000205039978, valid.f_f-score 0.79979: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.09it/s]
epoch 122 | valid.f_iou 0.7278900146484375, valid.f_f-score 0.81081: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.09it/s]
epoch 122 | valid.f_iou 0.7278900146484375, valid.f_f-score 0.81081: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.13it/s]
epoch 122 | valid.f_iou 0.7369099855422974, valid.f_f-score 0.81821: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.13it/s]
epoch 122 | valid.f_iou 0.7369099855422974, valid.f_f-score 0.81821: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.16it/s]
epoch 122 | valid.f_iou 0.7257099747657776, valid.f_f-score 0.8083: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.16it/s]
epoch 122 | valid.f_iou 0.7257099747657776, valid.f_f-score 0.8083: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.20it/s]
epoch 122 | valid.f_iou 0.7336900234222412, valid.f_f-score 0.81753: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.20it/s]
epoch 122 | valid.f_iou 0.7336900234222412, valid.f_f-score 0.81753: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.22it/s]
epoch 122 | valid.f_iou 0.733519971370697, valid.f_f-score 0.81661: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.22it/s]
epoch 122 | valid.f_iou 0.733519971370697, valid.f_f-score 0.81661: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.33it/s]
epoch 122 | valid.f_iou 0.733519971370697, valid.f_f-score 0.81661: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 122 | valid.f_iou 0.8010500073432922, valid.f_f-score 0.79906: 0%| | 0/16 [00:05, ?it/s]
epoch 122 | valid.f_iou 0.8010500073432922, valid.f_f-score 0.79906: 6%|█▉ | 1/16 [00:05<01:23, 5.58s/it]
epoch 122 | valid.f_iou 0.8316299915313721, valid.f_f-score 0.86733: 6%|█▉ | 1/16 [00:06<01:23, 5.58s/it]
epoch 122 | valid.f_iou 0.8316299915313721, valid.f_f-score 0.86733: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 122 | valid.f_iou 0.7769399881362915, valid.f_f-score 0.85449: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 122 | valid.f_iou 0.7769399881362915, valid.f_f-score 0.85449: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 122 | valid.f_iou 0.7614499926567078, valid.f_f-score 0.81422: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 122 | valid.f_iou 0.7614499926567078, valid.f_f-score 0.81422: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 122 | valid.f_iou 0.7389100193977356, valid.f_f-score 0.80214: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 122 | valid.f_iou 0.7389100193977356, valid.f_f-score 0.80214: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 122 | valid.f_iou 0.7212799787521362, valid.f_f-score 0.78896: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 122 | valid.f_iou 0.7212799787521362, valid.f_f-score 0.78896: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 122 | valid.f_iou 0.7345700263977051, valid.f_f-score 0.80697: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 122 | valid.f_iou 0.7345700263977051, valid.f_f-score 0.80697: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 122 | valid.f_iou 0.7250199913978577, valid.f_f-score 0.80726: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 122 | valid.f_iou 0.7250199913978577, valid.f_f-score 0.80726: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 122 | valid.f_iou 0.731190025806427, valid.f_f-score 0.81053: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.76it/s]
epoch 122 | valid.f_iou 0.731190025806427, valid.f_f-score 0.81053: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.96it/s]
epoch 122 | valid.f_iou 0.73853999376297, valid.f_f-score 0.81841: 56%|██████████████████ | 9/16 [00:09<00:03, 1.96it/s]
epoch 122 | valid.f_iou 0.73853999376297, valid.f_f-score 0.81841: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.14it/s]
epoch 122 | valid.f_iou 0.7199500203132629, valid.f_f-score 0.79459: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.14it/s]
epoch 122 | valid.f_iou 0.7199500203132629, valid.f_f-score 0.79459: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 122 | valid.f_iou 0.7315099835395813, valid.f_f-score 0.80605: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.29it/s]
epoch 122 | valid.f_iou 0.7315099835395813, valid.f_f-score 0.80605: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 122 | valid.f_iou 0.7401999831199646, valid.f_f-score 0.81398: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 122 | valid.f_iou 0.7401999831199646, valid.f_f-score 0.81398: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 122 | valid.f_iou 0.7287700176239014, valid.f_f-score 0.80439: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 122 | valid.f_iou 0.7287700176239014, valid.f_f-score 0.80439: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 122 | valid.f_iou 0.7365400195121765, valid.f_f-score 0.81388: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 122 | valid.f_iou 0.7365400195121765, valid.f_f-score 0.81388: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 122 | valid.f_iou 0.7366700172424316, valid.f_f-score 0.81319: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 122 | valid.f_iou 0.7366700172424316, valid.f_f-score 0.81319: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 122 | valid.f_iou 0.7366700172424316, valid.f_f-score 0.81319: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 123 | loss 1.2366987466812134, f_iou 0.6631824374198914: 0%| | 0/74 [00:06, ?it/s]
epoch 123 | loss 1.2366987466812134, f_iou 0.6631824374198914: 1%|▍ | 1/74 [00:06<08:06, 6.67s/it]
epoch 123 | loss 0.5620837807655334, f_iou 0.6880404949188232: 1%|▍ | 1/74 [00:07<08:06, 6.67s/it]
epoch 123 | loss 0.5620837807655334, f_iou 0.6880404949188232: 3%|▉ | 2/74 [00:07<03:52, 3.23s/it]
epoch 123 | loss 1.123287558555603, f_iou 0.7534427046775818: 3%|█ | 2/74 [00:08<03:52, 3.23s/it]
epoch 123 | loss 1.123287558555603, f_iou 0.7534427046775818: 4%|█▌ | 3/74 [00:08<02:30, 2.12s/it]
epoch 123 | loss 0.6748246550559998, f_iou 0.7320462465286255: 4%|█▍ | 3/74 [00:09<02:30, 2.12s/it]
epoch 123 | loss 0.6748246550559998, f_iou 0.7320462465286255: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 123 | loss 0.896854817867279, f_iou 0.7594310641288757: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 123 | loss 0.896854817867279, f_iou 0.7594310641288757: 7%|██▌ | 5/74 [00:09<01:31, 1.33s/it]
epoch 123 | loss 0.9781383275985718, f_iou 0.7782487869262695: 7%|██▍ | 5/74 [00:10<01:31, 1.33s/it]
epoch 123 | loss 0.9781383275985718, f_iou 0.7782487869262695: 8%|██▉ | 6/74 [00:10<01:18, 1.16s/it]
epoch 123 | loss 1.9597842693328857, f_iou 0.7329739928245544: 8%|██▉ | 6/74 [00:11<01:18, 1.16s/it]
epoch 123 | loss 1.9597842693328857, f_iou 0.7329739928245544: 9%|███▍ | 7/74 [00:11<01:10, 1.05s/it]
epoch 123 | loss 2.5231337547302246, f_iou 0.7174431681632996: 9%|███▍ | 7/74 [00:12<01:10, 1.05s/it]
epoch 123 | loss 2.5231337547302246, f_iou 0.7174431681632996: 11%|███▉ | 8/74 [00:12<01:04, 1.03it/s]
epoch 123 | loss 2.3540854454040527, f_iou 0.7090650200843811: 11%|███▉ | 8/74 [00:13<01:04, 1.03it/s]
epoch 123 | loss 2.3540854454040527, f_iou 0.7090650200843811: 12%|████▍ | 9/74 [00:13<00:59, 1.09it/s]
epoch 123 | loss 1.1364266872406006, f_iou 0.7175909280776978: 12%|████▍ | 9/74 [00:14<00:59, 1.09it/s]
epoch 123 | loss 1.1364266872406006, f_iou 0.7175909280776978: 14%|████▋ | 10/74 [00:14<00:56, 1.13it/s]
epoch 123 | loss 0.8077137470245361, f_iou 0.7325387001037598: 14%|████▋ | 10/74 [00:14<00:56, 1.13it/s]
epoch 123 | loss 0.8077137470245361, f_iou 0.7325387001037598: 15%|█████▏ | 11/74 [00:14<00:53, 1.18it/s]
epoch 123 | loss 1.5398380756378174, f_iou 0.7323219180107117: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 123 | loss 1.5398380756378174, f_iou 0.7323219180107117: 16%|█████▋ | 12/74 [00:15<00:51, 1.21it/s]
epoch 123 | loss 1.3430202007293701, f_iou 0.7202672362327576: 16%|█████▋ | 12/74 [00:16<00:51, 1.21it/s]
epoch 123 | loss 1.3430202007293701, f_iou 0.7202672362327576: 18%|██████▏ | 13/74 [00:16<00:49, 1.24it/s]
epoch 123 | loss 1.2149097919464111, f_iou 0.7200567722320557: 18%|██████▏ | 13/74 [00:17<00:49, 1.24it/s]
epoch 123 | loss 1.2149097919464111, f_iou 0.7200567722320557: 19%|██████▌ | 14/74 [00:17<00:47, 1.26it/s]
epoch 123 | loss 0.5792708396911621, f_iou 0.7368022799491882: 19%|██████▌ | 14/74 [00:17<00:47, 1.26it/s]
epoch 123 | loss 0.5792708396911621, f_iou 0.7368022799491882: 20%|███████ | 15/74 [00:17<00:46, 1.26it/s]
epoch 123 | loss 1.1387887001037598, f_iou 0.7425671815872192: 20%|███████ | 15/74 [00:18<00:46, 1.26it/s]
epoch 123 | loss 1.1387887001037598, f_iou 0.7425671815872192: 22%|███████▌ | 16/74 [00:18<00:45, 1.28it/s]
epoch 123 | loss 1.1214457750320435, f_iou 0.7483885288238525: 22%|███████▌ | 16/74 [00:19<00:45, 1.28it/s]
epoch 123 | loss 1.1214457750320435, f_iou 0.7483885288238525: 23%|████████ | 17/74 [00:19<00:44, 1.28it/s]
epoch 123 | loss 3.631197929382324, f_iou 0.7364504337310791: 23%|████████▎ | 17/74 [00:20<00:44, 1.28it/s]
epoch 123 | loss 3.631197929382324, f_iou 0.7364504337310791: 24%|████████▊ | 18/74 [00:20<00:43, 1.29it/s]
epoch 123 | loss 0.4789278507232666, f_iou 0.7118105292320251: 24%|████████▌ | 18/74 [00:20<00:43, 1.29it/s]
epoch 123 | loss 0.4789278507232666, f_iou 0.7118105292320251: 26%|████████▉ | 19/74 [00:20<00:42, 1.28it/s]
epoch 123 | loss 0.5454428791999817, f_iou 0.7237793803215027: 26%|████████▉ | 19/74 [00:21<00:42, 1.28it/s]
epoch 123 | loss 0.5454428791999817, f_iou 0.7237793803215027: 27%|█████████▍ | 20/74 [00:21<00:42, 1.27it/s]
epoch 123 | loss 0.30359798669815063, f_iou 0.7343810796737671: 27%|█████████▏ | 20/74 [00:22<00:42, 1.27it/s]
epoch 123 | loss 0.30359798669815063, f_iou 0.7343810796737671: 28%|█████████▋ | 21/74 [00:22<00:42, 1.26it/s]
epoch 123 | loss 0.3941875398159027, f_iou 0.7359293103218079: 28%|█████████▉ | 21/74 [00:23<00:42, 1.26it/s]
epoch 123 | loss 0.3941875398159027, f_iou 0.7359293103218079: 30%|██████████▍ | 22/74 [00:23<00:40, 1.29it/s]
epoch 123 | loss 0.9870288372039795, f_iou 0.7301307320594788: 30%|██████████▍ | 22/74 [00:24<00:40, 1.29it/s]
epoch 123 | loss 0.9870288372039795, f_iou 0.7301307320594788: 31%|██████████▉ | 23/74 [00:24<00:39, 1.30it/s]
epoch 123 | loss 1.8650083541870117, f_iou 0.7199653387069702: 31%|██████████▉ | 23/74 [00:24<00:39, 1.30it/s]
epoch 123 | loss 1.8650083541870117, f_iou 0.7199653387069702: 32%|███████████▎ | 24/74 [00:24<00:39, 1.28it/s]
epoch 123 | loss 0.4009394645690918, f_iou 0.7101982831954956: 32%|███████████▎ | 24/74 [00:25<00:39, 1.28it/s]
epoch 123 | loss 0.4009394645690918, f_iou 0.7101982831954956: 34%|███████████▊ | 25/74 [00:25<00:37, 1.29it/s]
epoch 123 | loss 0.5771123766899109, f_iou 0.6985217332839966: 34%|███████████▊ | 25/74 [00:26<00:37, 1.29it/s]
epoch 123 | loss 0.5771123766899109, f_iou 0.6985217332839966: 35%|████████████▎ | 26/74 [00:26<00:36, 1.30it/s]
epoch 123 | loss 1.4568867683410645, f_iou 0.6969146132469177: 35%|████████████▎ | 26/74 [00:27<00:36, 1.30it/s]
epoch 123 | loss 1.4568867683410645, f_iou 0.6969146132469177: 36%|████████████▊ | 27/74 [00:27<00:36, 1.28it/s]
epoch 123 | loss 0.48519986867904663, f_iou 0.7031142711639404: 36%|████████████▍ | 27/74 [00:27<00:36, 1.28it/s]
epoch 123 | loss 0.48519986867904663, f_iou 0.7031142711639404: 38%|████████████▊ | 28/74 [00:27<00:35, 1.30it/s]
epoch 123 | loss 1.002772569656372, f_iou 0.7074585556983948: 38%|█████████████▌ | 28/74 [00:28<00:35, 1.30it/s]
epoch 123 | loss 1.002772569656372, f_iou 0.7074585556983948: 39%|██████████████ | 29/74 [00:28<00:34, 1.30it/s]
epoch 123 | loss 1.1453254222869873, f_iou 0.7076767086982727: 39%|█████████████▋ | 29/74 [00:29<00:34, 1.30it/s]
epoch 123 | loss 1.1453254222869873, f_iou 0.7076767086982727: 41%|██████████████▏ | 30/74 [00:29<00:33, 1.30it/s]
epoch 123 | loss 0.3575372099876404, f_iou 0.7161231637001038: 41%|██████████████▏ | 30/74 [00:30<00:33, 1.30it/s]
epoch 123 | loss 0.3575372099876404, f_iou 0.7161231637001038: 42%|██████████████▋ | 31/74 [00:30<00:33, 1.27it/s]
epoch 123 | loss 1.7477612495422363, f_iou 0.7076078057289124: 42%|██████████████▋ | 31/74 [00:31<00:33, 1.27it/s]
epoch 123 | loss 1.7477612495422363, f_iou 0.7076078057289124: 43%|███████████████▏ | 32/74 [00:31<00:33, 1.27it/s]
epoch 123 | loss 0.14251095056533813, f_iou 0.7138581275939941: 43%|██████████████▋ | 32/74 [00:31<00:33, 1.27it/s]
epoch 123 | loss 0.14251095056533813, f_iou 0.7138581275939941: 45%|███████████████▏ | 33/74 [00:31<00:32, 1.28it/s]
epoch 123 | loss 1.57002854347229, f_iou 0.7028504014015198: 45%|████████████████▌ | 33/74 [00:32<00:32, 1.28it/s]
epoch 123 | loss 1.57002854347229, f_iou 0.7028504014015198: 46%|█████████████████ | 34/74 [00:32<00:31, 1.27it/s]
epoch 123 | loss 0.6081408858299255, f_iou 0.7046322226524353: 46%|████████████████ | 34/74 [00:33<00:31, 1.27it/s]
epoch 123 | loss 0.6081408858299255, f_iou 0.7046322226524353: 47%|████████████████▌ | 35/74 [00:33<00:30, 1.29it/s]
epoch 123 | loss 0.7151505947113037, f_iou 0.7117121815681458: 47%|████████████████▌ | 35/74 [00:34<00:30, 1.29it/s]
epoch 123 | loss 0.7151505947113037, f_iou 0.7117121815681458: 49%|█████████████████ | 36/74 [00:34<00:29, 1.27it/s]
epoch 123 | loss 0.6835424900054932, f_iou 0.7162724733352661: 49%|█████████████████ | 36/74 [00:34<00:29, 1.27it/s]
epoch 123 | loss 0.6835424900054932, f_iou 0.7162724733352661: 50%|█████████████████▌ | 37/74 [00:34<00:29, 1.27it/s]
epoch 123 | loss 0.6647498607635498, f_iou 0.7201166749000549: 50%|█████████████████▌ | 37/74 [00:35<00:29, 1.27it/s]
epoch 123 | loss 0.6647498607635498, f_iou 0.7201166749000549: 51%|█████████████████▉ | 38/74 [00:35<00:28, 1.27it/s]
epoch 123 | loss 1.4130184650421143, f_iou 0.7172878980636597: 51%|█████████████████▉ | 38/74 [00:36<00:28, 1.27it/s]
epoch 123 | loss 1.4130184650421143, f_iou 0.7172878980636597: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.27it/s]
epoch 123 | loss 1.3096355199813843, f_iou 0.7167810797691345: 53%|██████████████████▍ | 39/74 [00:37<00:27, 1.27it/s]
epoch 123 | loss 1.3096355199813843, f_iou 0.7167810797691345: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.27it/s]
epoch 123 | loss 2.5138285160064697, f_iou 0.715664803981781: 54%|███████████████████▍ | 40/74 [00:38<00:26, 1.27it/s]
epoch 123 | loss 2.5138285160064697, f_iou 0.715664803981781: 55%|███████████████████▉ | 41/74 [00:38<00:25, 1.28it/s]
epoch 123 | loss 0.5593254566192627, f_iou 0.7192607522010803: 55%|███████████████████▍ | 41/74 [00:38<00:25, 1.28it/s]
epoch 123 | loss 0.5593254566192627, f_iou 0.7192607522010803: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.31it/s]
epoch 123 | loss 0.4062555730342865, f_iou 0.7047156691551208: 57%|███████████████████▊ | 42/74 [00:39<00:24, 1.31it/s]
epoch 123 | loss 0.4062555730342865, f_iou 0.7047156691551208: 58%|████████████████████▎ | 43/74 [00:39<00:23, 1.33it/s]
epoch 123 | loss 0.9968247413635254, f_iou 0.7093345522880554: 58%|████████████████████▎ | 43/74 [00:40<00:23, 1.33it/s]
epoch 123 | loss 0.9968247413635254, f_iou 0.7093345522880554: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.34it/s]
epoch 123 | loss 0.8146955966949463, f_iou 0.7116823792457581: 59%|████████████████████▊ | 44/74 [00:41<00:22, 1.34it/s]
epoch 123 | loss 0.8146955966949463, f_iou 0.7116823792457581: 61%|█████████████████████▎ | 45/74 [00:41<00:21, 1.35it/s]
epoch 123 | loss 1.028854489326477, f_iou 0.7026618719100952: 61%|█████████████████████▉ | 45/74 [00:41<00:21, 1.35it/s]
epoch 123 | loss 1.028854489326477, f_iou 0.7026618719100952: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.36it/s]
epoch 123 | loss 0.5481826066970825, f_iou 0.70701664686203: 62%|███████████████████████ | 46/74 [00:42<00:20, 1.36it/s]
epoch 123 | loss 0.5481826066970825, f_iou 0.70701664686203: 64%|███████████████████████▌ | 47/74 [00:42<00:19, 1.37it/s]
epoch 123 | loss 0.6744886040687561, f_iou 0.7085642218589783: 64%|██████████████████████▏ | 47/74 [00:43<00:19, 1.37it/s]
epoch 123 | loss 0.6744886040687561, f_iou 0.7085642218589783: 65%|██████████████████████▋ | 48/74 [00:43<00:19, 1.35it/s]
epoch 123 | loss 0.8608124256134033, f_iou 0.6952764987945557: 65%|██████████████████████▋ | 48/74 [00:44<00:19, 1.35it/s]
epoch 123 | loss 0.8608124256134033, f_iou 0.6952764987945557: 66%|███████████████████████▏ | 49/74 [00:44<00:18, 1.33it/s]
epoch 123 | loss 0.692448079586029, f_iou 0.7003432512283325: 66%|███████████████████████▊ | 49/74 [00:44<00:18, 1.33it/s]
epoch 123 | loss 0.692448079586029, f_iou 0.7003432512283325: 68%|████████████████████████▎ | 50/74 [00:44<00:18, 1.31it/s]
epoch 123 | loss 0.8291701674461365, f_iou 0.7026878595352173: 68%|███████████████████████▋ | 50/74 [00:45<00:18, 1.31it/s]
epoch 123 | loss 0.8291701674461365, f_iou 0.7026878595352173: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.30it/s]
epoch 123 | loss 0.3418539762496948, f_iou 0.703456461429596: 69%|████████████████████████▊ | 51/74 [00:46<00:17, 1.30it/s]
epoch 123 | loss 0.3418539762496948, f_iou 0.703456461429596: 70%|█████████████████████████▎ | 52/74 [00:46<00:17, 1.29it/s]
epoch 123 | loss 0.877726674079895, f_iou 0.7041632533073425: 70%|█████████████████████████▎ | 52/74 [00:47<00:17, 1.29it/s]
epoch 123 | loss 0.877726674079895, f_iou 0.7041632533073425: 72%|█████████████████████████▊ | 53/74 [00:47<00:16, 1.31it/s]
epoch 123 | loss 1.2590956687927246, f_iou 0.7085713148117065: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.31it/s]
epoch 123 | loss 1.2590956687927246, f_iou 0.7085713148117065: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.33it/s]
epoch 123 | loss 0.0, f_iou 0.7123211026191711: 73%|████████████████████████████████████▍ | 54/74 [00:48<00:15, 1.33it/s]
epoch 123 | loss 0.0, f_iou 0.7123211026191711: 74%|█████████████████████████████████████▏ | 55/74 [00:48<00:14, 1.34it/s]
epoch 123 | loss 0.37697288393974304, f_iou 0.7136091589927673: 74%|█████████████████████████▎ | 55/74 [00:49<00:14, 1.34it/s]
epoch 123 | loss 0.37697288393974304, f_iou 0.7136091589927673: 76%|█████████████████████████▋ | 56/74 [00:49<00:13, 1.35it/s]
epoch 123 | loss 0.7962889671325684, f_iou 0.7153832912445068: 76%|██████████████████████████▍ | 56/74 [00:50<00:13, 1.35it/s]
epoch 123 | loss 0.7962889671325684, f_iou 0.7153832912445068: 77%|██████████████████████████▉ | 57/74 [00:50<00:12, 1.36it/s]
epoch 123 | loss 0.8440666198730469, f_iou 0.7105446457862854: 77%|██████████████████████████▉ | 57/74 [00:50<00:12, 1.36it/s]
epoch 123 | loss 0.8440666198730469, f_iou 0.7105446457862854: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.36it/s]
epoch 123 | loss 0.7161316871643066, f_iou 0.7109482884407043: 78%|███████████████████████████▍ | 58/74 [00:51<00:11, 1.36it/s]
epoch 123 | loss 0.7161316871643066, f_iou 0.7109482884407043: 80%|███████████████████████████▉ | 59/74 [00:51<00:10, 1.37it/s]
epoch 123 | loss 1.0008288621902466, f_iou 0.7008205056190491: 80%|███████████████████████████▉ | 59/74 [00:52<00:10, 1.37it/s]
epoch 123 | loss 1.0008288621902466, f_iou 0.7008205056190491: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.37it/s]
epoch 123 | loss 1.0214762687683105, f_iou 0.703115701675415: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.37it/s]
epoch 123 | loss 1.0214762687683105, f_iou 0.703115701675415: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.37it/s]
epoch 123 | loss 0.34832194447517395, f_iou 0.7058895826339722: 82%|████████████████████████████ | 61/74 [00:53<00:09, 1.37it/s]
epoch 123 | loss 0.34832194447517395, f_iou 0.7058895826339722: 84%|████████████████████████████▍ | 62/74 [00:53<00:08, 1.38it/s]
epoch 123 | loss 1.2019855976104736, f_iou 0.6985686421394348: 84%|█████████████████████████████▎ | 62/74 [00:54<00:08, 1.38it/s]
epoch 123 | loss 1.2019855976104736, f_iou 0.6985686421394348: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.37it/s]
epoch 123 | loss 1.187273621559143, f_iou 0.6965197324752808: 85%|██████████████████████████████▋ | 63/74 [00:55<00:08, 1.37it/s]
epoch 123 | loss 1.187273621559143, f_iou 0.6965197324752808: 86%|███████████████████████████████▏ | 64/74 [00:55<00:07, 1.37it/s]
epoch 123 | loss 1.8312240839004517, f_iou 0.6967678070068359: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.37it/s]
epoch 123 | loss 1.8312240839004517, f_iou 0.6967678070068359: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.37it/s]
epoch 123 | loss 0.6742379069328308, f_iou 0.6917482614517212: 88%|██████████████████████████████▋ | 65/74 [00:56<00:06, 1.37it/s]
epoch 123 | loss 0.6742379069328308, f_iou 0.6917482614517212: 89%|███████████████████████████████▏ | 66/74 [00:56<00:05, 1.38it/s]
epoch 123 | loss 2.5102813243865967, f_iou 0.6888985633850098: 89%|███████████████████████████████▏ | 66/74 [00:57<00:05, 1.38it/s]
epoch 123 | loss 2.5102813243865967, f_iou 0.6888985633850098: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.38it/s]
epoch 123 | loss 0.6271253824234009, f_iou 0.6901371479034424: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.38it/s]
epoch 123 | loss 0.6271253824234009, f_iou 0.6901371479034424: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.39it/s]
epoch 123 | loss 1.9472482204437256, f_iou 0.6829204559326172: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.39it/s]
epoch 123 | loss 1.9472482204437256, f_iou 0.6829204559326172: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.39it/s]
epoch 123 | loss 1.599473237991333, f_iou 0.6822757720947266: 93%|█████████████████████████████████▌ | 69/74 [00:59<00:03, 1.39it/s]
epoch 123 | loss 1.599473237991333, f_iou 0.6822757720947266: 95%|██████████████████████████████████ | 70/74 [00:59<00:02, 1.39it/s]
epoch 123 | loss 0.40697982907295227, f_iou 0.6862101554870605: 95%|████████████████████████████████▏ | 70/74 [01:00<00:02, 1.39it/s]
epoch 123 | loss 0.40697982907295227, f_iou 0.6862101554870605: 96%|████████████████████████████████▌ | 71/74 [01:00<00:02, 1.39it/s]
epoch 123 | loss 1.032362937927246, f_iou 0.6882571578025818: 96%|██████████████████████████████████▌ | 71/74 [01:00<00:02, 1.39it/s]
epoch 123 | loss 1.032362937927246, f_iou 0.6882571578025818: 97%|███████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 123 | loss 0.457158625125885, f_iou 0.688947319984436: 97%|████████████████████████████████████ | 72/74 [01:01<00:01, 1.39it/s]
epoch 123 | loss 0.457158625125885, f_iou 0.688947319984436: 99%|████████████████████████████████████▌| 73/74 [01:01<00:00, 1.39it/s]
epoch 123 | loss 1.9240124225616455, f_iou 0.6881946921348572: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.39it/s]
epoch 123 | loss 1.9240124225616455, f_iou 0.6881946921348572: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.38it/s]
epoch 123 | loss 1.9240124225616455, f_iou 0.6881946921348572: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.19it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 123 | valid.f_iou 0.7317000031471252, valid.f_f-score 0.8305: 0%| | 0/16 [00:05, ?it/s]
epoch 123 | valid.f_iou 0.7317000031471252, valid.f_f-score 0.8305: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 123 | valid.f_iou 0.7286499738693237, valid.f_f-score 0.86867: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 123 | valid.f_iou 0.7286499738693237, valid.f_f-score 0.86867: 12%|███▊ | 2/16 [00:05<00:35, 2.52s/it]
epoch 123 | valid.f_iou 0.5825099945068359, valid.f_f-score 0.77423: 12%|███▊ | 2/16 [00:06<00:35, 2.52s/it]
epoch 123 | valid.f_iou 0.5825099945068359, valid.f_f-score 0.77423: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 123 | valid.f_iou 0.6108800172805786, valid.f_f-score 0.76229: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 123 | valid.f_iou 0.6108800172805786, valid.f_f-score 0.76229: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 123 | valid.f_iou 0.6196100115776062, valid.f_f-score 0.76484: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 123 | valid.f_iou 0.6196100115776062, valid.f_f-score 0.76484: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 123 | valid.f_iou 0.5751199722290039, valid.f_f-score 0.72385: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 123 | valid.f_iou 0.5751199722290039, valid.f_f-score 0.72385: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 123 | valid.f_iou 0.602180004119873, valid.f_f-score 0.74564: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 123 | valid.f_iou 0.602180004119873, valid.f_f-score 0.74564: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 123 | valid.f_iou 0.5718100070953369, valid.f_f-score 0.72905: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 123 | valid.f_iou 0.5718100070953369, valid.f_f-score 0.72905: 50%|███████████████ | 8/16 [00:08<00:04, 1.71it/s]
epoch 123 | valid.f_iou 0.5899999737739563, valid.f_f-score 0.738: 50%|████████████████ | 8/16 [00:09<00:04, 1.71it/s]
epoch 123 | valid.f_iou 0.5899999737739563, valid.f_f-score 0.738: 56%|██████████████████ | 9/16 [00:09<00:03, 1.85it/s]
epoch 123 | valid.f_iou 0.5829899907112122, valid.f_f-score 0.73712: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.85it/s]
epoch 123 | valid.f_iou 0.5829899907112122, valid.f_f-score 0.73712: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.96it/s]
epoch 123 | valid.f_iou 0.5816299915313721, valid.f_f-score 0.73488: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.96it/s]
epoch 123 | valid.f_iou 0.5816299915313721, valid.f_f-score 0.73488: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.04it/s]
epoch 123 | valid.f_iou 0.6034700274467468, valid.f_f-score 0.75107: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.04it/s]
epoch 123 | valid.f_iou 0.6034700274467468, valid.f_f-score 0.75107: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.10it/s]
epoch 123 | valid.f_iou 0.6120700240135193, valid.f_f-score 0.7573: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.10it/s]
epoch 123 | valid.f_iou 0.6120700240135193, valid.f_f-score 0.7573: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.15it/s]
epoch 123 | valid.f_iou 0.6058099865913391, valid.f_f-score 0.75211: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.15it/s]
epoch 123 | valid.f_iou 0.6058099865913391, valid.f_f-score 0.75211: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.23it/s]
epoch 123 | valid.f_iou 0.6074600219726562, valid.f_f-score 0.7507: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.23it/s]
epoch 123 | valid.f_iou 0.6074600219726562, valid.f_f-score 0.7507: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.25it/s]
epoch 123 | valid.f_iou 0.6087599992752075, valid.f_f-score 0.74722: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.25it/s]
epoch 123 | valid.f_iou 0.6087599992752075, valid.f_f-score 0.74722: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.24it/s]
epoch 123 | valid.f_iou 0.6087599992752075, valid.f_f-score 0.74722: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 123 | valid.f_iou 0.7980300188064575, valid.f_f-score 0.79595: 0%| | 0/16 [00:05, ?it/s]
epoch 123 | valid.f_iou 0.7980300188064575, valid.f_f-score 0.79595: 6%|█▉ | 1/16 [00:05<01:22, 5.48s/it]
epoch 123 | valid.f_iou 0.8319299817085266, valid.f_f-score 0.86676: 6%|█▉ | 1/16 [00:05<01:22, 5.48s/it]
epoch 123 | valid.f_iou 0.8319299817085266, valid.f_f-score 0.86676: 12%|███▊ | 2/16 [00:05<00:35, 2.54s/it]
epoch 123 | valid.f_iou 0.7798100113868713, valid.f_f-score 0.85441: 12%|███▊ | 2/16 [00:06<00:35, 2.54s/it]
epoch 123 | valid.f_iou 0.7798100113868713, valid.f_f-score 0.85441: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 123 | valid.f_iou 0.7698000073432922, valid.f_f-score 0.82144: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 123 | valid.f_iou 0.7698000073432922, valid.f_f-score 0.82144: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 123 | valid.f_iou 0.73444002866745, valid.f_f-score 0.80924: 25%|████████ | 4/16 [00:07<00:13, 1.13s/it]
epoch 123 | valid.f_iou 0.73444002866745, valid.f_f-score 0.80924: 31%|██████████ | 5/16 [00:07<00:09, 1.14it/s]
epoch 123 | valid.f_iou 0.7160699963569641, valid.f_f-score 0.79416: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 123 | valid.f_iou 0.7160699963569641, valid.f_f-score 0.79416: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 123 | valid.f_iou 0.7333199977874756, valid.f_f-score 0.815: 38%|████████████ | 6/16 [00:08<00:07, 1.37it/s]
epoch 123 | valid.f_iou 0.7333199977874756, valid.f_f-score 0.815: 44%|██████████████ | 7/16 [00:08<00:05, 1.63it/s]
epoch 123 | valid.f_iou 0.7241299748420715, valid.f_f-score 0.81476: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 123 | valid.f_iou 0.7241299748420715, valid.f_f-score 0.81476: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 123 | valid.f_iou 0.7280799746513367, valid.f_f-score 0.81695: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 123 | valid.f_iou 0.7280799746513367, valid.f_f-score 0.81695: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.01it/s]
epoch 123 | valid.f_iou 0.7341499924659729, valid.f_f-score 0.82672: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.01it/s]
epoch 123 | valid.f_iou 0.7341499924659729, valid.f_f-score 0.82672: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 123 | valid.f_iou 0.7156100273132324, valid.f_f-score 0.80211: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 123 | valid.f_iou 0.7156100273132324, valid.f_f-score 0.80211: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.20it/s]
epoch 123 | valid.f_iou 0.7281699776649475, valid.f_f-score 0.81309: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.20it/s]
epoch 123 | valid.f_iou 0.7281699776649475, valid.f_f-score 0.81309: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.33it/s]
epoch 123 | valid.f_iou 0.7355899810791016, valid.f_f-score 0.81773: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.33it/s]
epoch 123 | valid.f_iou 0.7355899810791016, valid.f_f-score 0.81773: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 123 | valid.f_iou 0.7289299964904785, valid.f_f-score 0.81374: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.44it/s]
epoch 123 | valid.f_iou 0.7289299964904785, valid.f_f-score 0.81374: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.52it/s]
epoch 123 | valid.f_iou 0.7365999817848206, valid.f_f-score 0.82251: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 123 | valid.f_iou 0.7365999817848206, valid.f_f-score 0.82251: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 123 | valid.f_iou 0.7358599901199341, valid.f_f-score 0.82096: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 123 | valid.f_iou 0.7358599901199341, valid.f_f-score 0.82096: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 123 | valid.f_iou 0.7358599901199341, valid.f_f-score 0.82096: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 123 | valid.f_iou 0.750029981136322, valid.f_f-score 0.76588: 0%| | 0/16 [00:05, ?it/s]
epoch 123 | valid.f_iou 0.750029981136322, valid.f_f-score 0.76588: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 123 | valid.f_iou 0.8079299926757812, valid.f_f-score 0.85172: 6%|█▉ | 1/16 [00:05<01:22, 5.49s/it]
epoch 123 | valid.f_iou 0.8079299926757812, valid.f_f-score 0.85172: 12%|███▊ | 2/16 [00:05<00:35, 2.53s/it]
epoch 123 | valid.f_iou 0.7638099789619446, valid.f_f-score 0.84439: 12%|███▊ | 2/16 [00:06<00:35, 2.53s/it]
epoch 123 | valid.f_iou 0.7638099789619446, valid.f_f-score 0.84439: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 123 | valid.f_iou 0.7579799890518188, valid.f_f-score 0.81392: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 123 | valid.f_iou 0.7579799890518188, valid.f_f-score 0.81392: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 123 | valid.f_iou 0.7330800294876099, valid.f_f-score 0.80323: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 123 | valid.f_iou 0.7330800294876099, valid.f_f-score 0.80323: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 123 | valid.f_iou 0.71492999792099, valid.f_f-score 0.78915: 31%|██████████ | 5/16 [00:07<00:09, 1.11it/s]
epoch 123 | valid.f_iou 0.71492999792099, valid.f_f-score 0.78915: 38%|████████████ | 6/16 [00:07<00:07, 1.34it/s]
epoch 123 | valid.f_iou 0.7341300249099731, valid.f_f-score 0.8107: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 123 | valid.f_iou 0.7341300249099731, valid.f_f-score 0.8107: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 123 | valid.f_iou 0.724839985370636, valid.f_f-score 0.811: 44%|██████████████▍ | 7/16 [00:08<00:05, 1.54it/s]
epoch 123 | valid.f_iou 0.724839985370636, valid.f_f-score 0.811: 50%|████████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 123 | valid.f_iou 0.7307100296020508, valid.f_f-score 0.81361: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 123 | valid.f_iou 0.7307100296020508, valid.f_f-score 0.81361: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.98it/s]
epoch 123 | valid.f_iou 0.7344800233840942, valid.f_f-score 0.82043: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.98it/s]
epoch 123 | valid.f_iou 0.7344800233840942, valid.f_f-score 0.82043: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.16it/s]
epoch 123 | valid.f_iou 0.715910017490387, valid.f_f-score 0.7964: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.16it/s]
epoch 123 | valid.f_iou 0.715910017490387, valid.f_f-score 0.7964: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.30it/s]
epoch 123 | valid.f_iou 0.7284500002861023, valid.f_f-score 0.80785: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.30it/s]
epoch 123 | valid.f_iou 0.7284500002861023, valid.f_f-score 0.80785: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 123 | valid.f_iou 0.7358099818229675, valid.f_f-score 0.81384: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 123 | valid.f_iou 0.7358099818229675, valid.f_f-score 0.81384: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 123 | valid.f_iou 0.7291300296783447, valid.f_f-score 0.81012: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 123 | valid.f_iou 0.7291300296783447, valid.f_f-score 0.81012: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 123 | valid.f_iou 0.7367799878120422, valid.f_f-score 0.81914: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.56it/s]
epoch 123 | valid.f_iou 0.7367799878120422, valid.f_f-score 0.81914: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 123 | valid.f_iou 0.736519992351532, valid.f_f-score 0.8178: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.59it/s]
epoch 123 | valid.f_iou 0.736519992351532, valid.f_f-score 0.8178: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 123 | valid.f_iou 0.736519992351532, valid.f_f-score 0.8178: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 124 | loss 1.0181323289871216, f_iou 0.8923531770706177: 0%| | 0/74 [00:06, ?it/s]
epoch 124 | loss 1.0181323289871216, f_iou 0.8923531770706177: 1%|▍ | 1/74 [00:06<08:01, 6.59s/it]
epoch 124 | loss 1.5814980268478394, f_iou 0.8447935581207275: 1%|▍ | 1/74 [00:07<08:01, 6.59s/it]
epoch 124 | loss 1.5814980268478394, f_iou 0.8447935581207275: 3%|▉ | 2/74 [00:07<03:48, 3.18s/it]
epoch 124 | loss 1.6131153106689453, f_iou 0.796895444393158: 3%|█ | 2/74 [00:08<03:48, 3.18s/it]
epoch 124 | loss 1.6131153106689453, f_iou 0.796895444393158: 4%|█▌ | 3/74 [00:08<02:29, 2.10s/it]
epoch 124 | loss 1.4358859062194824, f_iou 0.6886224746704102: 4%|█▍ | 3/74 [00:09<02:29, 2.10s/it]
epoch 124 | loss 1.4358859062194824, f_iou 0.6886224746704102: 5%|█▉ | 4/74 [00:09<01:51, 1.60s/it]
epoch 124 | loss 0.5331277847290039, f_iou 0.5987563729286194: 5%|█▉ | 4/74 [00:09<01:51, 1.60s/it]
epoch 124 | loss 0.5331277847290039, f_iou 0.5987563729286194: 7%|██▍ | 5/74 [00:09<01:31, 1.33s/it]
epoch 124 | loss 0.6164820194244385, f_iou 0.6232600212097168: 7%|██▍ | 5/74 [00:10<01:31, 1.33s/it]
epoch 124 | loss 0.6164820194244385, f_iou 0.6232600212097168: 8%|██▉ | 6/74 [00:10<01:18, 1.15s/it]
epoch 124 | loss 0.7227846384048462, f_iou 0.6588209271430969: 8%|██▉ | 6/74 [00:11<01:18, 1.15s/it]
epoch 124 | loss 0.7227846384048462, f_iou 0.6588209271430969: 9%|███▍ | 7/74 [00:11<01:09, 1.04s/it]
epoch 124 | loss 0.4792674779891968, f_iou 0.6887558698654175: 9%|███▍ | 7/74 [00:12<01:09, 1.04s/it]
epoch 124 | loss 0.4792674779891968, f_iou 0.6887558698654175: 11%|███▉ | 8/74 [00:12<01:03, 1.05it/s]
epoch 124 | loss 1.2507705688476562, f_iou 0.6799136400222778: 11%|███▉ | 8/74 [00:13<01:03, 1.05it/s]
epoch 124 | loss 1.2507705688476562, f_iou 0.6799136400222778: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 124 | loss 0.725601315498352, f_iou 0.649277925491333: 12%|████▌ | 9/74 [00:13<00:58, 1.11it/s]
epoch 124 | loss 0.725601315498352, f_iou 0.649277925491333: 14%|█████ | 10/74 [00:13<00:58, 1.10it/s]
epoch 124 | loss 1.4608550071716309, f_iou 0.5966201424598694: 14%|████▋ | 10/74 [00:14<00:58, 1.10it/s]
epoch 124 | loss 1.4608550071716309, f_iou 0.5966201424598694: 15%|█████▏ | 11/74 [00:14<00:54, 1.15it/s]
epoch 124 | loss 1.3681614398956299, f_iou 0.6272386908531189: 15%|█████▏ | 11/74 [00:15<00:54, 1.15it/s]
epoch 124 | loss 1.3681614398956299, f_iou 0.6272386908531189: 16%|█████▋ | 12/74 [00:15<00:52, 1.19it/s]
epoch 124 | loss 0.6253365874290466, f_iou 0.6507531404495239: 16%|█████▋ | 12/74 [00:16<00:52, 1.19it/s]
epoch 124 | loss 0.6253365874290466, f_iou 0.6507531404495239: 18%|██████▏ | 13/74 [00:16<00:50, 1.22it/s]
epoch 124 | loss 0.7454822659492493, f_iou 0.6672059893608093: 18%|██████▏ | 13/74 [00:17<00:50, 1.22it/s]
epoch 124 | loss 0.7454822659492493, f_iou 0.6672059893608093: 19%|██████▌ | 14/74 [00:17<00:49, 1.22it/s]
epoch 124 | loss 0.5431450605392456, f_iou 0.6867130994796753: 19%|██████▌ | 14/74 [00:17<00:49, 1.22it/s]
epoch 124 | loss 0.5431450605392456, f_iou 0.6867130994796753: 20%|███████ | 15/74 [00:17<00:47, 1.24it/s]
epoch 124 | loss 0.4442196488380432, f_iou 0.7048513293266296: 20%|███████ | 15/74 [00:18<00:47, 1.24it/s]
epoch 124 | loss 0.4442196488380432, f_iou 0.7048513293266296: 22%|███████▌ | 16/74 [00:18<00:46, 1.25it/s]
epoch 124 | loss 0.3029910624027252, f_iou 0.7210143208503723: 22%|███████▌ | 16/74 [00:19<00:46, 1.25it/s]
epoch 124 | loss 0.3029910624027252, f_iou 0.7210143208503723: 23%|████████ | 17/74 [00:19<00:45, 1.25it/s]
epoch 124 | loss 0.7830913066864014, f_iou 0.7302106022834778: 23%|████████ | 17/74 [00:20<00:45, 1.25it/s]
epoch 124 | loss 0.7830913066864014, f_iou 0.7302106022834778: 24%|████████▌ | 18/74 [00:20<00:44, 1.26it/s]
epoch 124 | loss 0.7492862939834595, f_iou 0.7365925312042236: 24%|████████▌ | 18/74 [00:21<00:44, 1.26it/s]
epoch 124 | loss 0.7492862939834595, f_iou 0.7365925312042236: 26%|████████▉ | 19/74 [00:21<00:43, 1.26it/s]
epoch 124 | loss 1.0370880365371704, f_iou 0.7383937239646912: 26%|████████▉ | 19/74 [00:21<00:43, 1.26it/s]
epoch 124 | loss 1.0370880365371704, f_iou 0.7383937239646912: 27%|█████████▍ | 20/74 [00:21<00:42, 1.26it/s]
epoch 124 | loss 1.2534348964691162, f_iou 0.7363526821136475: 27%|█████████▍ | 20/74 [00:22<00:42, 1.26it/s]
epoch 124 | loss 1.2534348964691162, f_iou 0.7363526821136475: 28%|█████████▉ | 21/74 [00:22<00:42, 1.25it/s]
epoch 124 | loss 0.41573867201805115, f_iou 0.746933102607727: 28%|█████████▉ | 21/74 [00:23<00:42, 1.25it/s]
epoch 124 | loss 0.41573867201805115, f_iou 0.746933102607727: 30%|██████████▍ | 22/74 [00:23<00:41, 1.25it/s]
epoch 124 | loss 0.5021854043006897, f_iou 0.7562475204467773: 30%|██████████▍ | 22/74 [00:24<00:41, 1.25it/s]
epoch 124 | loss 0.5021854043006897, f_iou 0.7562475204467773: 31%|██████████▉ | 23/74 [00:24<00:40, 1.27it/s]
epoch 124 | loss 0.6944898962974548, f_iou 0.7648812532424927: 31%|██████████▉ | 23/74 [00:24<00:40, 1.27it/s]
epoch 124 | loss 0.6944898962974548, f_iou 0.7648812532424927: 32%|███████████▎ | 24/74 [00:24<00:38, 1.29it/s]
epoch 124 | loss 1.0939329862594604, f_iou 0.7592260837554932: 32%|███████████▎ | 24/74 [00:25<00:38, 1.29it/s]
epoch 124 | loss 1.0939329862594604, f_iou 0.7592260837554932: 34%|███████████▊ | 25/74 [00:25<00:37, 1.30it/s]
epoch 124 | loss 1.0489614009857178, f_iou 0.7409170269966125: 34%|███████████▊ | 25/74 [00:26<00:37, 1.30it/s]
epoch 124 | loss 1.0489614009857178, f_iou 0.7409170269966125: 35%|████████████▎ | 26/74 [00:26<00:36, 1.30it/s]
epoch 124 | loss 0.3536141812801361, f_iou 0.7481898665428162: 35%|████████████▎ | 26/74 [00:27<00:36, 1.30it/s]
epoch 124 | loss 0.3536141812801361, f_iou 0.7481898665428162: 36%|████████████▊ | 27/74 [00:27<00:36, 1.29it/s]
epoch 124 | loss 1.0815023183822632, f_iou 0.7509041428565979: 36%|████████████▊ | 27/74 [00:28<00:36, 1.29it/s]
epoch 124 | loss 1.0815023183822632, f_iou 0.7509041428565979: 38%|█████████████▏ | 28/74 [00:28<00:35, 1.28it/s]
epoch 124 | loss 1.2754175662994385, f_iou 0.7293918132781982: 38%|█████████████▏ | 28/74 [00:28<00:35, 1.28it/s]
epoch 124 | loss 1.2754175662994385, f_iou 0.7293918132781982: 39%|█████████████▋ | 29/74 [00:28<00:35, 1.27it/s]
epoch 124 | loss 0.6593729257583618, f_iou 0.7194023728370667: 39%|█████████████▋ | 29/74 [00:29<00:35, 1.27it/s]
epoch 124 | loss 0.6593729257583618, f_iou 0.7194023728370667: 41%|██████████████▏ | 30/74 [00:29<00:34, 1.28it/s]
epoch 124 | loss 1.3570845127105713, f_iou 0.7132428884506226: 41%|██████████████▏ | 30/74 [00:30<00:34, 1.28it/s]
epoch 124 | loss 1.3570845127105713, f_iou 0.7132428884506226: 42%|██████████████▋ | 31/74 [00:30<00:32, 1.31it/s]
epoch 124 | loss 1.8375928401947021, f_iou 0.7058742642402649: 42%|██████████████▋ | 31/74 [00:31<00:32, 1.31it/s]
epoch 124 | loss 1.8375928401947021, f_iou 0.7058742642402649: 43%|███████████████▏ | 32/74 [00:31<00:31, 1.33it/s]
epoch 124 | loss 0.7813625335693359, f_iou 0.7126976847648621: 43%|███████████████▏ | 32/74 [00:31<00:31, 1.33it/s]
epoch 124 | loss 0.7813625335693359, f_iou 0.7126976847648621: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.34it/s]
epoch 124 | loss 1.4073011875152588, f_iou 0.701303243637085: 45%|████████████████ | 33/74 [00:32<00:30, 1.34it/s]
epoch 124 | loss 1.4073011875152588, f_iou 0.701303243637085: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.35it/s]
epoch 124 | loss 0.9817028641700745, f_iou 0.7015020251274109: 46%|████████████████ | 34/74 [00:33<00:29, 1.35it/s]
epoch 124 | loss 0.9817028641700745, f_iou 0.7015020251274109: 47%|████████████████▌ | 35/74 [00:33<00:28, 1.36it/s]
epoch 124 | loss 0.8236146569252014, f_iou 0.7070791125297546: 47%|████████████████▌ | 35/74 [00:34<00:28, 1.36it/s]
epoch 124 | loss 0.8236146569252014, f_iou 0.7070791125297546: 49%|█████████████████ | 36/74 [00:34<00:28, 1.35it/s]
epoch 124 | loss 1.6415815353393555, f_iou 0.6932197213172913: 49%|█████████████████ | 36/74 [00:34<00:28, 1.35it/s]
epoch 124 | loss 1.6415815353393555, f_iou 0.6932197213172913: 50%|█████████████████▌ | 37/74 [00:34<00:27, 1.35it/s]
epoch 124 | loss 0.8973864316940308, f_iou 0.6819607019424438: 50%|█████████████████▌ | 37/74 [00:35<00:27, 1.35it/s]
epoch 124 | loss 0.8973864316940308, f_iou 0.6819607019424438: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.36it/s]
epoch 124 | loss 0.7081159949302673, f_iou 0.6872195601463318: 51%|█████████████████▉ | 38/74 [00:36<00:26, 1.36it/s]
epoch 124 | loss 0.7081159949302673, f_iou 0.6872195601463318: 53%|██████████████████▍ | 39/74 [00:36<00:25, 1.37it/s]
epoch 124 | loss 2.430030107498169, f_iou 0.6866244673728943: 53%|██████████████████▉ | 39/74 [00:36<00:25, 1.37it/s]
epoch 124 | loss 2.430030107498169, f_iou 0.6866244673728943: 54%|███████████████████▍ | 40/74 [00:36<00:24, 1.36it/s]
epoch 124 | loss 1.3935378789901733, f_iou 0.6899023652076721: 54%|██████████████████▉ | 40/74 [00:37<00:24, 1.36it/s]
epoch 124 | loss 1.3935378789901733, f_iou 0.6899023652076721: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.36it/s]
epoch 124 | loss 1.5727832317352295, f_iou 0.693414032459259: 55%|███████████████████▉ | 41/74 [00:38<00:24, 1.36it/s]
epoch 124 | loss 1.5727832317352295, f_iou 0.693414032459259: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.37it/s]
epoch 124 | loss 0.728192150592804, f_iou 0.6904233694076538: 57%|████████████████████▍ | 42/74 [00:39<00:23, 1.37it/s]
epoch 124 | loss 0.728192150592804, f_iou 0.6904233694076538: 58%|████████████████████▉ | 43/74 [00:39<00:22, 1.35it/s]
epoch 124 | loss 0.4944588243961334, f_iou 0.6924921870231628: 58%|████████████████████▎ | 43/74 [00:39<00:22, 1.35it/s]
epoch 124 | loss 0.4944588243961334, f_iou 0.6924921870231628: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.33it/s]
epoch 124 | loss 1.9542903900146484, f_iou 0.691198468208313: 59%|█████████████████████▍ | 44/74 [00:40<00:22, 1.33it/s]
epoch 124 | loss 1.9542903900146484, f_iou 0.691198468208313: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.30it/s]
epoch 124 | loss 0.9224785566329956, f_iou 0.6919305324554443: 61%|█████████████████████▎ | 45/74 [00:41<00:22, 1.30it/s]
epoch 124 | loss 0.9224785566329956, f_iou 0.6919305324554443: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.31it/s]
epoch 124 | loss 1.301419734954834, f_iou 0.6965300440788269: 62%|██████████████████████▍ | 46/74 [00:42<00:21, 1.31it/s]
epoch 124 | loss 1.301419734954834, f_iou 0.6965300440788269: 64%|██████████████████████▊ | 47/74 [00:42<00:20, 1.33it/s]
epoch 124 | loss 0.6987311244010925, f_iou 0.6981192827224731: 64%|██████████████████████▏ | 47/74 [00:43<00:20, 1.33it/s]
epoch 124 | loss 0.6987311244010925, f_iou 0.6981192827224731: 65%|██████████████████████▋ | 48/74 [00:43<00:19, 1.33it/s]
epoch 124 | loss 0.4820959270000458, f_iou 0.7030718922615051: 65%|██████████████████████▋ | 48/74 [00:43<00:19, 1.33it/s]
epoch 124 | loss 0.4820959270000458, f_iou 0.7030718922615051: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.31it/s]
epoch 124 | loss 1.8400644063949585, f_iou 0.6943984031677246: 66%|███████████████████████▏ | 49/74 [00:44<00:19, 1.31it/s]
epoch 124 | loss 1.8400644063949585, f_iou 0.6943984031677246: 68%|███████████████████████▋ | 50/74 [00:44<00:18, 1.31it/s]
epoch 124 | loss 0.7534416913986206, f_iou 0.6974601149559021: 68%|███████████████████████▋ | 50/74 [00:45<00:18, 1.31it/s]
epoch 124 | loss 0.7534416913986206, f_iou 0.6974601149559021: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.30it/s]
epoch 124 | loss 1.4067765474319458, f_iou 0.6997594237327576: 69%|████████████████████████ | 51/74 [00:46<00:17, 1.30it/s]
epoch 124 | loss 1.4067765474319458, f_iou 0.6997594237327576: 70%|████████████████████████▌ | 52/74 [00:46<00:17, 1.29it/s]
epoch 124 | loss 1.4620206356048584, f_iou 0.6889491081237793: 70%|████████████████████████▌ | 52/74 [00:46<00:17, 1.29it/s]
epoch 124 | loss 1.4620206356048584, f_iou 0.6889491081237793: 72%|█████████████████████████ | 53/74 [00:46<00:16, 1.30it/s]
epoch 124 | loss 0.35012051463127136, f_iou 0.6941433548927307: 72%|████████████████████████▎ | 53/74 [00:47<00:16, 1.30it/s]
epoch 124 | loss 0.35012051463127136, f_iou 0.6941433548927307: 73%|████████████████████████▊ | 54/74 [00:47<00:15, 1.32it/s]
epoch 124 | loss 0.8776779770851135, f_iou 0.6982292532920837: 73%|█████████████████████████▌ | 54/74 [00:48<00:15, 1.32it/s]
epoch 124 | loss 0.8776779770851135, f_iou 0.6982292532920837: 74%|██████████████████████████ | 55/74 [00:48<00:14, 1.34it/s]
epoch 124 | loss 0.6216458082199097, f_iou 0.7026432752609253: 74%|██████████████████████████ | 55/74 [00:49<00:14, 1.34it/s]
epoch 124 | loss 0.6216458082199097, f_iou 0.7026432752609253: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.35it/s]
epoch 124 | loss 0.9952625036239624, f_iou 0.7044305205345154: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.35it/s]
epoch 124 | loss 0.9952625036239624, f_iou 0.7044305205345154: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.35it/s]
epoch 124 | loss 1.2750873565673828, f_iou 0.6973426342010498: 77%|██████████████████████████▉ | 57/74 [00:50<00:12, 1.35it/s]
epoch 124 | loss 1.2750873565673828, f_iou 0.6973426342010498: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.35it/s]
epoch 124 | loss 0.4591577649116516, f_iou 0.701271653175354: 78%|████████████████████████████▏ | 58/74 [00:51<00:11, 1.35it/s]
epoch 124 | loss 0.4591577649116516, f_iou 0.701271653175354: 80%|████████████████████████████▋ | 59/74 [00:51<00:11, 1.36it/s]
epoch 124 | loss 0.7138336300849915, f_iou 0.6967989802360535: 80%|███████████████████████████▉ | 59/74 [00:52<00:11, 1.36it/s]
epoch 124 | loss 0.7138336300849915, f_iou 0.6967989802360535: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.36it/s]
epoch 124 | loss 0.8742078542709351, f_iou 0.6972995400428772: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.36it/s]
epoch 124 | loss 0.8742078542709351, f_iou 0.6972995400428772: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.34it/s]
epoch 124 | loss 1.3412353992462158, f_iou 0.6967036724090576: 82%|████████████████████████████▊ | 61/74 [00:53<00:09, 1.34it/s]
epoch 124 | loss 1.3412353992462158, f_iou 0.6967036724090576: 84%|█████████████████████████████▎ | 62/74 [00:53<00:08, 1.35it/s]
epoch 124 | loss 1.0516725778579712, f_iou 0.7000246644020081: 84%|█████████████████████████████▎ | 62/74 [00:54<00:08, 1.35it/s]
epoch 124 | loss 1.0516725778579712, f_iou 0.7000246644020081: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.36it/s]
epoch 124 | loss 0.45788198709487915, f_iou 0.7039276361465454: 85%|████████████████████████████▉ | 63/74 [00:54<00:08, 1.36it/s]
epoch 124 | loss 0.45788198709487915, f_iou 0.7039276361465454: 86%|█████████████████████████████▍ | 64/74 [00:54<00:07, 1.36it/s]
epoch 124 | loss 1.6504162549972534, f_iou 0.7077128291130066: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.36it/s]
epoch 124 | loss 1.6504162549972534, f_iou 0.7077128291130066: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.36it/s]
epoch 124 | loss 0.5823046565055847, f_iou 0.7099301815032959: 88%|██████████████████████████████▋ | 65/74 [00:56<00:06, 1.36it/s]
epoch 124 | loss 0.5823046565055847, f_iou 0.7099301815032959: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.33it/s]
epoch 124 | loss 1.8358986377716064, f_iou 0.7091900706291199: 89%|███████████████████████████████▏ | 66/74 [00:57<00:06, 1.33it/s]
epoch 124 | loss 1.8358986377716064, f_iou 0.7091900706291199: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.31it/s]
epoch 124 | loss 1.5840516090393066, f_iou 0.7097371220588684: 91%|███████████████████████████████▋ | 67/74 [00:58<00:05, 1.31it/s]
epoch 124 | loss 1.5840516090393066, f_iou 0.7097371220588684: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.30it/s]
epoch 124 | loss 1.227769136428833, f_iou 0.7095006704330444: 92%|█████████████████████████████████ | 68/74 [00:58<00:04, 1.30it/s]
epoch 124 | loss 1.227769136428833, f_iou 0.7095006704330444: 93%|█████████████████████████████████▌ | 69/74 [00:58<00:03, 1.30it/s]
epoch 124 | loss 0.4901008903980255, f_iou 0.7125711441040039: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.30it/s]
epoch 124 | loss 0.4901008903980255, f_iou 0.7125711441040039: 95%|█████████████████████████████████ | 70/74 [00:59<00:03, 1.32it/s]
epoch 124 | loss 1.1212153434753418, f_iou 0.7129139304161072: 95%|█████████████████████████████████ | 70/74 [01:00<00:03, 1.32it/s]
epoch 124 | loss 1.1212153434753418, f_iou 0.7129139304161072: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.32it/s]
epoch 124 | loss 1.4913281202316284, f_iou 0.7117372155189514: 96%|█████████████████████████████████▌ | 71/74 [01:01<00:02, 1.32it/s]
epoch 124 | loss 1.4913281202316284, f_iou 0.7117372155189514: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.34it/s]
epoch 124 | loss 0.8445513248443604, f_iou 0.7134693264961243: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.34it/s]
epoch 124 | loss 0.8445513248443604, f_iou 0.7134693264961243: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.35it/s]
epoch 124 | loss 0.8483067154884338, f_iou 0.7152572870254517: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.35it/s]
epoch 124 | loss 0.8483067154884338, f_iou 0.7152572870254517: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.36it/s]
epoch 124 | loss 0.8483067154884338, f_iou 0.7152572870254517: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.18it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 124 | valid.f_iou 0.7333400249481201, valid.f_f-score 0.84328: 0%| | 0/16 [00:05, ?it/s]
epoch 124 | valid.f_iou 0.7333400249481201, valid.f_f-score 0.84328: 6%|█▉ | 1/16 [00:05<01:27, 5.81s/it]
epoch 124 | valid.f_iou 0.7320799827575684, valid.f_f-score 0.88741: 6%|█▉ | 1/16 [00:06<01:27, 5.81s/it]
epoch 124 | valid.f_iou 0.7320799827575684, valid.f_f-score 0.88741: 12%|███▊ | 2/16 [00:06<00:37, 2.68s/it]
epoch 124 | valid.f_iou 0.5805400013923645, valid.f_f-score 0.78853: 12%|███▊ | 2/16 [00:06<00:37, 2.68s/it]
epoch 124 | valid.f_iou 0.5805400013923645, valid.f_f-score 0.78853: 19%|█████▋ | 3/16 [00:06<00:21, 1.66s/it]
epoch 124 | valid.f_iou 0.6097000241279602, valid.f_f-score 0.77861: 19%|█████▋ | 3/16 [00:07<00:21, 1.66s/it]
epoch 124 | valid.f_iou 0.6097000241279602, valid.f_f-score 0.77861: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 124 | valid.f_iou 0.6169499754905701, valid.f_f-score 0.77653: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 124 | valid.f_iou 0.6169499754905701, valid.f_f-score 0.77653: 31%|█████████▍ | 5/16 [00:07<00:10, 1.09it/s]
epoch 124 | valid.f_iou 0.5709199905395508, valid.f_f-score 0.7325: 31%|█████████▋ | 5/16 [00:08<00:10, 1.09it/s]
epoch 124 | valid.f_iou 0.5709199905395508, valid.f_f-score 0.7325: 38%|███████████▋ | 6/16 [00:08<00:07, 1.32it/s]
epoch 124 | valid.f_iou 0.5954300165176392, valid.f_f-score 0.75479: 38%|███████████▎ | 6/16 [00:08<00:07, 1.32it/s]
epoch 124 | valid.f_iou 0.5954300165176392, valid.f_f-score 0.75479: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.52it/s]
epoch 124 | valid.f_iou 0.5724300146102905, valid.f_f-score 0.74188: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.52it/s]
epoch 124 | valid.f_iou 0.5724300146102905, valid.f_f-score 0.74188: 50%|███████████████ | 8/16 [00:08<00:04, 1.68it/s]
epoch 124 | valid.f_iou 0.5904899835586548, valid.f_f-score 0.74998: 50%|███████████████ | 8/16 [00:09<00:04, 1.68it/s]
epoch 124 | valid.f_iou 0.5904899835586548, valid.f_f-score 0.74998: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.82it/s]
epoch 124 | valid.f_iou 0.5945299863815308, valid.f_f-score 0.75916: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.82it/s]
epoch 124 | valid.f_iou 0.5945299863815308, valid.f_f-score 0.75916: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.93it/s]
epoch 124 | valid.f_iou 0.5933200120925903, valid.f_f-score 0.75592: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.93it/s]
epoch 124 | valid.f_iou 0.5933200120925903, valid.f_f-score 0.75592: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.09it/s]
epoch 124 | valid.f_iou 0.612529993057251, valid.f_f-score 0.77002: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.09it/s]
epoch 124 | valid.f_iou 0.612529993057251, valid.f_f-score 0.77002: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.12it/s]
epoch 124 | valid.f_iou 0.6235299706459045, valid.f_f-score 0.77731: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.12it/s]
epoch 124 | valid.f_iou 0.6235299706459045, valid.f_f-score 0.77731: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.13it/s]
epoch 124 | valid.f_iou 0.6171600222587585, valid.f_f-score 0.77227: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.13it/s]
epoch 124 | valid.f_iou 0.6171600222587585, valid.f_f-score 0.77227: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.14it/s]
epoch 124 | valid.f_iou 0.6149100065231323, valid.f_f-score 0.76469: 88%|█████████████████████████▍ | 14/16 [00:12<00:00, 2.14it/s]
epoch 124 | valid.f_iou 0.6149100065231323, valid.f_f-score 0.76469: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.16it/s]
epoch 124 | valid.f_iou 0.6197599768638611, valid.f_f-score 0.76457: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.16it/s]
epoch 124 | valid.f_iou 0.6197599768638611, valid.f_f-score 0.76457: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.18it/s]
epoch 124 | valid.f_iou 0.6197599768638611, valid.f_f-score 0.76457: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.27it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 124 | valid.f_iou 0.8029199838638306, valid.f_f-score 0.81088: 0%| | 0/16 [00:05, ?it/s]
epoch 124 | valid.f_iou 0.8029199838638306, valid.f_f-score 0.81088: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 124 | valid.f_iou 0.8391900062561035, valid.f_f-score 0.87748: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 124 | valid.f_iou 0.8391900062561035, valid.f_f-score 0.87748: 12%|███▊ | 2/16 [00:05<00:33, 2.41s/it]
epoch 124 | valid.f_iou 0.7854300141334534, valid.f_f-score 0.86265: 12%|███▊ | 2/16 [00:06<00:33, 2.41s/it]
epoch 124 | valid.f_iou 0.7854300141334534, valid.f_f-score 0.86265: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 124 | valid.f_iou 0.7692099809646606, valid.f_f-score 0.82357: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 124 | valid.f_iou 0.7692099809646606, valid.f_f-score 0.82357: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 124 | valid.f_iou 0.7423999905586243, valid.f_f-score 0.81482: 25%|███████▌ | 4/16 [00:07<00:13, 1.10s/it]
epoch 124 | valid.f_iou 0.7423999905586243, valid.f_f-score 0.81482: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 124 | valid.f_iou 0.7211899757385254, valid.f_f-score 0.79825: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 124 | valid.f_iou 0.7211899757385254, valid.f_f-score 0.79825: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 124 | valid.f_iou 0.7372000217437744, valid.f_f-score 0.81857: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 124 | valid.f_iou 0.7372000217437744, valid.f_f-score 0.81857: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.57it/s]
epoch 124 | valid.f_iou 0.7264099717140198, valid.f_f-score 0.81816: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 124 | valid.f_iou 0.7264099717140198, valid.f_f-score 0.81816: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 124 | valid.f_iou 0.7302299737930298, valid.f_f-score 0.81997: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 124 | valid.f_iou 0.7302299737930298, valid.f_f-score 0.81997: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.86it/s]
epoch 124 | valid.f_iou 0.7349200248718262, valid.f_f-score 0.82925: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 124 | valid.f_iou 0.7349200248718262, valid.f_f-score 0.82925: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.01it/s]
epoch 124 | valid.f_iou 0.7175599932670593, valid.f_f-score 0.80523: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.01it/s]
epoch 124 | valid.f_iou 0.7175599932670593, valid.f_f-score 0.80523: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 124 | valid.f_iou 0.7298200130462646, valid.f_f-score 0.81585: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 124 | valid.f_iou 0.7298200130462646, valid.f_f-score 0.81585: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.32it/s]
epoch 124 | valid.f_iou 0.7379000186920166, valid.f_f-score 0.82107: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 124 | valid.f_iou 0.7379000186920166, valid.f_f-score 0.82107: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.42it/s]
epoch 124 | valid.f_iou 0.7288100123405457, valid.f_f-score 0.81503: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.42it/s]
epoch 124 | valid.f_iou 0.7288100123405457, valid.f_f-score 0.81503: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.51it/s]
epoch 124 | valid.f_iou 0.7326899766921997, valid.f_f-score 0.81797: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.51it/s]
epoch 124 | valid.f_iou 0.7326899766921997, valid.f_f-score 0.81797: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 124 | valid.f_iou 0.7300599813461304, valid.f_f-score 0.81595: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 124 | valid.f_iou 0.7300599813461304, valid.f_f-score 0.81595: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 124 | valid.f_iou 0.7300599813461304, valid.f_f-score 0.81595: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 124 | valid.f_iou 0.7549399733543396, valid.f_f-score 0.78082: 0%| | 0/16 [00:05, ?it/s]
epoch 124 | valid.f_iou 0.7549399733543396, valid.f_f-score 0.78082: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 124 | valid.f_iou 0.8151999711990356, valid.f_f-score 0.86244: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 124 | valid.f_iou 0.8151999711990356, valid.f_f-score 0.86244: 12%|███▊ | 2/16 [00:05<00:35, 2.55s/it]
epoch 124 | valid.f_iou 0.7694299817085266, valid.f_f-score 0.85263: 12%|███▊ | 2/16 [00:06<00:35, 2.55s/it]
epoch 124 | valid.f_iou 0.7694299817085266, valid.f_f-score 0.85263: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 124 | valid.f_iou 0.7573800086975098, valid.f_f-score 0.81605: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 124 | valid.f_iou 0.7573800086975098, valid.f_f-score 0.81605: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 124 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.80881: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 124 | valid.f_iou 0.7397500276565552, valid.f_f-score 0.80881: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 124 | valid.f_iou 0.7189800143241882, valid.f_f-score 0.79324: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 124 | valid.f_iou 0.7189800143241882, valid.f_f-score 0.79324: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 124 | valid.f_iou 0.7370799779891968, valid.f_f-score 0.81428: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 124 | valid.f_iou 0.7370799779891968, valid.f_f-score 0.81428: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 124 | valid.f_iou 0.7263000011444092, valid.f_f-score 0.8144: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.62it/s]
epoch 124 | valid.f_iou 0.7263000011444092, valid.f_f-score 0.8144: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 124 | valid.f_iou 0.7320299744606018, valid.f_f-score 0.81663: 50%|███████████████ | 8/16 [00:08<00:04, 1.83it/s]
epoch 124 | valid.f_iou 0.7320299744606018, valid.f_f-score 0.81663: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.03it/s]
epoch 124 | valid.f_iou 0.7347800135612488, valid.f_f-score 0.82308: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.03it/s]
epoch 124 | valid.f_iou 0.7347800135612488, valid.f_f-score 0.82308: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.20it/s]
epoch 124 | valid.f_iou 0.7174400091171265, valid.f_f-score 0.79962: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.20it/s]
epoch 124 | valid.f_iou 0.7174400091171265, valid.f_f-score 0.79962: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.33it/s]
epoch 124 | valid.f_iou 0.7297000288963318, valid.f_f-score 0.81071: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.33it/s]
epoch 124 | valid.f_iou 0.7297000288963318, valid.f_f-score 0.81071: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.43it/s]
epoch 124 | valid.f_iou 0.7377300262451172, valid.f_f-score 0.81719: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.43it/s]
epoch 124 | valid.f_iou 0.7377300262451172, valid.f_f-score 0.81719: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.51it/s]
epoch 124 | valid.f_iou 0.7286499738693237, valid.f_f-score 0.81143: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.51it/s]
epoch 124 | valid.f_iou 0.7286499738693237, valid.f_f-score 0.81143: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 124 | valid.f_iou 0.7325400114059448, valid.f_f-score 0.81461: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.56it/s]
epoch 124 | valid.f_iou 0.7325400114059448, valid.f_f-score 0.81461: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 124 | valid.f_iou 0.730400025844574, valid.f_f-score 0.81279: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 124 | valid.f_iou 0.730400025844574, valid.f_f-score 0.81279: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 124 | valid.f_iou 0.730400025844574, valid.f_f-score 0.81279: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 125 | loss 0.5888765454292297, f_iou 0.8675023317337036: 0%| | 0/74 [00:06, ?it/s]
epoch 125 | loss 0.5888765454292297, f_iou 0.8675023317337036: 1%|▍ | 1/74 [00:06<07:39, 6.29s/it]
epoch 125 | loss 0.7848760485649109, f_iou 0.4773831367492676: 1%|▍ | 1/74 [00:07<07:39, 6.29s/it]
epoch 125 | loss 0.7848760485649109, f_iou 0.4773831367492676: 3%|▉ | 2/74 [00:07<03:43, 3.11s/it]
epoch 125 | loss 0.4311540722846985, f_iou 0.6417308449745178: 3%|▉ | 2/74 [00:08<03:43, 3.11s/it]
epoch 125 | loss 0.4311540722846985, f_iou 0.6417308449745178: 4%|█▍ | 3/74 [00:08<02:28, 2.09s/it]
epoch 125 | loss 1.1056041717529297, f_iou 0.5733861327171326: 4%|█▍ | 3/74 [00:08<02:28, 2.09s/it]
epoch 125 | loss 1.1056041717529297, f_iou 0.5733861327171326: 5%|█▉ | 4/74 [00:08<01:51, 1.59s/it]
epoch 125 | loss 1.3319004774093628, f_iou 0.5877427458763123: 5%|█▉ | 4/74 [00:09<01:51, 1.59s/it]
epoch 125 | loss 1.3319004774093628, f_iou 0.5877427458763123: 7%|██▍ | 5/74 [00:09<01:29, 1.30s/it]
epoch 125 | loss 0.7029826045036316, f_iou 0.6020633578300476: 7%|██▍ | 5/74 [00:10<01:29, 1.30s/it]
epoch 125 | loss 0.7029826045036316, f_iou 0.6020633578300476: 8%|██▉ | 6/74 [00:10<01:15, 1.11s/it]
epoch 125 | loss 1.635555386543274, f_iou 0.6152352094650269: 8%|███ | 6/74 [00:11<01:15, 1.11s/it]
epoch 125 | loss 1.635555386543274, f_iou 0.6152352094650269: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 125 | loss 1.852819800376892, f_iou 0.5957204103469849: 9%|███▌ | 7/74 [00:11<01:06, 1.00it/s]
epoch 125 | loss 1.852819800376892, f_iou 0.5957204103469849: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 125 | loss 0.6549240350723267, f_iou 0.5295292735099792: 11%|███▉ | 8/74 [00:12<01:00, 1.09it/s]
epoch 125 | loss 0.6549240350723267, f_iou 0.5295292735099792: 12%|████▍ | 9/74 [00:12<00:55, 1.17it/s]
epoch 125 | loss 0.6230708956718445, f_iou 0.5647551417350769: 12%|████▍ | 9/74 [00:13<00:55, 1.17it/s]
epoch 125 | loss 0.6230708956718445, f_iou 0.5647551417350769: 14%|████▋ | 10/74 [00:13<00:52, 1.22it/s]
epoch 125 | loss 1.4112098217010498, f_iou 0.5864993333816528: 14%|████▋ | 10/74 [00:14<00:52, 1.22it/s]
epoch 125 | loss 1.4112098217010498, f_iou 0.5864993333816528: 15%|█████▏ | 11/74 [00:14<00:50, 1.25it/s]
epoch 125 | loss 0.47520628571510315, f_iou 0.5816935300827026: 15%|█████ | 11/74 [00:14<00:50, 1.25it/s]
epoch 125 | loss 0.47520628571510315, f_iou 0.5816935300827026: 16%|█████▌ | 12/74 [00:14<00:48, 1.28it/s]
epoch 125 | loss 0.658204972743988, f_iou 0.6100090146064758: 16%|█████▊ | 12/74 [00:15<00:48, 1.28it/s]
epoch 125 | loss 0.658204972743988, f_iou 0.6100090146064758: 18%|██████▎ | 13/74 [00:15<00:46, 1.31it/s]
epoch 125 | loss 0.6216820478439331, f_iou 0.609180212020874: 18%|██████▎ | 13/74 [00:16<00:46, 1.31it/s]
epoch 125 | loss 0.6216820478439331, f_iou 0.609180212020874: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 125 | loss 0.7682244777679443, f_iou 0.6274212598800659: 19%|██████▌ | 14/74 [00:17<00:45, 1.33it/s]
epoch 125 | loss 0.7682244777679443, f_iou 0.6274212598800659: 20%|███████ | 15/74 [00:17<00:43, 1.35it/s]
epoch 125 | loss 0.8091949820518494, f_iou 0.6431596279144287: 20%|███████ | 15/74 [00:17<00:43, 1.35it/s]
epoch 125 | loss 0.8091949820518494, f_iou 0.6431596279144287: 22%|███████▌ | 16/74 [00:17<00:42, 1.35it/s]
epoch 125 | loss 1.8214002847671509, f_iou 0.6329597234725952: 22%|███████▌ | 16/74 [00:18<00:42, 1.35it/s]
epoch 125 | loss 1.8214002847671509, f_iou 0.6329597234725952: 23%|████████ | 17/74 [00:18<00:42, 1.35it/s]
epoch 125 | loss 0.6087266206741333, f_iou 0.6504810452461243: 23%|████████ | 17/74 [00:19<00:42, 1.35it/s]
epoch 125 | loss 0.6087266206741333, f_iou 0.6504810452461243: 24%|████████▌ | 18/74 [00:19<00:41, 1.36it/s]
epoch 125 | loss 2.522117853164673, f_iou 0.6514758467674255: 24%|████████▊ | 18/74 [00:19<00:41, 1.36it/s]
epoch 125 | loss 2.522117853164673, f_iou 0.6514758467674255: 26%|█████████▏ | 19/74 [00:19<00:40, 1.37it/s]
epoch 125 | loss 0.2666168808937073, f_iou 0.6550039052963257: 26%|████████▉ | 19/74 [00:20<00:40, 1.37it/s]
epoch 125 | loss 0.2666168808937073, f_iou 0.6550039052963257: 27%|█████████▍ | 20/74 [00:20<00:39, 1.37it/s]
epoch 125 | loss 0.3489140570163727, f_iou 0.6686350107192993: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 125 | loss 0.3489140570163727, f_iou 0.6686350107192993: 28%|█████████▉ | 21/74 [00:21<00:38, 1.38it/s]
epoch 125 | loss 1.1271921396255493, f_iou 0.6713907122612: 28%|██████████▊ | 21/74 [00:22<00:38, 1.38it/s]
epoch 125 | loss 1.1271921396255493, f_iou 0.6713907122612: 30%|███████████▎ | 22/74 [00:22<00:37, 1.38it/s]
epoch 125 | loss 0.8669884204864502, f_iou 0.6816743612289429: 30%|██████████▍ | 22/74 [00:23<00:37, 1.38it/s]
epoch 125 | loss 0.8669884204864502, f_iou 0.6816743612289429: 31%|██████████▉ | 23/74 [00:23<00:39, 1.29it/s]
epoch 125 | loss 0.47420454025268555, f_iou 0.6892369985580444: 31%|██████████▌ | 23/74 [00:23<00:39, 1.29it/s]
epoch 125 | loss 0.47420454025268555, f_iou 0.6892369985580444: 32%|███████████ | 24/74 [00:23<00:38, 1.31it/s]
epoch 125 | loss 0.6312340497970581, f_iou 0.6721353530883789: 32%|███████████▎ | 24/74 [00:24<00:38, 1.31it/s]
epoch 125 | loss 0.6312340497970581, f_iou 0.6721353530883789: 34%|███████████▊ | 25/74 [00:24<00:36, 1.33it/s]
epoch 125 | loss 1.5129024982452393, f_iou 0.6649429202079773: 34%|███████████▊ | 25/74 [00:25<00:36, 1.33it/s]
epoch 125 | loss 1.5129024982452393, f_iou 0.6649429202079773: 35%|████████████▎ | 26/74 [00:25<00:35, 1.35it/s]
epoch 125 | loss 2.455686330795288, f_iou 0.6641326546669006: 35%|████████████▋ | 26/74 [00:25<00:35, 1.35it/s]
epoch 125 | loss 2.455686330795288, f_iou 0.6641326546669006: 36%|█████████████▏ | 27/74 [00:25<00:34, 1.35it/s]
epoch 125 | loss 0.8909741044044495, f_iou 0.6629894971847534: 36%|████████████▊ | 27/74 [00:26<00:34, 1.35it/s]
epoch 125 | loss 0.8909741044044495, f_iou 0.6629894971847534: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.36it/s]
epoch 125 | loss 1.0450960397720337, f_iou 0.6658807992935181: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.36it/s]
epoch 125 | loss 1.0450960397720337, f_iou 0.6658807992935181: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.37it/s]
epoch 125 | loss 1.4955705404281616, f_iou 0.6650339961051941: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.37it/s]
epoch 125 | loss 1.4955705404281616, f_iou 0.6650339961051941: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.34it/s]
epoch 125 | loss 1.1334598064422607, f_iou 0.6514769196510315: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.34it/s]
epoch 125 | loss 1.1334598064422607, f_iou 0.6514769196510315: 42%|██████████████▋ | 31/74 [00:28<00:32, 1.33it/s]
epoch 125 | loss 0.850243091583252, f_iou 0.6430163383483887: 42%|███████████████ | 31/74 [00:29<00:32, 1.33it/s]
epoch 125 | loss 0.850243091583252, f_iou 0.6430163383483887: 43%|███████████████▌ | 32/74 [00:29<00:31, 1.35it/s]
epoch 125 | loss 0.694961667060852, f_iou 0.6474201083183289: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.35it/s]
epoch 125 | loss 0.694961667060852, f_iou 0.6474201083183289: 45%|████████████████ | 33/74 [00:30<00:30, 1.36it/s]
epoch 125 | loss 0.6401835680007935, f_iou 0.6553624868392944: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.36it/s]
epoch 125 | loss 0.6401835680007935, f_iou 0.6553624868392944: 46%|████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 125 | loss 0.5273404121398926, f_iou 0.6632699966430664: 46%|████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 125 | loss 0.5273404121398926, f_iou 0.6632699966430664: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.37it/s]
epoch 125 | loss 1.323744297027588, f_iou 0.6544404625892639: 47%|█████████████████ | 35/74 [00:32<00:28, 1.37it/s]
epoch 125 | loss 1.323744297027588, f_iou 0.6544404625892639: 49%|█████████████████▌ | 36/74 [00:32<00:28, 1.35it/s]
epoch 125 | loss 1.4347352981567383, f_iou 0.638945460319519: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.35it/s]
epoch 125 | loss 1.4347352981567383, f_iou 0.638945460319519: 50%|██████████████████ | 37/74 [00:33<00:27, 1.33it/s]
epoch 125 | loss 1.470168948173523, f_iou 0.6425287127494812: 50%|██████████████████ | 37/74 [00:34<00:27, 1.33it/s]
epoch 125 | loss 1.470168948173523, f_iou 0.6425287127494812: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 125 | loss 1.760260820388794, f_iou 0.6390308141708374: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.32it/s]
epoch 125 | loss 1.760260820388794, f_iou 0.6390308141708374: 53%|██████████████████▉ | 39/74 [00:34<00:26, 1.30it/s]
epoch 125 | loss 0.9298347234725952, f_iou 0.644118070602417: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.30it/s]
epoch 125 | loss 0.9298347234725952, f_iou 0.644118070602417: 54%|███████████████████▍ | 40/74 [00:35<00:25, 1.31it/s]
epoch 125 | loss 0.9778327941894531, f_iou 0.645563542842865: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.31it/s]
epoch 125 | loss 0.9778327941894531, f_iou 0.645563542842865: 55%|███████████████████▉ | 41/74 [00:36<00:24, 1.33it/s]
epoch 125 | loss 0.818152904510498, f_iou 0.650179386138916: 55%|████████████████████▌ | 41/74 [00:37<00:24, 1.33it/s]
epoch 125 | loss 0.818152904510498, f_iou 0.650179386138916: 57%|█████████████████████ | 42/74 [00:37<00:23, 1.35it/s]
epoch 125 | loss 0.9573404788970947, f_iou 0.6542168259620667: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.35it/s]
epoch 125 | loss 0.9573404788970947, f_iou 0.6542168259620667: 58%|████████████████████▎ | 43/74 [00:37<00:22, 1.35it/s]
epoch 125 | loss 0.6877541542053223, f_iou 0.6590204834938049: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.35it/s]
epoch 125 | loss 0.6877541542053223, f_iou 0.6590204834938049: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.36it/s]
epoch 125 | loss 0.32958006858825684, f_iou 0.6658061742782593: 59%|████████████████████▏ | 44/74 [00:39<00:22, 1.36it/s]
epoch 125 | loss 0.32958006858825684, f_iou 0.6658061742782593: 61%|████████████████████▋ | 45/74 [00:39<00:21, 1.37it/s]
epoch 125 | loss 1.258910059928894, f_iou 0.6677564978599548: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.37it/s]
epoch 125 | loss 1.258910059928894, f_iou 0.6677564978599548: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.34it/s]
epoch 125 | loss 2.1649117469787598, f_iou 0.6671882271766663: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.34it/s]
epoch 125 | loss 2.1649117469787598, f_iou 0.6671882271766663: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.31it/s]
epoch 125 | loss 0.8084633350372314, f_iou 0.6704139709472656: 64%|██████████████████████▏ | 47/74 [00:41<00:20, 1.31it/s]
epoch 125 | loss 0.8084633350372314, f_iou 0.6704139709472656: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.31it/s]
epoch 125 | loss 0.30933383107185364, f_iou 0.6757329106330872: 65%|██████████████████████ | 48/74 [00:42<00:19, 1.31it/s]
epoch 125 | loss 0.30933383107185364, f_iou 0.6757329106330872: 66%|██████████████████████▌ | 49/74 [00:42<00:19, 1.31it/s]
epoch 125 | loss 0.953395426273346, f_iou 0.6795456409454346: 66%|███████████████████████▊ | 49/74 [00:43<00:19, 1.31it/s]
epoch 125 | loss 0.953395426273346, f_iou 0.6795456409454346: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.30it/s]
epoch 125 | loss 0.5916969776153564, f_iou 0.683310866355896: 68%|████████████████████████▎ | 50/74 [00:43<00:18, 1.30it/s]
epoch 125 | loss 0.5916969776153564, f_iou 0.683310866355896: 69%|████████████████████████▊ | 51/74 [00:43<00:17, 1.29it/s]
epoch 125 | loss 0.4872801899909973, f_iou 0.6847836971282959: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.29it/s]
epoch 125 | loss 0.4872801899909973, f_iou 0.6847836971282959: 70%|████████████████████████▌ | 52/74 [00:44<00:16, 1.32it/s]
epoch 125 | loss 0.6229286789894104, f_iou 0.6777423620223999: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.32it/s]
epoch 125 | loss 0.6229286789894104, f_iou 0.6777423620223999: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.33it/s]
epoch 125 | loss 1.8087549209594727, f_iou 0.6792988181114197: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.33it/s]
epoch 125 | loss 1.8087549209594727, f_iou 0.6792988181114197: 73%|█████████████████████████▌ | 54/74 [00:46<00:15, 1.32it/s]
epoch 125 | loss 0.36142152547836304, f_iou 0.684626042842865: 73%|█████████████████████████▌ | 54/74 [00:46<00:15, 1.32it/s]
epoch 125 | loss 0.36142152547836304, f_iou 0.684626042842865: 74%|██████████████████████████ | 55/74 [00:46<00:14, 1.30it/s]
epoch 125 | loss 1.147110939025879, f_iou 0.6884785294532776: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.30it/s]
epoch 125 | loss 1.147110939025879, f_iou 0.6884785294532776: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.30it/s]
epoch 125 | loss 0.636954665184021, f_iou 0.6925175189971924: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.30it/s]
epoch 125 | loss 0.636954665184021, f_iou 0.6925175189971924: 77%|███████████████████████████▋ | 57/74 [00:48<00:13, 1.29it/s]
epoch 125 | loss 0.5382862687110901, f_iou 0.6959237456321716: 77%|██████████████████████████▉ | 57/74 [00:49<00:13, 1.29it/s]
epoch 125 | loss 0.5382862687110901, f_iou 0.6959237456321716: 78%|███████████████████████████▍ | 58/74 [00:49<00:12, 1.31it/s]
epoch 125 | loss 1.1197762489318848, f_iou 0.6950878500938416: 78%|███████████████████████████▍ | 58/74 [00:50<00:12, 1.31it/s]
epoch 125 | loss 1.1197762489318848, f_iou 0.6950878500938416: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.32it/s]
epoch 125 | loss 0.8645674586296082, f_iou 0.6873438954353333: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.32it/s]
epoch 125 | loss 0.8645674586296082, f_iou 0.6873438954353333: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.34it/s]
epoch 125 | loss 1.236687183380127, f_iou 0.6841235756874084: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.34it/s]
epoch 125 | loss 1.236687183380127, f_iou 0.6841235756874084: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.34it/s]
epoch 125 | loss 0.0, f_iou 0.6863235831260681: 82%|█████████████████████████████████████████▏ | 61/74 [00:52<00:09, 1.34it/s]
epoch 125 | loss 0.0, f_iou 0.6863235831260681: 84%|█████████████████████████████████████████▉ | 62/74 [00:52<00:08, 1.34it/s]
epoch 125 | loss 2.023897171020508, f_iou 0.684119462966919: 84%|███████████████████████████████ | 62/74 [00:52<00:08, 1.34it/s]
epoch 125 | loss 2.023897171020508, f_iou 0.684119462966919: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.36it/s]
epoch 125 | loss 1.0616793632507324, f_iou 0.6865447163581848: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.36it/s]
epoch 125 | loss 1.0616793632507324, f_iou 0.6865447163581848: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.36it/s]
epoch 125 | loss 0.7644690275192261, f_iou 0.6882956027984619: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.36it/s]
epoch 125 | loss 0.7644690275192261, f_iou 0.6882956027984619: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.37it/s]
epoch 125 | loss 1.297656536102295, f_iou 0.6896588802337646: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.37it/s]
epoch 125 | loss 1.297656536102295, f_iou 0.6896588802337646: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.37it/s]
epoch 125 | loss 0.3897958993911743, f_iou 0.6922798752784729: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.37it/s]
epoch 125 | loss 0.3897958993911743, f_iou 0.6922798752784729: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.38it/s]
epoch 125 | loss 1.0475926399230957, f_iou 0.6856648921966553: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.38it/s]
epoch 125 | loss 1.0475926399230957, f_iou 0.6856648921966553: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.38it/s]
epoch 125 | loss 1.037409782409668, f_iou 0.6889454126358032: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.38it/s]
epoch 125 | loss 1.037409782409668, f_iou 0.6889454126358032: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.39it/s]
epoch 125 | loss 0.5401219725608826, f_iou 0.6925668716430664: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.39it/s]
epoch 125 | loss 0.5401219725608826, f_iou 0.6925668716430664: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.39it/s]
epoch 125 | loss 0.9612433314323425, f_iou 0.6945942044258118: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.39it/s]
epoch 125 | loss 0.9612433314323425, f_iou 0.6945942044258118: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.39it/s]
epoch 125 | loss 1.112997055053711, f_iou 0.6972717642784119: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.39it/s]
epoch 125 | loss 1.112997055053711, f_iou 0.6972717642784119: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.39it/s]
epoch 125 | loss 1.1986645460128784, f_iou 0.6988416910171509: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 125 | loss 1.1986645460128784, f_iou 0.6988416910171509: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 125 | loss 0.8173585534095764, f_iou 0.6989212036132812: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 125 | loss 0.8173585534095764, f_iou 0.6989212036132812: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.38it/s]
epoch 125 | loss 0.8173585534095764, f_iou 0.6989212036132812: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 125 | valid.f_iou 0.7359499931335449, valid.f_f-score 0.84902: 0%| | 0/16 [00:05, ?it/s]
epoch 125 | valid.f_iou 0.7359499931335449, valid.f_f-score 0.84902: 6%|█▉ | 1/16 [00:05<01:22, 5.47s/it]
epoch 125 | valid.f_iou 0.7176100015640259, valid.f_f-score 0.88158: 6%|█▉ | 1/16 [00:05<01:22, 5.47s/it]
epoch 125 | valid.f_iou 0.7176100015640259, valid.f_f-score 0.88158: 12%|███▊ | 2/16 [00:05<00:35, 2.54s/it]
epoch 125 | valid.f_iou 0.5729600191116333, valid.f_f-score 0.78206: 12%|███▊ | 2/16 [00:06<00:35, 2.54s/it]
epoch 125 | valid.f_iou 0.5729600191116333, valid.f_f-score 0.78206: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 125 | valid.f_iou 0.6109200119972229, valid.f_f-score 0.77419: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 125 | valid.f_iou 0.6109200119972229, valid.f_f-score 0.77419: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 125 | valid.f_iou 0.6234300136566162, valid.f_f-score 0.78159: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 125 | valid.f_iou 0.6234300136566162, valid.f_f-score 0.78159: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 125 | valid.f_iou 0.5780799984931946, valid.f_f-score 0.73539: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 125 | valid.f_iou 0.5780799984931946, valid.f_f-score 0.73539: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 125 | valid.f_iou 0.6038399934768677, valid.f_f-score 0.75527: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 125 | valid.f_iou 0.6038399934768677, valid.f_f-score 0.75527: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 125 | valid.f_iou 0.5736299753189087, valid.f_f-score 0.73726: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 125 | valid.f_iou 0.5736299753189087, valid.f_f-score 0.73726: 50%|███████████████ | 8/16 [00:08<00:04, 1.85it/s]
epoch 125 | valid.f_iou 0.5915700197219849, valid.f_f-score 0.74592: 50%|███████████████ | 8/16 [00:08<00:04, 1.85it/s]
epoch 125 | valid.f_iou 0.5915700197219849, valid.f_f-score 0.74592: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.07it/s]
epoch 125 | valid.f_iou 0.5966799855232239, valid.f_f-score 0.75539: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.07it/s]
epoch 125 | valid.f_iou 0.5966799855232239, valid.f_f-score 0.75539: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.24it/s]
epoch 125 | valid.f_iou 0.5964300036430359, valid.f_f-score 0.75313: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.24it/s]
epoch 125 | valid.f_iou 0.5964300036430359, valid.f_f-score 0.75313: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.36it/s]
epoch 125 | valid.f_iou 0.6174100041389465, valid.f_f-score 0.76789: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.36it/s]
epoch 125 | valid.f_iou 0.6174100041389465, valid.f_f-score 0.76789: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.47it/s]
epoch 125 | valid.f_iou 0.6277899742126465, valid.f_f-score 0.77359: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.47it/s]
epoch 125 | valid.f_iou 0.6277899742126465, valid.f_f-score 0.77359: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.53it/s]
epoch 125 | valid.f_iou 0.6208599805831909, valid.f_f-score 0.76849: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.53it/s]
epoch 125 | valid.f_iou 0.6208599805831909, valid.f_f-score 0.76849: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.60it/s]
epoch 125 | valid.f_iou 0.622189998626709, valid.f_f-score 0.76613: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.60it/s]
epoch 125 | valid.f_iou 0.622189998626709, valid.f_f-score 0.76613: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 125 | valid.f_iou 0.6269800066947937, valid.f_f-score 0.76722: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 125 | valid.f_iou 0.6269800066947937, valid.f_f-score 0.76722: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 125 | valid.f_iou 0.6269800066947937, valid.f_f-score 0.76722: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 125 | valid.f_iou 0.8086199760437012, valid.f_f-score 0.80726: 0%| | 0/16 [00:05, ?it/s]
epoch 125 | valid.f_iou 0.8086199760437012, valid.f_f-score 0.80726: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 125 | valid.f_iou 0.8389599919319153, valid.f_f-score 0.8729: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 125 | valid.f_iou 0.8389599919319153, valid.f_f-score 0.8729: 12%|███▉ | 2/16 [00:05<00:34, 2.49s/it]
epoch 125 | valid.f_iou 0.7817500233650208, valid.f_f-score 0.85747: 12%|███▊ | 2/16 [00:06<00:34, 2.49s/it]
epoch 125 | valid.f_iou 0.7817500233650208, valid.f_f-score 0.85747: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 125 | valid.f_iou 0.7696599960327148, valid.f_f-score 0.82339: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 125 | valid.f_iou 0.7696599960327148, valid.f_f-score 0.82339: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 125 | valid.f_iou 0.7454800009727478, valid.f_f-score 0.82375: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 125 | valid.f_iou 0.7454800009727478, valid.f_f-score 0.82375: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 125 | valid.f_iou 0.7212399840354919, valid.f_f-score 0.80021: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 125 | valid.f_iou 0.7212399840354919, valid.f_f-score 0.80021: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 125 | valid.f_iou 0.737089991569519, valid.f_f-score 0.82003: 38%|███████████▋ | 6/16 [00:08<00:07, 1.37it/s]
epoch 125 | valid.f_iou 0.737089991569519, valid.f_f-score 0.82003: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 125 | valid.f_iou 0.7239099740982056, valid.f_f-score 0.81718: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 125 | valid.f_iou 0.7239099740982056, valid.f_f-score 0.81718: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 125 | valid.f_iou 0.7277899980545044, valid.f_f-score 0.81895: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 125 | valid.f_iou 0.7277899980545044, valid.f_f-score 0.81895: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.97it/s]
epoch 125 | valid.f_iou 0.7354300022125244, valid.f_f-score 0.82892: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 125 | valid.f_iou 0.7354300022125244, valid.f_f-score 0.82892: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.15it/s]
epoch 125 | valid.f_iou 0.7235999703407288, valid.f_f-score 0.81181: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.15it/s]
epoch 125 | valid.f_iou 0.7235999703407288, valid.f_f-score 0.81181: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 125 | valid.f_iou 0.7350900173187256, valid.f_f-score 0.82182: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 125 | valid.f_iou 0.7350900173187256, valid.f_f-score 0.82182: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.40it/s]
epoch 125 | valid.f_iou 0.7458900213241577, valid.f_f-score 0.82957: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.40it/s]
epoch 125 | valid.f_iou 0.7458900213241577, valid.f_f-score 0.82957: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 125 | valid.f_iou 0.7388200163841248, valid.f_f-score 0.8246: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.48it/s]
epoch 125 | valid.f_iou 0.7388200163841248, valid.f_f-score 0.8246: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 125 | valid.f_iou 0.7465000152587891, valid.f_f-score 0.83278: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 125 | valid.f_iou 0.7465000152587891, valid.f_f-score 0.83278: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 125 | valid.f_iou 0.744949996471405, valid.f_f-score 0.82979: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 125 | valid.f_iou 0.744949996471405, valid.f_f-score 0.82979: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 125 | valid.f_iou 0.744949996471405, valid.f_f-score 0.82979: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 125 | valid.f_iou 0.7605900168418884, valid.f_f-score 0.77719: 0%| | 0/16 [00:05, ?it/s]
epoch 125 | valid.f_iou 0.7605900168418884, valid.f_f-score 0.77719: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 125 | valid.f_iou 0.8149499893188477, valid.f_f-score 0.85786: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 125 | valid.f_iou 0.8149499893188477, valid.f_f-score 0.85786: 12%|███▊ | 2/16 [00:05<00:35, 2.55s/it]
epoch 125 | valid.f_iou 0.7657399773597717, valid.f_f-score 0.84745: 12%|███▊ | 2/16 [00:06<00:35, 2.55s/it]
epoch 125 | valid.f_iou 0.7657399773597717, valid.f_f-score 0.84745: 19%|█████▋ | 3/16 [00:06<00:20, 1.59s/it]
epoch 125 | valid.f_iou 0.754830002784729, valid.f_f-score 0.80961: 19%|█████▊ | 3/16 [00:06<00:20, 1.59s/it]
epoch 125 | valid.f_iou 0.754830002784729, valid.f_f-score 0.80961: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 125 | valid.f_iou 0.7409999966621399, valid.f_f-score 0.81273: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 125 | valid.f_iou 0.7409999966621399, valid.f_f-score 0.81273: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 125 | valid.f_iou 0.7174999713897705, valid.f_f-score 0.79103: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 125 | valid.f_iou 0.7174999713897705, valid.f_f-score 0.79103: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 125 | valid.f_iou 0.7356399893760681, valid.f_f-score 0.81216: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 125 | valid.f_iou 0.7356399893760681, valid.f_f-score 0.81216: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 125 | valid.f_iou 0.7226399779319763, valid.f_f-score 0.81029: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 125 | valid.f_iou 0.7226399779319763, valid.f_f-score 0.81029: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 125 | valid.f_iou 0.7285799980163574, valid.f_f-score 0.81283: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 125 | valid.f_iou 0.7285799980163574, valid.f_f-score 0.81283: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 125 | valid.f_iou 0.7334200143814087, valid.f_f-score 0.81991: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 125 | valid.f_iou 0.7334200143814087, valid.f_f-score 0.81991: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 125 | valid.f_iou 0.721780002117157, valid.f_f-score 0.80361: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 125 | valid.f_iou 0.721780002117157, valid.f_f-score 0.80361: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.19it/s]
epoch 125 | valid.f_iou 0.7334200143814087, valid.f_f-score 0.81431: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.19it/s]
epoch 125 | valid.f_iou 0.7334200143814087, valid.f_f-score 0.81431: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 125 | valid.f_iou 0.7442799806594849, valid.f_f-score 0.82375: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 125 | valid.f_iou 0.7442799806594849, valid.f_f-score 0.82375: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.42it/s]
epoch 125 | valid.f_iou 0.737309992313385, valid.f_f-score 0.8192: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.42it/s]
epoch 125 | valid.f_iou 0.737309992313385, valid.f_f-score 0.8192: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.50it/s]
epoch 125 | valid.f_iou 0.7451000213623047, valid.f_f-score 0.82775: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.50it/s]
epoch 125 | valid.f_iou 0.7451000213623047, valid.f_f-score 0.82775: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 125 | valid.f_iou 0.7441099882125854, valid.f_f-score 0.82507: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 125 | valid.f_iou 0.7441099882125854, valid.f_f-score 0.82507: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 125 | valid.f_iou 0.7441099882125854, valid.f_f-score 0.82507: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 126 | loss 1.1533703804016113, f_iou 0.7499523758888245: 0%| | 0/74 [00:05, ?it/s]
epoch 126 | loss 1.1533703804016113, f_iou 0.7499523758888245: 1%|▍ | 1/74 [00:05<06:56, 5.71s/it]
epoch 126 | loss 1.0258383750915527, f_iou 0.7959718108177185: 1%|▍ | 1/74 [00:06<06:56, 5.71s/it]
epoch 126 | loss 1.0258383750915527, f_iou 0.7959718108177185: 3%|▉ | 2/74 [00:06<03:32, 2.95s/it]
epoch 126 | loss 0.5624656677246094, f_iou 0.848517656326294: 3%|█ | 2/74 [00:07<03:32, 2.95s/it]
epoch 126 | loss 0.5624656677246094, f_iou 0.848517656326294: 4%|█▌ | 3/74 [00:07<02:19, 1.97s/it]
epoch 126 | loss 1.0816750526428223, f_iou 0.8439664840698242: 4%|█▍ | 3/74 [00:08<02:19, 1.97s/it]
epoch 126 | loss 1.0816750526428223, f_iou 0.8439664840698242: 5%|█▉ | 4/74 [00:08<01:46, 1.52s/it]
epoch 126 | loss 0.5851861238479614, f_iou 0.8672859072685242: 5%|█▉ | 4/74 [00:09<01:46, 1.52s/it]
epoch 126 | loss 0.5851861238479614, f_iou 0.8672859072685242: 7%|██▍ | 5/74 [00:09<01:29, 1.30s/it]
epoch 126 | loss 0.9609952569007874, f_iou 0.7473398447036743: 7%|██▍ | 5/74 [00:10<01:29, 1.30s/it]
epoch 126 | loss 0.9609952569007874, f_iou 0.7473398447036743: 8%|██▉ | 6/74 [00:10<01:16, 1.12s/it]
epoch 126 | loss 0.6141542792320251, f_iou 0.7764139771461487: 8%|██▉ | 6/74 [00:10<01:16, 1.12s/it]
epoch 126 | loss 0.6141542792320251, f_iou 0.7764139771461487: 9%|███▍ | 7/74 [00:10<01:08, 1.02s/it]
epoch 126 | loss 0.0, f_iou 0.7783520817756653: 9%|████▊ | 7/74 [00:11<01:08, 1.02s/it]
epoch 126 | loss 0.0, f_iou 0.7783520817756653: 11%|█████▌ | 8/74 [00:11<01:02, 1.05it/s]
epoch 126 | loss 1.1290416717529297, f_iou 0.7677194476127625: 11%|███▉ | 8/74 [00:12<01:02, 1.05it/s]
epoch 126 | loss 1.1290416717529297, f_iou 0.7677194476127625: 12%|████▍ | 9/74 [00:12<00:58, 1.11it/s]
epoch 126 | loss 1.8178168535232544, f_iou 0.7487968802452087: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 126 | loss 1.8178168535232544, f_iou 0.7487968802452087: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 126 | loss 0.08848802745342255, f_iou 0.7672087550163269: 14%|████▌ | 10/74 [00:13<00:54, 1.17it/s]
epoch 126 | loss 0.08848802745342255, f_iou 0.7672087550163269: 15%|█████ | 11/74 [00:13<00:52, 1.20it/s]
epoch 126 | loss 0.7516359686851501, f_iou 0.7688099145889282: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 126 | loss 0.7516359686851501, f_iou 0.7688099145889282: 16%|█████▋ | 12/74 [00:14<00:50, 1.22it/s]
epoch 126 | loss 0.799067497253418, f_iou 0.7790294289588928: 16%|█████▊ | 12/74 [00:15<00:50, 1.22it/s]
epoch 126 | loss 0.799067497253418, f_iou 0.7790294289588928: 18%|██████▎ | 13/74 [00:15<00:48, 1.26it/s]
epoch 126 | loss 0.9408301711082458, f_iou 0.7813759446144104: 18%|██████▏ | 13/74 [00:16<00:48, 1.26it/s]
epoch 126 | loss 0.9408301711082458, f_iou 0.7813759446144104: 19%|██████▌ | 14/74 [00:16<00:46, 1.30it/s]
epoch 126 | loss 1.185427188873291, f_iou 0.7783531546592712: 19%|██████▊ | 14/74 [00:16<00:46, 1.30it/s]
epoch 126 | loss 1.185427188873291, f_iou 0.7783531546592712: 20%|███████▎ | 15/74 [00:16<00:44, 1.32it/s]
epoch 126 | loss 1.2984790802001953, f_iou 0.7765906453132629: 20%|███████ | 15/74 [00:17<00:44, 1.32it/s]
epoch 126 | loss 1.2984790802001953, f_iou 0.7765906453132629: 22%|███████▌ | 16/74 [00:17<00:43, 1.33it/s]
epoch 126 | loss 0.39537617564201355, f_iou 0.7551913857460022: 22%|███████▎ | 16/74 [00:18<00:43, 1.33it/s]
epoch 126 | loss 0.39537617564201355, f_iou 0.7551913857460022: 23%|███████▊ | 17/74 [00:18<00:43, 1.31it/s]
epoch 126 | loss 0.9646376967430115, f_iou 0.754547655582428: 23%|████████▎ | 17/74 [00:19<00:43, 1.31it/s]
epoch 126 | loss 0.9646376967430115, f_iou 0.754547655582428: 24%|████████▊ | 18/74 [00:19<00:43, 1.30it/s]
epoch 126 | loss 0.8297998905181885, f_iou 0.763978123664856: 24%|████████▊ | 18/74 [00:20<00:43, 1.30it/s]
epoch 126 | loss 0.8297998905181885, f_iou 0.763978123664856: 26%|█████████▏ | 19/74 [00:20<00:42, 1.30it/s]
epoch 126 | loss 1.4295053482055664, f_iou 0.7664801478385925: 26%|████████▉ | 19/74 [00:20<00:42, 1.30it/s]
epoch 126 | loss 1.4295053482055664, f_iou 0.7664801478385925: 27%|█████████▍ | 20/74 [00:20<00:42, 1.28it/s]
epoch 126 | loss 1.1335225105285645, f_iou 0.761519730091095: 27%|█████████▋ | 20/74 [00:21<00:42, 1.28it/s]
epoch 126 | loss 1.1335225105285645, f_iou 0.761519730091095: 28%|██████████▏ | 21/74 [00:21<00:41, 1.29it/s]
epoch 126 | loss 1.5649998188018799, f_iou 0.7324840426445007: 28%|█████████▉ | 21/74 [00:22<00:41, 1.29it/s]
epoch 126 | loss 1.5649998188018799, f_iou 0.7324840426445007: 30%|██████████▍ | 22/74 [00:22<00:40, 1.29it/s]
epoch 126 | loss 0.8043168187141418, f_iou 0.7394508719444275: 30%|██████████▍ | 22/74 [00:23<00:40, 1.29it/s]
epoch 126 | loss 0.8043168187141418, f_iou 0.7394508719444275: 31%|██████████▉ | 23/74 [00:23<00:39, 1.29it/s]
epoch 126 | loss 1.1130757331848145, f_iou 0.746833324432373: 31%|███████████▏ | 23/74 [00:23<00:39, 1.29it/s]
epoch 126 | loss 1.1130757331848145, f_iou 0.746833324432373: 32%|███████████▋ | 24/74 [00:23<00:38, 1.29it/s]
epoch 126 | loss 0.7763971090316772, f_iou 0.7484670877456665: 32%|███████████▎ | 24/74 [00:24<00:38, 1.29it/s]
epoch 126 | loss 0.7763971090316772, f_iou 0.7484670877456665: 34%|███████████▊ | 25/74 [00:24<00:37, 1.29it/s]
epoch 126 | loss 0.6365071535110474, f_iou 0.7567580342292786: 34%|███████████▊ | 25/74 [00:25<00:37, 1.29it/s]
epoch 126 | loss 0.6365071535110474, f_iou 0.7567580342292786: 35%|████████████▎ | 26/74 [00:25<00:37, 1.29it/s]
epoch 126 | loss 0.8376085758209229, f_iou 0.7638607025146484: 35%|████████████▎ | 26/74 [00:26<00:37, 1.29it/s]
epoch 126 | loss 0.8376085758209229, f_iou 0.7638607025146484: 36%|████████████▊ | 27/74 [00:26<00:35, 1.31it/s]
epoch 126 | loss 0.40579357743263245, f_iou 0.770682156085968: 36%|████████████▊ | 27/74 [00:26<00:35, 1.31it/s]
epoch 126 | loss 0.40579357743263245, f_iou 0.770682156085968: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.33it/s]
epoch 126 | loss 1.153038501739502, f_iou 0.7745466828346252: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.33it/s]
epoch 126 | loss 1.153038501739502, f_iou 0.7745466828346252: 39%|██████████████ | 29/74 [00:27<00:34, 1.32it/s]
epoch 126 | loss 0.9652607440948486, f_iou 0.7771362066268921: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.32it/s]
epoch 126 | loss 0.9652607440948486, f_iou 0.7771362066268921: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.31it/s]
epoch 126 | loss 1.058921217918396, f_iou 0.7812565565109253: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.31it/s]
epoch 126 | loss 1.058921217918396, f_iou 0.7812565565109253: 42%|███████████████ | 31/74 [00:29<00:33, 1.30it/s]
epoch 126 | loss 2.0819830894470215, f_iou 0.7756785750389099: 42%|██████████████▋ | 31/74 [00:30<00:33, 1.30it/s]
epoch 126 | loss 2.0819830894470215, f_iou 0.7756785750389099: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.30it/s]
epoch 126 | loss 0.3096146881580353, f_iou 0.7806861400604248: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.30it/s]
epoch 126 | loss 0.3096146881580353, f_iou 0.7806861400604248: 45%|███████████████▌ | 33/74 [00:30<00:32, 1.28it/s]
epoch 126 | loss 1.0090832710266113, f_iou 0.7799045443534851: 45%|███████████████▌ | 33/74 [00:31<00:32, 1.28it/s]
epoch 126 | loss 1.0090832710266113, f_iou 0.7799045443534851: 46%|████████████████ | 34/74 [00:31<00:31, 1.27it/s]
epoch 126 | loss 0.0, f_iou 0.7855594158172607: 46%|██████████████████████▉ | 34/74 [00:32<00:31, 1.27it/s]
epoch 126 | loss 0.0, f_iou 0.7855594158172607: 47%|███████████████████████▋ | 35/74 [00:32<00:30, 1.27it/s]
epoch 126 | loss 0.6149787902832031, f_iou 0.776369035243988: 47%|█████████████████ | 35/74 [00:33<00:30, 1.27it/s]
epoch 126 | loss 0.6149787902832031, f_iou 0.776369035243988: 49%|█████████████████▌ | 36/74 [00:33<00:29, 1.27it/s]
epoch 126 | loss 0.9535253643989563, f_iou 0.7794696688652039: 49%|█████████████████ | 36/74 [00:33<00:29, 1.27it/s]
epoch 126 | loss 0.9535253643989563, f_iou 0.7794696688652039: 50%|█████████████████▌ | 37/74 [00:33<00:28, 1.28it/s]
epoch 126 | loss 0.284240186214447, f_iou 0.7653921842575073: 50%|██████████████████ | 37/74 [00:34<00:28, 1.28it/s]
epoch 126 | loss 0.284240186214447, f_iou 0.7653921842575073: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.30it/s]
epoch 126 | loss 0.8242626786231995, f_iou 0.755285918712616: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.30it/s]
epoch 126 | loss 0.8242626786231995, f_iou 0.755285918712616: 53%|██████████████████▉ | 39/74 [00:35<00:27, 1.28it/s]
epoch 126 | loss 0.9072162508964539, f_iou 0.7573561072349548: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.28it/s]
epoch 126 | loss 0.9072162508964539, f_iou 0.7573561072349548: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.28it/s]
epoch 126 | loss 1.4732065200805664, f_iou 0.7599954605102539: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.28it/s]
epoch 126 | loss 1.4732065200805664, f_iou 0.7599954605102539: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.28it/s]
epoch 126 | loss 1.0176336765289307, f_iou 0.7586500644683838: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.28it/s]
epoch 126 | loss 1.0176336765289307, f_iou 0.7586500644683838: 57%|███████████████████▊ | 42/74 [00:37<00:25, 1.27it/s]
epoch 126 | loss 0.33424821496009827, f_iou 0.7636148929595947: 57%|███████████████████▎ | 42/74 [00:38<00:25, 1.27it/s]
epoch 126 | loss 0.33424821496009827, f_iou 0.7636148929595947: 58%|███████████████████▊ | 43/74 [00:38<00:24, 1.28it/s]
epoch 126 | loss 0.5095973014831543, f_iou 0.7668328285217285: 58%|████████████████████▎ | 43/74 [00:39<00:24, 1.28it/s]
epoch 126 | loss 0.5095973014831543, f_iou 0.7668328285217285: 59%|████████████████████▊ | 44/74 [00:39<00:23, 1.28it/s]
epoch 126 | loss 2.142242670059204, f_iou 0.7620213031768799: 59%|█████████████████████▍ | 44/74 [00:40<00:23, 1.28it/s]
epoch 126 | loss 2.142242670059204, f_iou 0.7620213031768799: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.28it/s]
epoch 126 | loss 0.5793615579605103, f_iou 0.7649707794189453: 61%|█████████████████████▎ | 45/74 [00:40<00:22, 1.28it/s]
epoch 126 | loss 0.5793615579605103, f_iou 0.7649707794189453: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.30it/s]
epoch 126 | loss 0.7825515270233154, f_iou 0.7545759081840515: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.30it/s]
epoch 126 | loss 0.7825515270233154, f_iou 0.7545759081840515: 64%|██████████████████████▏ | 47/74 [00:41<00:20, 1.32it/s]
epoch 126 | loss 2.3460533618927, f_iou 0.7428820133209229: 64%|████████████████████████▏ | 47/74 [00:42<00:20, 1.32it/s]
epoch 126 | loss 2.3460533618927, f_iou 0.7428820133209229: 65%|████████████████████████▋ | 48/74 [00:42<00:19, 1.33it/s]
epoch 126 | loss 0.622931718826294, f_iou 0.74704509973526: 65%|████████████████████████▋ | 48/74 [00:43<00:19, 1.33it/s]
epoch 126 | loss 0.622931718826294, f_iou 0.74704509973526: 66%|█████████████████████████▏ | 49/74 [00:43<00:18, 1.35it/s]
epoch 126 | loss 1.4018263816833496, f_iou 0.7393127083778381: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.35it/s]
epoch 126 | loss 1.4018263816833496, f_iou 0.7393127083778381: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.35it/s]
epoch 126 | loss 0.49943777918815613, f_iou 0.7419130802154541: 68%|██████████████████████▉ | 50/74 [00:44<00:17, 1.35it/s]
epoch 126 | loss 0.49943777918815613, f_iou 0.7419130802154541: 69%|███████████████████████▍ | 51/74 [00:44<00:17, 1.35it/s]
epoch 126 | loss 0.4177117347717285, f_iou 0.7426369190216064: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.35it/s]
epoch 126 | loss 0.4177117347717285, f_iou 0.7426369190216064: 70%|████████████████████████▌ | 52/74 [00:45<00:17, 1.23it/s]
epoch 126 | loss 1.8889812231063843, f_iou 0.7390310168266296: 70%|████████████████████████▌ | 52/74 [00:46<00:17, 1.23it/s]
epoch 126 | loss 1.8889812231063843, f_iou 0.7390310168266296: 72%|█████████████████████████ | 53/74 [00:46<00:16, 1.25it/s]
epoch 126 | loss 0.7503150105476379, f_iou 0.7423272132873535: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.25it/s]
epoch 126 | loss 0.7503150105476379, f_iou 0.7423272132873535: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.27it/s]
epoch 126 | loss 0.5776829719543457, f_iou 0.745332658290863: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.27it/s]
epoch 126 | loss 0.5776829719543457, f_iou 0.745332658290863: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.30it/s]
epoch 126 | loss 0.37519246339797974, f_iou 0.7486103773117065: 74%|█████████████████████████▎ | 55/74 [00:48<00:14, 1.30it/s]
epoch 126 | loss 0.37519246339797974, f_iou 0.7486103773117065: 76%|█████████████████████████▋ | 56/74 [00:48<00:13, 1.31it/s]
epoch 126 | loss 0.891211986541748, f_iou 0.749997079372406: 76%|████████████████████████████ | 56/74 [00:49<00:13, 1.31it/s]
epoch 126 | loss 0.891211986541748, f_iou 0.749997079372406: 77%|████████████████████████████▌ | 57/74 [00:49<00:13, 1.30it/s]
epoch 126 | loss 0.8134229183197021, f_iou 0.752608060836792: 77%|███████████████████████████▋ | 57/74 [00:50<00:13, 1.30it/s]
epoch 126 | loss 0.8134229183197021, f_iou 0.752608060836792: 78%|████████████████████████████▏ | 58/74 [00:50<00:12, 1.30it/s]
epoch 126 | loss 0.0, f_iou 0.7567557096481323: 78%|███████████████████████████████████████▏ | 58/74 [00:50<00:12, 1.30it/s]
epoch 126 | loss 0.0, f_iou 0.7567557096481323: 80%|███████████████████████████████████████▊ | 59/74 [00:50<00:11, 1.29it/s]
epoch 126 | loss 0.7131195664405823, f_iou 0.7583997249603271: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.29it/s]
epoch 126 | loss 0.7131195664405823, f_iou 0.7583997249603271: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.31it/s]
epoch 126 | loss 1.4190306663513184, f_iou 0.7565727829933167: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.31it/s]
epoch 126 | loss 1.4190306663513184, f_iou 0.7565727829933167: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.32it/s]
epoch 126 | loss 1.1163607835769653, f_iou 0.7575075626373291: 82%|████████████████████████████▊ | 61/74 [00:53<00:09, 1.32it/s]
epoch 126 | loss 1.1163607835769653, f_iou 0.7575075626373291: 84%|█████████████████████████████▎ | 62/74 [00:53<00:09, 1.31it/s]
epoch 126 | loss 1.5539079904556274, f_iou 0.7569390535354614: 84%|█████████████████████████████▎ | 62/74 [00:54<00:09, 1.31it/s]
epoch 126 | loss 1.5539079904556274, f_iou 0.7569390535354614: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.29it/s]
epoch 126 | loss 0.4035893380641937, f_iou 0.7451158165931702: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.29it/s]
epoch 126 | loss 0.4035893380641937, f_iou 0.7451158165931702: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.29it/s]
epoch 126 | loss 0.9803565740585327, f_iou 0.7473955154418945: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.29it/s]
epoch 126 | loss 0.9803565740585327, f_iou 0.7473955154418945: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.29it/s]
epoch 126 | loss 0.6296214461326599, f_iou 0.748978853225708: 88%|███████████████████████████████▌ | 65/74 [00:56<00:06, 1.29it/s]
epoch 126 | loss 0.6296214461326599, f_iou 0.748978853225708: 89%|████████████████████████████████ | 66/74 [00:56<00:06, 1.30it/s]
epoch 126 | loss 0.8872953057289124, f_iou 0.7506667375564575: 89%|███████████████████████████████▏ | 66/74 [00:57<00:06, 1.30it/s]
epoch 126 | loss 0.8872953057289124, f_iou 0.7506667375564575: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.32it/s]
epoch 126 | loss 0.42168083786964417, f_iou 0.7538288235664368: 91%|██████████████████████████████▊ | 67/74 [00:57<00:05, 1.32it/s]
epoch 126 | loss 0.42168083786964417, f_iou 0.7538288235664368: 92%|███████████████████████████████▏ | 68/74 [00:57<00:04, 1.34it/s]
epoch 126 | loss 1.0080232620239258, f_iou 0.7560998797416687: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.34it/s]
epoch 126 | loss 1.0080232620239258, f_iou 0.7560998797416687: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.35it/s]
epoch 126 | loss 0.3090543746948242, f_iou 0.7591314911842346: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.35it/s]
epoch 126 | loss 0.3090543746948242, f_iou 0.7591314911842346: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.36it/s]
epoch 126 | loss 0.39617034792900085, f_iou 0.7594404220581055: 95%|████████████████████████████████▏ | 70/74 [00:59<00:02, 1.36it/s]
epoch 126 | loss 0.39617034792900085, f_iou 0.7594404220581055: 96%|████████████████████████████████▌ | 71/74 [00:59<00:02, 1.36it/s]
epoch 126 | loss 0.3616124987602234, f_iou 0.7550618052482605: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.36it/s]
epoch 126 | loss 0.3616124987602234, f_iou 0.7550618052482605: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.37it/s]
epoch 126 | loss 0.9003987312316895, f_iou 0.7560926079750061: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.37it/s]
epoch 126 | loss 0.9003987312316895, f_iou 0.7560926079750061: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.38it/s]
epoch 126 | loss 1.671928882598877, f_iou 0.754169225692749: 99%|████████████████████████████████████▌| 73/74 [01:02<00:00, 1.38it/s]
epoch 126 | loss 1.671928882598877, f_iou 0.754169225692749: 100%|█████████████████████████████████████| 74/74 [01:02<00:00, 1.38it/s]
epoch 126 | loss 1.671928882598877, f_iou 0.754169225692749: 100%|█████████████████████████████████████| 74/74 [01:02<00:00, 1.19it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 126 | valid.f_iou 0.7331500053405762, valid.f_f-score 0.82713: 0%| | 0/16 [00:05, ?it/s]
epoch 126 | valid.f_iou 0.7331500053405762, valid.f_f-score 0.82713: 6%|█▉ | 1/16 [00:05<01:27, 5.84s/it]
epoch 126 | valid.f_iou 0.6760500073432922, valid.f_f-score 0.83686: 6%|█▉ | 1/16 [00:06<01:27, 5.84s/it]
epoch 126 | valid.f_iou 0.6760500073432922, valid.f_f-score 0.83686: 12%|███▊ | 2/16 [00:06<00:37, 2.69s/it]
epoch 126 | valid.f_iou 0.5503699779510498, valid.f_f-score 0.75111: 12%|███▊ | 2/16 [00:06<00:37, 2.69s/it]
epoch 126 | valid.f_iou 0.5503699779510498, valid.f_f-score 0.75111: 19%|█████▋ | 3/16 [00:06<00:21, 1.67s/it]
epoch 126 | valid.f_iou 0.5797899961471558, valid.f_f-score 0.74062: 19%|█████▋ | 3/16 [00:07<00:21, 1.67s/it]
epoch 126 | valid.f_iou 0.5797899961471558, valid.f_f-score 0.74062: 25%|███████▌ | 4/16 [00:07<00:13, 1.17s/it]
epoch 126 | valid.f_iou 0.6017400026321411, valid.f_f-score 0.75824: 25%|███████▌ | 4/16 [00:07<00:13, 1.17s/it]
epoch 126 | valid.f_iou 0.6017400026321411, valid.f_f-score 0.75824: 31%|█████████▍ | 5/16 [00:07<00:09, 1.10it/s]
epoch 126 | valid.f_iou 0.56045001745224, valid.f_f-score 0.71567: 31%|██████████ | 5/16 [00:08<00:09, 1.10it/s]
epoch 126 | valid.f_iou 0.56045001745224, valid.f_f-score 0.71567: 38%|████████████ | 6/16 [00:08<00:07, 1.33it/s]
epoch 126 | valid.f_iou 0.5888199806213379, valid.f_f-score 0.74057: 38%|███████████▎ | 6/16 [00:08<00:07, 1.33it/s]
epoch 126 | valid.f_iou 0.5888199806213379, valid.f_f-score 0.74057: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 126 | valid.f_iou 0.5563499927520752, valid.f_f-score 0.7217: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 126 | valid.f_iou 0.5563499927520752, valid.f_f-score 0.7217: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 126 | valid.f_iou 0.5761500000953674, valid.f_f-score 0.73161: 50%|███████████████ | 8/16 [00:09<00:04, 1.83it/s]
epoch 126 | valid.f_iou 0.5761500000953674, valid.f_f-score 0.73161: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.04it/s]
epoch 126 | valid.f_iou 0.5733299851417542, valid.f_f-score 0.73323: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.04it/s]
epoch 126 | valid.f_iou 0.5733299851417542, valid.f_f-score 0.73323: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.22it/s]
epoch 126 | valid.f_iou 0.5745099782943726, valid.f_f-score 0.73446: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.22it/s]
epoch 126 | valid.f_iou 0.5745099782943726, valid.f_f-score 0.73446: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.36it/s]
epoch 126 | valid.f_iou 0.5969600081443787, valid.f_f-score 0.7508: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.36it/s]
epoch 126 | valid.f_iou 0.5969600081443787, valid.f_f-score 0.7508: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.45it/s]
epoch 126 | valid.f_iou 0.5997200012207031, valid.f_f-score 0.7535: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.45it/s]
epoch 126 | valid.f_iou 0.5997200012207031, valid.f_f-score 0.7535: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.51it/s]
epoch 126 | valid.f_iou 0.5935999751091003, valid.f_f-score 0.74816: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.51it/s]
epoch 126 | valid.f_iou 0.5935999751091003, valid.f_f-score 0.74816: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.58it/s]
epoch 126 | valid.f_iou 0.5992100238800049, valid.f_f-score 0.74862: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.58it/s]
epoch 126 | valid.f_iou 0.5992100238800049, valid.f_f-score 0.74862: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 126 | valid.f_iou 0.5998799800872803, valid.f_f-score 0.74626: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 126 | valid.f_iou 0.5998799800872803, valid.f_f-score 0.74626: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 126 | valid.f_iou 0.5998799800872803, valid.f_f-score 0.74626: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 126 | valid.f_iou 0.7997599840164185, valid.f_f-score 0.78459: 0%| | 0/16 [00:04, ?it/s]
epoch 126 | valid.f_iou 0.7997599840164185, valid.f_f-score 0.78459: 6%|█▉ | 1/16 [00:04<01:13, 4.91s/it]
epoch 126 | valid.f_iou 0.836080014705658, valid.f_f-score 0.86122: 6%|█▉ | 1/16 [00:05<01:13, 4.91s/it]
epoch 126 | valid.f_iou 0.836080014705658, valid.f_f-score 0.86122: 12%|███▉ | 2/16 [00:05<00:33, 2.42s/it]
epoch 126 | valid.f_iou 0.7822200059890747, valid.f_f-score 0.85121: 12%|███▊ | 2/16 [00:06<00:33, 2.42s/it]
epoch 126 | valid.f_iou 0.7822200059890747, valid.f_f-score 0.85121: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 126 | valid.f_iou 0.7728000283241272, valid.f_f-score 0.82325: 19%|█████▋ | 3/16 [00:06<00:19, 1.53s/it]
epoch 126 | valid.f_iou 0.7728000283241272, valid.f_f-score 0.82325: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 126 | valid.f_iou 0.7463899850845337, valid.f_f-score 0.82358: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 126 | valid.f_iou 0.7463899850845337, valid.f_f-score 0.82358: 31%|█████████▍ | 5/16 [00:06<00:09, 1.15it/s]
epoch 126 | valid.f_iou 0.7256199717521667, valid.f_f-score 0.80665: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 126 | valid.f_iou 0.7256199717521667, valid.f_f-score 0.80665: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 126 | valid.f_iou 0.7415199875831604, valid.f_f-score 0.82575: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 126 | valid.f_iou 0.7415199875831604, valid.f_f-score 0.82575: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.58it/s]
epoch 126 | valid.f_iou 0.7266899943351746, valid.f_f-score 0.8222: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 126 | valid.f_iou 0.7266899943351746, valid.f_f-score 0.8222: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.72it/s]
epoch 126 | valid.f_iou 0.7295500040054321, valid.f_f-score 0.82018: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 126 | valid.f_iou 0.7295500040054321, valid.f_f-score 0.82018: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.87it/s]
epoch 126 | valid.f_iou 0.7404000163078308, valid.f_f-score 0.8307: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.87it/s]
epoch 126 | valid.f_iou 0.7404000163078308, valid.f_f-score 0.8307: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 126 | valid.f_iou 0.72816002368927, valid.f_f-score 0.81346: 62%|███████████████████▍ | 10/16 [00:09<00:02, 2.07it/s]
epoch 126 | valid.f_iou 0.72816002368927, valid.f_f-score 0.81346: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.14it/s]
epoch 126 | valid.f_iou 0.7384999990463257, valid.f_f-score 0.82323: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.14it/s]
epoch 126 | valid.f_iou 0.7384999990463257, valid.f_f-score 0.82323: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.22it/s]
epoch 126 | valid.f_iou 0.7476800084114075, valid.f_f-score 0.8302: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.22it/s]
epoch 126 | valid.f_iou 0.7476800084114075, valid.f_f-score 0.8302: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.36it/s]
epoch 126 | valid.f_iou 0.7375100255012512, valid.f_f-score 0.82127: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.36it/s]
epoch 126 | valid.f_iou 0.7375100255012512, valid.f_f-score 0.82127: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.46it/s]
epoch 126 | valid.f_iou 0.746749997138977, valid.f_f-score 0.82998: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.46it/s]
epoch 126 | valid.f_iou 0.746749997138977, valid.f_f-score 0.82998: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 126 | valid.f_iou 0.743340015411377, valid.f_f-score 0.8268: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.55it/s]
epoch 126 | valid.f_iou 0.743340015411377, valid.f_f-score 0.8268: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 126 | valid.f_iou 0.743340015411377, valid.f_f-score 0.8268: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 126 | valid.f_iou 0.7518100142478943, valid.f_f-score 0.75455: 0%| | 0/16 [00:05, ?it/s]
epoch 126 | valid.f_iou 0.7518100142478943, valid.f_f-score 0.75455: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 126 | valid.f_iou 0.8120999932289124, valid.f_f-score 0.8462: 6%|█▉ | 1/16 [00:05<01:22, 5.50s/it]
epoch 126 | valid.f_iou 0.8120999932289124, valid.f_f-score 0.8462: 12%|███▉ | 2/16 [00:05<00:35, 2.53s/it]
epoch 126 | valid.f_iou 0.7662400007247925, valid.f_f-score 0.84119: 12%|███▊ | 2/16 [00:06<00:35, 2.53s/it]
epoch 126 | valid.f_iou 0.7662400007247925, valid.f_f-score 0.84119: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 126 | valid.f_iou 0.7555199861526489, valid.f_f-score 0.80542: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 126 | valid.f_iou 0.7555199861526489, valid.f_f-score 0.80542: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 126 | valid.f_iou 0.740559995174408, valid.f_f-score 0.80932: 25%|███████▊ | 4/16 [00:07<00:13, 1.14s/it]
epoch 126 | valid.f_iou 0.740559995174408, valid.f_f-score 0.80932: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 126 | valid.f_iou 0.7207599878311157, valid.f_f-score 0.79476: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 126 | valid.f_iou 0.7207599878311157, valid.f_f-score 0.79476: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 126 | valid.f_iou 0.739139974117279, valid.f_f-score 0.81556: 38%|███████████▋ | 6/16 [00:08<00:07, 1.35it/s]
epoch 126 | valid.f_iou 0.739139974117279, valid.f_f-score 0.81556: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.54it/s]
epoch 126 | valid.f_iou 0.7246099710464478, valid.f_f-score 0.81328: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 126 | valid.f_iou 0.7246099710464478, valid.f_f-score 0.81328: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 126 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.81226: 50%|███████████████ | 8/16 [00:09<00:04, 1.77it/s]
epoch 126 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.81226: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 126 | valid.f_iou 0.7367100119590759, valid.f_f-score 0.81996: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 126 | valid.f_iou 0.7367100119590759, valid.f_f-score 0.81996: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 126 | valid.f_iou 0.7247999906539917, valid.f_f-score 0.80369: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 126 | valid.f_iou 0.7247999906539917, valid.f_f-score 0.80369: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.10it/s]
epoch 126 | valid.f_iou 0.7354199886322021, valid.f_f-score 0.81428: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.10it/s]
epoch 126 | valid.f_iou 0.7354199886322021, valid.f_f-score 0.81428: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.16it/s]
epoch 126 | valid.f_iou 0.7447599768638611, valid.f_f-score 0.82249: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.16it/s]
epoch 126 | valid.f_iou 0.7447599768638611, valid.f_f-score 0.82249: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.31it/s]
epoch 126 | valid.f_iou 0.734790027141571, valid.f_f-score 0.81412: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.31it/s]
epoch 126 | valid.f_iou 0.734790027141571, valid.f_f-score 0.81412: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.43it/s]
epoch 126 | valid.f_iou 0.7442100048065186, valid.f_f-score 0.82332: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.43it/s]
epoch 126 | valid.f_iou 0.7442100048065186, valid.f_f-score 0.82332: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 126 | valid.f_iou 0.7414299845695496, valid.f_f-score 0.82055: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 126 | valid.f_iou 0.7414299845695496, valid.f_f-score 0.82055: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 126 | valid.f_iou 0.7414299845695496, valid.f_f-score 0.82055: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 127 | loss 0.14641070365905762, f_iou 0.9421613812446594: 0%| | 0/74 [00:06, ?it/s]
epoch 127 | loss 0.14641070365905762, f_iou 0.9421613812446594: 1%|▍ | 1/74 [00:06<07:39, 6.30s/it]
epoch 127 | loss 0.5907933712005615, f_iou 0.9488635063171387: 1%|▍ | 1/74 [00:07<07:39, 6.30s/it]
epoch 127 | loss 0.5907933712005615, f_iou 0.9488635063171387: 3%|▉ | 2/74 [00:07<03:41, 3.07s/it]
epoch 127 | loss 0.5835310816764832, f_iou 0.953352153301239: 3%|█ | 2/74 [00:07<03:41, 3.07s/it]
epoch 127 | loss 0.5835310816764832, f_iou 0.953352153301239: 4%|█▌ | 3/74 [00:07<02:26, 2.07s/it]
epoch 127 | loss 0.6953875422477722, f_iou 0.9521547555923462: 4%|█▍ | 3/74 [00:08<02:26, 2.07s/it]
epoch 127 | loss 0.6953875422477722, f_iou 0.9521547555923462: 5%|█▉ | 4/74 [00:08<01:52, 1.60s/it]
epoch 127 | loss 1.0259392261505127, f_iou 0.8956375122070312: 5%|█▉ | 4/74 [00:09<01:52, 1.60s/it]
epoch 127 | loss 1.0259392261505127, f_iou 0.8956375122070312: 7%|██▍ | 5/74 [00:09<01:30, 1.31s/it]
epoch 127 | loss 0.4810558557510376, f_iou 0.8923523426055908: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 127 | loss 0.4810558557510376, f_iou 0.8923523426055908: 8%|██▉ | 6/74 [00:10<01:17, 1.14s/it]
epoch 127 | loss 0.0, f_iou 0.8955585956573486: 8%|████▏ | 6/74 [00:11<01:17, 1.14s/it]
epoch 127 | loss 0.0, f_iou 0.8955585956573486: 9%|████▊ | 7/74 [00:11<01:07, 1.01s/it]
epoch 127 | loss 2.1033477783203125, f_iou 0.8533801436424255: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 127 | loss 2.1033477783203125, f_iou 0.8533801436424255: 11%|███▉ | 8/74 [00:11<01:01, 1.07it/s]
epoch 127 | loss 0.8636360764503479, f_iou 0.8395584225654602: 11%|███▉ | 8/74 [00:12<01:01, 1.07it/s]
epoch 127 | loss 0.8636360764503479, f_iou 0.8395584225654602: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 127 | loss 0.49886077642440796, f_iou 0.820744514465332: 12%|████▍ | 9/74 [00:13<00:57, 1.13it/s]
epoch 127 | loss 0.49886077642440796, f_iou 0.820744514465332: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 127 | loss 2.1918952465057373, f_iou 0.8045997023582458: 14%|████▋ | 10/74 [00:14<00:54, 1.17it/s]
epoch 127 | loss 2.1918952465057373, f_iou 0.8045997023582458: 15%|█████▏ | 11/74 [00:14<00:52, 1.21it/s]
epoch 127 | loss 0.9497132301330566, f_iou 0.8071817755699158: 15%|█████▏ | 11/74 [00:15<00:52, 1.21it/s]
epoch 127 | loss 0.9497132301330566, f_iou 0.8071817755699158: 16%|█████▋ | 12/74 [00:15<00:49, 1.26it/s]
epoch 127 | loss 0.7796105146408081, f_iou 0.8161591291427612: 16%|█████▋ | 12/74 [00:15<00:49, 1.26it/s]
epoch 127 | loss 0.7796105146408081, f_iou 0.8161591291427612: 18%|██████▏ | 13/74 [00:15<00:47, 1.28it/s]
epoch 127 | loss 0.5344499349594116, f_iou 0.8229993581771851: 18%|██████▏ | 13/74 [00:16<00:47, 1.28it/s]
epoch 127 | loss 0.5344499349594116, f_iou 0.8229993581771851: 19%|██████▌ | 14/74 [00:16<00:46, 1.28it/s]
epoch 127 | loss 1.4364020824432373, f_iou 0.811255931854248: 19%|██████▊ | 14/74 [00:17<00:46, 1.28it/s]
epoch 127 | loss 1.4364020824432373, f_iou 0.811255931854248: 20%|███████▎ | 15/74 [00:17<00:45, 1.29it/s]
epoch 127 | loss 0.09014949947595596, f_iou 0.8198419213294983: 20%|██████▉ | 15/74 [00:18<00:45, 1.29it/s]
epoch 127 | loss 0.09014949947595596, f_iou 0.8198419213294983: 22%|███████▎ | 16/74 [00:18<00:44, 1.31it/s]
epoch 127 | loss 0.8835633993148804, f_iou 0.8120867013931274: 22%|███████▌ | 16/74 [00:18<00:44, 1.31it/s]
epoch 127 | loss 0.8835633993148804, f_iou 0.8120867013931274: 23%|████████ | 17/74 [00:18<00:43, 1.32it/s]
epoch 127 | loss 0.5978443622589111, f_iou 0.8173425793647766: 23%|████████ | 17/74 [00:19<00:43, 1.32it/s]
epoch 127 | loss 0.5978443622589111, f_iou 0.8173425793647766: 24%|████████▌ | 18/74 [00:19<00:42, 1.33it/s]
epoch 127 | loss 0.7280288934707642, f_iou 0.8246110081672668: 24%|████████▌ | 18/74 [00:20<00:42, 1.33it/s]
epoch 127 | loss 0.7280288934707642, f_iou 0.8246110081672668: 26%|████████▉ | 19/74 [00:20<00:40, 1.35it/s]
epoch 127 | loss 0.32653963565826416, f_iou 0.8323305249214172: 26%|████████▋ | 19/74 [00:21<00:40, 1.35it/s]
epoch 127 | loss 0.32653963565826416, f_iou 0.8323305249214172: 27%|█████████▏ | 20/74 [00:21<00:39, 1.35it/s]
epoch 127 | loss 0.6399295926094055, f_iou 0.8333733081817627: 27%|█████████▍ | 20/74 [00:21<00:39, 1.35it/s]
epoch 127 | loss 0.6399295926094055, f_iou 0.8333733081817627: 28%|█████████▉ | 21/74 [00:21<00:39, 1.33it/s]
epoch 127 | loss 1.162937045097351, f_iou 0.8364318013191223: 28%|██████████▏ | 21/74 [00:22<00:39, 1.33it/s]
epoch 127 | loss 1.162937045097351, f_iou 0.8364318013191223: 30%|██████████▋ | 22/74 [00:22<00:38, 1.33it/s]
epoch 127 | loss 0.7422551512718201, f_iou 0.8411478996276855: 30%|██████████▍ | 22/74 [00:23<00:38, 1.33it/s]
epoch 127 | loss 0.7422551512718201, f_iou 0.8411478996276855: 31%|██████████▉ | 23/74 [00:23<00:37, 1.35it/s]
epoch 127 | loss 1.3758699893951416, f_iou 0.834372878074646: 31%|███████████▏ | 23/74 [00:23<00:37, 1.35it/s]
epoch 127 | loss 1.3758699893951416, f_iou 0.834372878074646: 32%|███████████▋ | 24/74 [00:23<00:36, 1.36it/s]
epoch 127 | loss 0.6363071799278259, f_iou 0.8386766910552979: 32%|███████████▎ | 24/74 [00:24<00:36, 1.36it/s]
epoch 127 | loss 0.6363071799278259, f_iou 0.8386766910552979: 34%|███████████▊ | 25/74 [00:24<00:35, 1.37it/s]
epoch 127 | loss 0.0, f_iou 0.8444681763648987: 34%|████████████████▉ | 25/74 [00:25<00:35, 1.37it/s]
epoch 127 | loss 0.0, f_iou 0.8444681763648987: 35%|█████████████████▌ | 26/74 [00:25<00:35, 1.37it/s]
epoch 127 | loss 0.6216167211532593, f_iou 0.8482776284217834: 35%|████████████▎ | 26/74 [00:26<00:35, 1.37it/s]
epoch 127 | loss 0.6216167211532593, f_iou 0.8482776284217834: 36%|████████████▊ | 27/74 [00:26<00:34, 1.36it/s]
epoch 127 | loss 0.5324057936668396, f_iou 0.848758339881897: 36%|█████████████▏ | 27/74 [00:26<00:34, 1.36it/s]
epoch 127 | loss 0.5324057936668396, f_iou 0.848758339881897: 38%|█████████████▌ | 28/74 [00:26<00:33, 1.37it/s]
epoch 127 | loss 0.9414945840835571, f_iou 0.851235032081604: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.37it/s]
epoch 127 | loss 0.9414945840835571, f_iou 0.851235032081604: 39%|██████████████ | 29/74 [00:27<00:33, 1.35it/s]
epoch 127 | loss 0.2462066113948822, f_iou 0.846754252910614: 39%|██████████████ | 29/74 [00:28<00:33, 1.35it/s]
epoch 127 | loss 0.2462066113948822, f_iou 0.846754252910614: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.34it/s]
epoch 127 | loss 0.9870657920837402, f_iou 0.8487953543663025: 41%|██████████████▏ | 30/74 [00:29<00:32, 1.34it/s]
epoch 127 | loss 0.9870657920837402, f_iou 0.8487953543663025: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.32it/s]
epoch 127 | loss 0.38722115755081177, f_iou 0.8523529171943665: 42%|██████████████▏ | 31/74 [00:29<00:32, 1.32it/s]
epoch 127 | loss 0.38722115755081177, f_iou 0.8523529171943665: 43%|██████████████▋ | 32/74 [00:29<00:32, 1.30it/s]
epoch 127 | loss 0.5643903017044067, f_iou 0.8499616384506226: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.30it/s]
epoch 127 | loss 0.5643903017044067, f_iou 0.8499616384506226: 45%|███████████████▌ | 33/74 [00:30<00:31, 1.29it/s]
epoch 127 | loss 0.5245135426521301, f_iou 0.8521360754966736: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.29it/s]
epoch 127 | loss 0.5245135426521301, f_iou 0.8521360754966736: 46%|████████████████ | 34/74 [00:31<00:31, 1.29it/s]
epoch 127 | loss 0.6219200491905212, f_iou 0.8523741960525513: 46%|████████████████ | 34/74 [00:32<00:31, 1.29it/s]
epoch 127 | loss 0.6219200491905212, f_iou 0.8523741960525513: 47%|████████████████▌ | 35/74 [00:32<00:30, 1.29it/s]
epoch 127 | loss 2.0316174030303955, f_iou 0.8499420285224915: 47%|████████████████▌ | 35/74 [00:33<00:30, 1.29it/s]
epoch 127 | loss 2.0316174030303955, f_iou 0.8499420285224915: 49%|█████████████████ | 36/74 [00:33<00:28, 1.32it/s]
epoch 127 | loss 0.43576136231422424, f_iou 0.8500444889068604: 49%|████████████████▌ | 36/74 [00:33<00:28, 1.32it/s]
epoch 127 | loss 0.43576136231422424, f_iou 0.8500444889068604: 50%|█████████████████ | 37/74 [00:33<00:27, 1.34it/s]
epoch 127 | loss 0.7640746831893921, f_iou 0.8522444367408752: 50%|█████████████████▌ | 37/74 [00:34<00:27, 1.34it/s]
epoch 127 | loss 0.7640746831893921, f_iou 0.8522444367408752: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.35it/s]
epoch 127 | loss 1.0846422910690308, f_iou 0.8497700691223145: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.35it/s]
epoch 127 | loss 1.0846422910690308, f_iou 0.8497700691223145: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.36it/s]
epoch 127 | loss 0.7516682147979736, f_iou 0.8512420654296875: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.36it/s]
epoch 127 | loss 0.7516682147979736, f_iou 0.8512420654296875: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.36it/s]
epoch 127 | loss 1.1050240993499756, f_iou 0.8377113938331604: 54%|██████████████████▉ | 40/74 [00:36<00:24, 1.36it/s]
epoch 127 | loss 1.1050240993499756, f_iou 0.8377113938331604: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.37it/s]
epoch 127 | loss 1.5211375951766968, f_iou 0.8349297046661377: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.37it/s]
epoch 127 | loss 1.5211375951766968, f_iou 0.8349297046661377: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.37it/s]
epoch 127 | loss 1.4082527160644531, f_iou 0.829387366771698: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.37it/s]
epoch 127 | loss 1.4082527160644531, f_iou 0.829387366771698: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.37it/s]
epoch 127 | loss 1.1945722103118896, f_iou 0.8219243288040161: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.37it/s]
epoch 127 | loss 1.1945722103118896, f_iou 0.8219243288040161: 59%|████████████████████▊ | 44/74 [00:38<00:21, 1.37it/s]
epoch 127 | loss 0.7160319685935974, f_iou 0.8231592774391174: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.37it/s]
epoch 127 | loss 0.7160319685935974, f_iou 0.8231592774391174: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.35it/s]
epoch 127 | loss 1.6463537216186523, f_iou 0.8226701617240906: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.35it/s]
epoch 127 | loss 1.6463537216186523, f_iou 0.8226701617240906: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.36it/s]
epoch 127 | loss 0.5759477615356445, f_iou 0.8247463703155518: 62%|█████████████████████▊ | 46/74 [00:41<00:20, 1.36it/s]
epoch 127 | loss 0.5759477615356445, f_iou 0.8247463703155518: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.37it/s]
epoch 127 | loss 0.3200588524341583, f_iou 0.8273690938949585: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.37it/s]
epoch 127 | loss 0.3200588524341583, f_iou 0.8273690938949585: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.38it/s]
epoch 127 | loss 0.6803605556488037, f_iou 0.8292173743247986: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.38it/s]
epoch 127 | loss 0.6803605556488037, f_iou 0.8292173743247986: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.38it/s]
epoch 127 | loss 1.1899833679199219, f_iou 0.8164872527122498: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.38it/s]
epoch 127 | loss 1.1899833679199219, f_iou 0.8164872527122498: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 127 | loss 1.3273015022277832, f_iou 0.8124875426292419: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.38it/s]
epoch 127 | loss 1.3273015022277832, f_iou 0.8124875426292419: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.38it/s]
epoch 127 | loss 1.9580750465393066, f_iou 0.8125958442687988: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.38it/s]
epoch 127 | loss 1.9580750465393066, f_iou 0.8125958442687988: 70%|████████████████████████▌ | 52/74 [00:44<00:15, 1.38it/s]
epoch 127 | loss 2.9854960441589355, f_iou 0.8110056519508362: 70%|████████████████████████▌ | 52/74 [00:45<00:15, 1.38it/s]
epoch 127 | loss 2.9854960441589355, f_iou 0.8110056519508362: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.38it/s]
epoch 127 | loss 1.1991932392120361, f_iou 0.8093950748443604: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.38it/s]
epoch 127 | loss 1.1991932392120361, f_iou 0.8093950748443604: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 127 | loss 0.6321738958358765, f_iou 0.8113816976547241: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.38it/s]
epoch 127 | loss 0.6321738958358765, f_iou 0.8113816976547241: 74%|██████████████████████████ | 55/74 [00:46<00:13, 1.38it/s]
epoch 127 | loss 2.837371826171875, f_iou 0.8072036504745483: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.38it/s]
epoch 127 | loss 2.837371826171875, f_iou 0.8072036504745483: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.38it/s]
epoch 127 | loss 0.6409066915512085, f_iou 0.8067486882209778: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.38it/s]
epoch 127 | loss 0.6409066915512085, f_iou 0.8067486882209778: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.38it/s]
epoch 127 | loss 0.8425353169441223, f_iou 0.8075931668281555: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.38it/s]
epoch 127 | loss 0.8425353169441223, f_iou 0.8075931668281555: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.38it/s]
epoch 127 | loss 1.137649655342102, f_iou 0.8045706748962402: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.38it/s]
epoch 127 | loss 1.137649655342102, f_iou 0.8045706748962402: 80%|████████████████████████████▋ | 59/74 [00:49<00:10, 1.38it/s]
epoch 127 | loss 0.4099920690059662, f_iou 0.7973239421844482: 80%|███████████████████████████▉ | 59/74 [00:50<00:10, 1.38it/s]
epoch 127 | loss 0.4099920690059662, f_iou 0.7973239421844482: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.38it/s]
epoch 127 | loss 0.9977641105651855, f_iou 0.7982144951820374: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.38it/s]
epoch 127 | loss 0.9977641105651855, f_iou 0.7982144951820374: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 127 | loss 0.4786335229873657, f_iou 0.7990551590919495: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 127 | loss 0.4786335229873657, f_iou 0.7990551590919495: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.38it/s]
epoch 127 | loss 1.0252095460891724, f_iou 0.7955003380775452: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.38it/s]
epoch 127 | loss 1.0252095460891724, f_iou 0.7955003380775452: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.38it/s]
epoch 127 | loss 0.6600480079650879, f_iou 0.796449601650238: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 127 | loss 0.6600480079650879, f_iou 0.796449601650238: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.38it/s]
epoch 127 | loss 0.6649559736251831, f_iou 0.7846126556396484: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.38it/s]
epoch 127 | loss 0.6649559736251831, f_iou 0.7846126556396484: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.39it/s]
epoch 127 | loss 0.5212547183036804, f_iou 0.7864769697189331: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.39it/s]
epoch 127 | loss 0.5212547183036804, f_iou 0.7864769697189331: 89%|███████████████████████████████▏ | 66/74 [00:54<00:05, 1.36it/s]
epoch 127 | loss 0.9476528167724609, f_iou 0.7879688739776611: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.36it/s]
epoch 127 | loss 0.9476528167724609, f_iou 0.7879688739776611: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.34it/s]
epoch 127 | loss 0.9922176599502563, f_iou 0.7885333895683289: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.34it/s]
epoch 127 | loss 0.9922176599502563, f_iou 0.7885333895683289: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.33it/s]
epoch 127 | loss 2.846372604370117, f_iou 0.7832602858543396: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.33it/s]
epoch 127 | loss 2.846372604370117, f_iou 0.7832602858543396: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.32it/s]
epoch 127 | loss 1.0522606372833252, f_iou 0.7826358079910278: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.32it/s]
epoch 127 | loss 1.0522606372833252, f_iou 0.7826358079910278: 95%|█████████████████████████████████ | 70/74 [00:57<00:03, 1.32it/s]
epoch 127 | loss 0.6313347220420837, f_iou 0.7848764657974243: 95%|█████████████████████████████████ | 70/74 [00:58<00:03, 1.32it/s]
epoch 127 | loss 0.6313347220420837, f_iou 0.7848764657974243: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.31it/s]
epoch 127 | loss 0.6772186756134033, f_iou 0.783484160900116: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.31it/s]
epoch 127 | loss 0.6772186756134033, f_iou 0.783484160900116: 97%|███████████████████████████████████ | 72/74 [00:59<00:01, 1.31it/s]
epoch 127 | loss 0.5307306051254272, f_iou 0.7843665480613708: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.31it/s]
epoch 127 | loss 0.5307306051254272, f_iou 0.7843665480613708: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.33it/s]
epoch 127 | loss 0.7012423872947693, f_iou 0.7864931225776672: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.33it/s]
epoch 127 | loss 0.7012423872947693, f_iou 0.7864931225776672: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.35it/s]
epoch 127 | loss 0.7012423872947693, f_iou 0.7864931225776672: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 127 | valid.f_iou 0.7265099883079529, valid.f_f-score 0.83528: 0%| | 0/16 [00:05, ?it/s]
epoch 127 | valid.f_iou 0.7265099883079529, valid.f_f-score 0.83528: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 127 | valid.f_iou 0.6797400116920471, valid.f_f-score 0.85818: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 127 | valid.f_iou 0.6797400116920471, valid.f_f-score 0.85818: 12%|███▊ | 2/16 [00:05<00:35, 2.50s/it]
epoch 127 | valid.f_iou 0.5498300194740295, valid.f_f-score 0.76745: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 127 | valid.f_iou 0.5498300194740295, valid.f_f-score 0.76745: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 127 | valid.f_iou 0.5745300054550171, valid.f_f-score 0.74547: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 127 | valid.f_iou 0.5745300054550171, valid.f_f-score 0.74547: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 127 | valid.f_iou 0.5913199782371521, valid.f_f-score 0.75699: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 127 | valid.f_iou 0.5913199782371521, valid.f_f-score 0.75699: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 127 | valid.f_iou 0.5525400042533875, valid.f_f-score 0.71759: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 127 | valid.f_iou 0.5525400042533875, valid.f_f-score 0.71759: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 127 | valid.f_iou 0.5791299939155579, valid.f_f-score 0.74105: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 127 | valid.f_iou 0.5791299939155579, valid.f_f-score 0.74105: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 127 | valid.f_iou 0.5472699999809265, valid.f_f-score 0.72041: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 127 | valid.f_iou 0.5472699999809265, valid.f_f-score 0.72041: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 127 | valid.f_iou 0.5673800110816956, valid.f_f-score 0.73031: 50%|███████████████ | 8/16 [00:08<00:04, 1.75it/s]
epoch 127 | valid.f_iou 0.5673800110816956, valid.f_f-score 0.73031: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.90it/s]
epoch 127 | valid.f_iou 0.5636500120162964, valid.f_f-score 0.73142: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 127 | valid.f_iou 0.5636500120162964, valid.f_f-score 0.73142: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.01it/s]
epoch 127 | valid.f_iou 0.5653700232505798, valid.f_f-score 0.73033: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.01it/s]
epoch 127 | valid.f_iou 0.5653700232505798, valid.f_f-score 0.73033: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.16it/s]
epoch 127 | valid.f_iou 0.5887200236320496, valid.f_f-score 0.74695: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.16it/s]
epoch 127 | valid.f_iou 0.5887200236320496, valid.f_f-score 0.74695: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 127 | valid.f_iou 0.5927500128746033, valid.f_f-score 0.75302: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 127 | valid.f_iou 0.5927500128746033, valid.f_f-score 0.75302: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 127 | valid.f_iou 0.5877900123596191, valid.f_f-score 0.74887: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 127 | valid.f_iou 0.5877900123596191, valid.f_f-score 0.74887: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.45it/s]
epoch 127 | valid.f_iou 0.5950800180435181, valid.f_f-score 0.74964: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.45it/s]
epoch 127 | valid.f_iou 0.5950800180435181, valid.f_f-score 0.74964: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.50it/s]
epoch 127 | valid.f_iou 0.5965099930763245, valid.f_f-score 0.74551: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.50it/s]
epoch 127 | valid.f_iou 0.5965099930763245, valid.f_f-score 0.74551: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.57it/s]
epoch 127 | valid.f_iou 0.5965099930763245, valid.f_f-score 0.74551: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 127 | valid.f_iou 0.803849995136261, valid.f_f-score 0.80606: 0%| | 0/16 [00:05, ?it/s]
epoch 127 | valid.f_iou 0.803849995136261, valid.f_f-score 0.80606: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 127 | valid.f_iou 0.8394200205802917, valid.f_f-score 0.87273: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 127 | valid.f_iou 0.8394200205802917, valid.f_f-score 0.87273: 12%|███▊ | 2/16 [00:05<00:35, 2.51s/it]
epoch 127 | valid.f_iou 0.7845600247383118, valid.f_f-score 0.85818: 12%|███▊ | 2/16 [00:06<00:35, 2.51s/it]
epoch 127 | valid.f_iou 0.7845600247383118, valid.f_f-score 0.85818: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 127 | valid.f_iou 0.7749900221824646, valid.f_f-score 0.8286: 19%|█████▊ | 3/16 [00:06<00:20, 1.56s/it]
epoch 127 | valid.f_iou 0.7749900221824646, valid.f_f-score 0.8286: 25%|███████▊ | 4/16 [00:06<00:13, 1.12s/it]
epoch 127 | valid.f_iou 0.7468799948692322, valid.f_f-score 0.82497: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 127 | valid.f_iou 0.7468799948692322, valid.f_f-score 0.82497: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 127 | valid.f_iou 0.7313399910926819, valid.f_f-score 0.81475: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 127 | valid.f_iou 0.7313399910926819, valid.f_f-score 0.81475: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 127 | valid.f_iou 0.7462499737739563, valid.f_f-score 0.83265: 38%|███████████▎ | 6/16 [00:08<00:07, 1.40it/s]
epoch 127 | valid.f_iou 0.7462499737739563, valid.f_f-score 0.83265: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 127 | valid.f_iou 0.7326599955558777, valid.f_f-score 0.82813: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.61it/s]
epoch 127 | valid.f_iou 0.7326599955558777, valid.f_f-score 0.82813: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 127 | valid.f_iou 0.7356299757957458, valid.f_f-score 0.82879: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 127 | valid.f_iou 0.7356299757957458, valid.f_f-score 0.82879: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.92it/s]
epoch 127 | valid.f_iou 0.7436599731445312, valid.f_f-score 0.83776: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.92it/s]
epoch 127 | valid.f_iou 0.7436599731445312, valid.f_f-score 0.83776: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 127 | valid.f_iou 0.7300599813461304, valid.f_f-score 0.81957: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 127 | valid.f_iou 0.7300599813461304, valid.f_f-score 0.81957: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.12it/s]
epoch 127 | valid.f_iou 0.7409999966621399, valid.f_f-score 0.82894: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.12it/s]
epoch 127 | valid.f_iou 0.7409999966621399, valid.f_f-score 0.82894: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.27it/s]
epoch 127 | valid.f_iou 0.7509700059890747, valid.f_f-score 0.83588: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.27it/s]
epoch 127 | valid.f_iou 0.7509700059890747, valid.f_f-score 0.83588: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.38it/s]
epoch 127 | valid.f_iou 0.7402700185775757, valid.f_f-score 0.82627: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.38it/s]
epoch 127 | valid.f_iou 0.7402700185775757, valid.f_f-score 0.82627: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.46it/s]
epoch 127 | valid.f_iou 0.7493699789047241, valid.f_f-score 0.83472: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 127 | valid.f_iou 0.7493699789047241, valid.f_f-score 0.83472: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 127 | valid.f_iou 0.7467799782752991, valid.f_f-score 0.8314: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 127 | valid.f_iou 0.7467799782752991, valid.f_f-score 0.8314: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.56it/s]
epoch 127 | valid.f_iou 0.7467799782752991, valid.f_f-score 0.8314: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 127 | valid.f_iou 0.7559499740600586, valid.f_f-score 0.77602: 0%| | 0/16 [00:05, ?it/s]
epoch 127 | valid.f_iou 0.7559499740600586, valid.f_f-score 0.77602: 6%|█▉ | 1/16 [00:05<01:23, 5.57s/it]
epoch 127 | valid.f_iou 0.8154699802398682, valid.f_f-score 0.85771: 6%|█▉ | 1/16 [00:06<01:23, 5.57s/it]
epoch 127 | valid.f_iou 0.8154699802398682, valid.f_f-score 0.85771: 12%|███▊ | 2/16 [00:06<00:35, 2.56s/it]
epoch 127 | valid.f_iou 0.768589973449707, valid.f_f-score 0.84816: 12%|███▉ | 2/16 [00:06<00:35, 2.56s/it]
epoch 127 | valid.f_iou 0.768589973449707, valid.f_f-score 0.84816: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 127 | valid.f_iou 0.7576299905776978, valid.f_f-score 0.81075: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 127 | valid.f_iou 0.7576299905776978, valid.f_f-score 0.81075: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 127 | valid.f_iou 0.7408999800682068, valid.f_f-score 0.81068: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 127 | valid.f_iou 0.7408999800682068, valid.f_f-score 0.81068: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 127 | valid.f_iou 0.726360023021698, valid.f_f-score 0.80284: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 127 | valid.f_iou 0.726360023021698, valid.f_f-score 0.80284: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 127 | valid.f_iou 0.7437400221824646, valid.f_f-score 0.82245: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 127 | valid.f_iou 0.7437400221824646, valid.f_f-score 0.82245: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 127 | valid.f_iou 0.730459988117218, valid.f_f-score 0.8192: 44%|██████████████ | 7/16 [00:08<00:05, 1.56it/s]
epoch 127 | valid.f_iou 0.730459988117218, valid.f_f-score 0.8192: 50%|████████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 127 | valid.f_iou 0.7355300188064575, valid.f_f-score 0.82086: 50%|███████████████ | 8/16 [00:09<00:04, 1.72it/s]
epoch 127 | valid.f_iou 0.7355300188064575, valid.f_f-score 0.82086: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.87it/s]
epoch 127 | valid.f_iou 0.7402200102806091, valid.f_f-score 0.82702: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.87it/s]
epoch 127 | valid.f_iou 0.7402200102806091, valid.f_f-score 0.82702: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.97it/s]
epoch 127 | valid.f_iou 0.7269399762153625, valid.f_f-score 0.8098: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.97it/s]
epoch 127 | valid.f_iou 0.7269399762153625, valid.f_f-score 0.8098: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.14it/s]
epoch 127 | valid.f_iou 0.7381399869918823, valid.f_f-score 0.81999: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 127 | valid.f_iou 0.7381399869918823, valid.f_f-score 0.81999: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.17it/s]
epoch 127 | valid.f_iou 0.7482600212097168, valid.f_f-score 0.82863: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.17it/s]
epoch 127 | valid.f_iou 0.7482600212097168, valid.f_f-score 0.82863: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.21it/s]
epoch 127 | valid.f_iou 0.7377499938011169, valid.f_f-score 0.81954: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.21it/s]
epoch 127 | valid.f_iou 0.7377499938011169, valid.f_f-score 0.81954: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.34it/s]
epoch 127 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.82844: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.34it/s]
epoch 127 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.82844: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.44it/s]
epoch 127 | valid.f_iou 0.7450500130653381, valid.f_f-score 0.82551: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.44it/s]
epoch 127 | valid.f_iou 0.7450500130653381, valid.f_f-score 0.82551: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.51it/s]
epoch 127 | valid.f_iou 0.7450500130653381, valid.f_f-score 0.82551: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 128 | loss 0.3277847170829773, f_iou 0.9735472798347473: 0%| | 0/74 [00:06, ?it/s]
epoch 128 | loss 0.3277847170829773, f_iou 0.9735472798347473: 1%|▍ | 1/74 [00:06<07:36, 6.25s/it]
epoch 128 | loss 2.097651481628418, f_iou 0.7974067330360413: 1%|▌ | 1/74 [00:07<07:36, 6.25s/it]
epoch 128 | loss 2.097651481628418, f_iou 0.7974067330360413: 3%|█ | 2/74 [00:07<03:41, 3.08s/it]
epoch 128 | loss 0.8069375157356262, f_iou 0.7648180723190308: 3%|▉ | 2/74 [00:07<03:41, 3.08s/it]
epoch 128 | loss 0.8069375157356262, f_iou 0.7648180723190308: 4%|█▍ | 3/74 [00:07<02:25, 2.04s/it]
epoch 128 | loss 0.8240549564361572, f_iou 0.8111438751220703: 4%|█▍ | 3/74 [00:08<02:25, 2.04s/it]
epoch 128 | loss 0.8240549564361572, f_iou 0.8111438751220703: 5%|█▉ | 4/74 [00:08<01:48, 1.55s/it]
epoch 128 | loss 0.4038531184196472, f_iou 0.7966354489326477: 5%|█▉ | 4/74 [00:09<01:48, 1.55s/it]
epoch 128 | loss 0.4038531184196472, f_iou 0.7966354489326477: 7%|██▍ | 5/74 [00:09<01:27, 1.28s/it]
epoch 128 | loss 0.4064974784851074, f_iou 0.8228676319122314: 7%|██▍ | 5/74 [00:10<01:27, 1.28s/it]
epoch 128 | loss 0.4064974784851074, f_iou 0.8228676319122314: 8%|██▉ | 6/74 [00:10<01:15, 1.12s/it]
epoch 128 | loss 0.6556744575500488, f_iou 0.8090493083000183: 8%|██▉ | 6/74 [00:11<01:15, 1.12s/it]
epoch 128 | loss 0.6556744575500488, f_iou 0.8090493083000183: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 128 | loss 1.0053297281265259, f_iou 0.7342667579650879: 9%|███▍ | 7/74 [00:11<01:07, 1.01s/it]
epoch 128 | loss 1.0053297281265259, f_iou 0.7342667579650879: 11%|███▉ | 8/74 [00:11<01:02, 1.05it/s]
epoch 128 | loss 0.8043010234832764, f_iou 0.6656520366668701: 11%|███▉ | 8/74 [00:12<01:02, 1.05it/s]
epoch 128 | loss 0.8043010234832764, f_iou 0.6656520366668701: 12%|████▍ | 9/74 [00:12<00:58, 1.10it/s]
epoch 128 | loss 1.544792890548706, f_iou 0.6136960387229919: 12%|████▌ | 9/74 [00:13<00:58, 1.10it/s]
epoch 128 | loss 1.544792890548706, f_iou 0.6136960387229919: 14%|████▊ | 10/74 [00:13<00:55, 1.14it/s]
epoch 128 | loss 1.4105952978134155, f_iou 0.6094173789024353: 14%|████▋ | 10/74 [00:14<00:55, 1.14it/s]
epoch 128 | loss 1.4105952978134155, f_iou 0.6094173789024353: 15%|█████▏ | 11/74 [00:14<00:53, 1.18it/s]
epoch 128 | loss 1.0605438947677612, f_iou 0.6187494993209839: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 128 | loss 1.0605438947677612, f_iou 0.6187494993209839: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 128 | loss 1.2287795543670654, f_iou 0.6288008093833923: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 128 | loss 1.2287795543670654, f_iou 0.6288008093833923: 18%|██████▏ | 13/74 [00:15<00:50, 1.22it/s]
epoch 128 | loss 1.0953755378723145, f_iou 0.6230723857879639: 18%|██████▏ | 13/74 [00:16<00:50, 1.22it/s]
epoch 128 | loss 1.0953755378723145, f_iou 0.6230723857879639: 19%|██████▌ | 14/74 [00:16<00:48, 1.23it/s]
epoch 128 | loss 1.6421761512756348, f_iou 0.6175574064254761: 19%|██████▌ | 14/74 [00:17<00:48, 1.23it/s]
epoch 128 | loss 1.6421761512756348, f_iou 0.6175574064254761: 20%|███████ | 15/74 [00:17<00:47, 1.24it/s]
epoch 128 | loss 0.489964097738266, f_iou 0.6278838515281677: 20%|███████▎ | 15/74 [00:18<00:47, 1.24it/s]
epoch 128 | loss 0.489964097738266, f_iou 0.6278838515281677: 22%|███████▊ | 16/74 [00:18<00:46, 1.25it/s]
epoch 128 | loss 1.3854385614395142, f_iou 0.6396324634552002: 22%|███████▌ | 16/74 [00:19<00:46, 1.25it/s]
epoch 128 | loss 1.3854385614395142, f_iou 0.6396324634552002: 23%|████████ | 17/74 [00:19<00:45, 1.26it/s]
epoch 128 | loss 0.6142716407775879, f_iou 0.6556393504142761: 23%|████████ | 17/74 [00:19<00:45, 1.26it/s]
epoch 128 | loss 0.6142716407775879, f_iou 0.6556393504142761: 24%|████████▌ | 18/74 [00:19<00:44, 1.27it/s]
epoch 128 | loss 1.0034058094024658, f_iou 0.6671891212463379: 24%|████████▌ | 18/74 [00:20<00:44, 1.27it/s]
epoch 128 | loss 1.0034058094024658, f_iou 0.6671891212463379: 26%|████████▉ | 19/74 [00:20<00:42, 1.29it/s]
epoch 128 | loss 0.8725403547286987, f_iou 0.6682636737823486: 26%|████████▉ | 19/74 [00:21<00:42, 1.29it/s]
epoch 128 | loss 0.8725403547286987, f_iou 0.6682636737823486: 27%|█████████▍ | 20/74 [00:21<00:41, 1.32it/s]
epoch 128 | loss 0.4157235324382782, f_iou 0.6831412315368652: 27%|█████████▍ | 20/74 [00:22<00:41, 1.32it/s]
epoch 128 | loss 0.4157235324382782, f_iou 0.6831412315368652: 28%|█████████▉ | 21/74 [00:22<00:39, 1.34it/s]
epoch 128 | loss 0.5491182208061218, f_iou 0.6923813819885254: 28%|█████████▉ | 21/74 [00:22<00:39, 1.34it/s]
epoch 128 | loss 0.5491182208061218, f_iou 0.6923813819885254: 30%|██████████▍ | 22/74 [00:22<00:38, 1.35it/s]
epoch 128 | loss 0.6663544774055481, f_iou 0.6875302195549011: 30%|██████████▍ | 22/74 [00:23<00:38, 1.35it/s]
epoch 128 | loss 0.6663544774055481, f_iou 0.6875302195549011: 31%|██████████▉ | 23/74 [00:23<00:37, 1.36it/s]
epoch 128 | loss 0.4823709726333618, f_iou 0.6978448629379272: 31%|██████████▉ | 23/74 [00:24<00:37, 1.36it/s]
epoch 128 | loss 0.4823709726333618, f_iou 0.6978448629379272: 32%|███████████▎ | 24/74 [00:24<00:36, 1.36it/s]
epoch 128 | loss 2.0161776542663574, f_iou 0.6845724582672119: 32%|███████████▎ | 24/74 [00:24<00:36, 1.36it/s]
epoch 128 | loss 2.0161776542663574, f_iou 0.6845724582672119: 34%|███████████▊ | 25/74 [00:24<00:35, 1.37it/s]
epoch 128 | loss 0.7545002102851868, f_iou 0.6891166567802429: 34%|███████████▊ | 25/74 [00:25<00:35, 1.37it/s]
epoch 128 | loss 0.7545002102851868, f_iou 0.6891166567802429: 35%|████████████▎ | 26/74 [00:25<00:35, 1.37it/s]
epoch 128 | loss 1.2254459857940674, f_iou 0.6912071704864502: 35%|████████████▎ | 26/74 [00:26<00:35, 1.37it/s]
epoch 128 | loss 1.2254459857940674, f_iou 0.6912071704864502: 36%|████████████▊ | 27/74 [00:26<00:34, 1.38it/s]
epoch 128 | loss 0.5669445991516113, f_iou 0.7000201344490051: 36%|████████████▊ | 27/74 [00:27<00:34, 1.38it/s]
epoch 128 | loss 0.5669445991516113, f_iou 0.7000201344490051: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.37it/s]
epoch 128 | loss 0.7444177269935608, f_iou 0.7030320167541504: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.37it/s]
epoch 128 | loss 0.7444177269935608, f_iou 0.7030320167541504: 39%|█████████████▋ | 29/74 [00:27<00:32, 1.37it/s]
epoch 128 | loss 0.8790231943130493, f_iou 0.6845662593841553: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.37it/s]
epoch 128 | loss 0.8790231943130493, f_iou 0.6845662593841553: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.37it/s]
epoch 128 | loss 0.6014434695243835, f_iou 0.6693181991577148: 41%|██████████████▏ | 30/74 [00:29<00:32, 1.37it/s]
epoch 128 | loss 0.6014434695243835, f_iou 0.6693181991577148: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.37it/s]
epoch 128 | loss 1.8004862070083618, f_iou 0.6743239760398865: 42%|██████████████▋ | 31/74 [00:30<00:31, 1.37it/s]
epoch 128 | loss 1.8004862070083618, f_iou 0.6743239760398865: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.37it/s]
epoch 128 | loss 2.752150058746338, f_iou 0.674368679523468: 43%|████████████████ | 32/74 [00:30<00:30, 1.37it/s]
epoch 128 | loss 2.752150058746338, f_iou 0.674368679523468: 45%|████████████████▌ | 33/74 [00:30<00:29, 1.37it/s]
epoch 128 | loss 0.7282173037528992, f_iou 0.6758492588996887: 45%|███████████████▌ | 33/74 [00:31<00:29, 1.37it/s]
epoch 128 | loss 0.7282173037528992, f_iou 0.6758492588996887: 46%|████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 128 | loss 0.33621570467948914, f_iou 0.6836549043655396: 46%|███████████████▌ | 34/74 [00:32<00:29, 1.37it/s]
epoch 128 | loss 0.33621570467948914, f_iou 0.6836549043655396: 47%|████████████████ | 35/74 [00:32<00:29, 1.34it/s]
epoch 128 | loss 0.7723269462585449, f_iou 0.6756396293640137: 47%|████████████████▌ | 35/74 [00:33<00:29, 1.34it/s]
epoch 128 | loss 0.7723269462585449, f_iou 0.6756396293640137: 49%|█████████████████ | 36/74 [00:33<00:28, 1.32it/s]
epoch 128 | loss 0.6250513792037964, f_iou 0.6787697076797485: 49%|█████████████████ | 36/74 [00:33<00:28, 1.32it/s]
epoch 128 | loss 0.6250513792037964, f_iou 0.6787697076797485: 50%|█████████████████▌ | 37/74 [00:33<00:28, 1.30it/s]
epoch 128 | loss 0.3165643513202667, f_iou 0.6864044070243835: 50%|█████████████████▌ | 37/74 [00:34<00:28, 1.30it/s]
epoch 128 | loss 0.3165643513202667, f_iou 0.6864044070243835: 51%|█████████████████▉ | 38/74 [00:34<00:28, 1.28it/s]
epoch 128 | loss 0.7122505307197571, f_iou 0.6931934356689453: 51%|█████████████████▉ | 38/74 [00:35<00:28, 1.28it/s]
epoch 128 | loss 0.7122505307197571, f_iou 0.6931934356689453: 53%|██████████████████▍ | 39/74 [00:35<00:27, 1.28it/s]
epoch 128 | loss 1.3153854608535767, f_iou 0.6890274882316589: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.28it/s]
epoch 128 | loss 1.3153854608535767, f_iou 0.6890274882316589: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.26it/s]
epoch 128 | loss 0.6281135678291321, f_iou 0.6930643916130066: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.26it/s]
epoch 128 | loss 0.6281135678291321, f_iou 0.6930643916130066: 55%|███████████████████▍ | 41/74 [00:37<00:26, 1.26it/s]
epoch 128 | loss 0.7602205872535706, f_iou 0.6810319423675537: 55%|███████████████████▍ | 41/74 [00:37<00:26, 1.26it/s]
epoch 128 | loss 0.7602205872535706, f_iou 0.6810319423675537: 57%|███████████████████▊ | 42/74 [00:37<00:25, 1.26it/s]
epoch 128 | loss 1.4833195209503174, f_iou 0.6801393032073975: 57%|███████████████████▊ | 42/74 [00:38<00:25, 1.26it/s]
epoch 128 | loss 1.4833195209503174, f_iou 0.6801393032073975: 58%|████████████████████▎ | 43/74 [00:38<00:24, 1.29it/s]
epoch 128 | loss 0.5667271018028259, f_iou 0.6856386661529541: 58%|████████████████████▎ | 43/74 [00:39<00:24, 1.29it/s]
epoch 128 | loss 0.5667271018028259, f_iou 0.6856386661529541: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.32it/s]
epoch 128 | loss 1.084913969039917, f_iou 0.6899450421333313: 59%|█████████████████████▍ | 44/74 [00:40<00:22, 1.32it/s]
epoch 128 | loss 1.084913969039917, f_iou 0.6899450421333313: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.33it/s]
epoch 128 | loss 0.6110005378723145, f_iou 0.6955874562263489: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.33it/s]
epoch 128 | loss 0.6110005378723145, f_iou 0.6955874562263489: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.34it/s]
epoch 128 | loss 0.333487331867218, f_iou 0.7007856965065002: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.34it/s]
epoch 128 | loss 0.333487331867218, f_iou 0.7007856965065002: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.35it/s]
epoch 128 | loss 0.8629587888717651, f_iou 0.7038335800170898: 64%|██████████████████████▏ | 47/74 [00:42<00:20, 1.35it/s]
epoch 128 | loss 0.8629587888717651, f_iou 0.7038335800170898: 65%|██████████████████████▋ | 48/74 [00:42<00:19, 1.35it/s]
epoch 128 | loss 0.6655945181846619, f_iou 0.7052696347236633: 65%|██████████████████████▋ | 48/74 [00:42<00:19, 1.35it/s]
epoch 128 | loss 0.6655945181846619, f_iou 0.7052696347236633: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.36it/s]
epoch 128 | loss 0.4576740860939026, f_iou 0.7100621461868286: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.36it/s]
epoch 128 | loss 0.4576740860939026, f_iou 0.7100621461868286: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.37it/s]
epoch 128 | loss 1.0250098705291748, f_iou 0.714070737361908: 68%|████████████████████████▎ | 50/74 [00:44<00:17, 1.37it/s]
epoch 128 | loss 1.0250098705291748, f_iou 0.714070737361908: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.37it/s]
epoch 128 | loss 0.6680777072906494, f_iou 0.7184507846832275: 69%|████████████████████████ | 51/74 [00:45<00:16, 1.37it/s]
epoch 128 | loss 0.6680777072906494, f_iou 0.7184507846832275: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.37it/s]
epoch 128 | loss 0.7283669710159302, f_iou 0.7204092144966125: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.37it/s]
epoch 128 | loss 0.7283669710159302, f_iou 0.7204092144966125: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.37it/s]
epoch 128 | loss 0.8385229706764221, f_iou 0.7228251099586487: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.37it/s]
epoch 128 | loss 0.8385229706764221, f_iou 0.7228251099586487: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.37it/s]
epoch 128 | loss 0.9245830774307251, f_iou 0.7249348759651184: 73%|█████████████████████████▌ | 54/74 [00:47<00:14, 1.37it/s]
epoch 128 | loss 0.9245830774307251, f_iou 0.7249348759651184: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.37it/s]
epoch 128 | loss 0.7515543699264526, f_iou 0.7274048924446106: 74%|██████████████████████████ | 55/74 [00:48<00:13, 1.37it/s]
epoch 128 | loss 0.7515543699264526, f_iou 0.7274048924446106: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.37it/s]
epoch 128 | loss 0.0, f_iou 0.7289604544639587: 76%|█████████████████████████████████████▊ | 56/74 [00:48<00:13, 1.37it/s]
epoch 128 | loss 0.0, f_iou 0.7289604544639587: 77%|██████████████████████████████████████▌ | 57/74 [00:48<00:12, 1.36it/s]
epoch 128 | loss 0.7256270051002502, f_iou 0.7309669852256775: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.36it/s]
epoch 128 | loss 0.7256270051002502, f_iou 0.7309669852256775: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.36it/s]
epoch 128 | loss 1.2253323793411255, f_iou 0.7308587431907654: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.36it/s]
epoch 128 | loss 1.2253323793411255, f_iou 0.7308587431907654: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.35it/s]
epoch 128 | loss 0.7790244817733765, f_iou 0.7330136895179749: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.35it/s]
epoch 128 | loss 0.7790244817733765, f_iou 0.7330136895179749: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.32it/s]
epoch 128 | loss 1.2676706314086914, f_iou 0.7337691783905029: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.32it/s]
epoch 128 | loss 1.2676706314086914, f_iou 0.7337691783905029: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.31it/s]
epoch 128 | loss 0.8651248812675476, f_iou 0.7222781777381897: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.31it/s]
epoch 128 | loss 0.8651248812675476, f_iou 0.7222781777381897: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.30it/s]
epoch 128 | loss 1.4363911151885986, f_iou 0.719012975692749: 84%|██████████████████████████████▏ | 62/74 [00:53<00:09, 1.30it/s]
epoch 128 | loss 1.4363911151885986, f_iou 0.719012975692749: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.29it/s]
epoch 128 | loss 2.077683210372925, f_iou 0.7149542570114136: 85%|██████████████████████████████▋ | 63/74 [00:54<00:08, 1.29it/s]
epoch 128 | loss 2.077683210372925, f_iou 0.7149542570114136: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.28it/s]
epoch 128 | loss 0.44922444224357605, f_iou 0.7170482277870178: 86%|█████████████████████████████▍ | 64/74 [00:55<00:07, 1.28it/s]
epoch 128 | loss 0.44922444224357605, f_iou 0.7170482277870178: 88%|█████████████████████████████▊ | 65/74 [00:55<00:07, 1.26it/s]
epoch 128 | loss 1.1934186220169067, f_iou 0.716713547706604: 88%|███████████████████████████████▌ | 65/74 [00:55<00:07, 1.26it/s]
epoch 128 | loss 1.1934186220169067, f_iou 0.716713547706604: 89%|████████████████████████████████ | 66/74 [00:55<00:06, 1.27it/s]
epoch 128 | loss 1.7428033351898193, f_iou 0.7151409983634949: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.27it/s]
epoch 128 | loss 1.7428033351898193, f_iou 0.7151409983634949: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.27it/s]
epoch 128 | loss 1.2976202964782715, f_iou 0.7152912020683289: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.27it/s]
epoch 128 | loss 1.2976202964782715, f_iou 0.7152912020683289: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.26it/s]
epoch 128 | loss 1.0854268074035645, f_iou 0.7158399820327759: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.26it/s]
epoch 128 | loss 1.0854268074035645, f_iou 0.7158399820327759: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.27it/s]
epoch 128 | loss 0.6825627088546753, f_iou 0.7180976271629333: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.27it/s]
epoch 128 | loss 0.6825627088546753, f_iou 0.7180976271629333: 95%|█████████████████████████████████ | 70/74 [00:58<00:03, 1.27it/s]
epoch 128 | loss 0.9066927433013916, f_iou 0.7199543714523315: 95%|█████████████████████████████████ | 70/74 [00:59<00:03, 1.27it/s]
epoch 128 | loss 0.9066927433013916, f_iou 0.7199543714523315: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.27it/s]
epoch 128 | loss 0.8043212294578552, f_iou 0.7216285467147827: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.27it/s]
epoch 128 | loss 0.8043212294578552, f_iou 0.7216285467147827: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.27it/s]
epoch 128 | loss 1.58367121219635, f_iou 0.7214308977127075: 97%|████████████████████████████████████ | 72/74 [01:01<00:01, 1.27it/s]
epoch 128 | loss 1.58367121219635, f_iou 0.7214308977127075: 99%|████████████████████████████████████▌| 73/74 [01:01<00:00, 1.27it/s]
epoch 128 | loss 0.7354282736778259, f_iou 0.7198245525360107: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.27it/s]
epoch 128 | loss 0.7354282736778259, f_iou 0.7198245525360107: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.30it/s]
epoch 128 | loss 0.7354282736778259, f_iou 0.7198245525360107: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.19it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 128 | valid.f_iou 0.7378600239753723, valid.f_f-score 0.83551: 0%| | 0/16 [00:05, ?it/s]
epoch 128 | valid.f_iou 0.7378600239753723, valid.f_f-score 0.83551: 6%|█▉ | 1/16 [00:05<01:20, 5.39s/it]
epoch 128 | valid.f_iou 0.7226200103759766, valid.f_f-score 0.87647: 6%|█▉ | 1/16 [00:05<01:20, 5.39s/it]
epoch 128 | valid.f_iou 0.7226200103759766, valid.f_f-score 0.87647: 12%|███▊ | 2/16 [00:05<00:34, 2.48s/it]
epoch 128 | valid.f_iou 0.582889974117279, valid.f_f-score 0.7831: 12%|████ | 2/16 [00:06<00:34, 2.48s/it]
epoch 128 | valid.f_iou 0.582889974117279, valid.f_f-score 0.7831: 19%|██████ | 3/16 [00:06<00:20, 1.57s/it]
epoch 128 | valid.f_iou 0.6080099940299988, valid.f_f-score 0.75678: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 128 | valid.f_iou 0.6080099940299988, valid.f_f-score 0.75678: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 128 | valid.f_iou 0.621969997882843, valid.f_f-score 0.76893: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 128 | valid.f_iou 0.621969997882843, valid.f_f-score 0.76893: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 128 | valid.f_iou 0.5783399939537048, valid.f_f-score 0.7284: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 128 | valid.f_iou 0.5783399939537048, valid.f_f-score 0.7284: 38%|███████████▋ | 6/16 [00:07<00:07, 1.37it/s]
epoch 128 | valid.f_iou 0.6026600003242493, valid.f_f-score 0.75288: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 128 | valid.f_iou 0.6026600003242493, valid.f_f-score 0.75288: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 128 | valid.f_iou 0.5761299729347229, valid.f_f-score 0.7392: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.63it/s]
epoch 128 | valid.f_iou 0.5761299729347229, valid.f_f-score 0.7392: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 128 | valid.f_iou 0.5927199721336365, valid.f_f-score 0.7478: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.83it/s]
epoch 128 | valid.f_iou 0.5927199721336365, valid.f_f-score 0.7478: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.05it/s]
epoch 128 | valid.f_iou 0.5845699906349182, valid.f_f-score 0.74772: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.05it/s]
epoch 128 | valid.f_iou 0.5845699906349182, valid.f_f-score 0.74772: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.22it/s]
epoch 128 | valid.f_iou 0.5853000283241272, valid.f_f-score 0.74536: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.22it/s]
epoch 128 | valid.f_iou 0.5853000283241272, valid.f_f-score 0.74536: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.35it/s]
epoch 128 | valid.f_iou 0.6072400212287903, valid.f_f-score 0.76082: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.35it/s]
epoch 128 | valid.f_iou 0.6072400212287903, valid.f_f-score 0.76082: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.45it/s]
epoch 128 | valid.f_iou 0.6183300018310547, valid.f_f-score 0.7677: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.45it/s]
epoch 128 | valid.f_iou 0.6183300018310547, valid.f_f-score 0.7677: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.52it/s]
epoch 128 | valid.f_iou 0.6128900051116943, valid.f_f-score 0.763: 81%|█████████████████████████▏ | 13/16 [00:10<00:01, 2.52it/s]
epoch 128 | valid.f_iou 0.6128900051116943, valid.f_f-score 0.763: 88%|███████████████████████████▏ | 14/16 [00:10<00:00, 2.57it/s]
epoch 128 | valid.f_iou 0.6171600222587585, valid.f_f-score 0.76273: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.57it/s]
epoch 128 | valid.f_iou 0.6171600222587585, valid.f_f-score 0.76273: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.61it/s]
epoch 128 | valid.f_iou 0.6158599853515625, valid.f_f-score 0.75868: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.61it/s]
epoch 128 | valid.f_iou 0.6158599853515625, valid.f_f-score 0.75868: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 128 | valid.f_iou 0.6158599853515625, valid.f_f-score 0.75868: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 128 | valid.f_iou 0.8164399862289429, valid.f_f-score 0.84592: 0%| | 0/16 [00:05, ?it/s]
epoch 128 | valid.f_iou 0.8164399862289429, valid.f_f-score 0.84592: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 128 | valid.f_iou 0.8417500257492065, valid.f_f-score 0.89232: 6%|█▉ | 1/16 [00:05<01:21, 5.42s/it]
epoch 128 | valid.f_iou 0.8417500257492065, valid.f_f-score 0.89232: 12%|███▊ | 2/16 [00:05<00:34, 2.49s/it]
epoch 128 | valid.f_iou 0.7834799885749817, valid.f_f-score 0.8705: 12%|███▉ | 2/16 [00:06<00:34, 2.49s/it]
epoch 128 | valid.f_iou 0.7834799885749817, valid.f_f-score 0.8705: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 128 | valid.f_iou 0.7741900086402893, valid.f_f-score 0.83756: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 128 | valid.f_iou 0.7741900086402893, valid.f_f-score 0.83756: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 128 | valid.f_iou 0.7449700236320496, valid.f_f-score 0.83178: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 128 | valid.f_iou 0.7449700236320496, valid.f_f-score 0.83178: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 128 | valid.f_iou 0.7314199805259705, valid.f_f-score 0.82022: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 128 | valid.f_iou 0.7314199805259705, valid.f_f-score 0.82022: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 128 | valid.f_iou 0.7461199760437012, valid.f_f-score 0.83725: 38%|███████████▎ | 6/16 [00:08<00:07, 1.38it/s]
epoch 128 | valid.f_iou 0.7461199760437012, valid.f_f-score 0.83725: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 128 | valid.f_iou 0.7357900142669678, valid.f_f-score 0.83548: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.63it/s]
epoch 128 | valid.f_iou 0.7357900142669678, valid.f_f-score 0.83548: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 128 | valid.f_iou 0.7368999719619751, valid.f_f-score 0.83563: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 128 | valid.f_iou 0.7368999719619751, valid.f_f-score 0.83563: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.01it/s]
epoch 128 | valid.f_iou 0.7446699738502502, valid.f_f-score 0.8441: 56%|█████████████████▍ | 9/16 [00:09<00:03, 2.01it/s]
epoch 128 | valid.f_iou 0.7446699738502502, valid.f_f-score 0.8441: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.08it/s]
epoch 128 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.81747: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 128 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.81747: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.13it/s]
epoch 128 | valid.f_iou 0.7370100021362305, valid.f_f-score 0.82714: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.13it/s]
epoch 128 | valid.f_iou 0.7370100021362305, valid.f_f-score 0.82714: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.28it/s]
epoch 128 | valid.f_iou 0.7474700212478638, valid.f_f-score 0.83428: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.28it/s]
epoch 128 | valid.f_iou 0.7474700212478638, valid.f_f-score 0.83428: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 128 | valid.f_iou 0.7412599921226501, valid.f_f-score 0.8302: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.40it/s]
epoch 128 | valid.f_iou 0.7412599921226501, valid.f_f-score 0.8302: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.46it/s]
epoch 128 | valid.f_iou 0.7483100295066833, valid.f_f-score 0.83788: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 128 | valid.f_iou 0.7483100295066833, valid.f_f-score 0.83788: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 128 | valid.f_iou 0.7475000023841858, valid.f_f-score 0.8364: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 128 | valid.f_iou 0.7475000023841858, valid.f_f-score 0.8364: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 128 | valid.f_iou 0.7475000023841858, valid.f_f-score 0.8364: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 128 | valid.f_iou 0.7684599757194519, valid.f_f-score 0.81588: 0%| | 0/16 [00:05, ?it/s]
epoch 128 | valid.f_iou 0.7684599757194519, valid.f_f-score 0.81588: 6%|█▉ | 1/16 [00:05<01:19, 5.33s/it]
epoch 128 | valid.f_iou 0.8177599906921387, valid.f_f-score 0.8773: 6%|█▉ | 1/16 [00:05<01:19, 5.33s/it]
epoch 128 | valid.f_iou 0.8177599906921387, valid.f_f-score 0.8773: 12%|███▉ | 2/16 [00:05<00:34, 2.46s/it]
epoch 128 | valid.f_iou 0.767490029335022, valid.f_f-score 0.86049: 12%|███▉ | 2/16 [00:06<00:34, 2.46s/it]
epoch 128 | valid.f_iou 0.767490029335022, valid.f_f-score 0.86049: 19%|█████▊ | 3/16 [00:06<00:20, 1.54s/it]
epoch 128 | valid.f_iou 0.7565699815750122, valid.f_f-score 0.81973: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 128 | valid.f_iou 0.7565699815750122, valid.f_f-score 0.81973: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 128 | valid.f_iou 0.7394099831581116, valid.f_f-score 0.81752: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 128 | valid.f_iou 0.7394099831581116, valid.f_f-score 0.81752: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 128 | valid.f_iou 0.7267799973487854, valid.f_f-score 0.80834: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 128 | valid.f_iou 0.7267799973487854, valid.f_f-score 0.80834: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 128 | valid.f_iou 0.7438899874687195, valid.f_f-score 0.82706: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 128 | valid.f_iou 0.7438899874687195, valid.f_f-score 0.82706: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.59it/s]
epoch 128 | valid.f_iou 0.7338500022888184, valid.f_f-score 0.82656: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 128 | valid.f_iou 0.7338500022888184, valid.f_f-score 0.82656: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 128 | valid.f_iou 0.7390499711036682, valid.f_f-score 0.82771: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 128 | valid.f_iou 0.7390499711036682, valid.f_f-score 0.82771: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.98it/s]
epoch 128 | valid.f_iou 0.7434499859809875, valid.f_f-score 0.83343: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.98it/s]
epoch 128 | valid.f_iou 0.7434499859809875, valid.f_f-score 0.83343: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.15it/s]
epoch 128 | valid.f_iou 0.7239900231361389, valid.f_f-score 0.80777: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.15it/s]
epoch 128 | valid.f_iou 0.7239900231361389, valid.f_f-score 0.80777: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.30it/s]
epoch 128 | valid.f_iou 0.7360000014305115, valid.f_f-score 0.81825: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.30it/s]
epoch 128 | valid.f_iou 0.7360000014305115, valid.f_f-score 0.81825: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.41it/s]
epoch 128 | valid.f_iou 0.7464600205421448, valid.f_f-score 0.82714: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 128 | valid.f_iou 0.7464600205421448, valid.f_f-score 0.82714: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 128 | valid.f_iou 0.7403200268745422, valid.f_f-score 0.82358: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 128 | valid.f_iou 0.7403200268745422, valid.f_f-score 0.82358: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.57it/s]
epoch 128 | valid.f_iou 0.7474300265312195, valid.f_f-score 0.8317: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.57it/s]
epoch 128 | valid.f_iou 0.7474300265312195, valid.f_f-score 0.8317: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.62it/s]
epoch 128 | valid.f_iou 0.7471500039100647, valid.f_f-score 0.8306: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 128 | valid.f_iou 0.7471500039100647, valid.f_f-score 0.8306: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 128 | valid.f_iou 0.7471500039100647, valid.f_f-score 0.8306: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 129 | loss 0.3586418926715851, f_iou 0.14205466210842133: 0%| | 0/74 [00:06, ?it/s]
epoch 129 | loss 0.3586418926715851, f_iou 0.14205466210842133: 1%|▍ | 1/74 [00:06<08:13, 6.76s/it]
epoch 129 | loss 0.5381762981414795, f_iou 0.5321621894836426: 1%|▍ | 1/74 [00:07<08:13, 6.76s/it]
epoch 129 | loss 0.5381762981414795, f_iou 0.5321621894836426: 3%|▉ | 2/74 [00:07<03:58, 3.31s/it]
epoch 129 | loss 1.188423991203308, f_iou 0.6346961855888367: 3%|█ | 2/74 [00:08<03:58, 3.31s/it]
epoch 129 | loss 1.188423991203308, f_iou 0.6346961855888367: 4%|█▌ | 3/74 [00:08<02:34, 2.17s/it]
epoch 129 | loss 0.9583636522293091, f_iou 0.6921043395996094: 4%|█▍ | 3/74 [00:09<02:34, 2.17s/it]
epoch 129 | loss 0.9583636522293091, f_iou 0.6921043395996094: 5%|█▉ | 4/74 [00:09<01:54, 1.63s/it]
epoch 129 | loss 1.1593223810195923, f_iou 0.607644259929657: 5%|██ | 4/74 [00:10<01:54, 1.63s/it]
epoch 129 | loss 1.1593223810195923, f_iou 0.607644259929657: 7%|██▌ | 5/74 [00:10<01:32, 1.34s/it]
epoch 129 | loss 0.7315031290054321, f_iou 0.6236611604690552: 7%|██▍ | 5/74 [00:10<01:32, 1.34s/it]
epoch 129 | loss 0.7315031290054321, f_iou 0.6236611604690552: 8%|██▉ | 6/74 [00:10<01:18, 1.15s/it]
epoch 129 | loss 0.5107361078262329, f_iou 0.5807172656059265: 8%|██▉ | 6/74 [00:11<01:18, 1.15s/it]
epoch 129 | loss 0.5107361078262329, f_iou 0.5807172656059265: 9%|███▍ | 7/74 [00:11<01:10, 1.05s/it]
epoch 129 | loss 0.7389716506004333, f_iou 0.5460887551307678: 9%|███▍ | 7/74 [00:12<01:10, 1.05s/it]
epoch 129 | loss 0.7389716506004333, f_iou 0.5460887551307678: 11%|███▉ | 8/74 [00:12<01:03, 1.03it/s]
epoch 129 | loss 0.6629465222358704, f_iou 0.5902450680732727: 11%|███▉ | 8/74 [00:13<01:03, 1.03it/s]
epoch 129 | loss 0.6629465222358704, f_iou 0.5902450680732727: 12%|████▍ | 9/74 [00:13<00:59, 1.09it/s]
epoch 129 | loss 1.1709344387054443, f_iou 0.6028904318809509: 12%|████▍ | 9/74 [00:14<00:59, 1.09it/s]
epoch 129 | loss 1.1709344387054443, f_iou 0.6028904318809509: 14%|████▋ | 10/74 [00:14<00:56, 1.14it/s]
epoch 129 | loss 0.8514760136604309, f_iou 0.6348079442977905: 14%|████▋ | 10/74 [00:14<00:56, 1.14it/s]
epoch 129 | loss 0.8514760136604309, f_iou 0.6348079442977905: 15%|█████▏ | 11/74 [00:14<00:53, 1.17it/s]
epoch 129 | loss 0.8248023986816406, f_iou 0.6262101531028748: 15%|█████▏ | 11/74 [00:15<00:53, 1.17it/s]
epoch 129 | loss 0.8248023986816406, f_iou 0.6262101531028748: 16%|█████▋ | 12/74 [00:15<00:51, 1.20it/s]
epoch 129 | loss 1.0440843105316162, f_iou 0.634864330291748: 16%|█████▊ | 12/74 [00:16<00:51, 1.20it/s]
epoch 129 | loss 1.0440843105316162, f_iou 0.634864330291748: 18%|██████▎ | 13/74 [00:16<00:49, 1.22it/s]
epoch 129 | loss 0.7944589257240295, f_iou 0.6532110571861267: 18%|██████▏ | 13/74 [00:17<00:49, 1.22it/s]
epoch 129 | loss 0.7944589257240295, f_iou 0.6532110571861267: 19%|██████▌ | 14/74 [00:17<00:48, 1.23it/s]
epoch 129 | loss 1.1555838584899902, f_iou 0.6582418084144592: 19%|██████▌ | 14/74 [00:18<00:48, 1.23it/s]
epoch 129 | loss 1.1555838584899902, f_iou 0.6582418084144592: 20%|███████ | 15/74 [00:18<00:47, 1.25it/s]
epoch 129 | loss 2.154783248901367, f_iou 0.640148937702179: 20%|███████▌ | 15/74 [00:18<00:47, 1.25it/s]
epoch 129 | loss 2.154783248901367, f_iou 0.640148937702179: 22%|████████ | 16/74 [00:18<00:46, 1.25it/s]
epoch 129 | loss 0.5205478668212891, f_iou 0.656891942024231: 22%|███████▊ | 16/74 [00:19<00:46, 1.25it/s]
epoch 129 | loss 0.5205478668212891, f_iou 0.656891942024231: 23%|████████▎ | 17/74 [00:19<00:45, 1.26it/s]
epoch 129 | loss 1.127743124961853, f_iou 0.6686265468597412: 23%|████████▎ | 17/74 [00:20<00:45, 1.26it/s]
epoch 129 | loss 1.127743124961853, f_iou 0.6686265468597412: 24%|████████▊ | 18/74 [00:20<00:44, 1.27it/s]
epoch 129 | loss 0.611285388469696, f_iou 0.6825796365737915: 24%|████████▊ | 18/74 [00:21<00:44, 1.27it/s]
epoch 129 | loss 0.611285388469696, f_iou 0.6825796365737915: 26%|█████████▏ | 19/74 [00:21<00:42, 1.29it/s]
epoch 129 | loss 0.8394004702568054, f_iou 0.6909779906272888: 26%|████████▉ | 19/74 [00:21<00:42, 1.29it/s]
epoch 129 | loss 0.8394004702568054, f_iou 0.6909779906272888: 27%|█████████▍ | 20/74 [00:21<00:41, 1.30it/s]
epoch 129 | loss 1.4981399774551392, f_iou 0.6869368553161621: 27%|█████████▍ | 20/74 [00:22<00:41, 1.30it/s]
epoch 129 | loss 1.4981399774551392, f_iou 0.6869368553161621: 28%|█████████▉ | 21/74 [00:22<00:40, 1.30it/s]
epoch 129 | loss 2.0785329341888428, f_iou 0.6873816251754761: 28%|█████████▉ | 21/74 [00:23<00:40, 1.30it/s]
epoch 129 | loss 2.0785329341888428, f_iou 0.6873816251754761: 30%|██████████▍ | 22/74 [00:23<00:40, 1.29it/s]
epoch 129 | loss 0.5711061358451843, f_iou 0.6995062828063965: 30%|██████████▍ | 22/74 [00:24<00:40, 1.29it/s]
epoch 129 | loss 0.5711061358451843, f_iou 0.6995062828063965: 31%|██████████▉ | 23/74 [00:24<00:39, 1.30it/s]
epoch 129 | loss 2.2035140991210938, f_iou 0.6987955570220947: 31%|██████████▉ | 23/74 [00:25<00:39, 1.30it/s]
epoch 129 | loss 2.2035140991210938, f_iou 0.6987955570220947: 32%|███████████▎ | 24/74 [00:25<00:38, 1.29it/s]
epoch 129 | loss 1.1416723728179932, f_iou 0.701911211013794: 32%|███████████▋ | 24/74 [00:25<00:38, 1.29it/s]
epoch 129 | loss 1.1416723728179932, f_iou 0.701911211013794: 34%|████████████▏ | 25/74 [00:25<00:37, 1.31it/s]
epoch 129 | loss 0.4792594909667969, f_iou 0.6749146580696106: 34%|███████████▊ | 25/74 [00:26<00:37, 1.31it/s]
epoch 129 | loss 0.4792594909667969, f_iou 0.6749146580696106: 35%|████████████▎ | 26/74 [00:26<00:36, 1.33it/s]
epoch 129 | loss 0.9820324778556824, f_iou 0.6822535991668701: 35%|████████████▎ | 26/74 [00:27<00:36, 1.33it/s]
epoch 129 | loss 0.9820324778556824, f_iou 0.6822535991668701: 36%|████████████▊ | 27/74 [00:27<00:34, 1.34it/s]
epoch 129 | loss 1.3090471029281616, f_iou 0.679066002368927: 36%|█████████████▏ | 27/74 [00:27<00:34, 1.34it/s]
epoch 129 | loss 1.3090471029281616, f_iou 0.679066002368927: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.36it/s]
epoch 129 | loss 0.3949298858642578, f_iou 0.6813412308692932: 38%|█████████████▏ | 28/74 [00:28<00:33, 1.36it/s]
epoch 129 | loss 0.3949298858642578, f_iou 0.6813412308692932: 39%|█████████████▋ | 29/74 [00:28<00:33, 1.33it/s]
epoch 129 | loss 1.297407865524292, f_iou 0.6798710227012634: 39%|██████████████ | 29/74 [00:29<00:33, 1.33it/s]
epoch 129 | loss 1.297407865524292, f_iou 0.6798710227012634: 41%|██████████████▌ | 30/74 [00:29<00:33, 1.33it/s]
epoch 129 | loss 0.21172308921813965, f_iou 0.6801979541778564: 41%|█████████████▊ | 30/74 [00:30<00:33, 1.33it/s]
epoch 129 | loss 0.21172308921813965, f_iou 0.6801979541778564: 42%|██████████████▏ | 31/74 [00:30<00:32, 1.32it/s]
epoch 129 | loss 0.29781410098075867, f_iou 0.6889660358428955: 42%|██████████████▏ | 31/74 [00:30<00:32, 1.32it/s]
epoch 129 | loss 0.29781410098075867, f_iou 0.6889660358428955: 43%|██████████████▋ | 32/74 [00:30<00:31, 1.32it/s]
epoch 129 | loss 0.9125992655754089, f_iou 0.6947059035301208: 43%|███████████████▏ | 32/74 [00:31<00:31, 1.32it/s]
epoch 129 | loss 0.9125992655754089, f_iou 0.6947059035301208: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.34it/s]
epoch 129 | loss 0.499866247177124, f_iou 0.6974614858627319: 45%|████████████████ | 33/74 [00:32<00:30, 1.34it/s]
epoch 129 | loss 0.499866247177124, f_iou 0.6974614858627319: 46%|████████████████▌ | 34/74 [00:32<00:29, 1.34it/s]
epoch 129 | loss 0.7735074758529663, f_iou 0.6953149437904358: 46%|████████████████ | 34/74 [00:33<00:29, 1.34it/s]
epoch 129 | loss 0.7735074758529663, f_iou 0.6953149437904358: 47%|████████████████▌ | 35/74 [00:33<00:29, 1.34it/s]
epoch 129 | loss 0.9999446272850037, f_iou 0.6972261667251587: 47%|████████████████▌ | 35/74 [00:33<00:29, 1.34it/s]
epoch 129 | loss 0.9999446272850037, f_iou 0.6972261667251587: 49%|█████████████████ | 36/74 [00:33<00:28, 1.35it/s]
epoch 129 | loss 1.3233041763305664, f_iou 0.6978345513343811: 49%|█████████████████ | 36/74 [00:34<00:28, 1.35it/s]
epoch 129 | loss 1.3233041763305664, f_iou 0.6978345513343811: 50%|█████████████████▌ | 37/74 [00:34<00:27, 1.33it/s]
epoch 129 | loss 0.855486273765564, f_iou 0.698316752910614: 50%|██████████████████▌ | 37/74 [00:35<00:27, 1.33it/s]
epoch 129 | loss 0.855486273765564, f_iou 0.698316752910614: 51%|███████████████████ | 38/74 [00:35<00:27, 1.32it/s]
epoch 129 | loss 0.8733781576156616, f_iou 0.7031255960464478: 51%|█████████████████▉ | 38/74 [00:36<00:27, 1.32it/s]
epoch 129 | loss 0.8733781576156616, f_iou 0.7031255960464478: 53%|██████████████████▍ | 39/74 [00:36<00:27, 1.29it/s]
epoch 129 | loss 0.598594605922699, f_iou 0.7088913917541504: 53%|██████████████████▉ | 39/74 [00:37<00:27, 1.29it/s]
epoch 129 | loss 0.598594605922699, f_iou 0.7088913917541504: 54%|███████████████████▍ | 40/74 [00:37<00:26, 1.27it/s]
epoch 129 | loss 0.4302988052368164, f_iou 0.7125612497329712: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.27it/s]
epoch 129 | loss 0.4302988052368164, f_iou 0.7125612497329712: 55%|███████████████████▍ | 41/74 [00:37<00:26, 1.26it/s]
epoch 129 | loss 1.6197388172149658, f_iou 0.7165728807449341: 55%|███████████████████▍ | 41/74 [00:38<00:26, 1.26it/s]
epoch 129 | loss 1.6197388172149658, f_iou 0.7165728807449341: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.28it/s]
epoch 129 | loss 0.6297763586044312, f_iou 0.7208030819892883: 57%|███████████████████▊ | 42/74 [00:39<00:24, 1.28it/s]
epoch 129 | loss 0.6297763586044312, f_iou 0.7208030819892883: 58%|████████████████████▎ | 43/74 [00:39<00:23, 1.31it/s]
epoch 129 | loss 0.854752779006958, f_iou 0.7177481651306152: 58%|████████████████████▉ | 43/74 [00:40<00:23, 1.31it/s]
epoch 129 | loss 0.854752779006958, f_iou 0.7177481651306152: 59%|█████████████████████▍ | 44/74 [00:40<00:22, 1.31it/s]
epoch 129 | loss 0.5636964440345764, f_iou 0.7218015789985657: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.31it/s]
epoch 129 | loss 0.5636964440345764, f_iou 0.7218015789985657: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.33it/s]
epoch 129 | loss 0.463251531124115, f_iou 0.7246667146682739: 61%|█████████████████████▉ | 45/74 [00:41<00:21, 1.33it/s]
epoch 129 | loss 0.463251531124115, f_iou 0.7246667146682739: 62%|██████████████████████▍ | 46/74 [00:41<00:20, 1.33it/s]
epoch 129 | loss 0.8464597463607788, f_iou 0.728266179561615: 62%|██████████████████████▍ | 46/74 [00:42<00:20, 1.33it/s]
epoch 129 | loss 0.8464597463607788, f_iou 0.728266179561615: 64%|██████████████████████▊ | 47/74 [00:42<00:20, 1.34it/s]
epoch 129 | loss 0.44467371702194214, f_iou 0.7191518545150757: 64%|█████████████████████▌ | 47/74 [00:43<00:20, 1.34it/s]
epoch 129 | loss 0.44467371702194214, f_iou 0.7191518545150757: 65%|██████████████████████ | 48/74 [00:43<00:19, 1.35it/s]
epoch 129 | loss 0.6362781524658203, f_iou 0.7215004563331604: 65%|██████████████████████▋ | 48/74 [00:43<00:19, 1.35it/s]
epoch 129 | loss 0.6362781524658203, f_iou 0.7215004563331604: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.32it/s]
epoch 129 | loss 1.526502013206482, f_iou 0.7206125259399414: 66%|███████████████████████▊ | 49/74 [00:44<00:18, 1.32it/s]
epoch 129 | loss 1.526502013206482, f_iou 0.7206125259399414: 68%|████████████████████████▎ | 50/74 [00:44<00:18, 1.30it/s]
epoch 129 | loss 0.7668753266334534, f_iou 0.7210464477539062: 68%|███████████████████████▋ | 50/74 [00:45<00:18, 1.30it/s]
epoch 129 | loss 0.7668753266334534, f_iou 0.7210464477539062: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.29it/s]
epoch 129 | loss 0.0, f_iou 0.726314127445221: 69%|███████████████████████████████████▏ | 51/74 [00:46<00:17, 1.29it/s]
epoch 129 | loss 0.0, f_iou 0.726314127445221: 70%|███████████████████████████████████▊ | 52/74 [00:46<00:17, 1.28it/s]
epoch 129 | loss 0.3082435727119446, f_iou 0.7311146259307861: 70%|████████████████████████▌ | 52/74 [00:47<00:17, 1.28it/s]
epoch 129 | loss 0.3082435727119446, f_iou 0.7311146259307861: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.28it/s]
epoch 129 | loss 0.4919629991054535, f_iou 0.7354145646095276: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.28it/s]
epoch 129 | loss 0.4919629991054535, f_iou 0.7354145646095276: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.30it/s]
epoch 129 | loss 0.6703823208808899, f_iou 0.7280470728874207: 73%|█████████████████████████▌ | 54/74 [00:48<00:15, 1.30it/s]
epoch 129 | loss 0.6703823208808899, f_iou 0.7280470728874207: 74%|██████████████████████████ | 55/74 [00:48<00:14, 1.32it/s]
epoch 129 | loss 1.0172641277313232, f_iou 0.7300668358802795: 74%|██████████████████████████ | 55/74 [00:49<00:14, 1.32it/s]
epoch 129 | loss 1.0172641277313232, f_iou 0.7300668358802795: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.34it/s]
epoch 129 | loss 0.9184117317199707, f_iou 0.7318260073661804: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.34it/s]
epoch 129 | loss 0.9184117317199707, f_iou 0.7318260073661804: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.34it/s]
epoch 129 | loss 0.5709173679351807, f_iou 0.734566867351532: 77%|███████████████████████████▋ | 57/74 [00:50<00:12, 1.34it/s]
epoch 129 | loss 0.5709173679351807, f_iou 0.734566867351532: 78%|████████████████████████████▏ | 58/74 [00:50<00:11, 1.34it/s]
epoch 129 | loss 0.6868070363998413, f_iou 0.7356852889060974: 78%|███████████████████████████▍ | 58/74 [00:51<00:11, 1.34it/s]
epoch 129 | loss 0.6868070363998413, f_iou 0.7356852889060974: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.34it/s]
epoch 129 | loss 0.6922569274902344, f_iou 0.7374780774116516: 80%|███████████████████████████▉ | 59/74 [00:52<00:11, 1.34it/s]
epoch 129 | loss 0.6922569274902344, f_iou 0.7374780774116516: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.34it/s]
epoch 129 | loss 1.3060154914855957, f_iou 0.7367694973945618: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.34it/s]
epoch 129 | loss 1.3060154914855957, f_iou 0.7367694973945618: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.35it/s]
epoch 129 | loss 0.4001821279525757, f_iou 0.7328086495399475: 82%|████████████████████████████▊ | 61/74 [00:53<00:09, 1.35it/s]
epoch 129 | loss 0.4001821279525757, f_iou 0.7328086495399475: 84%|█████████████████████████████▎ | 62/74 [00:53<00:08, 1.35it/s]
epoch 129 | loss 0.4158352017402649, f_iou 0.7365447282791138: 84%|█████████████████████████████▎ | 62/74 [00:54<00:08, 1.35it/s]
epoch 129 | loss 0.4158352017402649, f_iou 0.7365447282791138: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.34it/s]
epoch 129 | loss 2.203457832336426, f_iou 0.7347171306610107: 85%|██████████████████████████████▋ | 63/74 [00:55<00:08, 1.34it/s]
epoch 129 | loss 2.203457832336426, f_iou 0.7347171306610107: 86%|███████████████████████████████▏ | 64/74 [00:55<00:07, 1.32it/s]
epoch 129 | loss 0.7733893394470215, f_iou 0.736739993095398: 86%|███████████████████████████████▏ | 64/74 [00:56<00:07, 1.32it/s]
epoch 129 | loss 0.7733893394470215, f_iou 0.736739993095398: 88%|███████████████████████████████▌ | 65/74 [00:56<00:06, 1.30it/s]
epoch 129 | loss 0.3449896574020386, f_iou 0.7402772307395935: 88%|██████████████████████████████▋ | 65/74 [00:56<00:06, 1.30it/s]
epoch 129 | loss 0.3449896574020386, f_iou 0.7402772307395935: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.29it/s]
epoch 129 | loss 1.221456527709961, f_iou 0.7363293766975403: 89%|████████████████████████████████ | 66/74 [00:57<00:06, 1.29it/s]
epoch 129 | loss 1.221456527709961, f_iou 0.7363293766975403: 91%|████████████████████████████████▌ | 67/74 [00:57<00:05, 1.29it/s]
epoch 129 | loss 1.082139492034912, f_iou 0.7317523956298828: 91%|████████████████████████████████▌ | 67/74 [00:58<00:05, 1.29it/s]
epoch 129 | loss 1.082139492034912, f_iou 0.7317523956298828: 92%|█████████████████████████████████ | 68/74 [00:58<00:04, 1.29it/s]
epoch 129 | loss 0.7407354712486267, f_iou 0.7292194962501526: 92%|████████████████████████████████▏ | 68/74 [00:59<00:04, 1.29it/s]
epoch 129 | loss 0.7407354712486267, f_iou 0.7292194962501526: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.32it/s]
epoch 129 | loss 0.7488952279090881, f_iou 0.7283483147621155: 93%|████████████████████████████████▋ | 69/74 [00:59<00:03, 1.32it/s]
epoch 129 | loss 0.7488952279090881, f_iou 0.7283483147621155: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.34it/s]
epoch 129 | loss 1.12024986743927, f_iou 0.7290076613426208: 95%|███████████████████████████████████ | 70/74 [01:00<00:02, 1.34it/s]
epoch 129 | loss 1.12024986743927, f_iou 0.7290076613426208: 96%|███████████████████████████████████▌ | 71/74 [01:00<00:02, 1.37it/s]
epoch 129 | loss 0.8452960252761841, f_iou 0.7307349443435669: 96%|█████████████████████████████████▌ | 71/74 [01:01<00:02, 1.37it/s]
epoch 129 | loss 0.8452960252761841, f_iou 0.7307349443435669: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.37it/s]
epoch 129 | loss 0.6874502301216125, f_iou 0.7339577078819275: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.37it/s]
epoch 129 | loss 0.6874502301216125, f_iou 0.7339577078819275: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.38it/s]
epoch 129 | loss 0.8689378499984741, f_iou 0.7324979901313782: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.38it/s]
epoch 129 | loss 0.8689378499984741, f_iou 0.7324979901313782: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.38it/s]
epoch 129 | loss 0.8689378499984741, f_iou 0.7324979901313782: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.18it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 129 | valid.f_iou 0.7412700057029724, valid.f_f-score 0.83325: 0%| | 0/16 [00:05, ?it/s]
epoch 129 | valid.f_iou 0.7412700057029724, valid.f_f-score 0.83325: 6%|█▉ | 1/16 [00:05<01:24, 5.63s/it]
epoch 129 | valid.f_iou 0.7186400294303894, valid.f_f-score 0.87249: 6%|█▉ | 1/16 [00:06<01:24, 5.63s/it]
epoch 129 | valid.f_iou 0.7186400294303894, valid.f_f-score 0.87249: 12%|███▊ | 2/16 [00:06<00:36, 2.59s/it]
epoch 129 | valid.f_iou 0.581059992313385, valid.f_f-score 0.77757: 12%|███▉ | 2/16 [00:06<00:36, 2.59s/it]
epoch 129 | valid.f_iou 0.581059992313385, valid.f_f-score 0.77757: 19%|█████▊ | 3/16 [00:06<00:20, 1.61s/it]
epoch 129 | valid.f_iou 0.6064299941062927, valid.f_f-score 0.76009: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 129 | valid.f_iou 0.6064299941062927, valid.f_f-score 0.76009: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 129 | valid.f_iou 0.621999979019165, valid.f_f-score 0.77155: 25%|███████▊ | 4/16 [00:07<00:13, 1.15s/it]
epoch 129 | valid.f_iou 0.621999979019165, valid.f_f-score 0.77155: 31%|█████████▋ | 5/16 [00:07<00:09, 1.11it/s]
epoch 129 | valid.f_iou 0.5785800218582153, valid.f_f-score 0.73031: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 129 | valid.f_iou 0.5785800218582153, valid.f_f-score 0.73031: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 129 | valid.f_iou 0.6040999889373779, valid.f_f-score 0.7509: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 129 | valid.f_iou 0.6040999889373779, valid.f_f-score 0.7509: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 129 | valid.f_iou 0.5740900039672852, valid.f_f-score 0.7371: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 129 | valid.f_iou 0.5740900039672852, valid.f_f-score 0.7371: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 129 | valid.f_iou 0.5920500159263611, valid.f_f-score 0.74577: 50%|███████████████ | 8/16 [00:09<00:04, 1.76it/s]
epoch 129 | valid.f_iou 0.5920500159263611, valid.f_f-score 0.74577: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.96it/s]
epoch 129 | valid.f_iou 0.5842199921607971, valid.f_f-score 0.74598: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.96it/s]
epoch 129 | valid.f_iou 0.5842199921607971, valid.f_f-score 0.74598: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 129 | valid.f_iou 0.5847700238227844, valid.f_f-score 0.74357: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 129 | valid.f_iou 0.5847700238227844, valid.f_f-score 0.74357: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.09it/s]
epoch 129 | valid.f_iou 0.6070600152015686, valid.f_f-score 0.75921: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.09it/s]
epoch 129 | valid.f_iou 0.6070600152015686, valid.f_f-score 0.75921: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.25it/s]
epoch 129 | valid.f_iou 0.6174499988555908, valid.f_f-score 0.76604: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.25it/s]
epoch 129 | valid.f_iou 0.6174499988555908, valid.f_f-score 0.76604: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.38it/s]
epoch 129 | valid.f_iou 0.6114699840545654, valid.f_f-score 0.76104: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.38it/s]
epoch 129 | valid.f_iou 0.6114699840545654, valid.f_f-score 0.76104: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 129 | valid.f_iou 0.6169000267982483, valid.f_f-score 0.76083: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 129 | valid.f_iou 0.6169000267982483, valid.f_f-score 0.76083: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.53it/s]
epoch 129 | valid.f_iou 0.6156100034713745, valid.f_f-score 0.75609: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.53it/s]
epoch 129 | valid.f_iou 0.6156100034713745, valid.f_f-score 0.75609: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 129 | valid.f_iou 0.6156100034713745, valid.f_f-score 0.75609: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 129 | valid.f_iou 0.8143200278282166, valid.f_f-score 0.84091: 0%| | 0/16 [00:05, ?it/s]
epoch 129 | valid.f_iou 0.8143200278282166, valid.f_f-score 0.84091: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 129 | valid.f_iou 0.8414199948310852, valid.f_f-score 0.88976: 6%|█▉ | 1/16 [00:05<01:20, 5.37s/it]
epoch 129 | valid.f_iou 0.8414199948310852, valid.f_f-score 0.88976: 12%|███▊ | 2/16 [00:05<00:34, 2.48s/it]
epoch 129 | valid.f_iou 0.7842599749565125, valid.f_f-score 0.86939: 12%|███▊ | 2/16 [00:06<00:34, 2.48s/it]
epoch 129 | valid.f_iou 0.7842599749565125, valid.f_f-score 0.86939: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 129 | valid.f_iou 0.7762899994850159, valid.f_f-score 0.83879: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 129 | valid.f_iou 0.7762899994850159, valid.f_f-score 0.83879: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 129 | valid.f_iou 0.7442700266838074, valid.f_f-score 0.83088: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 129 | valid.f_iou 0.7442700266838074, valid.f_f-score 0.83088: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 129 | valid.f_iou 0.7302700281143188, valid.f_f-score 0.81951: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 129 | valid.f_iou 0.7302700281143188, valid.f_f-score 0.81951: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 129 | valid.f_iou 0.7455599904060364, valid.f_f-score 0.83675: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 129 | valid.f_iou 0.7455599904060364, valid.f_f-score 0.83675: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 129 | valid.f_iou 0.7371299862861633, valid.f_f-score 0.83569: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 129 | valid.f_iou 0.7371299862861633, valid.f_f-score 0.83569: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 129 | valid.f_iou 0.7397300004959106, valid.f_f-score 0.83555: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 129 | valid.f_iou 0.7397300004959106, valid.f_f-score 0.83555: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.87it/s]
epoch 129 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.84406: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.87it/s]
epoch 129 | valid.f_iou 0.7470200061798096, valid.f_f-score 0.84406: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 129 | valid.f_iou 0.7277699708938599, valid.f_f-score 0.81801: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.98it/s]
epoch 129 | valid.f_iou 0.7277699708938599, valid.f_f-score 0.81801: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.07it/s]
epoch 129 | valid.f_iou 0.7394700050354004, valid.f_f-score 0.82765: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.07it/s]
epoch 129 | valid.f_iou 0.7394700050354004, valid.f_f-score 0.82765: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.13it/s]
epoch 129 | valid.f_iou 0.7469599843025208, valid.f_f-score 0.83182: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.13it/s]
epoch 129 | valid.f_iou 0.7469599843025208, valid.f_f-score 0.83182: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.17it/s]
epoch 129 | valid.f_iou 0.7409399747848511, valid.f_f-score 0.82767: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.17it/s]
epoch 129 | valid.f_iou 0.7409399747848511, valid.f_f-score 0.82767: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.21it/s]
epoch 129 | valid.f_iou 0.7497699856758118, valid.f_f-score 0.83589: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.21it/s]
epoch 129 | valid.f_iou 0.7497699856758118, valid.f_f-score 0.83589: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.35it/s]
epoch 129 | valid.f_iou 0.7472599744796753, valid.f_f-score 0.83303: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.35it/s]
epoch 129 | valid.f_iou 0.7472599744796753, valid.f_f-score 0.83303: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.44it/s]
epoch 129 | valid.f_iou 0.7472599744796753, valid.f_f-score 0.83303: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 129 | valid.f_iou 0.7664200067520142, valid.f_f-score 0.81089: 0%| | 0/16 [00:05, ?it/s]
epoch 129 | valid.f_iou 0.7664200067520142, valid.f_f-score 0.81089: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 129 | valid.f_iou 0.8174700140953064, valid.f_f-score 0.87475: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 129 | valid.f_iou 0.8174700140953064, valid.f_f-score 0.87475: 12%|███▊ | 2/16 [00:05<00:35, 2.50s/it]
epoch 129 | valid.f_iou 0.7682899832725525, valid.f_f-score 0.85938: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 129 | valid.f_iou 0.7682899832725525, valid.f_f-score 0.85938: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 129 | valid.f_iou 0.7585399746894836, valid.f_f-score 0.81951: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 129 | valid.f_iou 0.7585399746894836, valid.f_f-score 0.81951: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 129 | valid.f_iou 0.7380300164222717, valid.f_f-score 0.81545: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 129 | valid.f_iou 0.7380300164222717, valid.f_f-score 0.81545: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 129 | valid.f_iou 0.7250699996948242, valid.f_f-score 0.80665: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 129 | valid.f_iou 0.7250699996948242, valid.f_f-score 0.80665: 38%|███████████▎ | 6/16 [00:07<00:07, 1.38it/s]
epoch 129 | valid.f_iou 0.7428600192070007, valid.f_f-score 0.82573: 38%|███████████▎ | 6/16 [00:08<00:07, 1.38it/s]
epoch 129 | valid.f_iou 0.7428600192070007, valid.f_f-score 0.82573: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 129 | valid.f_iou 0.7347699999809265, valid.f_f-score 0.82604: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 129 | valid.f_iou 0.7347699999809265, valid.f_f-score 0.82604: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 129 | valid.f_iou 0.7394099831581116, valid.f_f-score 0.82698: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 129 | valid.f_iou 0.7394099831581116, valid.f_f-score 0.82698: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.88it/s]
epoch 129 | valid.f_iou 0.743690013885498, valid.f_f-score 0.83283: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.88it/s]
epoch 129 | valid.f_iou 0.743690013885498, valid.f_f-score 0.83283: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.06it/s]
epoch 129 | valid.f_iou 0.7247499823570251, valid.f_f-score 0.80781: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.06it/s]
epoch 129 | valid.f_iou 0.7247499823570251, valid.f_f-score 0.80781: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.13it/s]
epoch 129 | valid.f_iou 0.7366999983787537, valid.f_f-score 0.8183: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.13it/s]
epoch 129 | valid.f_iou 0.7366999983787537, valid.f_f-score 0.8183: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.19it/s]
epoch 129 | valid.f_iou 0.7443400025367737, valid.f_f-score 0.82435: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.19it/s]
epoch 129 | valid.f_iou 0.7443400025367737, valid.f_f-score 0.82435: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.33it/s]
epoch 129 | valid.f_iou 0.7384999990463257, valid.f_f-score 0.82075: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.33it/s]
epoch 129 | valid.f_iou 0.7384999990463257, valid.f_f-score 0.82075: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.43it/s]
epoch 129 | valid.f_iou 0.7475000023841858, valid.f_f-score 0.82943: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.43it/s]
epoch 129 | valid.f_iou 0.7475000023841858, valid.f_f-score 0.82943: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 129 | valid.f_iou 0.7456099987030029, valid.f_f-score 0.82698: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.51it/s]
epoch 129 | valid.f_iou 0.7456099987030029, valid.f_f-score 0.82698: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 129 | valid.f_iou 0.7456099987030029, valid.f_f-score 0.82698: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 130 | loss 0.9949043393135071, f_iou 0.8294473886489868: 0%| | 0/74 [00:05, ?it/s]
epoch 130 | loss 0.9949043393135071, f_iou 0.8294473886489868: 1%|▍ | 1/74 [00:05<06:54, 5.68s/it]
epoch 130 | loss 0.4630337357521057, f_iou 0.8993273377418518: 1%|▍ | 1/74 [00:06<06:54, 5.68s/it]
epoch 130 | loss 0.4630337357521057, f_iou 0.8993273377418518: 3%|▉ | 2/74 [00:06<03:24, 2.85s/it]
epoch 130 | loss 0.45910048484802246, f_iou 0.8967490196228027: 3%|▉ | 2/74 [00:07<03:24, 2.85s/it]
epoch 130 | loss 0.45910048484802246, f_iou 0.8967490196228027: 4%|█▍ | 3/74 [00:07<02:16, 1.92s/it]
epoch 130 | loss 0.6312376260757446, f_iou 0.8670336008071899: 4%|█▍ | 3/74 [00:08<02:16, 1.92s/it]
epoch 130 | loss 0.6312376260757446, f_iou 0.8670336008071899: 5%|█▉ | 4/74 [00:08<01:44, 1.49s/it]
epoch 130 | loss 1.3167495727539062, f_iou 0.8714414834976196: 5%|█▉ | 4/74 [00:08<01:44, 1.49s/it]
epoch 130 | loss 1.3167495727539062, f_iou 0.8714414834976196: 7%|██▍ | 5/74 [00:08<01:25, 1.23s/it]
epoch 130 | loss 0.5085985064506531, f_iou 0.7874771356582642: 7%|██▍ | 5/74 [00:09<01:25, 1.23s/it]
epoch 130 | loss 0.5085985064506531, f_iou 0.7874771356582642: 8%|██▉ | 6/74 [00:09<01:13, 1.09s/it]
epoch 130 | loss 0.5946289896965027, f_iou 0.8064833283424377: 8%|██▉ | 6/74 [00:10<01:13, 1.09s/it]
epoch 130 | loss 0.5946289896965027, f_iou 0.8064833283424377: 9%|███▍ | 7/74 [00:10<01:06, 1.01it/s]
epoch 130 | loss 1.189877986907959, f_iou 0.8130330443382263: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 130 | loss 1.189877986907959, f_iou 0.8130330443382263: 11%|████ | 8/74 [00:11<01:01, 1.08it/s]
epoch 130 | loss 0.9950746297836304, f_iou 0.7946053743362427: 11%|███▉ | 8/74 [00:12<01:01, 1.08it/s]
epoch 130 | loss 0.9950746297836304, f_iou 0.7946053743362427: 12%|████▍ | 9/74 [00:12<00:57, 1.14it/s]
epoch 130 | loss 0.5344361066818237, f_iou 0.7691667675971985: 12%|████▍ | 9/74 [00:12<00:57, 1.14it/s]
epoch 130 | loss 0.5344361066818237, f_iou 0.7691667675971985: 14%|████▋ | 10/74 [00:12<00:53, 1.20it/s]
epoch 130 | loss 0.4228914976119995, f_iou 0.7867675423622131: 14%|████▋ | 10/74 [00:13<00:53, 1.20it/s]
epoch 130 | loss 0.4228914976119995, f_iou 0.7867675423622131: 15%|█████▏ | 11/74 [00:13<00:51, 1.21it/s]
epoch 130 | loss 1.4437111616134644, f_iou 0.7799002528190613: 15%|█████▏ | 11/74 [00:14<00:51, 1.21it/s]
epoch 130 | loss 1.4437111616134644, f_iou 0.7799002528190613: 16%|█████▋ | 12/74 [00:14<00:50, 1.23it/s]
epoch 130 | loss 1.061792016029358, f_iou 0.7822983860969543: 16%|█████▊ | 12/74 [00:15<00:50, 1.23it/s]
epoch 130 | loss 1.061792016029358, f_iou 0.7822983860969543: 18%|██████▎ | 13/74 [00:15<00:49, 1.24it/s]
epoch 130 | loss 1.2288135290145874, f_iou 0.7617109417915344: 18%|██████▏ | 13/74 [00:16<00:49, 1.24it/s]
epoch 130 | loss 1.2288135290145874, f_iou 0.7617109417915344: 19%|██████▌ | 14/74 [00:16<00:47, 1.25it/s]
epoch 130 | loss 0.4649348855018616, f_iou 0.7601601481437683: 19%|██████▌ | 14/74 [00:16<00:47, 1.25it/s]
epoch 130 | loss 0.4649348855018616, f_iou 0.7601601481437683: 20%|███████ | 15/74 [00:16<00:46, 1.26it/s]
epoch 130 | loss 0.7158515453338623, f_iou 0.7660917043685913: 20%|███████ | 15/74 [00:17<00:46, 1.26it/s]
epoch 130 | loss 0.7158515453338623, f_iou 0.7660917043685913: 22%|███████▌ | 16/74 [00:17<00:45, 1.27it/s]
epoch 130 | loss 1.4574379920959473, f_iou 0.7606476545333862: 22%|███████▌ | 16/74 [00:18<00:45, 1.27it/s]
epoch 130 | loss 1.4574379920959473, f_iou 0.7606476545333862: 23%|████████ | 17/74 [00:18<00:44, 1.27it/s]
epoch 130 | loss 0.8908756971359253, f_iou 0.7647929191589355: 23%|████████ | 17/74 [00:19<00:44, 1.27it/s]
epoch 130 | loss 0.8908756971359253, f_iou 0.7647929191589355: 24%|████████▌ | 18/74 [00:19<00:43, 1.29it/s]
epoch 130 | loss 0.9846340417861938, f_iou 0.768942654132843: 24%|████████▊ | 18/74 [00:19<00:43, 1.29it/s]
epoch 130 | loss 0.9846340417861938, f_iou 0.768942654132843: 26%|█████████▏ | 19/74 [00:19<00:42, 1.31it/s]
epoch 130 | loss 1.3915265798568726, f_iou 0.7603444457054138: 26%|████████▉ | 19/74 [00:20<00:42, 1.31it/s]
epoch 130 | loss 1.3915265798568726, f_iou 0.7603444457054138: 27%|█████████▍ | 20/74 [00:20<00:40, 1.33it/s]
epoch 130 | loss 0.0, f_iou 0.7711585164070129: 27%|█████████████▌ | 20/74 [00:21<00:40, 1.33it/s]
epoch 130 | loss 0.0, f_iou 0.7711585164070129: 28%|██████████████▏ | 21/74 [00:21<00:39, 1.34it/s]
epoch 130 | loss 1.701749563217163, f_iou 0.7506811022758484: 28%|██████████▏ | 21/74 [00:22<00:39, 1.34it/s]
epoch 130 | loss 1.701749563217163, f_iou 0.7506811022758484: 30%|██████████▋ | 22/74 [00:22<00:39, 1.33it/s]
epoch 130 | loss 0.49758273363113403, f_iou 0.7596287131309509: 30%|██████████ | 22/74 [00:22<00:39, 1.33it/s]
epoch 130 | loss 0.49758273363113403, f_iou 0.7596287131309509: 31%|██████████▌ | 23/74 [00:22<00:38, 1.31it/s]
epoch 130 | loss 0.7811078429222107, f_iou 0.7648491263389587: 31%|██████████▉ | 23/74 [00:23<00:38, 1.31it/s]
epoch 130 | loss 0.7811078429222107, f_iou 0.7648491263389587: 32%|███████████▎ | 24/74 [00:23<00:38, 1.29it/s]
epoch 130 | loss 1.080008864402771, f_iou 0.7670380473136902: 32%|███████████▋ | 24/74 [00:24<00:38, 1.29it/s]
epoch 130 | loss 1.080008864402771, f_iou 0.7670380473136902: 34%|████████████▏ | 25/74 [00:24<00:38, 1.29it/s]
epoch 130 | loss 0.8547680377960205, f_iou 0.7660394906997681: 34%|███████████▊ | 25/74 [00:25<00:38, 1.29it/s]
epoch 130 | loss 0.8547680377960205, f_iou 0.7660394906997681: 35%|████████████▎ | 26/74 [00:25<00:37, 1.28it/s]
epoch 130 | loss 0.6642687916755676, f_iou 0.7652245759963989: 35%|████████████▎ | 26/74 [00:26<00:37, 1.28it/s]
epoch 130 | loss 0.6642687916755676, f_iou 0.7652245759963989: 36%|████████████▊ | 27/74 [00:26<00:36, 1.28it/s]
epoch 130 | loss 0.9605357646942139, f_iou 0.7418583631515503: 36%|████████████▊ | 27/74 [00:26<00:36, 1.28it/s]
epoch 130 | loss 0.9605357646942139, f_iou 0.7418583631515503: 38%|█████████████▏ | 28/74 [00:26<00:35, 1.29it/s]
epoch 130 | loss 0.6900214552879333, f_iou 0.7389910221099854: 38%|█████████████▏ | 28/74 [00:27<00:35, 1.29it/s]
epoch 130 | loss 0.6900214552879333, f_iou 0.7389910221099854: 39%|█████████████▋ | 29/74 [00:27<00:34, 1.30it/s]
epoch 130 | loss 1.74664306640625, f_iou 0.733274519443512: 39%|██████████████▉ | 29/74 [00:28<00:34, 1.30it/s]
epoch 130 | loss 1.74664306640625, f_iou 0.733274519443512: 41%|███████████████▍ | 30/74 [00:28<00:33, 1.31it/s]
epoch 130 | loss 1.0399035215377808, f_iou 0.7298995852470398: 41%|██████████████▏ | 30/74 [00:29<00:33, 1.31it/s]
epoch 130 | loss 1.0399035215377808, f_iou 0.7298995852470398: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.32it/s]
epoch 130 | loss 0.7353628873825073, f_iou 0.7362438440322876: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.32it/s]
epoch 130 | loss 0.7353628873825073, f_iou 0.7362438440322876: 43%|███████████████▏ | 32/74 [00:29<00:31, 1.33it/s]
epoch 130 | loss 2.417191982269287, f_iou 0.7311148047447205: 43%|███████████████▌ | 32/74 [00:30<00:31, 1.33it/s]
epoch 130 | loss 2.417191982269287, f_iou 0.7311148047447205: 45%|████████████████ | 33/74 [00:30<00:30, 1.34it/s]
epoch 130 | loss 0.0, f_iou 0.7387492656707764: 45%|██████████████████████▎ | 33/74 [00:31<00:30, 1.34it/s]
epoch 130 | loss 0.0, f_iou 0.7387492656707764: 46%|██████████████████████▉ | 34/74 [00:31<00:29, 1.34it/s]
epoch 130 | loss 0.5142663717269897, f_iou 0.7435306310653687: 46%|████████████████ | 34/74 [00:31<00:29, 1.34it/s]
epoch 130 | loss 0.5142663717269897, f_iou 0.7435306310653687: 47%|████████████████▌ | 35/74 [00:31<00:28, 1.36it/s]
epoch 130 | loss 0.14933423697948456, f_iou 0.748492419719696: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.36it/s]
epoch 130 | loss 0.14933423697948456, f_iou 0.748492419719696: 49%|█████████████████ | 36/74 [00:32<00:27, 1.37it/s]
epoch 130 | loss 0.5933179259300232, f_iou 0.7440802454948425: 49%|█████████████████ | 36/74 [00:33<00:27, 1.37it/s]
epoch 130 | loss 0.5933179259300232, f_iou 0.7440802454948425: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.37it/s]
epoch 130 | loss 1.310960054397583, f_iou 0.7445574402809143: 50%|██████████████████ | 37/74 [00:34<00:26, 1.37it/s]
epoch 130 | loss 1.310960054397583, f_iou 0.7445574402809143: 51%|██████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 130 | loss 0.40768709778785706, f_iou 0.7311592698097229: 51%|█████████████████▍ | 38/74 [00:34<00:26, 1.38it/s]
epoch 130 | loss 0.40768709778785706, f_iou 0.7311592698097229: 53%|█████████████████▉ | 39/74 [00:34<00:25, 1.38it/s]
epoch 130 | loss 1.5205974578857422, f_iou 0.7215123176574707: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 130 | loss 1.5205974578857422, f_iou 0.7215123176574707: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.38it/s]
epoch 130 | loss 0.9311593174934387, f_iou 0.7226951718330383: 54%|██████████████████▉ | 40/74 [00:36<00:24, 1.38it/s]
epoch 130 | loss 0.9311593174934387, f_iou 0.7226951718330383: 55%|███████████████████▍ | 41/74 [00:36<00:23, 1.38it/s]
epoch 130 | loss 0.5765578746795654, f_iou 0.7277826070785522: 55%|███████████████████▍ | 41/74 [00:37<00:23, 1.38it/s]
epoch 130 | loss 0.5765578746795654, f_iou 0.7277826070785522: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.38it/s]
epoch 130 | loss 2.755229949951172, f_iou 0.7162874341011047: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.38it/s]
epoch 130 | loss 2.755229949951172, f_iou 0.7162874341011047: 58%|████████████████████▉ | 43/74 [00:37<00:22, 1.38it/s]
epoch 130 | loss 0.626082181930542, f_iou 0.7171480059623718: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.38it/s]
epoch 130 | loss 0.626082181930542, f_iou 0.7171480059623718: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.34it/s]
epoch 130 | loss 0.8978333473205566, f_iou 0.7205705046653748: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.34it/s]
epoch 130 | loss 0.8978333473205566, f_iou 0.7205705046653748: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.33it/s]
epoch 130 | loss 0.8682786822319031, f_iou 0.7235057950019836: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.33it/s]
epoch 130 | loss 0.8682786822319031, f_iou 0.7235057950019836: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.34it/s]
epoch 130 | loss 1.9022585153579712, f_iou 0.7122381925582886: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.34it/s]
epoch 130 | loss 1.9022585153579712, f_iou 0.7122381925582886: 64%|██████████████████████▏ | 47/74 [00:40<00:20, 1.35it/s]
epoch 130 | loss 0.8525047302246094, f_iou 0.710875928401947: 64%|██████████████████████▊ | 47/74 [00:41<00:20, 1.35it/s]
epoch 130 | loss 0.8525047302246094, f_iou 0.710875928401947: 65%|███████████████████████▎ | 48/74 [00:41<00:19, 1.36it/s]
epoch 130 | loss 1.7578144073486328, f_iou 0.7139015793800354: 65%|██████████████████████▋ | 48/74 [00:42<00:19, 1.36it/s]
epoch 130 | loss 1.7578144073486328, f_iou 0.7139015793800354: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.36it/s]
epoch 130 | loss 0.6183124780654907, f_iou 0.717881441116333: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.36it/s]
epoch 130 | loss 0.6183124780654907, f_iou 0.717881441116333: 68%|████████████████████████▎ | 50/74 [00:42<00:17, 1.36it/s]
epoch 130 | loss 1.0266259908676147, f_iou 0.7109116911888123: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.36it/s]
epoch 130 | loss 1.0266259908676147, f_iou 0.7109116911888123: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.37it/s]
epoch 130 | loss 0.8168811202049255, f_iou 0.7151358127593994: 69%|████████████████████████ | 51/74 [00:44<00:16, 1.37it/s]
epoch 130 | loss 0.8168811202049255, f_iou 0.7151358127593994: 70%|████████████████████████▌ | 52/74 [00:44<00:16, 1.37it/s]
epoch 130 | loss 1.3134989738464355, f_iou 0.7141620516777039: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.37it/s]
epoch 130 | loss 1.3134989738464355, f_iou 0.7141620516777039: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.37it/s]
epoch 130 | loss 0.5753822326660156, f_iou 0.7108023166656494: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.37it/s]
epoch 130 | loss 0.5753822326660156, f_iou 0.7108023166656494: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.37it/s]
epoch 130 | loss 0.628304660320282, f_iou 0.7134100198745728: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.37it/s]
epoch 130 | loss 0.628304660320282, f_iou 0.7134100198745728: 74%|██████████████████████████▊ | 55/74 [00:46<00:13, 1.37it/s]
epoch 130 | loss 1.2100507020950317, f_iou 0.7129995822906494: 74%|██████████████████████████ | 55/74 [00:47<00:13, 1.37it/s]
epoch 130 | loss 1.2100507020950317, f_iou 0.7129995822906494: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.37it/s]
epoch 130 | loss 0.8892408609390259, f_iou 0.7057906985282898: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.37it/s]
epoch 130 | loss 0.8892408609390259, f_iou 0.7057906985282898: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.37it/s]
epoch 130 | loss 0.6621332168579102, f_iou 0.7098129391670227: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.37it/s]
epoch 130 | loss 0.6621332168579102, f_iou 0.7098129391670227: 78%|███████████████████████████▍ | 58/74 [00:48<00:11, 1.37it/s]
epoch 130 | loss 0.8812052011489868, f_iou 0.7040238380432129: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.37it/s]
epoch 130 | loss 0.8812052011489868, f_iou 0.7040238380432129: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.37it/s]
epoch 130 | loss 0.34812912344932556, f_iou 0.7078289985656738: 80%|███████████████████████████ | 59/74 [00:50<00:10, 1.37it/s]
epoch 130 | loss 0.34812912344932556, f_iou 0.7078289985656738: 81%|███████████████████████████▌ | 60/74 [00:50<00:10, 1.37it/s]
epoch 130 | loss 0.8794293999671936, f_iou 0.7069752216339111: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.37it/s]
epoch 130 | loss 0.8794293999671936, f_iou 0.7069752216339111: 82%|████████████████████████████▊ | 61/74 [00:50<00:09, 1.37it/s]
epoch 130 | loss 0.3356581926345825, f_iou 0.7112693786621094: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.37it/s]
epoch 130 | loss 0.3356581926345825, f_iou 0.7112693786621094: 84%|█████████████████████████████▎ | 62/74 [00:51<00:08, 1.35it/s]
epoch 130 | loss 0.6489342451095581, f_iou 0.7153031826019287: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.35it/s]
epoch 130 | loss 0.6489342451095581, f_iou 0.7153031826019287: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.33it/s]
epoch 130 | loss 0.6775127649307251, f_iou 0.7163971066474915: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.33it/s]
epoch 130 | loss 0.6775127649307251, f_iou 0.7163971066474915: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.31it/s]
epoch 130 | loss 0.9231501817703247, f_iou 0.7173115015029907: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.31it/s]
epoch 130 | loss 0.9231501817703247, f_iou 0.7173115015029907: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.30it/s]
epoch 130 | loss 1.0228544473648071, f_iou 0.7180739045143127: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.30it/s]
epoch 130 | loss 1.0228544473648071, f_iou 0.7180739045143127: 89%|███████████████████████████████▏ | 66/74 [00:54<00:06, 1.31it/s]
epoch 130 | loss 0.5717806220054626, f_iou 0.7215372920036316: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.31it/s]
epoch 130 | loss 0.5717806220054626, f_iou 0.7215372920036316: 91%|███████████████████████████████▋ | 67/74 [00:55<00:05, 1.33it/s]
epoch 130 | loss 2.197908401489258, f_iou 0.7180176973342896: 91%|████████████████████████████████▌ | 67/74 [00:56<00:05, 1.33it/s]
epoch 130 | loss 2.197908401489258, f_iou 0.7180176973342896: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.35it/s]
epoch 130 | loss 0.4947022795677185, f_iou 0.7204868197441101: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.35it/s]
epoch 130 | loss 0.4947022795677185, f_iou 0.7204868197441101: 93%|████████████████████████████████▋ | 69/74 [00:56<00:03, 1.36it/s]
epoch 130 | loss 0.8693122267723083, f_iou 0.720651388168335: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.36it/s]
epoch 130 | loss 0.8693122267723083, f_iou 0.720651388168335: 95%|██████████████████████████████████ | 70/74 [00:57<00:02, 1.37it/s]
epoch 130 | loss 0.0, f_iou 0.7231139540672302: 95%|███████████████████████████████████████████████▎ | 70/74 [00:58<00:02, 1.37it/s]
epoch 130 | loss 0.0, f_iou 0.7231139540672302: 96%|███████████████████████████████████████████████▉ | 71/74 [00:58<00:02, 1.37it/s]
epoch 130 | loss 0.9757636189460754, f_iou 0.7224552035331726: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.37it/s]
epoch 130 | loss 0.9757636189460754, f_iou 0.7224552035331726: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 130 | loss 0.8712042570114136, f_iou 0.7178048491477966: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.38it/s]
epoch 130 | loss 0.8712042570114136, f_iou 0.7178048491477966: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.38it/s]
epoch 130 | loss 0.3262954652309418, f_iou 0.7200700640678406: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.38it/s]
epoch 130 | loss 0.3262954652309418, f_iou 0.7200700640678406: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.37it/s]
epoch 130 | loss 0.3262954652309418, f_iou 0.7200700640678406: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 130 | valid.f_iou 0.7391200065612793, valid.f_f-score 0.83938: 0%| | 0/16 [00:05, ?it/s]
epoch 130 | valid.f_iou 0.7391200065612793, valid.f_f-score 0.83938: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 130 | valid.f_iou 0.7284899950027466, valid.f_f-score 0.87787: 6%|█▉ | 1/16 [00:05<01:19, 5.29s/it]
epoch 130 | valid.f_iou 0.7284899950027466, valid.f_f-score 0.87787: 12%|███▊ | 2/16 [00:05<00:34, 2.45s/it]
epoch 130 | valid.f_iou 0.5865799784660339, valid.f_f-score 0.784: 12%|████ | 2/16 [00:06<00:34, 2.45s/it]
epoch 130 | valid.f_iou 0.5865799784660339, valid.f_f-score 0.784: 19%|██████ | 3/16 [00:06<00:19, 1.54s/it]
epoch 130 | valid.f_iou 0.6100500226020813, valid.f_f-score 0.75928: 19%|█████▋ | 3/16 [00:06<00:19, 1.54s/it]
epoch 130 | valid.f_iou 0.6100500226020813, valid.f_f-score 0.75928: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 130 | valid.f_iou 0.6209800243377686, valid.f_f-score 0.76798: 25%|███████▌ | 4/16 [00:07<00:13, 1.10s/it]
epoch 130 | valid.f_iou 0.6209800243377686, valid.f_f-score 0.76798: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 130 | valid.f_iou 0.5780799984931946, valid.f_f-score 0.73117: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 130 | valid.f_iou 0.5780799984931946, valid.f_f-score 0.73117: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 130 | valid.f_iou 0.6039299964904785, valid.f_f-score 0.75598: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 130 | valid.f_iou 0.6039299964904785, valid.f_f-score 0.75598: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 130 | valid.f_iou 0.5730000138282776, valid.f_f-score 0.74152: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 130 | valid.f_iou 0.5730000138282776, valid.f_f-score 0.74152: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 130 | valid.f_iou 0.5904899835586548, valid.f_f-score 0.74991: 50%|███████████████ | 8/16 [00:08<00:04, 1.74it/s]
epoch 130 | valid.f_iou 0.5904899835586548, valid.f_f-score 0.74991: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.88it/s]
epoch 130 | valid.f_iou 0.5865700244903564, valid.f_f-score 0.75366: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 130 | valid.f_iou 0.5865700244903564, valid.f_f-score 0.75366: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 130 | valid.f_iou 0.5867999792098999, valid.f_f-score 0.75057: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 130 | valid.f_iou 0.5867999792098999, valid.f_f-score 0.75057: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.13it/s]
epoch 130 | valid.f_iou 0.6082599759101868, valid.f_f-score 0.76539: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.13it/s]
epoch 130 | valid.f_iou 0.6082599759101868, valid.f_f-score 0.76539: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 130 | valid.f_iou 0.6205899715423584, valid.f_f-score 0.77219: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 130 | valid.f_iou 0.6205899715423584, valid.f_f-score 0.77219: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 130 | valid.f_iou 0.6159800291061401, valid.f_f-score 0.76736: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 130 | valid.f_iou 0.6159800291061401, valid.f_f-score 0.76736: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.48it/s]
epoch 130 | valid.f_iou 0.6183500289916992, valid.f_f-score 0.76517: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.48it/s]
epoch 130 | valid.f_iou 0.6183500289916992, valid.f_f-score 0.76517: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 130 | valid.f_iou 0.6225500106811523, valid.f_f-score 0.76207: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 130 | valid.f_iou 0.6225500106811523, valid.f_f-score 0.76207: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 130 | valid.f_iou 0.6225500106811523, valid.f_f-score 0.76207: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 130 | valid.f_iou 0.806410014629364, valid.f_f-score 0.79877: 0%| | 0/16 [00:05, ?it/s]
epoch 130 | valid.f_iou 0.806410014629364, valid.f_f-score 0.79877: 6%|█▉ | 1/16 [00:05<01:21, 5.45s/it]
epoch 130 | valid.f_iou 0.8406999707221985, valid.f_f-score 0.86885: 6%|█▉ | 1/16 [00:05<01:21, 5.45s/it]
epoch 130 | valid.f_iou 0.8406999707221985, valid.f_f-score 0.86885: 12%|███▊ | 2/16 [00:05<00:35, 2.51s/it]
epoch 130 | valid.f_iou 0.7832000255584717, valid.f_f-score 0.85516: 12%|███▊ | 2/16 [00:06<00:35, 2.51s/it]
epoch 130 | valid.f_iou 0.7832000255584717, valid.f_f-score 0.85516: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 130 | valid.f_iou 0.7756199836730957, valid.f_f-score 0.82916: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 130 | valid.f_iou 0.7756199836730957, valid.f_f-score 0.82916: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 130 | valid.f_iou 0.7455999851226807, valid.f_f-score 0.82444: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 130 | valid.f_iou 0.7455999851226807, valid.f_f-score 0.82444: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 130 | valid.f_iou 0.7317500114440918, valid.f_f-score 0.81445: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 130 | valid.f_iou 0.7317500114440918, valid.f_f-score 0.81445: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 130 | valid.f_iou 0.7462199926376343, valid.f_f-score 0.83235: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 130 | valid.f_iou 0.7462199926376343, valid.f_f-score 0.83235: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.60it/s]
epoch 130 | valid.f_iou 0.7357400059700012, valid.f_f-score 0.8309: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 130 | valid.f_iou 0.7357400059700012, valid.f_f-score 0.8309: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 130 | valid.f_iou 0.7372999787330627, valid.f_f-score 0.83161: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 130 | valid.f_iou 0.7372999787330627, valid.f_f-score 0.83161: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.01it/s]
epoch 130 | valid.f_iou 0.7465400099754333, valid.f_f-score 0.84062: 56%|████████████████▉ | 9/16 [00:09<00:03, 2.01it/s]
epoch 130 | valid.f_iou 0.7465400099754333, valid.f_f-score 0.84062: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.19it/s]
epoch 130 | valid.f_iou 0.7278900146484375, valid.f_f-score 0.81546: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.19it/s]
epoch 130 | valid.f_iou 0.7278900146484375, valid.f_f-score 0.81546: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.33it/s]
epoch 130 | valid.f_iou 0.7391999959945679, valid.f_f-score 0.82527: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.33it/s]
epoch 130 | valid.f_iou 0.7391999959945679, valid.f_f-score 0.82527: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.44it/s]
epoch 130 | valid.f_iou 0.7490500211715698, valid.f_f-score 0.83225: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.44it/s]
epoch 130 | valid.f_iou 0.7490500211715698, valid.f_f-score 0.83225: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.52it/s]
epoch 130 | valid.f_iou 0.7369099855422974, valid.f_f-score 0.82167: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.52it/s]
epoch 130 | valid.f_iou 0.7369099855422974, valid.f_f-score 0.82167: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.58it/s]
epoch 130 | valid.f_iou 0.7429199814796448, valid.f_f-score 0.82826: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.58it/s]
epoch 130 | valid.f_iou 0.7429199814796448, valid.f_f-score 0.82826: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 130 | valid.f_iou 0.7417500019073486, valid.f_f-score 0.82616: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.63it/s]
epoch 130 | valid.f_iou 0.7417500019073486, valid.f_f-score 0.82616: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 130 | valid.f_iou 0.7417500019073486, valid.f_f-score 0.82616: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 130 | valid.f_iou 0.7584400177001953, valid.f_f-score 0.76876: 0%| | 0/16 [00:04, ?it/s]
epoch 130 | valid.f_iou 0.7584400177001953, valid.f_f-score 0.76876: 6%|█▉ | 1/16 [00:04<01:08, 4.59s/it]
epoch 130 | valid.f_iou 0.8167099952697754, valid.f_f-score 0.85384: 6%|█▉ | 1/16 [00:05<01:08, 4.59s/it]
epoch 130 | valid.f_iou 0.8167099952697754, valid.f_f-score 0.85384: 12%|███▊ | 2/16 [00:05<00:30, 2.18s/it]
epoch 130 | valid.f_iou 0.7672100067138672, valid.f_f-score 0.84516: 12%|███▊ | 2/16 [00:05<00:30, 2.18s/it]
epoch 130 | valid.f_iou 0.7672100067138672, valid.f_f-score 0.84516: 19%|█████▋ | 3/16 [00:05<00:18, 1.39s/it]
epoch 130 | valid.f_iou 0.7638099789619446, valid.f_f-score 0.82166: 19%|█████▋ | 3/16 [00:05<00:18, 1.39s/it]
epoch 130 | valid.f_iou 0.7638099789619446, valid.f_f-score 0.82166: 25%|███████▌ | 4/16 [00:05<00:12, 1.01s/it]
epoch 130 | valid.f_iou 0.7445600032806396, valid.f_f-score 0.81844: 25%|███████▌ | 4/16 [00:06<00:12, 1.01s/it]
epoch 130 | valid.f_iou 0.7445600032806396, valid.f_f-score 0.81844: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 130 | valid.f_iou 0.7308899760246277, valid.f_f-score 0.80945: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 130 | valid.f_iou 0.7308899760246277, valid.f_f-score 0.80945: 38%|███████████▎ | 6/16 [00:06<00:06, 1.43it/s]
epoch 130 | valid.f_iou 0.7472299933433533, valid.f_f-score 0.82806: 38%|███████████▎ | 6/16 [00:07<00:06, 1.43it/s]
epoch 130 | valid.f_iou 0.7472299933433533, valid.f_f-score 0.82806: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 130 | valid.f_iou 0.7366300225257874, valid.f_f-score 0.82714: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 130 | valid.f_iou 0.7366300225257874, valid.f_f-score 0.82714: 50%|███████████████ | 8/16 [00:07<00:04, 1.80it/s]
epoch 130 | valid.f_iou 0.7415800094604492, valid.f_f-score 0.82827: 50%|███████████████ | 8/16 [00:08<00:04, 1.80it/s]
epoch 130 | valid.f_iou 0.7415800094604492, valid.f_f-score 0.82827: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 130 | valid.f_iou 0.7469599843025208, valid.f_f-score 0.83409: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.94it/s]
epoch 130 | valid.f_iou 0.7469599843025208, valid.f_f-score 0.83409: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.13it/s]
epoch 130 | valid.f_iou 0.7282699942588806, valid.f_f-score 0.80953: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.13it/s]
epoch 130 | valid.f_iou 0.7282699942588806, valid.f_f-score 0.80953: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.28it/s]
epoch 130 | valid.f_iou 0.739549994468689, valid.f_f-score 0.81982: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.28it/s]
epoch 130 | valid.f_iou 0.739549994468689, valid.f_f-score 0.81982: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 130 | valid.f_iou 0.7492600083351135, valid.f_f-score 0.82809: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.39it/s]
epoch 130 | valid.f_iou 0.7492600083351135, valid.f_f-score 0.82809: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.47it/s]
epoch 130 | valid.f_iou 0.7371000051498413, valid.f_f-score 0.81782: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 130 | valid.f_iou 0.7371000051498413, valid.f_f-score 0.81782: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 130 | valid.f_iou 0.7430899739265442, valid.f_f-score 0.82467: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 130 | valid.f_iou 0.7430899739265442, valid.f_f-score 0.82467: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 130 | valid.f_iou 0.7424100041389465, valid.f_f-score 0.8228: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.60it/s]
epoch 130 | valid.f_iou 0.7424100041389465, valid.f_f-score 0.8228: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.63it/s]
epoch 130 | valid.f_iou 0.7424100041389465, valid.f_f-score 0.8228: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 131 | loss 1.8460761308670044, f_iou 0.7073211669921875: 0%| | 0/74 [00:05, ?it/s]
epoch 131 | loss 1.8460761308670044, f_iou 0.7073211669921875: 1%|▍ | 1/74 [00:05<06:56, 5.71s/it]
epoch 131 | loss 0.627322256565094, f_iou 0.7808185815811157: 1%|▌ | 1/74 [00:06<06:56, 5.71s/it]
epoch 131 | loss 0.627322256565094, f_iou 0.7808185815811157: 3%|█ | 2/74 [00:06<03:22, 2.81s/it]
epoch 131 | loss 1.108816385269165, f_iou 0.8251959681510925: 3%|█ | 2/74 [00:07<03:22, 2.81s/it]
epoch 131 | loss 1.108816385269165, f_iou 0.8251959681510925: 4%|█▌ | 3/74 [00:07<02:17, 1.93s/it]
epoch 131 | loss 0.374376505613327, f_iou 0.86175537109375: 4%|█▌ | 3/74 [00:08<02:17, 1.93s/it]
epoch 131 | loss 0.374376505613327, f_iou 0.86175537109375: 5%|██ | 4/74 [00:08<01:43, 1.48s/it]
epoch 131 | loss 0.8582191467285156, f_iou 0.8726263046264648: 5%|█▉ | 4/74 [00:08<01:43, 1.48s/it]
epoch 131 | loss 0.8582191467285156, f_iou 0.8726263046264648: 7%|██▍ | 5/74 [00:08<01:25, 1.23s/it]
epoch 131 | loss 0.48347821831703186, f_iou 0.8802328109741211: 7%|██▎ | 5/74 [00:09<01:25, 1.23s/it]
epoch 131 | loss 0.48347821831703186, f_iou 0.8802328109741211: 8%|██▊ | 6/74 [00:09<01:13, 1.08s/it]
epoch 131 | loss 1.633126974105835, f_iou 0.8334812521934509: 8%|███ | 6/74 [00:10<01:13, 1.08s/it]
epoch 131 | loss 1.633126974105835, f_iou 0.8334812521934509: 9%|███▌ | 7/74 [00:10<01:06, 1.01it/s]
epoch 131 | loss 2.7400827407836914, f_iou 0.7837947010993958: 9%|███▍ | 7/74 [00:11<01:06, 1.01it/s]
epoch 131 | loss 2.7400827407836914, f_iou 0.7837947010993958: 11%|███▉ | 8/74 [00:11<01:01, 1.08it/s]
epoch 131 | loss 0.6392831206321716, f_iou 0.7967861890792847: 11%|███▉ | 8/74 [00:12<01:01, 1.08it/s]
epoch 131 | loss 0.6392831206321716, f_iou 0.7967861890792847: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 131 | loss 1.3217979669570923, f_iou 0.7695268988609314: 12%|████▍ | 9/74 [00:12<00:57, 1.13it/s]
epoch 131 | loss 1.3217979669570923, f_iou 0.7695268988609314: 14%|████▋ | 10/74 [00:12<00:54, 1.17it/s]
epoch 131 | loss 1.6249114274978638, f_iou 0.7768052816390991: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 131 | loss 1.6249114274978638, f_iou 0.7768052816390991: 15%|█████▏ | 11/74 [00:13<00:52, 1.20it/s]
epoch 131 | loss 0.522702693939209, f_iou 0.7462989687919617: 15%|█████▎ | 11/74 [00:14<00:52, 1.20it/s]
epoch 131 | loss 0.522702693939209, f_iou 0.7462989687919617: 16%|█████▊ | 12/74 [00:14<00:50, 1.23it/s]
epoch 131 | loss 1.3640398979187012, f_iou 0.7333974242210388: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 131 | loss 1.3640398979187012, f_iou 0.7333974242210388: 18%|██████▏ | 13/74 [00:15<00:48, 1.26it/s]
epoch 131 | loss 0.8559964895248413, f_iou 0.7419474124908447: 18%|██████▏ | 13/74 [00:16<00:48, 1.26it/s]
epoch 131 | loss 0.8559964895248413, f_iou 0.7419474124908447: 19%|██████▌ | 14/74 [00:16<00:47, 1.26it/s]
epoch 131 | loss 2.047879219055176, f_iou 0.7265995144844055: 19%|██████▊ | 14/74 [00:16<00:47, 1.26it/s]
epoch 131 | loss 2.047879219055176, f_iou 0.7265995144844055: 20%|███████▎ | 15/74 [00:16<00:46, 1.26it/s]
epoch 131 | loss 1.203041911125183, f_iou 0.7384411692619324: 20%|███████▎ | 15/74 [00:17<00:46, 1.26it/s]
epoch 131 | loss 1.203041911125183, f_iou 0.7384411692619324: 22%|███████▊ | 16/74 [00:17<00:46, 1.26it/s]
epoch 131 | loss 1.99506676197052, f_iou 0.7355540990829468: 22%|████████ | 16/74 [00:18<00:46, 1.26it/s]
epoch 131 | loss 1.99506676197052, f_iou 0.7355540990829468: 23%|████████▌ | 17/74 [00:18<00:45, 1.25it/s]
epoch 131 | loss 1.2192291021347046, f_iou 0.7368518114089966: 23%|████████ | 17/74 [00:19<00:45, 1.25it/s]
epoch 131 | loss 1.2192291021347046, f_iou 0.7368518114089966: 24%|████████▌ | 18/74 [00:19<00:44, 1.24it/s]
epoch 131 | loss 0.411806583404541, f_iou 0.7481443881988525: 24%|████████▊ | 18/74 [00:20<00:44, 1.24it/s]
epoch 131 | loss 0.411806583404541, f_iou 0.7481443881988525: 26%|█████████▏ | 19/74 [00:20<00:44, 1.25it/s]
epoch 131 | loss 1.0034806728363037, f_iou 0.7459522485733032: 26%|████████▉ | 19/74 [00:20<00:44, 1.25it/s]
epoch 131 | loss 1.0034806728363037, f_iou 0.7459522485733032: 27%|█████████▍ | 20/74 [00:20<00:42, 1.27it/s]
epoch 131 | loss 0.44781753420829773, f_iou 0.7540595531463623: 27%|█████████▏ | 20/74 [00:21<00:42, 1.27it/s]
epoch 131 | loss 0.44781753420829773, f_iou 0.7540595531463623: 28%|█████████▋ | 21/74 [00:21<00:40, 1.30it/s]
epoch 131 | loss 1.0363606214523315, f_iou 0.7252345085144043: 28%|█████████▉ | 21/74 [00:22<00:40, 1.30it/s]
epoch 131 | loss 1.0363606214523315, f_iou 0.7252345085144043: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 131 | loss 1.1530736684799194, f_iou 0.7254807353019714: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 131 | loss 1.1530736684799194, f_iou 0.7254807353019714: 31%|██████████▉ | 23/74 [00:22<00:38, 1.33it/s]
epoch 131 | loss 1.238937497138977, f_iou 0.7254127860069275: 31%|███████████▏ | 23/74 [00:23<00:38, 1.33it/s]
epoch 131 | loss 1.238937497138977, f_iou 0.7254127860069275: 32%|███████████▋ | 24/74 [00:23<00:39, 1.26it/s]
epoch 131 | loss 1.6540939807891846, f_iou 0.7085233926773071: 32%|███████████▎ | 24/74 [00:24<00:39, 1.26it/s]
epoch 131 | loss 1.6540939807891846, f_iou 0.7085233926773071: 34%|███████████▊ | 25/74 [00:24<00:37, 1.29it/s]
epoch 131 | loss 1.100484848022461, f_iou 0.7039651274681091: 34%|████████████▏ | 25/74 [00:25<00:37, 1.29it/s]
epoch 131 | loss 1.100484848022461, f_iou 0.7039651274681091: 35%|████████████▋ | 26/74 [00:25<00:36, 1.32it/s]
epoch 131 | loss 0.4727804660797119, f_iou 0.7117445468902588: 35%|████████████▎ | 26/74 [00:26<00:36, 1.32it/s]
epoch 131 | loss 0.4727804660797119, f_iou 0.7117445468902588: 36%|████████████▊ | 27/74 [00:26<00:35, 1.34it/s]
epoch 131 | loss 0.7932999134063721, f_iou 0.7156187295913696: 36%|████████████▊ | 27/74 [00:26<00:35, 1.34it/s]
epoch 131 | loss 0.7932999134063721, f_iou 0.7156187295913696: 38%|█████████████▏ | 28/74 [00:26<00:34, 1.35it/s]
epoch 131 | loss 1.927109718322754, f_iou 0.7128348350524902: 38%|█████████████▌ | 28/74 [00:27<00:34, 1.35it/s]
epoch 131 | loss 1.927109718322754, f_iou 0.7128348350524902: 39%|██████████████ | 29/74 [00:27<00:33, 1.36it/s]
epoch 131 | loss 1.2388746738433838, f_iou 0.7151342630386353: 39%|█████████████▋ | 29/74 [00:28<00:33, 1.36it/s]
epoch 131 | loss 1.2388746738433838, f_iou 0.7151342630386353: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.35it/s]
epoch 131 | loss 1.0216395854949951, f_iou 0.7148313522338867: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.35it/s]
epoch 131 | loss 1.0216395854949951, f_iou 0.7148313522338867: 42%|██████████████▋ | 31/74 [00:28<00:31, 1.35it/s]
epoch 131 | loss 1.4839892387390137, f_iou 0.7176539897918701: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.35it/s]
epoch 131 | loss 1.4839892387390137, f_iou 0.7176539897918701: 43%|███████████████▏ | 32/74 [00:29<00:30, 1.36it/s]
epoch 131 | loss 0.7330582737922668, f_iou 0.7245005965232849: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.36it/s]
epoch 131 | loss 0.7330582737922668, f_iou 0.7245005965232849: 45%|███████████████▌ | 33/74 [00:30<00:29, 1.37it/s]
epoch 131 | loss 0.30164197087287903, f_iou 0.7295661568641663: 45%|███████████████▏ | 33/74 [00:31<00:29, 1.37it/s]
epoch 131 | loss 0.30164197087287903, f_iou 0.7295661568641663: 46%|███████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 131 | loss 1.213576316833496, f_iou 0.7320635914802551: 46%|████████████████▌ | 34/74 [00:31<00:29, 1.37it/s]
epoch 131 | loss 1.213576316833496, f_iou 0.7320635914802551: 47%|█████████████████ | 35/74 [00:31<00:28, 1.38it/s]
epoch 131 | loss 0.9889702200889587, f_iou 0.7316440343856812: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.38it/s]
epoch 131 | loss 0.9889702200889587, f_iou 0.7316440343856812: 49%|█████████████████ | 36/74 [00:32<00:27, 1.38it/s]
epoch 131 | loss 1.3277926445007324, f_iou 0.7168498635292053: 49%|█████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 131 | loss 1.3277926445007324, f_iou 0.7168498635292053: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.38it/s]
epoch 131 | loss 0.9132907390594482, f_iou 0.7074564099311829: 50%|█████████████████▌ | 37/74 [00:34<00:26, 1.38it/s]
epoch 131 | loss 0.9132907390594482, f_iou 0.7074564099311829: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 131 | loss 0.2615150511264801, f_iou 0.7142506837844849: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 131 | loss 0.2615150511264801, f_iou 0.7142506837844849: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.36it/s]
epoch 131 | loss 0.2333919107913971, f_iou 0.7204434275627136: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.36it/s]
epoch 131 | loss 0.2333919107913971, f_iou 0.7204434275627136: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.33it/s]
epoch 131 | loss 0.6600537300109863, f_iou 0.7110265493392944: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.33it/s]
epoch 131 | loss 0.6600537300109863, f_iou 0.7110265493392944: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.31it/s]
epoch 131 | loss 1.626301646232605, f_iou 0.7096839547157288: 55%|███████████████████▉ | 41/74 [00:37<00:25, 1.31it/s]
epoch 131 | loss 1.626301646232605, f_iou 0.7096839547157288: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.29it/s]
epoch 131 | loss 0.6376304626464844, f_iou 0.7145829200744629: 57%|███████████████████▊ | 42/74 [00:37<00:24, 1.29it/s]
epoch 131 | loss 0.6376304626464844, f_iou 0.7145829200744629: 58%|████████████████████▎ | 43/74 [00:37<00:23, 1.32it/s]
epoch 131 | loss 1.0403846502304077, f_iou 0.7122265696525574: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.32it/s]
epoch 131 | loss 1.0403846502304077, f_iou 0.7122265696525574: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.34it/s]
epoch 131 | loss 2.0287692546844482, f_iou 0.7063544392585754: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.34it/s]
epoch 131 | loss 2.0287692546844482, f_iou 0.7063544392585754: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.35it/s]
epoch 131 | loss 1.3961989879608154, f_iou 0.7044926881790161: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.35it/s]
epoch 131 | loss 1.3961989879608154, f_iou 0.7044926881790161: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.36it/s]
epoch 131 | loss 1.2362511157989502, f_iou 0.7059701085090637: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.36it/s]
epoch 131 | loss 1.2362511157989502, f_iou 0.7059701085090637: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.36it/s]
epoch 131 | loss 0.6619136333465576, f_iou 0.7108817100524902: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.36it/s]
epoch 131 | loss 0.6619136333465576, f_iou 0.7108817100524902: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.37it/s]
epoch 131 | loss 1.0564565658569336, f_iou 0.715319812297821: 65%|███████████████████████▎ | 48/74 [00:42<00:19, 1.37it/s]
epoch 131 | loss 1.0564565658569336, f_iou 0.715319812297821: 66%|███████████████████████▊ | 49/74 [00:42<00:18, 1.34it/s]
epoch 131 | loss 0.8016197681427002, f_iou 0.7162321209907532: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.34it/s]
epoch 131 | loss 0.8016197681427002, f_iou 0.7162321209907532: 68%|███████████████████████▋ | 50/74 [00:43<00:18, 1.32it/s]
epoch 131 | loss 1.6201307773590088, f_iou 0.7079565525054932: 68%|███████████████████████▋ | 50/74 [00:43<00:18, 1.32it/s]
epoch 131 | loss 1.6201307773590088, f_iou 0.7079565525054932: 69%|████████████████████████ | 51/74 [00:43<00:17, 1.33it/s]
epoch 131 | loss 1.2580817937850952, f_iou 0.7118328809738159: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.33it/s]
epoch 131 | loss 1.2580817937850952, f_iou 0.7118328809738159: 70%|████████████████████████▌ | 52/74 [00:44<00:16, 1.35it/s]
epoch 131 | loss 1.1040977239608765, f_iou 0.7114783525466919: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.35it/s]
epoch 131 | loss 1.1040977239608765, f_iou 0.7114783525466919: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.36it/s]
epoch 131 | loss 0.1500469446182251, f_iou 0.7152279019355774: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.36it/s]
epoch 131 | loss 0.1500469446182251, f_iou 0.7152279019355774: 73%|█████████████████████████▌ | 54/74 [00:45<00:14, 1.36it/s]
epoch 131 | loss 0.0, f_iou 0.7184787392616272: 73%|████████████████████████████████████▍ | 54/74 [00:46<00:14, 1.36it/s]
epoch 131 | loss 0.0, f_iou 0.7184787392616272: 74%|█████████████████████████████████████▏ | 55/74 [00:46<00:13, 1.36it/s]
epoch 131 | loss 1.185326337814331, f_iou 0.7213457226753235: 74%|██████████████████████████▊ | 55/74 [00:47<00:13, 1.36it/s]
epoch 131 | loss 1.185326337814331, f_iou 0.7213457226753235: 76%|███████████████████████████▏ | 56/74 [00:47<00:13, 1.37it/s]
epoch 131 | loss 2.1390671730041504, f_iou 0.7173912525177002: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.37it/s]
epoch 131 | loss 2.1390671730041504, f_iou 0.7173912525177002: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.37it/s]
epoch 131 | loss 0.9418644905090332, f_iou 0.71700519323349: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.37it/s]
epoch 131 | loss 0.9418644905090332, f_iou 0.71700519323349: 78%|█████████████████████████████ | 58/74 [00:48<00:11, 1.37it/s]
epoch 131 | loss 0.5164119601249695, f_iou 0.7176637053489685: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.37it/s]
epoch 131 | loss 0.5164119601249695, f_iou 0.7176637053489685: 80%|███████████████████████████▉ | 59/74 [00:49<00:10, 1.38it/s]
epoch 131 | loss 0.38811442255973816, f_iou 0.7208677530288696: 80%|███████████████████████████ | 59/74 [00:50<00:10, 1.38it/s]
epoch 131 | loss 0.38811442255973816, f_iou 0.7208677530288696: 81%|███████████████████████████▌ | 60/74 [00:50<00:10, 1.37it/s]
epoch 131 | loss 0.5635120868682861, f_iou 0.7236353754997253: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.37it/s]
epoch 131 | loss 0.5635120868682861, f_iou 0.7236353754997253: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.38it/s]
epoch 131 | loss 0.25080111622810364, f_iou 0.7275676131248474: 82%|████████████████████████████ | 61/74 [00:51<00:09, 1.38it/s]
epoch 131 | loss 0.25080111622810364, f_iou 0.7275676131248474: 84%|████████████████████████████▍ | 62/74 [00:51<00:08, 1.38it/s]
epoch 131 | loss 1.2252594232559204, f_iou 0.7253925204277039: 84%|█████████████████████████████▎ | 62/74 [00:52<00:08, 1.38it/s]
epoch 131 | loss 1.2252594232559204, f_iou 0.7253925204277039: 85%|█████████████████████████████▊ | 63/74 [00:52<00:07, 1.38it/s]
epoch 131 | loss 1.040070652961731, f_iou 0.7185714840888977: 85%|██████████████████████████████▋ | 63/74 [00:53<00:07, 1.38it/s]
epoch 131 | loss 1.040070652961731, f_iou 0.7185714840888977: 86%|███████████████████████████████▏ | 64/74 [00:53<00:07, 1.36it/s]
epoch 131 | loss 0.3670496940612793, f_iou 0.7223506569862366: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.36it/s]
epoch 131 | loss 0.3670496940612793, f_iou 0.7223506569862366: 88%|██████████████████████████████▋ | 65/74 [00:54<00:06, 1.36it/s]
epoch 131 | loss 0.37398195266723633, f_iou 0.7126789689064026: 88%|█████████████████████████████▊ | 65/74 [00:54<00:06, 1.36it/s]
epoch 131 | loss 0.37398195266723633, f_iou 0.7126789689064026: 89%|██████████████████████████████▎ | 66/74 [00:54<00:05, 1.35it/s]
epoch 131 | loss 0.349058598279953, f_iou 0.7165261507034302: 89%|████████████████████████████████ | 66/74 [00:55<00:05, 1.35it/s]
epoch 131 | loss 0.349058598279953, f_iou 0.7165261507034302: 91%|████████████████████████████████▌ | 67/74 [00:55<00:05, 1.36it/s]
epoch 131 | loss 0.32061728835105896, f_iou 0.7195144891738892: 91%|██████████████████████████████▊ | 67/74 [00:56<00:05, 1.36it/s]
epoch 131 | loss 0.32061728835105896, f_iou 0.7195144891738892: 92%|███████████████████████████████▏ | 68/74 [00:56<00:04, 1.37it/s]
epoch 131 | loss 0.785070538520813, f_iou 0.7220672965049744: 92%|█████████████████████████████████ | 68/74 [00:56<00:04, 1.37it/s]
epoch 131 | loss 0.785070538520813, f_iou 0.7220672965049744: 93%|█████████████████████████████████▌ | 69/74 [00:56<00:03, 1.37it/s]
epoch 131 | loss 2.0324668884277344, f_iou 0.7165926694869995: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.37it/s]
epoch 131 | loss 2.0324668884277344, f_iou 0.7165926694869995: 95%|█████████████████████████████████ | 70/74 [00:57<00:02, 1.36it/s]
epoch 131 | loss 0.8760558366775513, f_iou 0.7160661816596985: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.36it/s]
epoch 131 | loss 0.8760558366775513, f_iou 0.7160661816596985: 96%|█████████████████████████████████▌ | 71/74 [00:58<00:02, 1.37it/s]
epoch 131 | loss 0.9963654279708862, f_iou 0.7180547118186951: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.37it/s]
epoch 131 | loss 0.9963654279708862, f_iou 0.7180547118186951: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 131 | loss 0.6588326692581177, f_iou 0.7206745743751526: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.37it/s]
epoch 131 | loss 0.6588326692581177, f_iou 0.7206745743751526: 99%|██████████████████████████████████▌| 73/74 [00:59<00:00, 1.36it/s]
epoch 131 | loss 0.6281270980834961, f_iou 0.7188001275062561: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.36it/s]
epoch 131 | loss 0.6281270980834961, f_iou 0.7188001275062561: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.36it/s]
epoch 131 | loss 0.6281270980834961, f_iou 0.7188001275062561: 100%|███████████████████████████████████| 74/74 [01:00<00:00, 1.22it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 131 | valid.f_iou 0.745169997215271, valid.f_f-score 0.83025: 0%| | 0/16 [00:05, ?it/s]
epoch 131 | valid.f_iou 0.745169997215271, valid.f_f-score 0.83025: 6%|█▉ | 1/16 [00:05<01:26, 5.77s/it]
epoch 131 | valid.f_iou 0.7284299731254578, valid.f_f-score 0.87334: 6%|█▉ | 1/16 [00:06<01:26, 5.77s/it]
epoch 131 | valid.f_iou 0.7284299731254578, valid.f_f-score 0.87334: 12%|███▊ | 2/16 [00:06<00:37, 2.65s/it]
epoch 131 | valid.f_iou 0.5887600183486938, valid.f_f-score 0.77956: 12%|███▊ | 2/16 [00:06<00:37, 2.65s/it]
epoch 131 | valid.f_iou 0.5887600183486938, valid.f_f-score 0.77956: 19%|█████▋ | 3/16 [00:06<00:21, 1.66s/it]
epoch 131 | valid.f_iou 0.6154500246047974, valid.f_f-score 0.76139: 19%|█████▋ | 3/16 [00:07<00:21, 1.66s/it]
epoch 131 | valid.f_iou 0.6154500246047974, valid.f_f-score 0.76139: 25%|███████▌ | 4/16 [00:07<00:14, 1.17s/it]
epoch 131 | valid.f_iou 0.6246799826622009, valid.f_f-score 0.76689: 25%|███████▌ | 4/16 [00:07<00:14, 1.17s/it]
epoch 131 | valid.f_iou 0.6246799826622009, valid.f_f-score 0.76689: 31%|█████████▍ | 5/16 [00:07<00:10, 1.09it/s]
epoch 131 | valid.f_iou 0.5822100043296814, valid.f_f-score 0.7276: 31%|█████████▋ | 5/16 [00:08<00:10, 1.09it/s]
epoch 131 | valid.f_iou 0.5822100043296814, valid.f_f-score 0.7276: 38%|███████████▋ | 6/16 [00:08<00:07, 1.30it/s]
epoch 131 | valid.f_iou 0.608460009098053, valid.f_f-score 0.74849: 38%|███████████▋ | 6/16 [00:08<00:07, 1.30it/s]
epoch 131 | valid.f_iou 0.608460009098053, valid.f_f-score 0.74849: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 131 | valid.f_iou 0.5836600065231323, valid.f_f-score 0.7358: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.52it/s]
epoch 131 | valid.f_iou 0.5836600065231323, valid.f_f-score 0.7358: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.70it/s]
epoch 131 | valid.f_iou 0.6003699898719788, valid.f_f-score 0.74489: 50%|███████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 131 | valid.f_iou 0.6003699898719788, valid.f_f-score 0.74489: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 131 | valid.f_iou 0.5925899744033813, valid.f_f-score 0.7436: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.86it/s]
epoch 131 | valid.f_iou 0.5925899744033813, valid.f_f-score 0.7436: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.98it/s]
epoch 131 | valid.f_iou 0.5917900204658508, valid.f_f-score 0.74135: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.98it/s]
epoch 131 | valid.f_iou 0.5917900204658508, valid.f_f-score 0.74135: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.17it/s]
epoch 131 | valid.f_iou 0.6130899786949158, valid.f_f-score 0.75698: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.17it/s]
epoch 131 | valid.f_iou 0.6130899786949158, valid.f_f-score 0.75698: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.31it/s]
epoch 131 | valid.f_iou 0.6239799857139587, valid.f_f-score 0.7644: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.31it/s]
epoch 131 | valid.f_iou 0.6239799857139587, valid.f_f-score 0.7644: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 131 | valid.f_iou 0.6175900101661682, valid.f_f-score 0.75985: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.43it/s]
epoch 131 | valid.f_iou 0.6175900101661682, valid.f_f-score 0.75985: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 131 | valid.f_iou 0.6203100085258484, valid.f_f-score 0.75918: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 131 | valid.f_iou 0.6203100085258484, valid.f_f-score 0.75918: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 131 | valid.f_iou 0.6214699745178223, valid.f_f-score 0.75497: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 131 | valid.f_iou 0.6214699745178223, valid.f_f-score 0.75497: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.61it/s]
epoch 131 | valid.f_iou 0.6214699745178223, valid.f_f-score 0.75497: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.33it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 131 | valid.f_iou 0.8013100028038025, valid.f_f-score 0.79332: 0%| | 0/16 [00:05, ?it/s]
epoch 131 | valid.f_iou 0.8013100028038025, valid.f_f-score 0.79332: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 131 | valid.f_iou 0.8380799889564514, valid.f_f-score 0.86614: 6%|█▉ | 1/16 [00:05<01:20, 5.36s/it]
epoch 131 | valid.f_iou 0.8380799889564514, valid.f_f-score 0.86614: 12%|███▊ | 2/16 [00:05<00:34, 2.47s/it]
epoch 131 | valid.f_iou 0.7821400165557861, valid.f_f-score 0.85363: 12%|███▊ | 2/16 [00:06<00:34, 2.47s/it]
epoch 131 | valid.f_iou 0.7821400165557861, valid.f_f-score 0.85363: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 131 | valid.f_iou 0.7753300070762634, valid.f_f-score 0.82841: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 131 | valid.f_iou 0.7753300070762634, valid.f_f-score 0.82841: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 131 | valid.f_iou 0.735289990901947, valid.f_f-score 0.80457: 25%|███████▊ | 4/16 [00:07<00:13, 1.12s/it]
epoch 131 | valid.f_iou 0.735289990901947, valid.f_f-score 0.80457: 31%|█████████▋ | 5/16 [00:07<00:09, 1.14it/s]
epoch 131 | valid.f_iou 0.7223899960517883, valid.f_f-score 0.79773: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 131 | valid.f_iou 0.7223899960517883, valid.f_f-score 0.79773: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 131 | valid.f_iou 0.7384999990463257, valid.f_f-score 0.81798: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 131 | valid.f_iou 0.7384999990463257, valid.f_f-score 0.81798: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 131 | valid.f_iou 0.7276800274848938, valid.f_f-score 0.8172: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.55it/s]
epoch 131 | valid.f_iou 0.7276800274848938, valid.f_f-score 0.8172: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.71it/s]
epoch 131 | valid.f_iou 0.7296599745750427, valid.f_f-score 0.81931: 50%|███████████████ | 8/16 [00:09<00:04, 1.71it/s]
epoch 131 | valid.f_iou 0.7296599745750427, valid.f_f-score 0.81931: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.78it/s]
epoch 131 | valid.f_iou 0.7374100089073181, valid.f_f-score 0.82942: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.78it/s]
epoch 131 | valid.f_iou 0.7374100089073181, valid.f_f-score 0.82942: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.90it/s]
epoch 131 | valid.f_iou 0.7182700037956238, valid.f_f-score 0.80454: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.90it/s]
epoch 131 | valid.f_iou 0.7182700037956238, valid.f_f-score 0.80454: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.00it/s]
epoch 131 | valid.f_iou 0.7302500009536743, valid.f_f-score 0.81516: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.00it/s]
epoch 131 | valid.f_iou 0.7302500009536743, valid.f_f-score 0.81516: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.07it/s]
epoch 131 | valid.f_iou 0.7407500147819519, valid.f_f-score 0.82292: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.07it/s]
epoch 131 | valid.f_iou 0.7407500147819519, valid.f_f-score 0.82292: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.20it/s]
epoch 131 | valid.f_iou 0.731249988079071, valid.f_f-score 0.81469: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.20it/s]
epoch 131 | valid.f_iou 0.731249988079071, valid.f_f-score 0.81469: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.33it/s]
epoch 131 | valid.f_iou 0.7382199764251709, valid.f_f-score 0.82318: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.33it/s]
epoch 131 | valid.f_iou 0.7382199764251709, valid.f_f-score 0.82318: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.44it/s]
epoch 131 | valid.f_iou 0.7370799779891968, valid.f_f-score 0.82121: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.44it/s]
epoch 131 | valid.f_iou 0.7370799779891968, valid.f_f-score 0.82121: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.52it/s]
epoch 131 | valid.f_iou 0.7370799779891968, valid.f_f-score 0.82121: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 131 | valid.f_iou 0.7535499930381775, valid.f_f-score 0.76332: 0%| | 0/16 [00:05, ?it/s]
epoch 131 | valid.f_iou 0.7535499930381775, valid.f_f-score 0.76332: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 131 | valid.f_iou 0.8141999840736389, valid.f_f-score 0.85114: 6%|█▉ | 1/16 [00:05<01:17, 5.18s/it]
epoch 131 | valid.f_iou 0.8141999840736389, valid.f_f-score 0.85114: 12%|███▊ | 2/16 [00:05<00:33, 2.41s/it]
epoch 131 | valid.f_iou 0.766219973564148, valid.f_f-score 0.84363: 12%|███▉ | 2/16 [00:06<00:33, 2.41s/it]
epoch 131 | valid.f_iou 0.766219973564148, valid.f_f-score 0.84363: 19%|█████▊ | 3/16 [00:06<00:19, 1.52s/it]
epoch 131 | valid.f_iou 0.7635700106620789, valid.f_f-score 0.82091: 19%|█████▋ | 3/16 [00:06<00:19, 1.52s/it]
epoch 131 | valid.f_iou 0.7635700106620789, valid.f_f-score 0.82091: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 131 | valid.f_iou 0.7340599894523621, valid.f_f-score 0.79857: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 131 | valid.f_iou 0.7340599894523621, valid.f_f-score 0.79857: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 131 | valid.f_iou 0.7213600277900696, valid.f_f-score 0.79273: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 131 | valid.f_iou 0.7213600277900696, valid.f_f-score 0.79273: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 131 | valid.f_iou 0.7393800020217896, valid.f_f-score 0.81369: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 131 | valid.f_iou 0.7393800020217896, valid.f_f-score 0.81369: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.53it/s]
epoch 131 | valid.f_iou 0.7284600138664246, valid.f_f-score 0.81345: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.53it/s]
epoch 131 | valid.f_iou 0.7284600138664246, valid.f_f-score 0.81345: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 131 | valid.f_iou 0.7340499758720398, valid.f_f-score 0.81598: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 131 | valid.f_iou 0.7340499758720398, valid.f_f-score 0.81598: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.84it/s]
epoch 131 | valid.f_iou 0.7386999726295471, valid.f_f-score 0.82297: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.84it/s]
epoch 131 | valid.f_iou 0.7386999726295471, valid.f_f-score 0.82297: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 131 | valid.f_iou 0.7194399833679199, valid.f_f-score 0.79869: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 131 | valid.f_iou 0.7194399833679199, valid.f_f-score 0.79869: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.14it/s]
epoch 131 | valid.f_iou 0.7313200235366821, valid.f_f-score 0.80979: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 131 | valid.f_iou 0.7313200235366821, valid.f_f-score 0.80979: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 131 | valid.f_iou 0.7416700124740601, valid.f_f-score 0.81877: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 131 | valid.f_iou 0.7416700124740601, valid.f_f-score 0.81877: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 131 | valid.f_iou 0.7321000099182129, valid.f_f-score 0.81085: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.39it/s]
epoch 131 | valid.f_iou 0.7321000099182129, valid.f_f-score 0.81085: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.40it/s]
epoch 131 | valid.f_iou 0.7390199899673462, valid.f_f-score 0.81959: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.40it/s]
epoch 131 | valid.f_iou 0.7390199899673462, valid.f_f-score 0.81959: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 131 | valid.f_iou 0.7383000254631042, valid.f_f-score 0.81785: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 131 | valid.f_iou 0.7383000254631042, valid.f_f-score 0.81785: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.56it/s]
epoch 131 | valid.f_iou 0.7383000254631042, valid.f_f-score 0.81785: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 132 | loss 0.3347163796424866, f_iou 0.9711336493492126: 0%| | 0/74 [00:06, ?it/s]
epoch 132 | loss 0.3347163796424866, f_iou 0.9711336493492126: 1%|▍ | 1/74 [00:06<07:49, 6.43s/it]
epoch 132 | loss 0.8563798666000366, f_iou 0.9133232235908508: 1%|▍ | 1/74 [00:07<07:49, 6.43s/it]
epoch 132 | loss 0.8563798666000366, f_iou 0.9133232235908508: 3%|▉ | 2/74 [00:07<03:49, 3.19s/it]
epoch 132 | loss 0.41120460629463196, f_iou 0.6767444014549255: 3%|▉ | 2/74 [00:08<03:49, 3.19s/it]
epoch 132 | loss 0.41120460629463196, f_iou 0.6767444014549255: 4%|█▍ | 3/74 [00:08<02:29, 2.10s/it]
epoch 132 | loss 0.0, f_iou 0.7126954793930054: 4%|██ | 3/74 [00:08<02:29, 2.10s/it]
epoch 132 | loss 0.0, f_iou 0.7126954793930054: 5%|██▊ | 4/74 [00:08<01:50, 1.58s/it]
epoch 132 | loss 0.7675330638885498, f_iou 0.7565266489982605: 5%|█▉ | 4/74 [00:09<01:50, 1.58s/it]
epoch 132 | loss 0.7675330638885498, f_iou 0.7565266489982605: 7%|██▍ | 5/74 [00:09<01:29, 1.30s/it]
epoch 132 | loss 0.9674810767173767, f_iou 0.7701637744903564: 7%|██▍ | 5/74 [00:10<01:29, 1.30s/it]
epoch 132 | loss 0.9674810767173767, f_iou 0.7701637744903564: 8%|██▉ | 6/74 [00:10<01:17, 1.13s/it]
epoch 132 | loss 1.3375678062438965, f_iou 0.7810664772987366: 8%|██▉ | 6/74 [00:11<01:17, 1.13s/it]
epoch 132 | loss 1.3375678062438965, f_iou 0.7810664772987366: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 132 | loss 0.8620603084564209, f_iou 0.7733243703842163: 9%|███▍ | 7/74 [00:12<01:08, 1.02s/it]
epoch 132 | loss 0.8620603084564209, f_iou 0.7733243703842163: 11%|███▉ | 8/74 [00:12<01:02, 1.05it/s]
epoch 132 | loss 0.5072388648986816, f_iou 0.7925231456756592: 11%|███▉ | 8/74 [00:12<01:02, 1.05it/s]
epoch 132 | loss 0.5072388648986816, f_iou 0.7925231456756592: 12%|████▍ | 9/74 [00:12<00:58, 1.11it/s]
epoch 132 | loss 0.7267299890518188, f_iou 0.7756926417350769: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 132 | loss 0.7267299890518188, f_iou 0.7756926417350769: 14%|████▋ | 10/74 [00:13<00:55, 1.16it/s]
epoch 132 | loss 1.6019442081451416, f_iou 0.7854359745979309: 14%|████▋ | 10/74 [00:14<00:55, 1.16it/s]
epoch 132 | loss 1.6019442081451416, f_iou 0.7854359745979309: 15%|█████▏ | 11/74 [00:14<00:52, 1.19it/s]
epoch 132 | loss 0.8004100918769836, f_iou 0.7714661955833435: 15%|█████▏ | 11/74 [00:15<00:52, 1.19it/s]
epoch 132 | loss 0.8004100918769836, f_iou 0.7714661955833435: 16%|█████▋ | 12/74 [00:15<00:51, 1.22it/s]
epoch 132 | loss 0.865425705909729, f_iou 0.7814431190490723: 16%|█████▊ | 12/74 [00:16<00:51, 1.22it/s]
epoch 132 | loss 0.865425705909729, f_iou 0.7814431190490723: 18%|██████▎ | 13/74 [00:16<00:49, 1.23it/s]
epoch 132 | loss 0.5763757228851318, f_iou 0.7921589016914368: 18%|██████▏ | 13/74 [00:16<00:49, 1.23it/s]
epoch 132 | loss 0.5763757228851318, f_iou 0.7921589016914368: 19%|██████▌ | 14/74 [00:16<00:48, 1.25it/s]
epoch 132 | loss 0.4082374572753906, f_iou 0.7998523116111755: 19%|██████▌ | 14/74 [00:17<00:48, 1.25it/s]
epoch 132 | loss 0.4082374572753906, f_iou 0.7998523116111755: 20%|███████ | 15/74 [00:17<00:46, 1.27it/s]
epoch 132 | loss 0.5858778357505798, f_iou 0.8076791167259216: 20%|███████ | 15/74 [00:18<00:46, 1.27it/s]
epoch 132 | loss 0.5858778357505798, f_iou 0.8076791167259216: 22%|███████▌ | 16/74 [00:18<00:44, 1.30it/s]
epoch 132 | loss 1.364781379699707, f_iou 0.8019556403160095: 22%|███████▊ | 16/74 [00:19<00:44, 1.30it/s]
epoch 132 | loss 1.364781379699707, f_iou 0.8019556403160095: 23%|████████▎ | 17/74 [00:19<00:43, 1.33it/s]
epoch 132 | loss 0.6634833216667175, f_iou 0.8032947182655334: 23%|████████ | 17/74 [00:19<00:43, 1.33it/s]
epoch 132 | loss 0.6634833216667175, f_iou 0.8032947182655334: 24%|████████▌ | 18/74 [00:19<00:41, 1.34it/s]
epoch 132 | loss 0.47540879249572754, f_iou 0.8106603026390076: 24%|████████▎ | 18/74 [00:20<00:41, 1.34it/s]
epoch 132 | loss 0.47540879249572754, f_iou 0.8106603026390076: 26%|████████▋ | 19/74 [00:20<00:40, 1.35it/s]
epoch 132 | loss 0.5023374557495117, f_iou 0.8162660002708435: 26%|████████▉ | 19/74 [00:21<00:40, 1.35it/s]
epoch 132 | loss 0.5023374557495117, f_iou 0.8162660002708435: 27%|█████████▍ | 20/74 [00:21<00:39, 1.36it/s]
epoch 132 | loss 2.58707857131958, f_iou 0.801997721195221: 27%|██████████▎ | 20/74 [00:21<00:39, 1.36it/s]
epoch 132 | loss 2.58707857131958, f_iou 0.801997721195221: 28%|██████████▊ | 21/74 [00:21<00:39, 1.36it/s]
epoch 132 | loss 1.0313962697982788, f_iou 0.7988227009773254: 28%|█████████▉ | 21/74 [00:22<00:39, 1.36it/s]
epoch 132 | loss 1.0313962697982788, f_iou 0.7988227009773254: 30%|██████████▍ | 22/74 [00:22<00:38, 1.36it/s]
epoch 132 | loss 0.5160413384437561, f_iou 0.801565945148468: 30%|██████████▋ | 22/74 [00:23<00:38, 1.36it/s]
epoch 132 | loss 0.5160413384437561, f_iou 0.801565945148468: 31%|███████████▏ | 23/74 [00:23<00:37, 1.36it/s]
epoch 132 | loss 0.864267110824585, f_iou 0.7681975364685059: 31%|███████████▏ | 23/74 [00:24<00:37, 1.36it/s]
epoch 132 | loss 0.864267110824585, f_iou 0.7681975364685059: 32%|███████████▋ | 24/74 [00:24<00:37, 1.35it/s]
epoch 132 | loss 1.7475812435150146, f_iou 0.762509822845459: 32%|███████████▋ | 24/74 [00:24<00:37, 1.35it/s]
epoch 132 | loss 1.7475812435150146, f_iou 0.762509822845459: 34%|████████████▏ | 25/74 [00:24<00:36, 1.33it/s]
epoch 132 | loss 0.9563068151473999, f_iou 0.7632102966308594: 34%|███████████▊ | 25/74 [00:25<00:36, 1.33it/s]
epoch 132 | loss 0.9563068151473999, f_iou 0.7632102966308594: 35%|████████████▎ | 26/74 [00:25<00:36, 1.31it/s]
epoch 132 | loss 0.3068098723888397, f_iou 0.7711238265037537: 35%|████████████▎ | 26/74 [00:26<00:36, 1.31it/s]
epoch 132 | loss 0.3068098723888397, f_iou 0.7711238265037537: 36%|████████████▊ | 27/74 [00:26<00:35, 1.32it/s]
epoch 132 | loss 0.2302379310131073, f_iou 0.7491161227226257: 36%|████████████▊ | 27/74 [00:27<00:35, 1.32it/s]
epoch 132 | loss 0.2302379310131073, f_iou 0.7491161227226257: 38%|█████████████▏ | 28/74 [00:27<00:34, 1.34it/s]
epoch 132 | loss 0.7626986503601074, f_iou 0.7435491681098938: 38%|█████████████▏ | 28/74 [00:27<00:34, 1.34it/s]
epoch 132 | loss 0.7626986503601074, f_iou 0.7435491681098938: 39%|█████████████▋ | 29/74 [00:27<00:33, 1.35it/s]
epoch 132 | loss 0.8009885549545288, f_iou 0.7443653345108032: 39%|█████████████▋ | 29/74 [00:28<00:33, 1.35it/s]
epoch 132 | loss 0.8009885549545288, f_iou 0.7443653345108032: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.35it/s]
epoch 132 | loss 0.9965135455131531, f_iou 0.7370705008506775: 41%|██████████████▏ | 30/74 [00:29<00:32, 1.35it/s]
epoch 132 | loss 0.9965135455131531, f_iou 0.7370705008506775: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.32it/s]
epoch 132 | loss 0.4545902609825134, f_iou 0.7405949831008911: 42%|██████████████▋ | 31/74 [00:30<00:32, 1.32it/s]
epoch 132 | loss 0.4545902609825134, f_iou 0.7405949831008911: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.31it/s]
epoch 132 | loss 0.7496365308761597, f_iou 0.7445240020751953: 43%|███████████████▏ | 32/74 [00:31<00:32, 1.31it/s]
epoch 132 | loss 0.7496365308761597, f_iou 0.7445240020751953: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.29it/s]
epoch 132 | loss 0.7780022025108337, f_iou 0.749542772769928: 45%|████████████████ | 33/74 [00:31<00:31, 1.29it/s]
epoch 132 | loss 0.7780022025108337, f_iou 0.749542772769928: 46%|████████████████▌ | 34/74 [00:31<00:30, 1.30it/s]
epoch 132 | loss 1.2576191425323486, f_iou 0.7464545965194702: 46%|████████████████ | 34/74 [00:32<00:30, 1.30it/s]
epoch 132 | loss 1.2576191425323486, f_iou 0.7464545965194702: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.31it/s]
epoch 132 | loss 1.2173348665237427, f_iou 0.7364552617073059: 47%|████████████████▌ | 35/74 [00:33<00:29, 1.31it/s]
epoch 132 | loss 1.2173348665237427, f_iou 0.7364552617073059: 49%|█████████████████ | 36/74 [00:33<00:29, 1.30it/s]
epoch 132 | loss 0.33097267150878906, f_iou 0.7420478463172913: 49%|████████████████▌ | 36/74 [00:34<00:29, 1.30it/s]
epoch 132 | loss 0.33097267150878906, f_iou 0.7420478463172913: 50%|█████████████████ | 37/74 [00:34<00:28, 1.30it/s]
epoch 132 | loss 0.4012279808521271, f_iou 0.7471974492073059: 50%|█████████████████▌ | 37/74 [00:34<00:28, 1.30it/s]
epoch 132 | loss 0.4012279808521271, f_iou 0.7471974492073059: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.32it/s]
epoch 132 | loss 0.941045880317688, f_iou 0.7525376081466675: 51%|██████████████████▍ | 38/74 [00:35<00:27, 1.32it/s]
epoch 132 | loss 0.941045880317688, f_iou 0.7525376081466675: 53%|██████████████████▉ | 39/74 [00:35<00:26, 1.34it/s]
epoch 132 | loss 0.6553558111190796, f_iou 0.7568269371986389: 53%|██████████████████▍ | 39/74 [00:36<00:26, 1.34it/s]
epoch 132 | loss 0.6553558111190796, f_iou 0.7568269371986389: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.36it/s]
epoch 132 | loss 0.4543710947036743, f_iou 0.7583975791931152: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.36it/s]
epoch 132 | loss 0.4543710947036743, f_iou 0.7583975791931152: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.37it/s]
epoch 132 | loss 0.6371186971664429, f_iou 0.7633153200149536: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.37it/s]
epoch 132 | loss 0.6371186971664429, f_iou 0.7633153200149536: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.37it/s]
epoch 132 | loss 1.0439366102218628, f_iou 0.7599247097969055: 57%|███████████████████▊ | 42/74 [00:38<00:23, 1.37it/s]
epoch 132 | loss 1.0439366102218628, f_iou 0.7599247097969055: 58%|████████████████████▎ | 43/74 [00:38<00:22, 1.37it/s]
epoch 132 | loss 0.27662765979766846, f_iou 0.7597754597663879: 58%|███████████████████▊ | 43/74 [00:39<00:22, 1.37it/s]
epoch 132 | loss 0.27662765979766846, f_iou 0.7597754597663879: 59%|████████████████████▏ | 44/74 [00:39<00:22, 1.36it/s]
epoch 132 | loss 1.1686854362487793, f_iou 0.7623172402381897: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.36it/s]
epoch 132 | loss 1.1686854362487793, f_iou 0.7623172402381897: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.35it/s]
epoch 132 | loss 0.5668050050735474, f_iou 0.7650396823883057: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.35it/s]
epoch 132 | loss 0.5668050050735474, f_iou 0.7650396823883057: 62%|█████████████████████▊ | 46/74 [00:40<00:21, 1.32it/s]
epoch 132 | loss 0.0, f_iou 0.769775927066803: 62%|███████████████████████████████▋ | 46/74 [00:41<00:21, 1.32it/s]
epoch 132 | loss 0.0, f_iou 0.769775927066803: 64%|████████████████████████████████▍ | 47/74 [00:41<00:20, 1.31it/s]
epoch 132 | loss 0.43966248631477356, f_iou 0.7739851474761963: 64%|█████████████████████▌ | 47/74 [00:42<00:20, 1.31it/s]
epoch 132 | loss 0.43966248631477356, f_iou 0.7739851474761963: 65%|██████████████████████ | 48/74 [00:42<00:19, 1.30it/s]
epoch 132 | loss 0.4938329756259918, f_iou 0.7757675647735596: 65%|██████████████████████▋ | 48/74 [00:43<00:19, 1.30it/s]
epoch 132 | loss 0.4938329756259918, f_iou 0.7757675647735596: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.32it/s]
epoch 132 | loss 1.4429717063903809, f_iou 0.7754372358322144: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.32it/s]
epoch 132 | loss 1.4429717063903809, f_iou 0.7754372358322144: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.34it/s]
epoch 132 | loss 0.7550060153007507, f_iou 0.7786532640457153: 68%|███████████████████████▋ | 50/74 [00:44<00:17, 1.34it/s]
epoch 132 | loss 0.7550060153007507, f_iou 0.7786532640457153: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.32it/s]
epoch 132 | loss 0.8156814575195312, f_iou 0.7733168601989746: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.32it/s]
epoch 132 | loss 0.8156814575195312, f_iou 0.7733168601989746: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.30it/s]
epoch 132 | loss 0.6710096001625061, f_iou 0.774621844291687: 70%|█████████████████████████▎ | 52/74 [00:46<00:16, 1.30it/s]
epoch 132 | loss 0.6710096001625061, f_iou 0.774621844291687: 72%|█████████████████████████▊ | 53/74 [00:46<00:16, 1.29it/s]
epoch 132 | loss 0.7795562148094177, f_iou 0.7780916690826416: 72%|█████████████████████████ | 53/74 [00:46<00:16, 1.29it/s]
epoch 132 | loss 0.7795562148094177, f_iou 0.7780916690826416: 73%|█████████████████████████▌ | 54/74 [00:46<00:15, 1.29it/s]
epoch 132 | loss 0.924111008644104, f_iou 0.7773141264915466: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.29it/s]
epoch 132 | loss 0.924111008644104, f_iou 0.7773141264915466: 74%|██████████████████████████▊ | 55/74 [00:47<00:14, 1.29it/s]
epoch 132 | loss 0.620173454284668, f_iou 0.7774487733840942: 74%|██████████████████████████▊ | 55/74 [00:48<00:14, 1.29it/s]
epoch 132 | loss 0.620173454284668, f_iou 0.7774487733840942: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.32it/s]
epoch 132 | loss 0.9485759735107422, f_iou 0.7736939787864685: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.32it/s]
epoch 132 | loss 0.9485759735107422, f_iou 0.7736939787864685: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.33it/s]
epoch 132 | loss 2.596262216567993, f_iou 0.7693831324577332: 77%|███████████████████████████▋ | 57/74 [00:49<00:12, 1.33it/s]
epoch 132 | loss 2.596262216567993, f_iou 0.7693831324577332: 78%|████████████████████████████▏ | 58/74 [00:49<00:11, 1.35it/s]
epoch 132 | loss 0.0, f_iou 0.7731528282165527: 78%|███████████████████████████████████████▏ | 58/74 [00:50<00:11, 1.35it/s]
epoch 132 | loss 0.0, f_iou 0.7731528282165527: 80%|███████████████████████████████████████▊ | 59/74 [00:50<00:11, 1.35it/s]
epoch 132 | loss 0.9497419595718384, f_iou 0.775402307510376: 80%|████████████████████████████▋ | 59/74 [00:51<00:11, 1.35it/s]
epoch 132 | loss 0.9497419595718384, f_iou 0.775402307510376: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.36it/s]
epoch 132 | loss 1.0200306177139282, f_iou 0.7772240042686462: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.36it/s]
epoch 132 | loss 1.0200306177139282, f_iou 0.7772240042686462: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.37it/s]
epoch 132 | loss 1.4312437772750854, f_iou 0.764792263507843: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.37it/s]
epoch 132 | loss 1.4312437772750854, f_iou 0.764792263507843: 84%|██████████████████████████████▏ | 62/74 [00:52<00:08, 1.37it/s]
epoch 132 | loss 1.4666075706481934, f_iou 0.7556777596473694: 84%|█████████████████████████████▎ | 62/74 [00:53<00:08, 1.37it/s]
epoch 132 | loss 1.4666075706481934, f_iou 0.7556777596473694: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.35it/s]
epoch 132 | loss 0.9398770332336426, f_iou 0.7569582462310791: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.35it/s]
epoch 132 | loss 0.9398770332336426, f_iou 0.7569582462310791: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.34it/s]
epoch 132 | loss 0.3698635697364807, f_iou 0.7597574591636658: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.34it/s]
epoch 132 | loss 0.3698635697364807, f_iou 0.7597574591636658: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.32it/s]
epoch 132 | loss 1.8977022171020508, f_iou 0.7539924383163452: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.32it/s]
epoch 132 | loss 1.8977022171020508, f_iou 0.7539924383163452: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.32it/s]
epoch 132 | loss 0.6701569557189941, f_iou 0.7550075650215149: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.32it/s]
epoch 132 | loss 0.6701569557189941, f_iou 0.7550075650215149: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.31it/s]
epoch 132 | loss 0.8005712032318115, f_iou 0.7570842504501343: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.31it/s]
epoch 132 | loss 0.8005712032318115, f_iou 0.7570842504501343: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.32it/s]
epoch 132 | loss 1.2229807376861572, f_iou 0.7583116292953491: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.32it/s]
epoch 132 | loss 1.2229807376861572, f_iou 0.7583116292953491: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.34it/s]
epoch 132 | loss 0.3693545162677765, f_iou 0.7610318064689636: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.34it/s]
epoch 132 | loss 0.3693545162677765, f_iou 0.7610318064689636: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.37it/s]
epoch 132 | loss 0.6848123073577881, f_iou 0.7628707885742188: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.37it/s]
epoch 132 | loss 0.6848123073577881, f_iou 0.7628707885742188: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.37it/s]
epoch 132 | loss 2.2139699459075928, f_iou 0.7613018751144409: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.37it/s]
epoch 132 | loss 2.2139699459075928, f_iou 0.7613018751144409: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 132 | loss 0.4635889232158661, f_iou 0.7539371252059937: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 132 | loss 0.4635889232158661, f_iou 0.7539371252059937: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 132 | loss 0.2356855273246765, f_iou 0.7568743824958801: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.39it/s]
epoch 132 | loss 0.2356855273246765, f_iou 0.7568743824958801: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 132 | loss 0.2356855273246765, f_iou 0.7568743824958801: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 132 | valid.f_iou 0.7327399849891663, valid.f_f-score 0.83471: 0%| | 0/16 [00:05, ?it/s]
epoch 132 | valid.f_iou 0.7327399849891663, valid.f_f-score 0.83471: 6%|█▉ | 1/16 [00:05<01:25, 5.73s/it]
epoch 132 | valid.f_iou 0.7247300148010254, valid.f_f-score 0.87563: 6%|█▉ | 1/16 [00:06<01:25, 5.73s/it]
epoch 132 | valid.f_iou 0.7247300148010254, valid.f_f-score 0.87563: 12%|███▊ | 2/16 [00:06<00:36, 2.63s/it]
epoch 132 | valid.f_iou 0.5838000178337097, valid.f_f-score 0.78182: 12%|███▊ | 2/16 [00:06<00:36, 2.63s/it]
epoch 132 | valid.f_iou 0.5838000178337097, valid.f_f-score 0.78182: 19%|█████▋ | 3/16 [00:06<00:21, 1.63s/it]
epoch 132 | valid.f_iou 0.6064199805259705, valid.f_f-score 0.75966: 19%|█████▋ | 3/16 [00:07<00:21, 1.63s/it]
epoch 132 | valid.f_iou 0.6064199805259705, valid.f_f-score 0.75966: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 132 | valid.f_iou 0.6172599792480469, valid.f_f-score 0.76527: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 132 | valid.f_iou 0.6172599792480469, valid.f_f-score 0.76527: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 132 | valid.f_iou 0.5749499797821045, valid.f_f-score 0.72822: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 132 | valid.f_iou 0.5749499797821045, valid.f_f-score 0.72822: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 132 | valid.f_iou 0.6001899838447571, valid.f_f-score 0.7509: 38%|███████████▋ | 6/16 [00:08<00:07, 1.34it/s]
epoch 132 | valid.f_iou 0.6001899838447571, valid.f_f-score 0.7509: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.57it/s]
epoch 132 | valid.f_iou 0.5684300065040588, valid.f_f-score 0.73675: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 132 | valid.f_iou 0.5684300065040588, valid.f_f-score 0.73675: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 132 | valid.f_iou 0.5872300267219543, valid.f_f-score 0.7456: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.77it/s]
epoch 132 | valid.f_iou 0.5872300267219543, valid.f_f-score 0.7456: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.97it/s]
epoch 132 | valid.f_iou 0.5788800120353699, valid.f_f-score 0.74603: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 132 | valid.f_iou 0.5788800120353699, valid.f_f-score 0.74603: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 132 | valid.f_iou 0.5796700119972229, valid.f_f-score 0.74317: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.05it/s]
epoch 132 | valid.f_iou 0.5796700119972229, valid.f_f-score 0.74317: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 132 | valid.f_iou 0.6020600199699402, valid.f_f-score 0.75876: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 132 | valid.f_iou 0.6020600199699402, valid.f_f-score 0.75876: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 132 | valid.f_iou 0.6133800148963928, valid.f_f-score 0.76573: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 132 | valid.f_iou 0.6133800148963928, valid.f_f-score 0.76573: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 132 | valid.f_iou 0.6082900166511536, valid.f_f-score 0.76139: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.40it/s]
epoch 132 | valid.f_iou 0.6082900166511536, valid.f_f-score 0.76139: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.50it/s]
epoch 132 | valid.f_iou 0.6107400059700012, valid.f_f-score 0.75867: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.50it/s]
epoch 132 | valid.f_iou 0.6107400059700012, valid.f_f-score 0.75867: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 132 | valid.f_iou 0.6114299893379211, valid.f_f-score 0.75626: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 132 | valid.f_iou 0.6114299893379211, valid.f_f-score 0.75626: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.60it/s]
epoch 132 | valid.f_iou 0.6114299893379211, valid.f_f-score 0.75626: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.35it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 132 | valid.f_iou 0.8116999864578247, valid.f_f-score 0.8005: 0%| | 0/16 [00:05, ?it/s]
epoch 132 | valid.f_iou 0.8116999864578247, valid.f_f-score 0.8005: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 132 | valid.f_iou 0.8424000144004822, valid.f_f-score 0.86937: 6%|█▉ | 1/16 [00:05<01:20, 5.35s/it]
epoch 132 | valid.f_iou 0.8424000144004822, valid.f_f-score 0.86937: 12%|███▊ | 2/16 [00:05<00:34, 2.47s/it]
epoch 132 | valid.f_iou 0.7875999808311462, valid.f_f-score 0.85754: 12%|███▊ | 2/16 [00:06<00:34, 2.47s/it]
epoch 132 | valid.f_iou 0.7875999808311462, valid.f_f-score 0.85754: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 132 | valid.f_iou 0.7787399888038635, valid.f_f-score 0.82953: 19%|█████▋ | 3/16 [00:06<00:20, 1.55s/it]
epoch 132 | valid.f_iou 0.7787399888038635, valid.f_f-score 0.82953: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 132 | valid.f_iou 0.744189977645874, valid.f_f-score 0.81419: 25%|███████▊ | 4/16 [00:07<00:13, 1.10s/it]
epoch 132 | valid.f_iou 0.744189977645874, valid.f_f-score 0.81419: 31%|█████████▋ | 5/16 [00:07<00:09, 1.16it/s]
epoch 132 | valid.f_iou 0.7259200215339661, valid.f_f-score 0.79959: 31%|█████████▍ | 5/16 [00:07<00:09, 1.16it/s]
epoch 132 | valid.f_iou 0.7259200215339661, valid.f_f-score 0.79959: 38%|███████████▎ | 6/16 [00:07<00:07, 1.39it/s]
epoch 132 | valid.f_iou 0.7363700270652771, valid.f_f-score 0.81625: 38%|███████████▎ | 6/16 [00:07<00:07, 1.39it/s]
epoch 132 | valid.f_iou 0.7363700270652771, valid.f_f-score 0.81625: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.64it/s]
epoch 132 | valid.f_iou 0.7281000018119812, valid.f_f-score 0.81684: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.64it/s]
epoch 132 | valid.f_iou 0.7281000018119812, valid.f_f-score 0.81684: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 132 | valid.f_iou 0.7313899993896484, valid.f_f-score 0.81871: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 132 | valid.f_iou 0.7313899993896484, valid.f_f-score 0.81871: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.98it/s]
epoch 132 | valid.f_iou 0.7370399832725525, valid.f_f-score 0.82826: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.98it/s]
epoch 132 | valid.f_iou 0.7370399832725525, valid.f_f-score 0.82826: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 132 | valid.f_iou 0.723800003528595, valid.f_f-score 0.81068: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.07it/s]
epoch 132 | valid.f_iou 0.723800003528595, valid.f_f-score 0.81068: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.23it/s]
epoch 132 | valid.f_iou 0.7357100248336792, valid.f_f-score 0.82087: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.23it/s]
epoch 132 | valid.f_iou 0.7357100248336792, valid.f_f-score 0.82087: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.36it/s]
epoch 132 | valid.f_iou 0.7458599805831909, valid.f_f-score 0.82825: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.36it/s]
epoch 132 | valid.f_iou 0.7458599805831909, valid.f_f-score 0.82825: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.46it/s]
epoch 132 | valid.f_iou 0.7362099885940552, valid.f_f-score 0.81958: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.46it/s]
epoch 132 | valid.f_iou 0.7362099885940552, valid.f_f-score 0.81958: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 132 | valid.f_iou 0.7416200041770935, valid.f_f-score 0.82579: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 132 | valid.f_iou 0.7416200041770935, valid.f_f-score 0.82579: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 132 | valid.f_iou 0.7404900193214417, valid.f_f-score 0.82383: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 132 | valid.f_iou 0.7404900193214417, valid.f_f-score 0.82383: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 132 | valid.f_iou 0.7404900193214417, valid.f_f-score 0.82383: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 132 | valid.f_iou 0.7637500166893005, valid.f_f-score 0.77049: 0%| | 0/16 [00:05, ?it/s]
epoch 132 | valid.f_iou 0.7637500166893005, valid.f_f-score 0.77049: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 132 | valid.f_iou 0.8184199929237366, valid.f_f-score 0.85437: 6%|█▉ | 1/16 [00:05<01:21, 5.46s/it]
epoch 132 | valid.f_iou 0.8184199929237366, valid.f_f-score 0.85437: 12%|███▊ | 2/16 [00:05<00:35, 2.53s/it]
epoch 132 | valid.f_iou 0.771619975566864, valid.f_f-score 0.84754: 12%|███▉ | 2/16 [00:06<00:35, 2.53s/it]
epoch 132 | valid.f_iou 0.771619975566864, valid.f_f-score 0.84754: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 132 | valid.f_iou 0.7669199705123901, valid.f_f-score 0.82203: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 132 | valid.f_iou 0.7669199705123901, valid.f_f-score 0.82203: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 132 | valid.f_iou 0.7430899739265442, valid.f_f-score 0.80819: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 132 | valid.f_iou 0.7430899739265442, valid.f_f-score 0.80819: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 132 | valid.f_iou 0.7250000238418579, valid.f_f-score 0.79459: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 132 | valid.f_iou 0.7250000238418579, valid.f_f-score 0.79459: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 132 | valid.f_iou 0.7373600006103516, valid.f_f-score 0.81196: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 132 | valid.f_iou 0.7373600006103516, valid.f_f-score 0.81196: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 132 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81309: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 132 | valid.f_iou 0.7289599776268005, valid.f_f-score 0.81309: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 132 | valid.f_iou 0.7340599894523621, valid.f_f-score 0.81538: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 132 | valid.f_iou 0.7340599894523621, valid.f_f-score 0.81538: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.99it/s]
epoch 132 | valid.f_iou 0.736549973487854, valid.f_f-score 0.82172: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.99it/s]
epoch 132 | valid.f_iou 0.736549973487854, valid.f_f-score 0.82172: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.05it/s]
epoch 132 | valid.f_iou 0.7233499884605408, valid.f_f-score 0.80473: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 132 | valid.f_iou 0.7233499884605408, valid.f_f-score 0.80473: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.14it/s]
epoch 132 | valid.f_iou 0.7353000044822693, valid.f_f-score 0.81542: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 132 | valid.f_iou 0.7353000044822693, valid.f_f-score 0.81542: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 132 | valid.f_iou 0.7453600168228149, valid.f_f-score 0.82402: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 132 | valid.f_iou 0.7453600168228149, valid.f_f-score 0.82402: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.41it/s]
epoch 132 | valid.f_iou 0.7357400059700012, valid.f_f-score 0.81567: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.41it/s]
epoch 132 | valid.f_iou 0.7357400059700012, valid.f_f-score 0.81567: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.49it/s]
epoch 132 | valid.f_iou 0.7411900162696838, valid.f_f-score 0.82213: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 132 | valid.f_iou 0.7411900162696838, valid.f_f-score 0.82213: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 132 | valid.f_iou 0.740559995174408, valid.f_f-score 0.8204: 94%|█████████████████████████████ | 15/16 [00:11<00:00, 2.55it/s]
epoch 132 | valid.f_iou 0.740559995174408, valid.f_f-score 0.8204: 100%|███████████████████████████████| 16/16 [00:11<00:00, 2.59it/s]
epoch 132 | valid.f_iou 0.740559995174408, valid.f_f-score 0.8204: 100%|███████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 133 | loss 0.6132938265800476, f_iou 0.9189336895942688: 0%| | 0/74 [00:06, ?it/s]
epoch 133 | loss 0.6132938265800476, f_iou 0.9189336895942688: 1%|▍ | 1/74 [00:06<07:58, 6.56s/it]
epoch 133 | loss 1.2040321826934814, f_iou 0.8463534116744995: 1%|▍ | 1/74 [00:07<07:58, 6.56s/it]
epoch 133 | loss 1.2040321826934814, f_iou 0.8463534116744995: 3%|▉ | 2/74 [00:07<03:58, 3.31s/it]
epoch 133 | loss 0.769290566444397, f_iou 0.8015610575675964: 3%|█ | 2/74 [00:08<03:58, 3.31s/it]
epoch 133 | loss 0.769290566444397, f_iou 0.8015610575675964: 4%|█▌ | 3/74 [00:08<02:32, 2.14s/it]
epoch 133 | loss 0.6818583607673645, f_iou 0.8349124193191528: 4%|█▍ | 3/74 [00:09<02:32, 2.14s/it]
epoch 133 | loss 0.6818583607673645, f_iou 0.8349124193191528: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 133 | loss 0.6799709796905518, f_iou 0.856626033782959: 5%|██ | 4/74 [00:09<01:52, 1.61s/it]
epoch 133 | loss 0.6799709796905518, f_iou 0.856626033782959: 7%|██▌ | 5/74 [00:09<01:30, 1.31s/it]
epoch 133 | loss 1.8906255960464478, f_iou 0.8173527121543884: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 133 | loss 1.8906255960464478, f_iou 0.8173527121543884: 8%|██▉ | 6/74 [00:10<01:17, 1.14s/it]
epoch 133 | loss 1.9021131992340088, f_iou 0.748365581035614: 8%|███ | 6/74 [00:11<01:17, 1.14s/it]
epoch 133 | loss 1.9021131992340088, f_iou 0.748365581035614: 9%|███▌ | 7/74 [00:11<01:08, 1.02s/it]
epoch 133 | loss 1.2319053411483765, f_iou 0.6568790674209595: 9%|███▍ | 7/74 [00:12<01:08, 1.02s/it]
epoch 133 | loss 1.2319053411483765, f_iou 0.6568790674209595: 11%|███▉ | 8/74 [00:12<01:00, 1.08it/s]
epoch 133 | loss 0.3926386535167694, f_iou 0.6417549848556519: 11%|███▉ | 8/74 [00:12<01:00, 1.08it/s]
epoch 133 | loss 0.3926386535167694, f_iou 0.6417549848556519: 12%|████▍ | 9/74 [00:12<00:56, 1.16it/s]
epoch 133 | loss 0.8903816938400269, f_iou 0.6435748934745789: 12%|████▍ | 9/74 [00:13<00:56, 1.16it/s]
epoch 133 | loss 0.8903816938400269, f_iou 0.6435748934745789: 14%|████▋ | 10/74 [00:13<00:52, 1.21it/s]
epoch 133 | loss 0.7016342878341675, f_iou 0.6689102649688721: 14%|████▋ | 10/74 [00:14<00:52, 1.21it/s]
epoch 133 | loss 0.7016342878341675, f_iou 0.6689102649688721: 15%|█████▏ | 11/74 [00:14<00:50, 1.26it/s]
epoch 133 | loss 0.7045512199401855, f_iou 0.6916402578353882: 15%|█████▏ | 11/74 [00:15<00:50, 1.26it/s]
epoch 133 | loss 0.7045512199401855, f_iou 0.6916402578353882: 16%|█████▋ | 12/74 [00:15<00:47, 1.30it/s]
epoch 133 | loss 1.0181474685668945, f_iou 0.6928476691246033: 16%|█████▋ | 12/74 [00:15<00:47, 1.30it/s]
epoch 133 | loss 1.0181474685668945, f_iou 0.6928476691246033: 18%|██████▏ | 13/74 [00:15<00:46, 1.32it/s]
epoch 133 | loss 0.558957576751709, f_iou 0.7090763449668884: 18%|██████▎ | 13/74 [00:16<00:46, 1.32it/s]
epoch 133 | loss 0.558957576751709, f_iou 0.7090763449668884: 19%|██████▊ | 14/74 [00:16<00:44, 1.34it/s]
epoch 133 | loss 1.042563557624817, f_iou 0.6785306930541992: 19%|██████▊ | 14/74 [00:17<00:44, 1.34it/s]
epoch 133 | loss 1.042563557624817, f_iou 0.6785306930541992: 20%|███████▎ | 15/74 [00:17<00:43, 1.35it/s]
epoch 133 | loss 0.616173505783081, f_iou 0.6626543402671814: 20%|███████▎ | 15/74 [00:18<00:43, 1.35it/s]
epoch 133 | loss 0.616173505783081, f_iou 0.6626543402671814: 22%|███████▊ | 16/74 [00:18<00:42, 1.35it/s]
epoch 133 | loss 0.7452694773674011, f_iou 0.6657862663269043: 22%|███████▌ | 16/74 [00:18<00:42, 1.35it/s]
epoch 133 | loss 0.7452694773674011, f_iou 0.6657862663269043: 23%|████████ | 17/74 [00:18<00:41, 1.37it/s]
epoch 133 | loss 0.8963582515716553, f_iou 0.6780802011489868: 23%|████████ | 17/74 [00:19<00:41, 1.37it/s]
epoch 133 | loss 0.8963582515716553, f_iou 0.6780802011489868: 24%|████████▌ | 18/74 [00:19<00:40, 1.37it/s]
epoch 133 | loss 0.597183346748352, f_iou 0.6901980042457581: 24%|████████▊ | 18/74 [00:20<00:40, 1.37it/s]
epoch 133 | loss 0.597183346748352, f_iou 0.6901980042457581: 26%|█████████▏ | 19/74 [00:20<00:40, 1.36it/s]
epoch 133 | loss 0.5037174820899963, f_iou 0.7032784819602966: 26%|████████▉ | 19/74 [00:20<00:40, 1.36it/s]
epoch 133 | loss 0.5037174820899963, f_iou 0.7032784819602966: 27%|█████████▍ | 20/74 [00:20<00:39, 1.37it/s]
epoch 133 | loss 1.059968113899231, f_iou 0.6840535998344421: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 133 | loss 1.059968113899231, f_iou 0.6840535998344421: 28%|██████████▏ | 21/74 [00:21<00:38, 1.37it/s]
epoch 133 | loss 0.5144413113594055, f_iou 0.6958430409431458: 28%|█████████▉ | 21/74 [00:22<00:38, 1.37it/s]
epoch 133 | loss 0.5144413113594055, f_iou 0.6958430409431458: 30%|██████████▍ | 22/74 [00:22<00:37, 1.37it/s]
epoch 133 | loss 0.4531111717224121, f_iou 0.7043948173522949: 30%|██████████▍ | 22/74 [00:23<00:37, 1.37it/s]
epoch 133 | loss 0.4531111717224121, f_iou 0.7043948173522949: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 133 | loss 0.5773983001708984, f_iou 0.7112674713134766: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 133 | loss 0.5773983001708984, f_iou 0.7112674713134766: 32%|███████████▎ | 24/74 [00:23<00:37, 1.35it/s]
epoch 133 | loss 0.36741912364959717, f_iou 0.718309760093689: 32%|███████████▎ | 24/74 [00:24<00:37, 1.35it/s]
epoch 133 | loss 0.36741912364959717, f_iou 0.718309760093689: 34%|███████████▊ | 25/74 [00:24<00:36, 1.33it/s]
epoch 133 | loss 0.43497592210769653, f_iou 0.7201297879219055: 34%|███████████▍ | 25/74 [00:25<00:36, 1.33it/s]
epoch 133 | loss 0.43497592210769653, f_iou 0.7201297879219055: 35%|███████████▉ | 26/74 [00:25<00:36, 1.31it/s]
epoch 133 | loss 0.6914288997650146, f_iou 0.7000337839126587: 35%|████████████▎ | 26/74 [00:26<00:36, 1.31it/s]
epoch 133 | loss 0.6914288997650146, f_iou 0.7000337839126587: 36%|████████████▊ | 27/74 [00:26<00:36, 1.30it/s]
epoch 133 | loss 0.6395425200462341, f_iou 0.708098828792572: 36%|█████████████▏ | 27/74 [00:27<00:36, 1.30it/s]
epoch 133 | loss 0.6395425200462341, f_iou 0.708098828792572: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.29it/s]
epoch 133 | loss 0.771920919418335, f_iou 0.7098079919815063: 38%|█████████████▌ | 28/74 [00:27<00:35, 1.29it/s]
epoch 133 | loss 0.771920919418335, f_iou 0.7098079919815063: 39%|██████████████ | 29/74 [00:27<00:34, 1.29it/s]
epoch 133 | loss 0.3064202666282654, f_iou 0.7115063667297363: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.29it/s]
epoch 133 | loss 0.3064202666282654, f_iou 0.7115063667297363: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.31it/s]
epoch 133 | loss 0.2629261314868927, f_iou 0.7198241353034973: 41%|██████████████▏ | 30/74 [00:29<00:33, 1.31it/s]
epoch 133 | loss 0.2629261314868927, f_iou 0.7198241353034973: 42%|██████████████▋ | 31/74 [00:29<00:33, 1.30it/s]
epoch 133 | loss 0.8505024313926697, f_iou 0.7215753793716431: 42%|██████████████▋ | 31/74 [00:30<00:33, 1.30it/s]
epoch 133 | loss 0.8505024313926697, f_iou 0.7215753793716431: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.29it/s]
epoch 133 | loss 0.8327157497406006, f_iou 0.7276746034622192: 43%|███████████████▏ | 32/74 [00:30<00:32, 1.29it/s]
epoch 133 | loss 0.8327157497406006, f_iou 0.7276746034622192: 45%|███████████████▌ | 33/74 [00:30<00:32, 1.28it/s]
epoch 133 | loss 0.365636944770813, f_iou 0.732168972492218: 45%|████████████████▌ | 33/74 [00:31<00:32, 1.28it/s]
epoch 133 | loss 0.365636944770813, f_iou 0.732168972492218: 46%|█████████████████ | 34/74 [00:31<00:31, 1.27it/s]
epoch 133 | loss 1.0289748907089233, f_iou 0.7347696423530579: 46%|████████████████ | 34/74 [00:32<00:31, 1.27it/s]
epoch 133 | loss 1.0289748907089233, f_iou 0.7347696423530579: 47%|████████████████▌ | 35/74 [00:32<00:30, 1.29it/s]
epoch 133 | loss 0.6298984289169312, f_iou 0.7389156222343445: 47%|████████████████▌ | 35/74 [00:33<00:30, 1.29it/s]
epoch 133 | loss 0.6298984289169312, f_iou 0.7389156222343445: 49%|█████████████████ | 36/74 [00:33<00:28, 1.31it/s]
epoch 133 | loss 0.7939726114273071, f_iou 0.7421312928199768: 49%|█████████████████ | 36/74 [00:33<00:28, 1.31it/s]
epoch 133 | loss 0.7939726114273071, f_iou 0.7421312928199768: 50%|█████████████████▌ | 37/74 [00:33<00:27, 1.33it/s]
epoch 133 | loss 0.9410895705223083, f_iou 0.7458812594413757: 50%|█████████████████▌ | 37/74 [00:34<00:27, 1.33it/s]
epoch 133 | loss 0.9410895705223083, f_iou 0.7458812594413757: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.34it/s]
epoch 133 | loss 0.4277482032775879, f_iou 0.7509655952453613: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.34it/s]
epoch 133 | loss 0.4277482032775879, f_iou 0.7509655952453613: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.35it/s]
epoch 133 | loss 1.1207900047302246, f_iou 0.7510848045349121: 53%|██████████████████▍ | 39/74 [00:36<00:25, 1.35it/s]
epoch 133 | loss 1.1207900047302246, f_iou 0.7510848045349121: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.36it/s]
epoch 133 | loss 0.29687100648880005, f_iou 0.7564895749092102: 54%|██████████████████▍ | 40/74 [00:36<00:25, 1.36it/s]
epoch 133 | loss 0.29687100648880005, f_iou 0.7564895749092102: 55%|██████████████████▊ | 41/74 [00:36<00:24, 1.37it/s]
epoch 133 | loss 0.880500853061676, f_iou 0.7571972608566284: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.37it/s]
epoch 133 | loss 0.880500853061676, f_iou 0.7571972608566284: 57%|████████████████████▍ | 42/74 [00:37<00:23, 1.37it/s]
epoch 133 | loss 1.167752742767334, f_iou 0.7553772330284119: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.37it/s]
epoch 133 | loss 1.167752742767334, f_iou 0.7553772330284119: 58%|████████████████████▉ | 43/74 [00:38<00:22, 1.37it/s]
epoch 133 | loss 0.11588912457227707, f_iou 0.7597976326942444: 58%|███████████████████▊ | 43/74 [00:39<00:22, 1.37it/s]
epoch 133 | loss 0.11588912457227707, f_iou 0.7597976326942444: 59%|████████████████████▏ | 44/74 [00:39<00:21, 1.37it/s]
epoch 133 | loss 0.7714487910270691, f_iou 0.7579209208488464: 59%|████████████████████▊ | 44/74 [00:39<00:21, 1.37it/s]
epoch 133 | loss 0.7714487910270691, f_iou 0.7579209208488464: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.38it/s]
epoch 133 | loss 1.448401927947998, f_iou 0.7569625973701477: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.38it/s]
epoch 133 | loss 1.448401927947998, f_iou 0.7569625973701477: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.37it/s]
epoch 133 | loss 2.3313794136047363, f_iou 0.7531562447547913: 62%|█████████████████████▊ | 46/74 [00:41<00:20, 1.37it/s]
epoch 133 | loss 2.3313794136047363, f_iou 0.7531562447547913: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.38it/s]
epoch 133 | loss 0.6462337374687195, f_iou 0.755979061126709: 64%|██████████████████████▊ | 47/74 [00:41<00:19, 1.38it/s]
epoch 133 | loss 0.6462337374687195, f_iou 0.755979061126709: 65%|███████████████████████▎ | 48/74 [00:41<00:18, 1.38it/s]
epoch 133 | loss 0.45746904611587524, f_iou 0.7588650584220886: 65%|██████████████████████ | 48/74 [00:42<00:18, 1.38it/s]
epoch 133 | loss 0.45746904611587524, f_iou 0.7588650584220886: 66%|██████████████████████▌ | 49/74 [00:42<00:18, 1.36it/s]
epoch 133 | loss 0.3661128282546997, f_iou 0.7631834745407104: 66%|███████████████████████▏ | 49/74 [00:43<00:18, 1.36it/s]
epoch 133 | loss 0.3661128282546997, f_iou 0.7631834745407104: 68%|███████████████████████▋ | 50/74 [00:43<00:18, 1.33it/s]
epoch 133 | loss 0.7284833192825317, f_iou 0.765673041343689: 68%|████████████████████████▎ | 50/74 [00:44<00:18, 1.33it/s]
epoch 133 | loss 0.7284833192825317, f_iou 0.765673041343689: 69%|████████████████████████▊ | 51/74 [00:44<00:17, 1.32it/s]
epoch 133 | loss 0.2296888381242752, f_iou 0.769218385219574: 69%|████████████████████████▊ | 51/74 [00:45<00:17, 1.32it/s]
epoch 133 | loss 0.2296888381242752, f_iou 0.769218385219574: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.30it/s]
epoch 133 | loss 2.2256336212158203, f_iou 0.764933705329895: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.30it/s]
epoch 133 | loss 2.2256336212158203, f_iou 0.764933705329895: 72%|█████████████████████████▊ | 53/74 [00:45<00:16, 1.30it/s]
epoch 133 | loss 0.7751548886299133, f_iou 0.7667300701141357: 72%|█████████████████████████ | 53/74 [00:46<00:16, 1.30it/s]
epoch 133 | loss 0.7751548886299133, f_iou 0.7667300701141357: 73%|█████████████████████████▌ | 54/74 [00:46<00:15, 1.30it/s]
epoch 133 | loss 0.3171910047531128, f_iou 0.7704765796661377: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.30it/s]
epoch 133 | loss 0.3171910047531128, f_iou 0.7704765796661377: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.29it/s]
epoch 133 | loss 1.0597174167633057, f_iou 0.770972490310669: 74%|██████████████████████████▊ | 55/74 [00:48<00:14, 1.29it/s]
epoch 133 | loss 1.0597174167633057, f_iou 0.770972490310669: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.29it/s]
epoch 133 | loss 1.119722604751587, f_iou 0.7628591060638428: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.29it/s]
epoch 133 | loss 1.119722604751587, f_iou 0.7628591060638428: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.32it/s]
epoch 133 | loss 0.7320897579193115, f_iou 0.7626970410346985: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.32it/s]
epoch 133 | loss 0.7320897579193115, f_iou 0.7626970410346985: 78%|███████████████████████████▍ | 58/74 [00:49<00:12, 1.32it/s]
epoch 133 | loss 1.32559072971344, f_iou 0.7520892024040222: 78%|█████████████████████████████ | 58/74 [00:50<00:12, 1.32it/s]
epoch 133 | loss 1.32559072971344, f_iou 0.7520892024040222: 80%|█████████████████████████████▌ | 59/74 [00:50<00:11, 1.34it/s]
epoch 133 | loss 0.4478919506072998, f_iou 0.7395544648170471: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.34it/s]
epoch 133 | loss 0.4478919506072998, f_iou 0.7395544648170471: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.34it/s]
epoch 133 | loss 1.200919270515442, f_iou 0.7362954616546631: 81%|█████████████████████████████▏ | 60/74 [00:51<00:10, 1.34it/s]
epoch 133 | loss 1.200919270515442, f_iou 0.7362954616546631: 82%|█████████████████████████████▋ | 61/74 [00:51<00:09, 1.35it/s]
epoch 133 | loss 0.9695749282836914, f_iou 0.7376803755760193: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.35it/s]
epoch 133 | loss 0.9695749282836914, f_iou 0.7376803755760193: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.32it/s]
epoch 133 | loss 0.5400741100311279, f_iou 0.7390929460525513: 84%|█████████████████████████████▎ | 62/74 [00:53<00:09, 1.32it/s]
epoch 133 | loss 0.5400741100311279, f_iou 0.7390929460525513: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.30it/s]
epoch 133 | loss 0.47891831398010254, f_iou 0.7387648820877075: 85%|████████████████████████████▉ | 63/74 [00:54<00:08, 1.30it/s]
epoch 133 | loss 0.47891831398010254, f_iou 0.7387648820877075: 86%|█████████████████████████████▍ | 64/74 [00:54<00:07, 1.29it/s]
epoch 133 | loss 0.768196165561676, f_iou 0.7419492602348328: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.29it/s]
epoch 133 | loss 0.768196165561676, f_iou 0.7419492602348328: 88%|███████████████████████████████▌ | 65/74 [00:54<00:07, 1.28it/s]
epoch 133 | loss 0.7807689905166626, f_iou 0.7427585124969482: 88%|██████████████████████████████▋ | 65/74 [00:55<00:07, 1.28it/s]
epoch 133 | loss 0.7807689905166626, f_iou 0.7427585124969482: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.31it/s]
epoch 133 | loss 1.0549120903015137, f_iou 0.7452782392501831: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.31it/s]
epoch 133 | loss 1.0549120903015137, f_iou 0.7452782392501831: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.33it/s]
epoch 133 | loss 0.5456287264823914, f_iou 0.746544361114502: 91%|████████████████████████████████▌ | 67/74 [00:57<00:05, 1.33it/s]
epoch 133 | loss 0.5456287264823914, f_iou 0.746544361114502: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.35it/s]
epoch 133 | loss 0.8004987835884094, f_iou 0.7462499737739563: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.35it/s]
epoch 133 | loss 0.8004987835884094, f_iou 0.7462499737739563: 93%|████████████████████████████████▋ | 69/74 [00:57<00:03, 1.36it/s]
epoch 133 | loss 0.32071998715400696, f_iou 0.7491236329078674: 93%|███████████████████████████████▋ | 69/74 [00:58<00:03, 1.36it/s]
epoch 133 | loss 0.32071998715400696, f_iou 0.7491236329078674: 95%|████████████████████████████████▏ | 70/74 [00:58<00:02, 1.37it/s]
epoch 133 | loss 0.0, f_iou 0.7524089217185974: 95%|███████████████████████████████████████████████▎ | 70/74 [00:59<00:02, 1.37it/s]
epoch 133 | loss 0.0, f_iou 0.7524089217185974: 96%|███████████████████████████████████████████████▉ | 71/74 [00:59<00:02, 1.38it/s]
epoch 133 | loss 1.8712323904037476, f_iou 0.7505016326904297: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.38it/s]
epoch 133 | loss 1.8712323904037476, f_iou 0.7505016326904297: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 133 | loss 0.43364065885543823, f_iou 0.7469695806503296: 97%|█████████████████████████████████ | 72/74 [01:00<00:01, 1.38it/s]
epoch 133 | loss 0.43364065885543823, f_iou 0.7469695806503296: 99%|█████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 133 | loss 0.5729773640632629, f_iou 0.7496006488800049: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.39it/s]
epoch 133 | loss 0.5729773640632629, f_iou 0.7496006488800049: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 133 | loss 0.5729773640632629, f_iou 0.7496006488800049: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 133 | valid.f_iou 0.7228999733924866, valid.f_f-score 0.83722: 0%| | 0/16 [00:05, ?it/s]
epoch 133 | valid.f_iou 0.7228999733924866, valid.f_f-score 0.83722: 6%|█▉ | 1/16 [00:05<01:24, 5.63s/it]
epoch 133 | valid.f_iou 0.714959979057312, valid.f_f-score 0.87699: 6%|█▉ | 1/16 [00:06<01:24, 5.63s/it]
epoch 133 | valid.f_iou 0.714959979057312, valid.f_f-score 0.87699: 12%|███▉ | 2/16 [00:06<00:36, 2.60s/it]
epoch 133 | valid.f_iou 0.5725299715995789, valid.f_f-score 0.77982: 12%|███▊ | 2/16 [00:06<00:36, 2.60s/it]
epoch 133 | valid.f_iou 0.5725299715995789, valid.f_f-score 0.77982: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 133 | valid.f_iou 0.5914300084114075, valid.f_f-score 0.75679: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 133 | valid.f_iou 0.5914300084114075, valid.f_f-score 0.75679: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 133 | valid.f_iou 0.6049900054931641, valid.f_f-score 0.76355: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 133 | valid.f_iou 0.6049900054931641, valid.f_f-score 0.76355: 31%|█████████▍ | 5/16 [00:07<00:10, 1.10it/s]
epoch 133 | valid.f_iou 0.5642399787902832, valid.f_f-score 0.72637: 31%|█████████▍ | 5/16 [00:07<00:10, 1.10it/s]
epoch 133 | valid.f_iou 0.5642399787902832, valid.f_f-score 0.72637: 38%|███████████▎ | 6/16 [00:07<00:07, 1.32it/s]
epoch 133 | valid.f_iou 0.5889099836349487, valid.f_f-score 0.75048: 38%|███████████▎ | 6/16 [00:08<00:07, 1.32it/s]
epoch 133 | valid.f_iou 0.5889099836349487, valid.f_f-score 0.75048: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 133 | valid.f_iou 0.5576800107955933, valid.f_f-score 0.73498: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 133 | valid.f_iou 0.5576800107955933, valid.f_f-score 0.73498: 50%|███████████████ | 8/16 [00:08<00:04, 1.72it/s]
epoch 133 | valid.f_iou 0.5775499939918518, valid.f_f-score 0.74423: 50%|███████████████ | 8/16 [00:09<00:04, 1.72it/s]
epoch 133 | valid.f_iou 0.5775499939918518, valid.f_f-score 0.74423: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 133 | valid.f_iou 0.5705599784851074, valid.f_f-score 0.74535: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 133 | valid.f_iou 0.5705599784851074, valid.f_f-score 0.74535: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.07it/s]
epoch 133 | valid.f_iou 0.5724800229072571, valid.f_f-score 0.74279: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.07it/s]
epoch 133 | valid.f_iou 0.5724800229072571, valid.f_f-score 0.74279: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.15it/s]
epoch 133 | valid.f_iou 0.5954200029373169, valid.f_f-score 0.75831: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.15it/s]
epoch 133 | valid.f_iou 0.5954200029373169, valid.f_f-score 0.75831: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 133 | valid.f_iou 0.6063399910926819, valid.f_f-score 0.76572: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.29it/s]
epoch 133 | valid.f_iou 0.6063399910926819, valid.f_f-score 0.76572: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.38it/s]
epoch 133 | valid.f_iou 0.6007900238037109, valid.f_f-score 0.76147: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.38it/s]
epoch 133 | valid.f_iou 0.6007900238037109, valid.f_f-score 0.76147: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.40it/s]
epoch 133 | valid.f_iou 0.6046299934387207, valid.f_f-score 0.76019: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.40it/s]
epoch 133 | valid.f_iou 0.6046299934387207, valid.f_f-score 0.76019: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 133 | valid.f_iou 0.6050500273704529, valid.f_f-score 0.75715: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.49it/s]
epoch 133 | valid.f_iou 0.6050500273704529, valid.f_f-score 0.75715: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.56it/s]
epoch 133 | valid.f_iou 0.6050500273704529, valid.f_f-score 0.75715: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 133 | valid.f_iou 0.8039900064468384, valid.f_f-score 0.79982: 0%| | 0/16 [00:05, ?it/s]
epoch 133 | valid.f_iou 0.8039900064468384, valid.f_f-score 0.79982: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 133 | valid.f_iou 0.8390700221061707, valid.f_f-score 0.86924: 6%|█▉ | 1/16 [00:05<01:20, 5.34s/it]
epoch 133 | valid.f_iou 0.8390700221061707, valid.f_f-score 0.86924: 12%|███▊ | 2/16 [00:05<00:35, 2.55s/it]
epoch 133 | valid.f_iou 0.7828599810600281, valid.f_f-score 0.85569: 12%|███▊ | 2/16 [00:06<00:35, 2.55s/it]
epoch 133 | valid.f_iou 0.7828599810600281, valid.f_f-score 0.85569: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 133 | valid.f_iou 0.7750200033187866, valid.f_f-score 0.82831: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 133 | valid.f_iou 0.7750200033187866, valid.f_f-score 0.82831: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 133 | valid.f_iou 0.7434599995613098, valid.f_f-score 0.82124: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 133 | valid.f_iou 0.7434599995613098, valid.f_f-score 0.82124: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 133 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.80558: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 133 | valid.f_iou 0.7250999808311462, valid.f_f-score 0.80558: 38%|███████████▎ | 6/16 [00:07<00:07, 1.33it/s]
epoch 133 | valid.f_iou 0.740369975566864, valid.f_f-score 0.82478: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 133 | valid.f_iou 0.740369975566864, valid.f_f-score 0.82478: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.59it/s]
epoch 133 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.82346: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 133 | valid.f_iou 0.7296900153160095, valid.f_f-score 0.82346: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 133 | valid.f_iou 0.7314199805259705, valid.f_f-score 0.82488: 50%|███████████████ | 8/16 [00:08<00:04, 1.78it/s]
epoch 133 | valid.f_iou 0.7314199805259705, valid.f_f-score 0.82488: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.92it/s]
epoch 133 | valid.f_iou 0.7411500215530396, valid.f_f-score 0.8345: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.92it/s]
epoch 133 | valid.f_iou 0.7411500215530396, valid.f_f-score 0.8345: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 133 | valid.f_iou 0.7282800078392029, valid.f_f-score 0.81657: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.10it/s]
epoch 133 | valid.f_iou 0.7282800078392029, valid.f_f-score 0.81657: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.27it/s]
epoch 133 | valid.f_iou 0.7395399808883667, valid.f_f-score 0.8262: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.27it/s]
epoch 133 | valid.f_iou 0.7395399808883667, valid.f_f-score 0.8262: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.40it/s]
epoch 133 | valid.f_iou 0.7494199872016907, valid.f_f-score 0.83317: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.40it/s]
epoch 133 | valid.f_iou 0.7494199872016907, valid.f_f-score 0.83317: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 133 | valid.f_iou 0.7387499809265137, valid.f_f-score 0.82359: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.49it/s]
epoch 133 | valid.f_iou 0.7387499809265137, valid.f_f-score 0.82359: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 133 | valid.f_iou 0.7448999881744385, valid.f_f-score 0.8309: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.56it/s]
epoch 133 | valid.f_iou 0.7448999881744385, valid.f_f-score 0.8309: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 133 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.82866: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.62it/s]
epoch 133 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.82866: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.67it/s]
epoch 133 | valid.f_iou 0.7435700297355652, valid.f_f-score 0.82866: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 133 | valid.f_iou 0.8039900064468384, valid.f_f-score 0.79982: 0%| | 0/16 [00:05, ?it/s]
epoch 133 | valid.f_iou 0.8039900064468384, valid.f_f-score 0.79982: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 133 | valid.f_iou 0.8390700221061707, valid.f_f-score 0.86924: 6%|█▉ | 1/16 [00:05<01:16, 5.11s/it]
epoch 133 | valid.f_iou 0.8390700221061707, valid.f_f-score 0.86924: 12%|███▊ | 2/16 [00:05<00:33, 2.38s/it]
epoch 133 | valid.f_iou 0.7828599810600281, valid.f_f-score 0.85569: 12%|███▊ | 2/16 [00:06<00:33, 2.38s/it]
epoch 133 | valid.f_iou 0.7828599810600281, valid.f_f-score 0.85569: 19%|█████▋ | 3/16 [00:06<00:19, 1.50s/it]
epoch 133 | valid.f_iou 0.7688900232315063, valid.f_f-score 0.81635: 19%|█████▋ | 3/16 [00:06<00:19, 1.50s/it]
epoch 133 | valid.f_iou 0.7688900232315063, valid.f_f-score 0.81635: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 133 | valid.f_iou 0.746720016002655, valid.f_f-score 0.81166: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 133 | valid.f_iou 0.746720016002655, valid.f_f-score 0.81166: 31%|█████████▋ | 5/16 [00:06<00:09, 1.18it/s]
epoch 133 | valid.f_iou 0.7278199791908264, valid.f_f-score 0.79761: 31%|█████████▍ | 5/16 [00:07<00:09, 1.18it/s]
epoch 133 | valid.f_iou 0.7278199791908264, valid.f_f-score 0.79761: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 133 | valid.f_iou 0.7444599866867065, valid.f_f-score 0.81794: 38%|███████████▎ | 6/16 [00:07<00:07, 1.40it/s]
epoch 133 | valid.f_iou 0.7444599866867065, valid.f_f-score 0.81794: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.60it/s]
epoch 133 | valid.f_iou 0.733269989490509, valid.f_f-score 0.81747: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.60it/s]
epoch 133 | valid.f_iou 0.733269989490509, valid.f_f-score 0.81747: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 133 | valid.f_iou 0.7383599877357483, valid.f_f-score 0.81957: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 133 | valid.f_iou 0.7383599877357483, valid.f_f-score 0.81957: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.88it/s]
epoch 133 | valid.f_iou 0.7439000010490417, valid.f_f-score 0.82618: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.88it/s]
epoch 133 | valid.f_iou 0.7439000010490417, valid.f_f-score 0.82618: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.95it/s]
epoch 133 | valid.f_iou 0.7307800054550171, valid.f_f-score 0.809: 62%|███████████████████▍ | 10/16 [00:09<00:03, 1.95it/s]
epoch 133 | valid.f_iou 0.7307800054550171, valid.f_f-score 0.809: 69%|█████████████████████▎ | 11/16 [00:09<00:02, 2.14it/s]
epoch 133 | valid.f_iou 0.7418299913406372, valid.f_f-score 0.81926: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.14it/s]
epoch 133 | valid.f_iou 0.7418299913406372, valid.f_f-score 0.81926: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.28it/s]
epoch 133 | valid.f_iou 0.7514600157737732, valid.f_f-score 0.82767: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.28it/s]
epoch 133 | valid.f_iou 0.7514600157737732, valid.f_f-score 0.82767: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 133 | valid.f_iou 0.7406399846076965, valid.f_f-score 0.81849: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.40it/s]
epoch 133 | valid.f_iou 0.7406399846076965, valid.f_f-score 0.81849: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.50it/s]
epoch 133 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.82615: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.50it/s]
epoch 133 | valid.f_iou 0.7466599941253662, valid.f_f-score 0.82615: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 133 | valid.f_iou 0.7457000017166138, valid.f_f-score 0.8242: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.55it/s]
epoch 133 | valid.f_iou 0.7457000017166138, valid.f_f-score 0.8242: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.61it/s]
epoch 133 | valid.f_iou 0.7457000017166138, valid.f_f-score 0.8242: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.41it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 134 | loss 1.3890252113342285, f_iou 0.3669402301311493: 0%| | 0/74 [00:06, ?it/s]
epoch 134 | loss 1.3890252113342285, f_iou 0.3669402301311493: 1%|▍ | 1/74 [00:06<07:22, 6.06s/it]
epoch 134 | loss 1.1281455755233765, f_iou 0.527597963809967: 1%|▌ | 1/74 [00:06<07:22, 6.06s/it]
epoch 134 | loss 1.1281455755233765, f_iou 0.527597963809967: 3%|█ | 2/74 [00:06<03:33, 2.97s/it]
epoch 134 | loss 0.4599418342113495, f_iou 0.553014874458313: 3%|█ | 2/74 [00:07<03:33, 2.97s/it]
epoch 134 | loss 0.4599418342113495, f_iou 0.553014874458313: 4%|█▌ | 3/74 [00:07<02:23, 2.02s/it]
epoch 134 | loss 0.510155200958252, f_iou 0.5552108287811279: 4%|█▌ | 3/74 [00:08<02:23, 2.02s/it]
epoch 134 | loss 0.510155200958252, f_iou 0.5552108287811279: 5%|██ | 4/74 [00:08<01:47, 1.54s/it]
epoch 134 | loss 0.9491645097732544, f_iou 0.5720254182815552: 5%|█▉ | 4/74 [00:09<01:47, 1.54s/it]
epoch 134 | loss 0.9491645097732544, f_iou 0.5720254182815552: 7%|██▍ | 5/74 [00:09<01:27, 1.26s/it]
epoch 134 | loss 1.2671977281570435, f_iou 0.614142119884491: 7%|██▌ | 5/74 [00:10<01:27, 1.26s/it]
epoch 134 | loss 1.2671977281570435, f_iou 0.614142119884491: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 134 | loss 1.301305890083313, f_iou 0.6376428008079529: 8%|███ | 6/74 [00:10<01:14, 1.10s/it]
epoch 134 | loss 1.301305890083313, f_iou 0.6376428008079529: 9%|███▌ | 7/74 [00:10<01:06, 1.01it/s]
epoch 134 | loss 1.53157377243042, f_iou 0.5790709257125854: 9%|███▌ | 7/74 [00:11<01:06, 1.01it/s]
epoch 134 | loss 1.53157377243042, f_iou 0.5790709257125854: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 134 | loss 0.8500461578369141, f_iou 0.6183392405509949: 11%|███▉ | 8/74 [00:12<01:00, 1.09it/s]
epoch 134 | loss 0.8500461578369141, f_iou 0.6183392405509949: 12%|████▍ | 9/74 [00:12<00:56, 1.15it/s]
epoch 134 | loss 0.5431613326072693, f_iou 0.6459662318229675: 12%|████▍ | 9/74 [00:13<00:56, 1.15it/s]
epoch 134 | loss 0.5431613326072693, f_iou 0.6459662318229675: 14%|████▋ | 10/74 [00:13<00:53, 1.19it/s]
epoch 134 | loss 1.682018756866455, f_iou 0.6106446981430054: 14%|████▊ | 10/74 [00:13<00:53, 1.19it/s]
epoch 134 | loss 1.682018756866455, f_iou 0.6106446981430054: 15%|█████▎ | 11/74 [00:13<00:51, 1.23it/s]
epoch 134 | loss 0.3464341461658478, f_iou 0.6413084864616394: 15%|█████▏ | 11/74 [00:14<00:51, 1.23it/s]
epoch 134 | loss 0.3464341461658478, f_iou 0.6413084864616394: 16%|█████▋ | 12/74 [00:14<00:50, 1.24it/s]
epoch 134 | loss 0.0, f_iou 0.6682051420211792: 16%|████████ | 12/74 [00:15<00:50, 1.24it/s]
epoch 134 | loss 0.0, f_iou 0.6682051420211792: 18%|████████▊ | 13/74 [00:15<00:48, 1.25it/s]
epoch 134 | loss 0.0, f_iou 0.6863276958465576: 18%|████████▊ | 13/74 [00:16<00:48, 1.25it/s]
epoch 134 | loss 0.0, f_iou 0.6863276958465576: 19%|█████████▍ | 14/74 [00:16<00:47, 1.26it/s]
epoch 134 | loss 0.39753469824790955, f_iou 0.702518105506897: 19%|██████▌ | 14/74 [00:17<00:47, 1.26it/s]
epoch 134 | loss 0.39753469824790955, f_iou 0.702518105506897: 20%|███████ | 15/74 [00:17<00:46, 1.27it/s]
epoch 134 | loss 0.6782670021057129, f_iou 0.7153064012527466: 20%|███████ | 15/74 [00:17<00:46, 1.27it/s]
epoch 134 | loss 0.6782670021057129, f_iou 0.7153064012527466: 22%|███████▌ | 16/74 [00:17<00:45, 1.27it/s]
epoch 134 | loss 0.3780181407928467, f_iou 0.7260596752166748: 22%|███████▌ | 16/74 [00:18<00:45, 1.27it/s]
epoch 134 | loss 0.3780181407928467, f_iou 0.7260596752166748: 23%|████████ | 17/74 [00:18<00:44, 1.28it/s]
epoch 134 | loss 2.2705838680267334, f_iou 0.7232580184936523: 23%|████████ | 17/74 [00:19<00:44, 1.28it/s]
epoch 134 | loss 2.2705838680267334, f_iou 0.7232580184936523: 24%|████████▌ | 18/74 [00:19<00:42, 1.31it/s]
epoch 134 | loss 0.6065563559532166, f_iou 0.7329221367835999: 24%|████████▌ | 18/74 [00:20<00:42, 1.31it/s]
epoch 134 | loss 0.6065563559532166, f_iou 0.7329221367835999: 26%|████████▉ | 19/74 [00:20<00:41, 1.33it/s]
epoch 134 | loss 0.5724206566810608, f_iou 0.7131823897361755: 26%|████████▉ | 19/74 [00:20<00:41, 1.33it/s]
epoch 134 | loss 0.5724206566810608, f_iou 0.7131823897361755: 27%|█████████▍ | 20/74 [00:20<00:40, 1.35it/s]
epoch 134 | loss 0.8661787509918213, f_iou 0.7208900451660156: 27%|█████████▍ | 20/74 [00:21<00:40, 1.35it/s]
epoch 134 | loss 0.8661787509918213, f_iou 0.7208900451660156: 28%|█████████▉ | 21/74 [00:21<00:38, 1.36it/s]
epoch 134 | loss 0.8223413825035095, f_iou 0.7273475527763367: 28%|█████████▉ | 21/74 [00:22<00:38, 1.36it/s]
epoch 134 | loss 0.8223413825035095, f_iou 0.7273475527763367: 30%|██████████▍ | 22/74 [00:22<00:37, 1.37it/s]
epoch 134 | loss 1.044596791267395, f_iou 0.7332756519317627: 30%|██████████▋ | 22/74 [00:22<00:37, 1.37it/s]
epoch 134 | loss 1.044596791267395, f_iou 0.7332756519317627: 31%|███████████▏ | 23/74 [00:22<00:37, 1.35it/s]
epoch 134 | loss 1.0637273788452148, f_iou 0.7286011576652527: 31%|██████████▉ | 23/74 [00:23<00:37, 1.35it/s]
epoch 134 | loss 1.0637273788452148, f_iou 0.7286011576652527: 32%|███████████▎ | 24/74 [00:23<00:36, 1.36it/s]
epoch 134 | loss 0.6662604808807373, f_iou 0.7353804111480713: 32%|███████████▎ | 24/74 [00:24<00:36, 1.36it/s]
epoch 134 | loss 0.6662604808807373, f_iou 0.7353804111480713: 34%|███████████▊ | 25/74 [00:24<00:35, 1.37it/s]
epoch 134 | loss 1.8553221225738525, f_iou 0.7197883725166321: 34%|███████████▊ | 25/74 [00:25<00:35, 1.37it/s]
epoch 134 | loss 1.8553221225738525, f_iou 0.7197883725166321: 35%|████████████▎ | 26/74 [00:25<00:34, 1.38it/s]
epoch 134 | loss 1.0514427423477173, f_iou 0.7222869992256165: 35%|████████████▎ | 26/74 [00:25<00:34, 1.38it/s]
epoch 134 | loss 1.0514427423477173, f_iou 0.7222869992256165: 36%|████████████▊ | 27/74 [00:25<00:34, 1.38it/s]
epoch 134 | loss 0.8517597913742065, f_iou 0.7240323424339294: 36%|████████████▊ | 27/74 [00:26<00:34, 1.38it/s]
epoch 134 | loss 0.8517597913742065, f_iou 0.7240323424339294: 38%|█████████████▏ | 28/74 [00:26<00:33, 1.38it/s]
epoch 134 | loss 1.0050100088119507, f_iou 0.7271376848220825: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.38it/s]
epoch 134 | loss 1.0050100088119507, f_iou 0.7271376848220825: 39%|█████████████▋ | 29/74 [00:27<00:33, 1.36it/s]
epoch 134 | loss 0.5280494689941406, f_iou 0.7264667749404907: 39%|█████████████▋ | 29/74 [00:28<00:33, 1.36it/s]
epoch 134 | loss 0.5280494689941406, f_iou 0.7264667749404907: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.37it/s]
epoch 134 | loss 0.6090750694274902, f_iou 0.7334175705909729: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.37it/s]
epoch 134 | loss 0.6090750694274902, f_iou 0.7334175705909729: 42%|██████████████▋ | 31/74 [00:28<00:32, 1.34it/s]
epoch 134 | loss 0.4255741834640503, f_iou 0.7176560163497925: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.34it/s]
epoch 134 | loss 0.4255741834640503, f_iou 0.7176560163497925: 43%|███████████████▏ | 32/74 [00:29<00:31, 1.32it/s]
epoch 134 | loss 1.0079333782196045, f_iou 0.7182663679122925: 43%|███████████████▏ | 32/74 [00:30<00:31, 1.32it/s]
epoch 134 | loss 1.0079333782196045, f_iou 0.7182663679122925: 45%|███████████████▌ | 33/74 [00:30<00:31, 1.30it/s]
epoch 134 | loss 0.6574350595474243, f_iou 0.7226253747940063: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.30it/s]
epoch 134 | loss 0.6574350595474243, f_iou 0.7226253747940063: 46%|████████████████ | 34/74 [00:31<00:30, 1.29it/s]
epoch 134 | loss 1.1819243431091309, f_iou 0.7231950163841248: 46%|████████████████ | 34/74 [00:31<00:30, 1.29it/s]
epoch 134 | loss 1.1819243431091309, f_iou 0.7231950163841248: 47%|████████████████▌ | 35/74 [00:31<00:30, 1.30it/s]
epoch 134 | loss 1.0192914009094238, f_iou 0.7286741137504578: 47%|████████████████▌ | 35/74 [00:32<00:30, 1.30it/s]
epoch 134 | loss 1.0192914009094238, f_iou 0.7286741137504578: 49%|█████████████████ | 36/74 [00:32<00:28, 1.31it/s]
epoch 134 | loss 2.360780715942383, f_iou 0.7254916429519653: 49%|█████████████████▌ | 36/74 [00:33<00:28, 1.31it/s]
epoch 134 | loss 2.360780715942383, f_iou 0.7254916429519653: 50%|██████████████████ | 37/74 [00:33<00:28, 1.31it/s]
epoch 134 | loss 2.5931899547576904, f_iou 0.720420777797699: 50%|██████████████████ | 37/74 [00:34<00:28, 1.31it/s]
epoch 134 | loss 2.5931899547576904, f_iou 0.720420777797699: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.33it/s]
epoch 134 | loss 0.7595321536064148, f_iou 0.7242609262466431: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.33it/s]
epoch 134 | loss 0.7595321536064148, f_iou 0.7242609262466431: 53%|██████████████████▍ | 39/74 [00:34<00:25, 1.35it/s]
epoch 134 | loss 0.3694828748703003, f_iou 0.7296462059020996: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.35it/s]
epoch 134 | loss 0.3694828748703003, f_iou 0.7296462059020996: 54%|██████████████████▉ | 40/74 [00:35<00:25, 1.34it/s]
epoch 134 | loss 0.9089842438697815, f_iou 0.7186635732650757: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.34it/s]
epoch 134 | loss 0.9089842438697815, f_iou 0.7186635732650757: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.32it/s]
epoch 134 | loss 1.028706431388855, f_iou 0.7187979221343994: 55%|███████████████████▉ | 41/74 [00:37<00:24, 1.32it/s]
epoch 134 | loss 1.028706431388855, f_iou 0.7187979221343994: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.30it/s]
epoch 134 | loss 0.7472261786460876, f_iou 0.7201341390609741: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.30it/s]
epoch 134 | loss 0.7472261786460876, f_iou 0.7201341390609741: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.29it/s]
epoch 134 | loss 0.7136348485946655, f_iou 0.7246740460395813: 58%|████████████████████▎ | 43/74 [00:38<00:23, 1.29it/s]
epoch 134 | loss 0.7136348485946655, f_iou 0.7246740460395813: 59%|████████████████████▊ | 44/74 [00:38<00:22, 1.32it/s]
epoch 134 | loss 1.4866321086883545, f_iou 0.7289007306098938: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.32it/s]
epoch 134 | loss 1.4866321086883545, f_iou 0.7289007306098938: 61%|█████████████████████▎ | 45/74 [00:39<00:21, 1.34it/s]
epoch 134 | loss 1.1584094762802124, f_iou 0.726291835308075: 61%|█████████████████████▉ | 45/74 [00:40<00:21, 1.34it/s]
epoch 134 | loss 1.1584094762802124, f_iou 0.726291835308075: 62%|██████████████████████▍ | 46/74 [00:40<00:20, 1.35it/s]
epoch 134 | loss 0.7350980639457703, f_iou 0.7262582778930664: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.35it/s]
epoch 134 | loss 0.7350980639457703, f_iou 0.7262582778930664: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.37it/s]
epoch 134 | loss 0.8127232193946838, f_iou 0.7263426780700684: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.37it/s]
epoch 134 | loss 0.8127232193946838, f_iou 0.7263426780700684: 65%|██████████████████████▋ | 48/74 [00:41<00:18, 1.37it/s]
epoch 134 | loss 0.5026283264160156, f_iou 0.7286627292633057: 65%|██████████████████████▋ | 48/74 [00:42<00:18, 1.37it/s]
epoch 134 | loss 0.5026283264160156, f_iou 0.7286627292633057: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.37it/s]
epoch 134 | loss 1.40032160282135, f_iou 0.7264187932014465: 66%|████████████████████████▌ | 49/74 [00:43<00:18, 1.37it/s]
epoch 134 | loss 1.40032160282135, f_iou 0.7264187932014465: 68%|█████████████████████████ | 50/74 [00:43<00:17, 1.37it/s]
epoch 134 | loss 0.6897075176239014, f_iou 0.7289685606956482: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.37it/s]
epoch 134 | loss 0.6897075176239014, f_iou 0.7289685606956482: 69%|████████████████████████ | 51/74 [00:43<00:16, 1.38it/s]
epoch 134 | loss 0.589110255241394, f_iou 0.7326158881187439: 69%|████████████████████████▊ | 51/74 [00:44<00:16, 1.38it/s]
epoch 134 | loss 0.589110255241394, f_iou 0.7326158881187439: 70%|█████████████████████████▎ | 52/74 [00:44<00:16, 1.37it/s]
epoch 134 | loss 2.388684034347534, f_iou 0.7259818911552429: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.37it/s]
epoch 134 | loss 2.388684034347534, f_iou 0.7259818911552429: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.37it/s]
epoch 134 | loss 0.38319385051727295, f_iou 0.7303340435028076: 72%|████████████████████████▎ | 53/74 [00:46<00:15, 1.37it/s]
epoch 134 | loss 0.38319385051727295, f_iou 0.7303340435028076: 73%|████████████████████████▊ | 54/74 [00:46<00:14, 1.36it/s]
epoch 134 | loss 0.8292919993400574, f_iou 0.7331467866897583: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.36it/s]
epoch 134 | loss 0.8292919993400574, f_iou 0.7331467866897583: 74%|██████████████████████████ | 55/74 [00:46<00:14, 1.33it/s]
epoch 134 | loss 0.6438894867897034, f_iou 0.7245684862136841: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.33it/s]
epoch 134 | loss 0.6438894867897034, f_iou 0.7245684862136841: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.32it/s]
epoch 134 | loss 1.5197092294692993, f_iou 0.7270224690437317: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.32it/s]
epoch 134 | loss 1.5197092294692993, f_iou 0.7270224690437317: 77%|██████████████████████████▉ | 57/74 [00:48<00:12, 1.34it/s]
epoch 134 | loss 1.1877286434173584, f_iou 0.7199352383613586: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.34it/s]
epoch 134 | loss 1.1877286434173584, f_iou 0.7199352383613586: 78%|███████████████████████████▍ | 58/74 [00:49<00:12, 1.33it/s]
epoch 134 | loss 1.8721283674240112, f_iou 0.7155747413635254: 78%|███████████████████████████▍ | 58/74 [00:49<00:12, 1.33it/s]
epoch 134 | loss 1.8721283674240112, f_iou 0.7155747413635254: 80%|███████████████████████████▉ | 59/74 [00:49<00:11, 1.32it/s]
epoch 134 | loss 0.5702724456787109, f_iou 0.719577968120575: 80%|████████████████████████████▋ | 59/74 [00:50<00:11, 1.32it/s]
epoch 134 | loss 0.5702724456787109, f_iou 0.719577968120575: 81%|█████████████████████████████▏ | 60/74 [00:50<00:10, 1.30it/s]
epoch 134 | loss 1.0931333303451538, f_iou 0.7126254439353943: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.30it/s]
epoch 134 | loss 1.0931333303451538, f_iou 0.7126254439353943: 82%|████████████████████████████▊ | 61/74 [00:51<00:10, 1.29it/s]
epoch 134 | loss 0.4266834557056427, f_iou 0.7167600393295288: 82%|████████████████████████████▊ | 61/74 [00:52<00:10, 1.29it/s]
epoch 134 | loss 0.4266834557056427, f_iou 0.7167600393295288: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.29it/s]
epoch 134 | loss 0.2634499669075012, f_iou 0.7174382209777832: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.29it/s]
epoch 134 | loss 0.2634499669075012, f_iou 0.7174382209777832: 85%|█████████████████████████████▊ | 63/74 [00:52<00:08, 1.29it/s]
epoch 134 | loss 0.6798628568649292, f_iou 0.7154102921485901: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.29it/s]
epoch 134 | loss 0.6798628568649292, f_iou 0.7154102921485901: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.28it/s]
epoch 134 | loss 0.5422465801239014, f_iou 0.7191985249519348: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.28it/s]
epoch 134 | loss 0.5422465801239014, f_iou 0.7191985249519348: 88%|██████████████████████████████▋ | 65/74 [00:54<00:07, 1.28it/s]
epoch 134 | loss 1.758836030960083, f_iou 0.7111738324165344: 88%|███████████████████████████████▌ | 65/74 [00:55<00:07, 1.28it/s]
epoch 134 | loss 1.758836030960083, f_iou 0.7111738324165344: 89%|████████████████████████████████ | 66/74 [00:55<00:06, 1.28it/s]
epoch 134 | loss 0.3452337384223938, f_iou 0.7150056958198547: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.28it/s]
epoch 134 | loss 0.3452337384223938, f_iou 0.7150056958198547: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.30it/s]
epoch 134 | loss 0.9907451868057251, f_iou 0.7179677486419678: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.30it/s]
epoch 134 | loss 0.9907451868057251, f_iou 0.7179677486419678: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.31it/s]
epoch 134 | loss 0.704584002494812, f_iou 0.7121407389640808: 92%|█████████████████████████████████ | 68/74 [00:57<00:04, 1.31it/s]
epoch 134 | loss 0.704584002494812, f_iou 0.7121407389640808: 93%|█████████████████████████████████▌ | 69/74 [00:57<00:03, 1.33it/s]
epoch 134 | loss 0.8167916536331177, f_iou 0.7117078900337219: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.33it/s]
epoch 134 | loss 0.8167916536331177, f_iou 0.7117078900337219: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.35it/s]
epoch 134 | loss 0.0, f_iou 0.7157052755355835: 95%|███████████████████████████████████████████████▎ | 70/74 [00:59<00:02, 1.35it/s]
epoch 134 | loss 0.0, f_iou 0.7157052755355835: 96%|███████████████████████████████████████████████▉ | 71/74 [00:59<00:02, 1.35it/s]
epoch 134 | loss 0.1606743037700653, f_iou 0.7183941006660461: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.35it/s]
epoch 134 | loss 0.1606743037700653, f_iou 0.7183941006660461: 97%|██████████████████████████████████ | 72/74 [00:59<00:01, 1.35it/s]
epoch 134 | loss 0.9735772609710693, f_iou 0.7128620147705078: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.35it/s]
epoch 134 | loss 0.9735772609710693, f_iou 0.7128620147705078: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.36it/s]
epoch 134 | loss 0.333326518535614, f_iou 0.7042710185050964: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.36it/s]
epoch 134 | loss 0.333326518535614, f_iou 0.7042710185050964: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.36it/s]
epoch 134 | loss 0.333326518535614, f_iou 0.7042710185050964: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.21it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 134 | valid.f_iou 0.7365800142288208, valid.f_f-score 0.83869: 0%| | 0/16 [00:05, ?it/s]
epoch 134 | valid.f_iou 0.7365800142288208, valid.f_f-score 0.83869: 6%|█▉ | 1/16 [00:05<01:26, 5.77s/it]
epoch 134 | valid.f_iou 0.7115700244903564, valid.f_f-score 0.87345: 6%|█▉ | 1/16 [00:06<01:26, 5.77s/it]
epoch 134 | valid.f_iou 0.7115700244903564, valid.f_f-score 0.87345: 12%|███▊ | 2/16 [00:06<00:37, 2.65s/it]
epoch 134 | valid.f_iou 0.5754899978637695, valid.f_f-score 0.77915: 12%|███▊ | 2/16 [00:06<00:37, 2.65s/it]
epoch 134 | valid.f_iou 0.5754899978637695, valid.f_f-score 0.77915: 19%|█████▋ | 3/16 [00:06<00:21, 1.65s/it]
epoch 134 | valid.f_iou 0.6036999821662903, valid.f_f-score 0.7662: 19%|█████▊ | 3/16 [00:07<00:21, 1.65s/it]
epoch 134 | valid.f_iou 0.6036999821662903, valid.f_f-score 0.7662: 25%|███████▊ | 4/16 [00:07<00:14, 1.18s/it]
epoch 134 | valid.f_iou 0.6148599982261658, valid.f_f-score 0.76857: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 134 | valid.f_iou 0.6148599982261658, valid.f_f-score 0.76857: 31%|█████████▍ | 5/16 [00:07<00:10, 1.08it/s]
epoch 134 | valid.f_iou 0.5727400183677673, valid.f_f-score 0.72933: 31%|█████████▍ | 5/16 [00:08<00:10, 1.08it/s]
epoch 134 | valid.f_iou 0.5727400183677673, valid.f_f-score 0.72933: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 134 | valid.f_iou 0.5971599817276001, valid.f_f-score 0.75288: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 134 | valid.f_iou 0.5971599817276001, valid.f_f-score 0.75288: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.51it/s]
epoch 134 | valid.f_iou 0.5654600262641907, valid.f_f-score 0.73531: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.51it/s]
epoch 134 | valid.f_iou 0.5654600262641907, valid.f_f-score 0.73531: 50%|███████████████ | 8/16 [00:08<00:04, 1.67it/s]
epoch 134 | valid.f_iou 0.584850013256073, valid.f_f-score 0.74408: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.67it/s]
epoch 134 | valid.f_iou 0.584850013256073, valid.f_f-score 0.74408: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.81it/s]
epoch 134 | valid.f_iou 0.5787000060081482, valid.f_f-score 0.7444: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.81it/s]
epoch 134 | valid.f_iou 0.5787000060081482, valid.f_f-score 0.7444: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.93it/s]
epoch 134 | valid.f_iou 0.5791900157928467, valid.f_f-score 0.74166: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.93it/s]
epoch 134 | valid.f_iou 0.5791900157928467, valid.f_f-score 0.74166: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.08it/s]
epoch 134 | valid.f_iou 0.6014000177383423, valid.f_f-score 0.75715: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.08it/s]
epoch 134 | valid.f_iou 0.6014000177383423, valid.f_f-score 0.75715: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.12it/s]
epoch 134 | valid.f_iou 0.6118800044059753, valid.f_f-score 0.76358: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.12it/s]
epoch 134 | valid.f_iou 0.6118800044059753, valid.f_f-score 0.76358: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.15it/s]
epoch 134 | valid.f_iou 0.6064500212669373, valid.f_f-score 0.75937: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.15it/s]
epoch 134 | valid.f_iou 0.6064500212669373, valid.f_f-score 0.75937: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.20it/s]
epoch 134 | valid.f_iou 0.6128799915313721, valid.f_f-score 0.75951: 88%|█████████████████████████▍ | 14/16 [00:12<00:00, 2.20it/s]
epoch 134 | valid.f_iou 0.6128799915313721, valid.f_f-score 0.75951: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.21it/s]
epoch 134 | valid.f_iou 0.6116499900817871, valid.f_f-score 0.75531: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.21it/s]
epoch 134 | valid.f_iou 0.6116499900817871, valid.f_f-score 0.75531: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.33it/s]
epoch 134 | valid.f_iou 0.6116499900817871, valid.f_f-score 0.75531: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.29it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 134 | valid.f_iou 0.7932599782943726, valid.f_f-score 0.79034: 0%| | 0/16 [00:05, ?it/s]
epoch 134 | valid.f_iou 0.7932599782943726, valid.f_f-score 0.79034: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 134 | valid.f_iou 0.8334599733352661, valid.f_f-score 0.86457: 6%|█▉ | 1/16 [00:06<01:23, 5.54s/it]
epoch 134 | valid.f_iou 0.8334599733352661, valid.f_f-score 0.86457: 12%|███▊ | 2/16 [00:06<00:35, 2.57s/it]
epoch 134 | valid.f_iou 0.779990017414093, valid.f_f-score 0.85334: 12%|███▉ | 2/16 [00:06<00:35, 2.57s/it]
epoch 134 | valid.f_iou 0.779990017414093, valid.f_f-score 0.85334: 19%|█████▊ | 3/16 [00:06<00:20, 1.60s/it]
epoch 134 | valid.f_iou 0.7714599967002869, valid.f_f-score 0.82458: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 134 | valid.f_iou 0.7714599967002869, valid.f_f-score 0.82458: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 134 | valid.f_iou 0.7364100217819214, valid.f_f-score 0.80857: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 134 | valid.f_iou 0.7364100217819214, valid.f_f-score 0.80857: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 134 | valid.f_iou 0.7194399833679199, valid.f_f-score 0.79459: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 134 | valid.f_iou 0.7194399833679199, valid.f_f-score 0.79459: 38%|███████████▎ | 6/16 [00:07<00:07, 1.33it/s]
epoch 134 | valid.f_iou 0.7311599850654602, valid.f_f-score 0.81191: 38%|███████████▎ | 6/16 [00:08<00:07, 1.33it/s]
epoch 134 | valid.f_iou 0.7311599850654602, valid.f_f-score 0.81191: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 134 | valid.f_iou 0.7224699854850769, valid.f_f-score 0.81283: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.54it/s]
epoch 134 | valid.f_iou 0.7224699854850769, valid.f_f-score 0.81283: 50%|███████████████ | 8/16 [00:08<00:04, 1.71it/s]
epoch 134 | valid.f_iou 0.7269200086593628, valid.f_f-score 0.81547: 50%|███████████████ | 8/16 [00:09<00:04, 1.71it/s]
epoch 134 | valid.f_iou 0.7269200086593628, valid.f_f-score 0.81547: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.85it/s]
epoch 134 | valid.f_iou 0.7376499772071838, valid.f_f-score 0.8262: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.85it/s]
epoch 134 | valid.f_iou 0.7376499772071838, valid.f_f-score 0.8262: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.96it/s]
epoch 134 | valid.f_iou 0.7253000140190125, valid.f_f-score 0.80905: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.96it/s]
epoch 134 | valid.f_iou 0.7253000140190125, valid.f_f-score 0.80905: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.05it/s]
epoch 134 | valid.f_iou 0.7369300127029419, valid.f_f-score 0.81939: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.05it/s]
epoch 134 | valid.f_iou 0.7369300127029419, valid.f_f-score 0.81939: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.11it/s]
epoch 134 | valid.f_iou 0.746649980545044, valid.f_f-score 0.82672: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.11it/s]
epoch 134 | valid.f_iou 0.746649980545044, valid.f_f-score 0.82672: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.16it/s]
epoch 134 | valid.f_iou 0.7369800209999084, valid.f_f-score 0.81841: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.16it/s]
epoch 134 | valid.f_iou 0.7369800209999084, valid.f_f-score 0.81841: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.20it/s]
epoch 134 | valid.f_iou 0.746209979057312, valid.f_f-score 0.82728: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.20it/s]
epoch 134 | valid.f_iou 0.746209979057312, valid.f_f-score 0.82728: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.23it/s]
epoch 134 | valid.f_iou 0.7448099851608276, valid.f_f-score 0.82536: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.23it/s]
epoch 134 | valid.f_iou 0.7448099851608276, valid.f_f-score 0.82536: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.34it/s]
epoch 134 | valid.f_iou 0.7448099851608276, valid.f_f-score 0.82536: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.31it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 134 | valid.f_iou 0.7453399896621704, valid.f_f-score 0.76031: 0%| | 0/16 [00:05, ?it/s]
epoch 134 | valid.f_iou 0.7453399896621704, valid.f_f-score 0.76031: 6%|█▉ | 1/16 [00:05<01:20, 5.40s/it]
epoch 134 | valid.f_iou 0.8095099925994873, valid.f_f-score 0.84956: 6%|█▉ | 1/16 [00:05<01:20, 5.40s/it]
epoch 134 | valid.f_iou 0.8095099925994873, valid.f_f-score 0.84956: 12%|███▊ | 2/16 [00:05<00:34, 2.49s/it]
epoch 134 | valid.f_iou 0.7640200257301331, valid.f_f-score 0.84333: 12%|███▊ | 2/16 [00:06<00:34, 2.49s/it]
epoch 134 | valid.f_iou 0.7640200257301331, valid.f_f-score 0.84333: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 134 | valid.f_iou 0.7547500133514404, valid.f_f-score 0.80732: 19%|█████▋ | 3/16 [00:06<00:20, 1.56s/it]
epoch 134 | valid.f_iou 0.7547500133514404, valid.f_f-score 0.80732: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 134 | valid.f_iou 0.7313600182533264, valid.f_f-score 0.79476: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 134 | valid.f_iou 0.7313600182533264, valid.f_f-score 0.79476: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 134 | valid.f_iou 0.7152400016784668, valid.f_f-score 0.78308: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 134 | valid.f_iou 0.7152400016784668, valid.f_f-score 0.78308: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 134 | valid.f_iou 0.7293300032615662, valid.f_f-score 0.80204: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 134 | valid.f_iou 0.7293300032615662, valid.f_f-score 0.80204: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 134 | valid.f_iou 0.7208700180053711, valid.f_f-score 0.8042: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.58it/s]
epoch 134 | valid.f_iou 0.7208700180053711, valid.f_f-score 0.8042: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 134 | valid.f_iou 0.7273200154304504, valid.f_f-score 0.8078: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 134 | valid.f_iou 0.7273200154304504, valid.f_f-score 0.8078: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.90it/s]
epoch 134 | valid.f_iou 0.7345200181007385, valid.f_f-score 0.81577: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 134 | valid.f_iou 0.7345200181007385, valid.f_f-score 0.81577: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 134 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.79957: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.08it/s]
epoch 134 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.79957: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.14it/s]
epoch 134 | valid.f_iou 0.7343299984931946, valid.f_f-score 0.81069: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.14it/s]
epoch 134 | valid.f_iou 0.7343299984931946, valid.f_f-score 0.81069: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.21it/s]
epoch 134 | valid.f_iou 0.744189977645874, valid.f_f-score 0.81938: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.21it/s]
epoch 134 | valid.f_iou 0.744189977645874, valid.f_f-score 0.81938: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.34it/s]
epoch 134 | valid.f_iou 0.7346900105476379, valid.f_f-score 0.81161: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.34it/s]
epoch 134 | valid.f_iou 0.7346900105476379, valid.f_f-score 0.81161: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.45it/s]
epoch 134 | valid.f_iou 0.7440800070762634, valid.f_f-score 0.82093: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.45it/s]
epoch 134 | valid.f_iou 0.7440800070762634, valid.f_f-score 0.82093: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 134 | valid.f_iou 0.7432900071144104, valid.f_f-score 0.81941: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 134 | valid.f_iou 0.7432900071144104, valid.f_f-score 0.81941: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.58it/s]
epoch 134 | valid.f_iou 0.7432900071144104, valid.f_f-score 0.81941: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 135 | loss 1.9444575309753418, f_iou 0.49697351455688477: 0%| | 0/74 [00:06, ?it/s]
epoch 135 | loss 1.9444575309753418, f_iou 0.49697351455688477: 1%|▍ | 1/74 [00:06<07:45, 6.38s/it]
epoch 135 | loss 1.3828744888305664, f_iou 0.5863018035888672: 1%|▍ | 1/74 [00:07<07:45, 6.38s/it]
epoch 135 | loss 1.3828744888305664, f_iou 0.5863018035888672: 3%|▉ | 2/74 [00:07<03:44, 3.12s/it]
epoch 135 | loss 1.1495192050933838, f_iou 0.6975716352462769: 3%|▉ | 2/74 [00:08<03:44, 3.12s/it]
epoch 135 | loss 1.1495192050933838, f_iou 0.6975716352462769: 4%|█▍ | 3/74 [00:08<02:27, 2.08s/it]
epoch 135 | loss 1.4252700805664062, f_iou 0.5540991425514221: 4%|█▍ | 3/74 [00:08<02:27, 2.08s/it]
epoch 135 | loss 1.4252700805664062, f_iou 0.5540991425514221: 5%|█▉ | 4/74 [00:08<01:49, 1.56s/it]
epoch 135 | loss 3.1879096031188965, f_iou 0.5621470212936401: 5%|█▉ | 4/74 [00:09<01:49, 1.56s/it]
epoch 135 | loss 3.1879096031188965, f_iou 0.5621470212936401: 7%|██▍ | 5/74 [00:09<01:30, 1.32s/it]
epoch 135 | loss 0.82681804895401, f_iou 0.5918271541595459: 7%|██▌ | 5/74 [00:10<01:30, 1.32s/it]
epoch 135 | loss 0.82681804895401, f_iou 0.5918271541595459: 8%|███ | 6/74 [00:10<01:18, 1.15s/it]
epoch 135 | loss 0.3594745099544525, f_iou 0.6449975967407227: 8%|██▉ | 6/74 [00:11<01:18, 1.15s/it]
epoch 135 | loss 0.3594745099544525, f_iou 0.6449975967407227: 9%|███▍ | 7/74 [00:11<01:09, 1.04s/it]
epoch 135 | loss 0.6457123160362244, f_iou 0.6778924465179443: 9%|███▍ | 7/74 [00:12<01:09, 1.04s/it]
epoch 135 | loss 0.6457123160362244, f_iou 0.6778924465179443: 11%|███▉ | 8/74 [00:12<01:03, 1.04it/s]
epoch 135 | loss 0.9518355131149292, f_iou 0.6366161704063416: 11%|███▉ | 8/74 [00:12<01:03, 1.04it/s]
epoch 135 | loss 0.9518355131149292, f_iou 0.6366161704063416: 12%|████▍ | 9/74 [00:12<00:58, 1.10it/s]
epoch 135 | loss 0.7329809665679932, f_iou 0.6339804530143738: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 135 | loss 0.7329809665679932, f_iou 0.6339804530143738: 14%|████▋ | 10/74 [00:13<00:55, 1.15it/s]
epoch 135 | loss 0.6008957624435425, f_iou 0.6450376510620117: 14%|████▋ | 10/74 [00:14<00:55, 1.15it/s]
epoch 135 | loss 0.6008957624435425, f_iou 0.6450376510620117: 15%|█████▏ | 11/74 [00:14<00:53, 1.18it/s]
epoch 135 | loss 0.5154181718826294, f_iou 0.6660751104354858: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 135 | loss 0.5154181718826294, f_iou 0.6660751104354858: 16%|█████▋ | 12/74 [00:15<00:51, 1.21it/s]
epoch 135 | loss 0.6740450859069824, f_iou 0.6583746075630188: 16%|█████▋ | 12/74 [00:16<00:51, 1.21it/s]
epoch 135 | loss 0.6740450859069824, f_iou 0.6583746075630188: 18%|██████▏ | 13/74 [00:16<00:52, 1.15it/s]
epoch 135 | loss 1.2495274543762207, f_iou 0.674961507320404: 18%|██████▎ | 13/74 [00:17<00:52, 1.15it/s]
epoch 135 | loss 1.2495274543762207, f_iou 0.674961507320404: 19%|██████▊ | 14/74 [00:17<00:50, 1.19it/s]
epoch 135 | loss 1.6209650039672852, f_iou 0.6694642901420593: 19%|██████▌ | 14/74 [00:17<00:50, 1.19it/s]
epoch 135 | loss 1.6209650039672852, f_iou 0.6694642901420593: 20%|███████ | 15/74 [00:17<00:48, 1.22it/s]
epoch 135 | loss 1.3120635747909546, f_iou 0.6780924797058105: 20%|███████ | 15/74 [00:18<00:48, 1.22it/s]
epoch 135 | loss 1.3120635747909546, f_iou 0.6780924797058105: 22%|███████▌ | 16/74 [00:18<00:46, 1.24it/s]
epoch 135 | loss 0.8764618039131165, f_iou 0.6877596974372864: 22%|███████▌ | 16/74 [00:19<00:46, 1.24it/s]
epoch 135 | loss 0.8764618039131165, f_iou 0.6877596974372864: 23%|████████ | 17/74 [00:19<00:45, 1.25it/s]
epoch 135 | loss 0.9143017530441284, f_iou 0.6845768094062805: 23%|████████ | 17/74 [00:20<00:45, 1.25it/s]
epoch 135 | loss 0.9143017530441284, f_iou 0.6845768094062805: 24%|████████▌ | 18/74 [00:20<00:44, 1.26it/s]
epoch 135 | loss 1.1848182678222656, f_iou 0.6931144595146179: 24%|████████▌ | 18/74 [00:20<00:44, 1.26it/s]
epoch 135 | loss 1.1848182678222656, f_iou 0.6931144595146179: 26%|████████▉ | 19/74 [00:20<00:43, 1.26it/s]
epoch 135 | loss 1.7063493728637695, f_iou 0.6875800490379333: 26%|████████▉ | 19/74 [00:21<00:43, 1.26it/s]
epoch 135 | loss 1.7063493728637695, f_iou 0.6875800490379333: 27%|█████████▍ | 20/74 [00:21<00:42, 1.27it/s]
epoch 135 | loss 0.0, f_iou 0.6938777565956116: 27%|█████████████▌ | 20/74 [00:22<00:42, 1.27it/s]
epoch 135 | loss 0.0, f_iou 0.6938777565956116: 28%|██████████████▏ | 21/74 [00:22<00:41, 1.27it/s]
epoch 135 | loss 0.6949654221534729, f_iou 0.6748540997505188: 28%|█████████▉ | 21/74 [00:23<00:41, 1.27it/s]
epoch 135 | loss 0.6949654221534729, f_iou 0.6748540997505188: 30%|██████████▍ | 22/74 [00:23<00:40, 1.28it/s]
epoch 135 | loss 0.7404927015304565, f_iou 0.6845065355300903: 30%|██████████▍ | 22/74 [00:24<00:40, 1.28it/s]
epoch 135 | loss 0.7404927015304565, f_iou 0.6845065355300903: 31%|██████████▉ | 23/74 [00:24<00:39, 1.28it/s]
epoch 135 | loss 0.9016108512878418, f_iou 0.6885649561882019: 31%|██████████▉ | 23/74 [00:24<00:39, 1.28it/s]
epoch 135 | loss 0.9016108512878418, f_iou 0.6885649561882019: 32%|███████████▎ | 24/74 [00:24<00:39, 1.28it/s]
epoch 135 | loss 0.8368314504623413, f_iou 0.6692770719528198: 32%|███████████▎ | 24/74 [00:25<00:39, 1.28it/s]
epoch 135 | loss 0.8368314504623413, f_iou 0.6692770719528198: 34%|███████████▊ | 25/74 [00:25<00:38, 1.28it/s]
epoch 135 | loss 1.5492618083953857, f_iou 0.6747433543205261: 34%|███████████▊ | 25/74 [00:26<00:38, 1.28it/s]
epoch 135 | loss 1.5492618083953857, f_iou 0.6747433543205261: 35%|████████████▎ | 26/74 [00:26<00:37, 1.28it/s]
epoch 135 | loss 0.3952994644641876, f_iou 0.6847853660583496: 35%|████████████▎ | 26/74 [00:27<00:37, 1.28it/s]
epoch 135 | loss 0.3952994644641876, f_iou 0.6847853660583496: 36%|████████████▊ | 27/74 [00:27<00:36, 1.29it/s]
epoch 135 | loss 0.8054742217063904, f_iou 0.6927433609962463: 36%|████████████▊ | 27/74 [00:27<00:36, 1.29it/s]
epoch 135 | loss 0.8054742217063904, f_iou 0.6927433609962463: 38%|█████████████▏ | 28/74 [00:27<00:35, 1.29it/s]
epoch 135 | loss 0.8026993274688721, f_iou 0.6983939409255981: 38%|█████████████▏ | 28/74 [00:28<00:35, 1.29it/s]
epoch 135 | loss 0.8026993274688721, f_iou 0.6983939409255981: 39%|█████████████▋ | 29/74 [00:28<00:34, 1.29it/s]
epoch 135 | loss 0.38125598430633545, f_iou 0.7062630653381348: 39%|█████████████▎ | 29/74 [00:29<00:34, 1.29it/s]
epoch 135 | loss 0.38125598430633545, f_iou 0.7062630653381348: 41%|█████████████▊ | 30/74 [00:29<00:34, 1.29it/s]
epoch 135 | loss 1.092194676399231, f_iou 0.7005789279937744: 41%|██████████████▌ | 30/74 [00:30<00:34, 1.29it/s]
epoch 135 | loss 1.092194676399231, f_iou 0.7005789279937744: 42%|███████████████ | 31/74 [00:30<00:33, 1.29it/s]
epoch 135 | loss 0.6994999647140503, f_iou 0.7058013677597046: 42%|██████████████▋ | 31/74 [00:31<00:33, 1.29it/s]
epoch 135 | loss 0.6994999647140503, f_iou 0.7058013677597046: 43%|███████████████▏ | 32/74 [00:31<00:32, 1.28it/s]
epoch 135 | loss 0.30026355385780334, f_iou 0.7137613892555237: 43%|██████████████▋ | 32/74 [00:31<00:32, 1.28it/s]
epoch 135 | loss 0.30026355385780334, f_iou 0.7137613892555237: 45%|███████████████▏ | 33/74 [00:31<00:31, 1.28it/s]
epoch 135 | loss 0.5856444239616394, f_iou 0.7210199236869812: 45%|███████████████▌ | 33/74 [00:32<00:31, 1.28it/s]
epoch 135 | loss 0.5856444239616394, f_iou 0.7210199236869812: 46%|████████████████ | 34/74 [00:32<00:31, 1.29it/s]
epoch 135 | loss 0.4046482741832733, f_iou 0.72767573595047: 46%|█████████████████ | 34/74 [00:33<00:31, 1.29it/s]
epoch 135 | loss 0.4046482741832733, f_iou 0.72767573595047: 47%|█████████████████▌ | 35/74 [00:33<00:30, 1.29it/s]
epoch 135 | loss 0.6275715827941895, f_iou 0.7320665121078491: 47%|████████████████▌ | 35/74 [00:34<00:30, 1.29it/s]
epoch 135 | loss 0.6275715827941895, f_iou 0.7320665121078491: 49%|█████████████████ | 36/74 [00:34<00:28, 1.31it/s]
epoch 135 | loss 2.3240671157836914, f_iou 0.7297149300575256: 49%|█████████████████ | 36/74 [00:34<00:28, 1.31it/s]
epoch 135 | loss 2.3240671157836914, f_iou 0.7297149300575256: 50%|█████████████████▌ | 37/74 [00:34<00:28, 1.31it/s]
epoch 135 | loss 0.4936045706272125, f_iou 0.7340142726898193: 50%|█████████████████▌ | 37/74 [00:35<00:28, 1.31it/s]
epoch 135 | loss 0.4936045706272125, f_iou 0.7340142726898193: 51%|█████████████████▉ | 38/74 [00:35<00:27, 1.30it/s]
epoch 135 | loss 0.8932053446769714, f_iou 0.7371416091918945: 51%|█████████████████▉ | 38/74 [00:36<00:27, 1.30it/s]
epoch 135 | loss 0.8932053446769714, f_iou 0.7371416091918945: 53%|██████████████████▍ | 39/74 [00:36<00:26, 1.33it/s]
epoch 135 | loss 0.40301600098609924, f_iou 0.7344817519187927: 53%|█████████████████▉ | 39/74 [00:37<00:26, 1.33it/s]
epoch 135 | loss 0.40301600098609924, f_iou 0.7344817519187927: 54%|██████████████████▍ | 40/74 [00:37<00:25, 1.35it/s]
epoch 135 | loss 0.5038827657699585, f_iou 0.7356736063957214: 54%|██████████████████▉ | 40/74 [00:37<00:25, 1.35it/s]
epoch 135 | loss 0.5038827657699585, f_iou 0.7356736063957214: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.35it/s]
epoch 135 | loss 0.7098884582519531, f_iou 0.7404035329818726: 55%|███████████████████▍ | 41/74 [00:38<00:24, 1.35it/s]
epoch 135 | loss 0.7098884582519531, f_iou 0.7404035329818726: 57%|███████████████████▊ | 42/74 [00:38<00:23, 1.35it/s]
epoch 135 | loss 0.9398854970932007, f_iou 0.744536280632019: 57%|████████████████████▍ | 42/74 [00:39<00:23, 1.35it/s]
epoch 135 | loss 0.9398854970932007, f_iou 0.744536280632019: 58%|████████████████████▉ | 43/74 [00:39<00:22, 1.35it/s]
epoch 135 | loss 0.5468947887420654, f_iou 0.7466067671775818: 58%|████████████████████▎ | 43/74 [00:40<00:22, 1.35it/s]
epoch 135 | loss 0.5468947887420654, f_iou 0.7466067671775818: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.33it/s]
epoch 135 | loss 0.7396416068077087, f_iou 0.7478176951408386: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.33it/s]
epoch 135 | loss 0.7396416068077087, f_iou 0.7478176951408386: 61%|█████████████████████▎ | 45/74 [00:40<00:22, 1.31it/s]
epoch 135 | loss 0.7002778053283691, f_iou 0.7499806880950928: 61%|█████████████████████▎ | 45/74 [00:41<00:22, 1.31it/s]
epoch 135 | loss 0.7002778053283691, f_iou 0.7499806880950928: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.30it/s]
epoch 135 | loss 0.6691194772720337, f_iou 0.7517356872558594: 62%|█████████████████████▊ | 46/74 [00:42<00:21, 1.30it/s]
epoch 135 | loss 0.6691194772720337, f_iou 0.7517356872558594: 64%|██████████████████████▏ | 47/74 [00:42<00:20, 1.30it/s]
epoch 135 | loss 0.3347856402397156, f_iou 0.7564736604690552: 64%|██████████████████████▏ | 47/74 [00:43<00:20, 1.30it/s]
epoch 135 | loss 0.3347856402397156, f_iou 0.7564736604690552: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.29it/s]
epoch 135 | loss 0.9448348879814148, f_iou 0.7602738738059998: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.29it/s]
epoch 135 | loss 0.9448348879814148, f_iou 0.7602738738059998: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.29it/s]
epoch 135 | loss 0.34994998574256897, f_iou 0.7552863955497742: 66%|██████████████████████▌ | 49/74 [00:44<00:19, 1.29it/s]
epoch 135 | loss 0.34994998574256897, f_iou 0.7552863955497742: 68%|██████████████████████▉ | 50/74 [00:44<00:18, 1.28it/s]
epoch 135 | loss 0.6202590465545654, f_iou 0.7487293481826782: 68%|███████████████████████▋ | 50/74 [00:45<00:18, 1.28it/s]
epoch 135 | loss 0.6202590465545654, f_iou 0.7487293481826782: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.29it/s]
epoch 135 | loss 0.5189359784126282, f_iou 0.7525437474250793: 69%|████████████████████████ | 51/74 [00:46<00:17, 1.29it/s]
epoch 135 | loss 0.5189359784126282, f_iou 0.7525437474250793: 70%|████████████████████████▌ | 52/74 [00:46<00:17, 1.28it/s]
epoch 135 | loss 1.2994040250778198, f_iou 0.7516849637031555: 70%|████████████████████████▌ | 52/74 [00:47<00:17, 1.28it/s]
epoch 135 | loss 1.2994040250778198, f_iou 0.7516849637031555: 72%|█████████████████████████ | 53/74 [00:47<00:16, 1.27it/s]
epoch 135 | loss 1.076608657836914, f_iou 0.7464810609817505: 72%|█████████████████████████▊ | 53/74 [00:47<00:16, 1.27it/s]
epoch 135 | loss 1.076608657836914, f_iou 0.7464810609817505: 73%|██████████████████████████▎ | 54/74 [00:47<00:15, 1.27it/s]
epoch 135 | loss 0.6606511473655701, f_iou 0.7454055547714233: 73%|█████████████████████████▌ | 54/74 [00:48<00:15, 1.27it/s]
epoch 135 | loss 0.6606511473655701, f_iou 0.7454055547714233: 74%|██████████████████████████ | 55/74 [00:48<00:14, 1.28it/s]
epoch 135 | loss 0.547613263130188, f_iou 0.7488811016082764: 74%|██████████████████████████▊ | 55/74 [00:49<00:14, 1.28it/s]
epoch 135 | loss 0.547613263130188, f_iou 0.7488811016082764: 76%|███████████████████████████▏ | 56/74 [00:49<00:14, 1.28it/s]
epoch 135 | loss 2.0932364463806152, f_iou 0.7437483668327332: 76%|██████████████████████████▍ | 56/74 [00:50<00:14, 1.28it/s]
epoch 135 | loss 2.0932364463806152, f_iou 0.7437483668327332: 77%|██████████████████████████▉ | 57/74 [00:50<00:13, 1.28it/s]
epoch 135 | loss 0.5757277607917786, f_iou 0.7442710399627686: 77%|██████████████████████████▉ | 57/74 [00:51<00:13, 1.28it/s]
epoch 135 | loss 0.5757277607917786, f_iou 0.7442710399627686: 78%|███████████████████████████▍ | 58/74 [00:51<00:12, 1.28it/s]
epoch 135 | loss 0.5335513353347778, f_iou 0.7436685562133789: 78%|███████████████████████████▍ | 58/74 [00:51<00:12, 1.28it/s]
epoch 135 | loss 0.5335513353347778, f_iou 0.7436685562133789: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.29it/s]
epoch 135 | loss 0.8212199807167053, f_iou 0.745653510093689: 80%|████████████████████████████▋ | 59/74 [00:52<00:11, 1.29it/s]
epoch 135 | loss 0.8212199807167053, f_iou 0.745653510093689: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.28it/s]
epoch 135 | loss 2.3442931175231934, f_iou 0.7443089485168457: 81%|████████████████████████████▍ | 60/74 [00:53<00:10, 1.28it/s]
epoch 135 | loss 2.3442931175231934, f_iou 0.7443089485168457: 82%|████████████████████████████▊ | 61/74 [00:53<00:10, 1.28it/s]
epoch 135 | loss 0.4935610592365265, f_iou 0.7469007968902588: 82%|████████████████████████████▊ | 61/74 [00:54<00:10, 1.28it/s]
epoch 135 | loss 0.4935610592365265, f_iou 0.7469007968902588: 84%|█████████████████████████████▎ | 62/74 [00:54<00:09, 1.28it/s]
epoch 135 | loss 0.6718428134918213, f_iou 0.7468905448913574: 84%|█████████████████████████████▎ | 62/74 [00:54<00:09, 1.28it/s]
epoch 135 | loss 0.6718428134918213, f_iou 0.7468905448913574: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.29it/s]
epoch 135 | loss 0.5980327129364014, f_iou 0.7493614554405212: 85%|█████████████████████████████▊ | 63/74 [00:55<00:08, 1.29it/s]
epoch 135 | loss 0.5980327129364014, f_iou 0.7493614554405212: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.28it/s]
epoch 135 | loss 1.0853427648544312, f_iou 0.7520595192909241: 86%|██████████████████████████████▎ | 64/74 [00:56<00:07, 1.28it/s]
epoch 135 | loss 1.0853427648544312, f_iou 0.7520595192909241: 88%|██████████████████████████████▋ | 65/74 [00:56<00:06, 1.29it/s]
epoch 135 | loss 2.365630626678467, f_iou 0.7511492371559143: 88%|███████████████████████████████▌ | 65/74 [00:57<00:06, 1.29it/s]
epoch 135 | loss 2.365630626678467, f_iou 0.7511492371559143: 89%|████████████████████████████████ | 66/74 [00:57<00:06, 1.31it/s]
epoch 135 | loss 0.5983786582946777, f_iou 0.7536559700965881: 89%|███████████████████████████████▏ | 66/74 [00:57<00:06, 1.31it/s]
epoch 135 | loss 0.5983786582946777, f_iou 0.7536559700965881: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.33it/s]
epoch 135 | loss 0.8435308933258057, f_iou 0.7557373642921448: 91%|███████████████████████████████▋ | 67/74 [00:58<00:05, 1.33it/s]
epoch 135 | loss 0.8435308933258057, f_iou 0.7557373642921448: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.35it/s]
epoch 135 | loss 0.08933579176664352, f_iou 0.7585495710372925: 92%|███████████████████████████████▏ | 68/74 [00:59<00:04, 1.35it/s]
epoch 135 | loss 0.08933579176664352, f_iou 0.7585495710372925: 93%|███████████████████████████████▋ | 69/74 [00:59<00:03, 1.36it/s]
epoch 135 | loss 1.0678410530090332, f_iou 0.7600888013839722: 93%|████████████████████████████████▋ | 69/74 [01:00<00:03, 1.36it/s]
epoch 135 | loss 1.0678410530090332, f_iou 0.7600888013839722: 95%|█████████████████████████████████ | 70/74 [01:00<00:02, 1.37it/s]
epoch 135 | loss 0.8432257175445557, f_iou 0.7618227601051331: 95%|█████████████████████████████████ | 70/74 [01:00<00:02, 1.37it/s]
epoch 135 | loss 0.8432257175445557, f_iou 0.7618227601051331: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.38it/s]
epoch 135 | loss 0.5343966484069824, f_iou 0.7637231945991516: 96%|█████████████████████████████████▌ | 71/74 [01:01<00:02, 1.38it/s]
epoch 135 | loss 0.5343966484069824, f_iou 0.7637231945991516: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.39it/s]
epoch 135 | loss 1.4238735437393188, f_iou 0.7646716237068176: 97%|██████████████████████████████████ | 72/74 [01:02<00:01, 1.39it/s]
epoch 135 | loss 1.4238735437393188, f_iou 0.7646716237068176: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.39it/s]
epoch 135 | loss 0.7722054719924927, f_iou 0.7670384645462036: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.39it/s]
epoch 135 | loss 0.7722054719924927, f_iou 0.7670384645462036: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.39it/s]
epoch 135 | loss 0.7722054719924927, f_iou 0.7670384645462036: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.18it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 135 | valid.f_iou 0.7439299821853638, valid.f_f-score 0.83385: 0%| | 0/16 [00:05, ?it/s]
epoch 135 | valid.f_iou 0.7439299821853638, valid.f_f-score 0.83385: 6%|█▉ | 1/16 [00:05<01:22, 5.51s/it]
epoch 135 | valid.f_iou 0.720579981803894, valid.f_f-score 0.87257: 6%|█▉ | 1/16 [00:05<01:22, 5.51s/it]
epoch 135 | valid.f_iou 0.720579981803894, valid.f_f-score 0.87257: 12%|███▉ | 2/16 [00:05<00:35, 2.54s/it]
epoch 135 | valid.f_iou 0.5863699913024902, valid.f_f-score 0.78021: 12%|███▊ | 2/16 [00:06<00:35, 2.54s/it]
epoch 135 | valid.f_iou 0.5863699913024902, valid.f_f-score 0.78021: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 135 | valid.f_iou 0.6139299869537354, valid.f_f-score 0.76541: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 135 | valid.f_iou 0.6139299869537354, valid.f_f-score 0.76541: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 135 | valid.f_iou 0.6228799819946289, valid.f_f-score 0.77118: 25%|███████▌ | 4/16 [00:07<00:13, 1.13s/it]
epoch 135 | valid.f_iou 0.6228799819946289, valid.f_f-score 0.77118: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 135 | valid.f_iou 0.5810800194740295, valid.f_f-score 0.73386: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 135 | valid.f_iou 0.5810800194740295, valid.f_f-score 0.73386: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 135 | valid.f_iou 0.6053599715232849, valid.f_f-score 0.75688: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 135 | valid.f_iou 0.6053599715232849, valid.f_f-score 0.75688: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 135 | valid.f_iou 0.5741599798202515, valid.f_f-score 0.74069: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 135 | valid.f_iou 0.5741599798202515, valid.f_f-score 0.74069: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 135 | valid.f_iou 0.5926100015640259, valid.f_f-score 0.7491: 50%|███████████████▌ | 8/16 [00:09<00:04, 1.70it/s]
epoch 135 | valid.f_iou 0.5926100015640259, valid.f_f-score 0.7491: 56%|█████████████████▍ | 9/16 [00:09<00:03, 1.82it/s]
epoch 135 | valid.f_iou 0.5860599875450134, valid.f_f-score 0.74911: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.82it/s]
epoch 135 | valid.f_iou 0.5860599875450134, valid.f_f-score 0.74911: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.02it/s]
epoch 135 | valid.f_iou 0.5858500003814697, valid.f_f-score 0.74574: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.02it/s]
epoch 135 | valid.f_iou 0.5858500003814697, valid.f_f-score 0.74574: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.18it/s]
epoch 135 | valid.f_iou 0.6074399948120117, valid.f_f-score 0.76093: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.18it/s]
epoch 135 | valid.f_iou 0.6074399948120117, valid.f_f-score 0.76093: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 135 | valid.f_iou 0.6173200011253357, valid.f_f-score 0.76752: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.32it/s]
epoch 135 | valid.f_iou 0.6173200011253357, valid.f_f-score 0.76752: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.43it/s]
epoch 135 | valid.f_iou 0.6115000247955322, valid.f_f-score 0.7628: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.43it/s]
epoch 135 | valid.f_iou 0.6115000247955322, valid.f_f-score 0.7628: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.52it/s]
epoch 135 | valid.f_iou 0.6176300048828125, valid.f_f-score 0.76273: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 135 | valid.f_iou 0.6176300048828125, valid.f_f-score 0.76273: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 135 | valid.f_iou 0.6162300109863281, valid.f_f-score 0.75836: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.58it/s]
epoch 135 | valid.f_iou 0.6162300109863281, valid.f_f-score 0.75836: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 135 | valid.f_iou 0.6162300109863281, valid.f_f-score 0.75836: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 135 | valid.f_iou 0.8042899966239929, valid.f_f-score 0.79664: 0%| | 0/16 [00:04, ?it/s]
epoch 135 | valid.f_iou 0.8042899966239929, valid.f_f-score 0.79664: 6%|█▉ | 1/16 [00:04<01:08, 4.59s/it]
epoch 135 | valid.f_iou 0.8387899994850159, valid.f_f-score 0.86775: 6%|█▉ | 1/16 [00:05<01:08, 4.59s/it]
epoch 135 | valid.f_iou 0.8387899994850159, valid.f_f-score 0.86775: 12%|███▊ | 2/16 [00:05<00:31, 2.25s/it]
epoch 135 | valid.f_iou 0.7835999727249146, valid.f_f-score 0.85553: 12%|███▊ | 2/16 [00:05<00:31, 2.25s/it]
epoch 135 | valid.f_iou 0.7835999727249146, valid.f_f-score 0.85553: 19%|█████▋ | 3/16 [00:05<00:18, 1.43s/it]
epoch 135 | valid.f_iou 0.7393100261688232, valid.f_f-score 0.7873: 19%|█████▊ | 3/16 [00:06<00:18, 1.43s/it]
epoch 135 | valid.f_iou 0.7393100261688232, valid.f_f-score 0.7873: 25%|███████▊ | 4/16 [00:06<00:12, 1.02s/it]
epoch 135 | valid.f_iou 0.6917600035667419, valid.f_f-score 0.75507: 25%|███████▌ | 4/16 [00:06<00:12, 1.02s/it]
epoch 135 | valid.f_iou 0.6917600035667419, valid.f_f-score 0.75507: 31%|█████████▍ | 5/16 [00:06<00:08, 1.23it/s]
epoch 135 | valid.f_iou 0.6891099810600281, valid.f_f-score 0.75748: 31%|█████████▍ | 5/16 [00:06<00:08, 1.23it/s]
epoch 135 | valid.f_iou 0.6891099810600281, valid.f_f-score 0.75748: 38%|███████████▎ | 6/16 [00:06<00:06, 1.44it/s]
epoch 135 | valid.f_iou 0.7051200270652771, valid.f_f-score 0.78009: 38%|███████████▎ | 6/16 [00:07<00:06, 1.44it/s]
epoch 135 | valid.f_iou 0.7051200270652771, valid.f_f-score 0.78009: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.68it/s]
epoch 135 | valid.f_iou 0.6982700228691101, valid.f_f-score 0.78415: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.68it/s]
epoch 135 | valid.f_iou 0.6982700228691101, valid.f_f-score 0.78415: 50%|███████████████ | 8/16 [00:07<00:04, 1.86it/s]
epoch 135 | valid.f_iou 0.705269992351532, valid.f_f-score 0.78992: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.86it/s]
epoch 135 | valid.f_iou 0.705269992351532, valid.f_f-score 0.78992: 56%|█████████████████▍ | 9/16 [00:08<00:03, 2.04it/s]
epoch 135 | valid.f_iou 0.7165600061416626, valid.f_f-score 0.80294: 56%|████████████████▉ | 9/16 [00:08<00:03, 2.04it/s]
epoch 135 | valid.f_iou 0.7165600061416626, valid.f_f-score 0.80294: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.15it/s]
epoch 135 | valid.f_iou 0.7052199840545654, valid.f_f-score 0.78731: 62%|██████████████████▏ | 10/16 [00:08<00:02, 2.15it/s]
epoch 135 | valid.f_iou 0.7052199840545654, valid.f_f-score 0.78731: 69%|███████████████████▉ | 11/16 [00:08<00:02, 2.30it/s]
epoch 135 | valid.f_iou 0.7185500264167786, valid.f_f-score 0.7995: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.30it/s]
epoch 135 | valid.f_iou 0.7185500264167786, valid.f_f-score 0.7995: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.39it/s]
epoch 135 | valid.f_iou 0.7300199866294861, valid.f_f-score 0.80857: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.39it/s]
epoch 135 | valid.f_iou 0.7300199866294861, valid.f_f-score 0.80857: 81%|███████████████████████▌ | 13/16 [00:09<00:01, 2.50it/s]
epoch 135 | valid.f_iou 0.7204499840736389, valid.f_f-score 0.80052: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 135 | valid.f_iou 0.7204499840736389, valid.f_f-score 0.80052: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 135 | valid.f_iou 0.7307800054550171, valid.f_f-score 0.81061: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 135 | valid.f_iou 0.7307800054550171, valid.f_f-score 0.81061: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 135 | valid.f_iou 0.730139970779419, valid.f_f-score 0.80944: 94%|████████████████████████████▏ | 15/16 [00:10<00:00, 2.59it/s]
epoch 135 | valid.f_iou 0.730139970779419, valid.f_f-score 0.80944: 100%|██████████████████████████████| 16/16 [00:10<00:00, 2.62it/s]
epoch 135 | valid.f_iou 0.730139970779419, valid.f_f-score 0.80944: 100%|██████████████████████████████| 16/16 [00:10<00:00, 1.48it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 135 | valid.f_iou 0.7564799785614014, valid.f_f-score 0.76663: 0%| | 0/16 [00:05, ?it/s]
epoch 135 | valid.f_iou 0.7564799785614014, valid.f_f-score 0.76663: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 135 | valid.f_iou 0.8148800134658813, valid.f_f-score 0.85274: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 135 | valid.f_iou 0.8148800134658813, valid.f_f-score 0.85274: 12%|███▊ | 2/16 [00:05<00:34, 2.46s/it]
epoch 135 | valid.f_iou 0.7676600217819214, valid.f_f-score 0.84553: 12%|███▊ | 2/16 [00:06<00:34, 2.46s/it]
epoch 135 | valid.f_iou 0.7676600217819214, valid.f_f-score 0.84553: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 135 | valid.f_iou 0.7231199741363525, valid.f_f-score 0.77267: 19%|█████▋ | 3/16 [00:06<00:20, 1.54s/it]
epoch 135 | valid.f_iou 0.7231199741363525, valid.f_f-score 0.77267: 25%|███████▌ | 4/16 [00:06<00:13, 1.11s/it]
epoch 135 | valid.f_iou 0.6873000264167786, valid.f_f-score 0.74337: 25%|███████▌ | 4/16 [00:07<00:13, 1.11s/it]
epoch 135 | valid.f_iou 0.6873000264167786, valid.f_f-score 0.74337: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 135 | valid.f_iou 0.6853899955749512, valid.f_f-score 0.74773: 31%|█████████▍ | 5/16 [00:07<00:09, 1.14it/s]
epoch 135 | valid.f_iou 0.6853899955749512, valid.f_f-score 0.74773: 38%|███████████▎ | 6/16 [00:07<00:07, 1.36it/s]
epoch 135 | valid.f_iou 0.7037000060081482, valid.f_f-score 0.77173: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 135 | valid.f_iou 0.7037000060081482, valid.f_f-score 0.77173: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 135 | valid.f_iou 0.6970300078392029, valid.f_f-score 0.77684: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.56it/s]
epoch 135 | valid.f_iou 0.6970300078392029, valid.f_f-score 0.77684: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 135 | valid.f_iou 0.7059199810028076, valid.f_f-score 0.78342: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 135 | valid.f_iou 0.7059199810028076, valid.f_f-score 0.78342: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.95it/s]
epoch 135 | valid.f_iou 0.7140300273895264, valid.f_f-score 0.79355: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.95it/s]
epoch 135 | valid.f_iou 0.7140300273895264, valid.f_f-score 0.79355: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.14it/s]
epoch 135 | valid.f_iou 0.7029200196266174, valid.f_f-score 0.77878: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.14it/s]
epoch 135 | valid.f_iou 0.7029200196266174, valid.f_f-score 0.77878: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 135 | valid.f_iou 0.7164499759674072, valid.f_f-score 0.79167: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.29it/s]
epoch 135 | valid.f_iou 0.7164499759674072, valid.f_f-score 0.79167: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.41it/s]
epoch 135 | valid.f_iou 0.7280300259590149, valid.f_f-score 0.80213: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.41it/s]
epoch 135 | valid.f_iou 0.7280300259590149, valid.f_f-score 0.80213: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 135 | valid.f_iou 0.7185999751091003, valid.f_f-score 0.79455: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.50it/s]
epoch 135 | valid.f_iou 0.7185999751091003, valid.f_f-score 0.79455: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.56it/s]
epoch 135 | valid.f_iou 0.7290499806404114, valid.f_f-score 0.80504: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.56it/s]
epoch 135 | valid.f_iou 0.7290499806404114, valid.f_f-score 0.80504: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 135 | valid.f_iou 0.7289999723434448, valid.f_f-score 0.80421: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 135 | valid.f_iou 0.7289999723434448, valid.f_f-score 0.80421: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 135 | valid.f_iou 0.7289999723434448, valid.f_f-score 0.80421: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 136 | loss 1.4666988849639893, f_iou 0.30947840213775635: 0%| | 0/74 [00:06, ?it/s]
epoch 136 | loss 1.4666988849639893, f_iou 0.30947840213775635: 1%|▍ | 1/74 [00:06<08:06, 6.67s/it]
epoch 136 | loss 0.9058042764663696, f_iou 0.3413007855415344: 1%|▍ | 1/74 [00:07<08:06, 6.67s/it]
epoch 136 | loss 0.9058042764663696, f_iou 0.3413007855415344: 3%|▉ | 2/74 [00:07<03:55, 3.27s/it]
epoch 136 | loss 1.251862645149231, f_iou 0.4290904998779297: 3%|█ | 2/74 [00:08<03:55, 3.27s/it]
epoch 136 | loss 1.251862645149231, f_iou 0.4290904998779297: 4%|█▌ | 3/74 [00:08<02:32, 2.14s/it]
epoch 136 | loss 0.7168425917625427, f_iou 0.5160199403762817: 4%|█▍ | 3/74 [00:09<02:32, 2.14s/it]
epoch 136 | loss 0.7168425917625427, f_iou 0.5160199403762817: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 136 | loss 0.18915675580501556, f_iou 0.5785646438598633: 5%|█▉ | 4/74 [00:09<01:52, 1.61s/it]
epoch 136 | loss 0.18915675580501556, f_iou 0.5785646438598633: 7%|██▎ | 5/74 [00:09<01:30, 1.31s/it]
epoch 136 | loss 0.5945825576782227, f_iou 0.6390291452407837: 7%|██▍ | 5/74 [00:10<01:30, 1.31s/it]
epoch 136 | loss 0.5945825576782227, f_iou 0.6390291452407837: 8%|██▉ | 6/74 [00:10<01:16, 1.13s/it]
epoch 136 | loss 2.1799707412719727, f_iou 0.6480655670166016: 8%|██▉ | 6/74 [00:11<01:16, 1.13s/it]
epoch 136 | loss 2.1799707412719727, f_iou 0.6480655670166016: 9%|███▍ | 7/74 [00:11<01:08, 1.02s/it]
epoch 136 | loss 1.9213449954986572, f_iou 0.6093798279762268: 9%|███▍ | 7/74 [00:12<01:08, 1.02s/it]
epoch 136 | loss 1.9213449954986572, f_iou 0.6093798279762268: 11%|███▉ | 8/74 [00:12<01:05, 1.01it/s]
epoch 136 | loss 1.0264790058135986, f_iou 0.5789133310317993: 11%|███▉ | 8/74 [00:13<01:05, 1.01it/s]
epoch 136 | loss 1.0264790058135986, f_iou 0.5789133310317993: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 136 | loss 0.5153054594993591, f_iou 0.5986759662628174: 12%|████▍ | 9/74 [00:13<00:58, 1.10it/s]
epoch 136 | loss 0.5153054594993591, f_iou 0.5986759662628174: 14%|████▋ | 10/74 [00:13<00:54, 1.17it/s]
epoch 136 | loss 0.9376568794250488, f_iou 0.5928287506103516: 14%|████▋ | 10/74 [00:14<00:54, 1.17it/s]
epoch 136 | loss 0.9376568794250488, f_iou 0.5928287506103516: 15%|█████▏ | 11/74 [00:14<00:51, 1.23it/s]
epoch 136 | loss 0.38102519512176514, f_iou 0.6063017249107361: 15%|█████ | 11/74 [00:15<00:51, 1.23it/s]
epoch 136 | loss 0.38102519512176514, f_iou 0.6063017249107361: 16%|█████▌ | 12/74 [00:15<00:48, 1.27it/s]
epoch 136 | loss 1.0687355995178223, f_iou 0.6261691451072693: 16%|█████▋ | 12/74 [00:16<00:48, 1.27it/s]
epoch 136 | loss 1.0687355995178223, f_iou 0.6261691451072693: 18%|██████▏ | 13/74 [00:16<00:46, 1.31it/s]
epoch 136 | loss 1.448756456375122, f_iou 0.6302866339683533: 18%|██████▎ | 13/74 [00:16<00:46, 1.31it/s]
epoch 136 | loss 1.448756456375122, f_iou 0.6302866339683533: 19%|██████▊ | 14/74 [00:16<00:45, 1.33it/s]
epoch 136 | loss 0.45702484250068665, f_iou 0.6172037720680237: 19%|██████▍ | 14/74 [00:17<00:45, 1.33it/s]
epoch 136 | loss 0.45702484250068665, f_iou 0.6172037720680237: 20%|██████▉ | 15/74 [00:17<00:43, 1.35it/s]
epoch 136 | loss 0.835608184337616, f_iou 0.6333149671554565: 20%|███████▎ | 15/74 [00:18<00:43, 1.35it/s]
epoch 136 | loss 0.835608184337616, f_iou 0.6333149671554565: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 136 | loss 1.0763561725616455, f_iou 0.6374573707580566: 22%|███████▌ | 16/74 [00:19<00:43, 1.33it/s]
epoch 136 | loss 1.0763561725616455, f_iou 0.6374573707580566: 23%|████████ | 17/74 [00:19<00:42, 1.34it/s]
epoch 136 | loss 0.7879393696784973, f_iou 0.6488023400306702: 23%|████████ | 17/74 [00:19<00:42, 1.34it/s]
epoch 136 | loss 0.7879393696784973, f_iou 0.6488023400306702: 24%|████████▌ | 18/74 [00:19<00:41, 1.35it/s]
epoch 136 | loss 0.7604121565818787, f_iou 0.6638299226760864: 24%|████████▌ | 18/74 [00:20<00:41, 1.35it/s]
epoch 136 | loss 0.7604121565818787, f_iou 0.6638299226760864: 26%|████████▉ | 19/74 [00:20<00:40, 1.36it/s]
epoch 136 | loss 1.4611485004425049, f_iou 0.6620780825614929: 26%|████████▉ | 19/74 [00:21<00:40, 1.36it/s]
epoch 136 | loss 1.4611485004425049, f_iou 0.6620780825614929: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 136 | loss 1.400374174118042, f_iou 0.6647982001304626: 27%|█████████▋ | 20/74 [00:21<00:39, 1.37it/s]
epoch 136 | loss 1.400374174118042, f_iou 0.6647982001304626: 28%|██████████▏ | 21/74 [00:21<00:38, 1.38it/s]
epoch 136 | loss 1.0865252017974854, f_iou 0.6604110598564148: 28%|█████████▉ | 21/74 [00:22<00:38, 1.38it/s]
epoch 136 | loss 1.0865252017974854, f_iou 0.6604110598564148: 30%|██████████▍ | 22/74 [00:22<00:37, 1.37it/s]
epoch 136 | loss 1.0258688926696777, f_iou 0.6654617190361023: 30%|██████████▍ | 22/74 [00:23<00:37, 1.37it/s]
epoch 136 | loss 1.0258688926696777, f_iou 0.6654617190361023: 31%|██████████▉ | 23/74 [00:23<00:37, 1.38it/s]
epoch 136 | loss 1.1177293062210083, f_iou 0.6720332503318787: 31%|██████████▉ | 23/74 [00:24<00:37, 1.38it/s]
epoch 136 | loss 1.1177293062210083, f_iou 0.6720332503318787: 32%|███████████▎ | 24/74 [00:24<00:37, 1.35it/s]
epoch 136 | loss 0.4593922793865204, f_iou 0.6829115748405457: 32%|███████████▎ | 24/74 [00:24<00:37, 1.35it/s]
epoch 136 | loss 0.4593922793865204, f_iou 0.6829115748405457: 34%|███████████▊ | 25/74 [00:24<00:37, 1.32it/s]
epoch 136 | loss 0.0, f_iou 0.694572925567627: 34%|█████████████████▏ | 25/74 [00:25<00:37, 1.32it/s]
epoch 136 | loss 0.0, f_iou 0.694572925567627: 35%|█████████████████▉ | 26/74 [00:25<00:35, 1.34it/s]
epoch 136 | loss 1.2934300899505615, f_iou 0.7022376656532288: 35%|████████████▎ | 26/74 [00:26<00:35, 1.34it/s]
epoch 136 | loss 1.2934300899505615, f_iou 0.7022376656532288: 36%|████████████▊ | 27/74 [00:26<00:35, 1.33it/s]
epoch 136 | loss 0.0, f_iou 0.7123483419418335: 36%|██████████████████▏ | 27/74 [00:27<00:35, 1.33it/s]
epoch 136 | loss 0.0, f_iou 0.7123483419418335: 38%|██████████████████▉ | 28/74 [00:27<00:34, 1.35it/s]
epoch 136 | loss 0.9597325325012207, f_iou 0.7185986042022705: 38%|█████████████▏ | 28/74 [00:27<00:34, 1.35it/s]
epoch 136 | loss 0.9597325325012207, f_iou 0.7185986042022705: 39%|█████████████▋ | 29/74 [00:27<00:33, 1.36it/s]
epoch 136 | loss 1.407283067703247, f_iou 0.7250083684921265: 39%|██████████████ | 29/74 [00:28<00:33, 1.36it/s]
epoch 136 | loss 1.407283067703247, f_iou 0.7250083684921265: 41%|██████████████▌ | 30/74 [00:28<00:32, 1.36it/s]
epoch 136 | loss 2.383373260498047, f_iou 0.7188647985458374: 41%|██████████████▌ | 30/74 [00:29<00:32, 1.36it/s]
epoch 136 | loss 2.383373260498047, f_iou 0.7188647985458374: 42%|███████████████ | 31/74 [00:29<00:31, 1.36it/s]
epoch 136 | loss 0.306693434715271, f_iou 0.7267768979072571: 42%|███████████████ | 31/74 [00:30<00:31, 1.36it/s]
epoch 136 | loss 0.306693434715271, f_iou 0.7267768979072571: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.37it/s]
epoch 136 | loss 1.107588768005371, f_iou 0.7279670834541321: 43%|███████████████▌ | 32/74 [00:30<00:30, 1.37it/s]
epoch 136 | loss 1.107588768005371, f_iou 0.7279670834541321: 45%|████████████████ | 33/74 [00:30<00:29, 1.37it/s]
epoch 136 | loss 0.5052204132080078, f_iou 0.7236886620521545: 45%|███████████████▌ | 33/74 [00:31<00:29, 1.37it/s]
epoch 136 | loss 0.5052204132080078, f_iou 0.7236886620521545: 46%|████████████████ | 34/74 [00:31<00:29, 1.36it/s]
epoch 136 | loss 1.1291793584823608, f_iou 0.7101055979728699: 46%|████████████████ | 34/74 [00:32<00:29, 1.36it/s]
epoch 136 | loss 1.1291793584823608, f_iou 0.7101055979728699: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.33it/s]
epoch 136 | loss 0.40470364689826965, f_iou 0.7172942161560059: 47%|████████████████ | 35/74 [00:33<00:29, 1.33it/s]
epoch 136 | loss 0.40470364689826965, f_iou 0.7172942161560059: 49%|████████████████▌ | 36/74 [00:33<00:28, 1.33it/s]
epoch 136 | loss 0.6339548826217651, f_iou 0.7220240831375122: 49%|█████████████████ | 36/74 [00:33<00:28, 1.33it/s]
epoch 136 | loss 0.6339548826217651, f_iou 0.7220240831375122: 50%|█████████████████▌ | 37/74 [00:33<00:27, 1.34it/s]
epoch 136 | loss 0.6523405313491821, f_iou 0.7264453172683716: 50%|█████████████████▌ | 37/74 [00:34<00:27, 1.34it/s]
epoch 136 | loss 0.6523405313491821, f_iou 0.7264453172683716: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.34it/s]
epoch 136 | loss 0.6098069548606873, f_iou 0.7320731282234192: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.34it/s]
epoch 136 | loss 0.6098069548606873, f_iou 0.7320731282234192: 53%|██████████████████▍ | 39/74 [00:35<00:26, 1.32it/s]
epoch 136 | loss 0.5056100487709045, f_iou 0.735931396484375: 53%|██████████████████▉ | 39/74 [00:36<00:26, 1.32it/s]
epoch 136 | loss 0.5056100487709045, f_iou 0.735931396484375: 54%|███████████████████▍ | 40/74 [00:36<00:25, 1.31it/s]
epoch 136 | loss 1.8914598226547241, f_iou 0.7373507618904114: 54%|██████████████████▉ | 40/74 [00:36<00:25, 1.31it/s]
epoch 136 | loss 1.8914598226547241, f_iou 0.7373507618904114: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.31it/s]
epoch 136 | loss 0.28374016284942627, f_iou 0.7431151866912842: 55%|██████████████████▊ | 41/74 [00:37<00:25, 1.31it/s]
epoch 136 | loss 0.28374016284942627, f_iou 0.7431151866912842: 57%|███████████████████▎ | 42/74 [00:37<00:24, 1.30it/s]
epoch 136 | loss 0.5251993536949158, f_iou 0.7478810548782349: 57%|███████████████████▊ | 42/74 [00:38<00:24, 1.30it/s]
epoch 136 | loss 0.5251993536949158, f_iou 0.7478810548782349: 58%|████████████████████▎ | 43/74 [00:38<00:24, 1.29it/s]
epoch 136 | loss 0.8552770018577576, f_iou 0.7489020228385925: 58%|████████████████████▎ | 43/74 [00:39<00:24, 1.29it/s]
epoch 136 | loss 0.8552770018577576, f_iou 0.7489020228385925: 59%|████████████████████▊ | 44/74 [00:39<00:23, 1.29it/s]
epoch 136 | loss 1.1302465200424194, f_iou 0.7498106360435486: 59%|████████████████████▊ | 44/74 [00:39<00:23, 1.29it/s]
epoch 136 | loss 1.1302465200424194, f_iou 0.7498106360435486: 61%|█████████████████████▎ | 45/74 [00:39<00:22, 1.28it/s]
epoch 136 | loss 2.309638500213623, f_iou 0.7481871247291565: 61%|█████████████████████▉ | 45/74 [00:40<00:22, 1.28it/s]
epoch 136 | loss 2.309638500213623, f_iou 0.7481871247291565: 62%|██████████████████████▍ | 46/74 [00:40<00:21, 1.28it/s]
epoch 136 | loss 1.2245591878890991, f_iou 0.7513922452926636: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.28it/s]
epoch 136 | loss 1.2245591878890991, f_iou 0.7513922452926636: 64%|██████████████████████▏ | 47/74 [00:41<00:21, 1.27it/s]
epoch 136 | loss 0.47604018449783325, f_iou 0.7527274489402771: 64%|█████████████████████▌ | 47/74 [00:42<00:21, 1.27it/s]
epoch 136 | loss 0.47604018449783325, f_iou 0.7527274489402771: 65%|██████████████████████ | 48/74 [00:42<00:20, 1.27it/s]
epoch 136 | loss 0.5694992542266846, f_iou 0.7567439675331116: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.27it/s]
epoch 136 | loss 0.5694992542266846, f_iou 0.7567439675331116: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.26it/s]
epoch 136 | loss 0.9565328359603882, f_iou 0.7580141425132751: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.26it/s]
epoch 136 | loss 0.9565328359603882, f_iou 0.7580141425132751: 68%|███████████████████████▋ | 50/74 [00:43<00:19, 1.26it/s]
epoch 136 | loss 1.2391659021377563, f_iou 0.7451947331428528: 68%|███████████████████████▋ | 50/74 [00:44<00:19, 1.26it/s]
epoch 136 | loss 1.2391659021377563, f_iou 0.7451947331428528: 69%|████████████████████████ | 51/74 [00:44<00:18, 1.27it/s]
epoch 136 | loss 0.6938503980636597, f_iou 0.7445985674858093: 69%|████████████████████████ | 51/74 [00:45<00:18, 1.27it/s]
epoch 136 | loss 0.6938503980636597, f_iou 0.7445985674858093: 70%|████████████████████████▌ | 52/74 [00:45<00:17, 1.27it/s]
epoch 136 | loss 0.8162182569503784, f_iou 0.7466087341308594: 70%|████████████████████████▌ | 52/74 [00:46<00:17, 1.27it/s]
epoch 136 | loss 0.8162182569503784, f_iou 0.7466087341308594: 72%|█████████████████████████ | 53/74 [00:46<00:16, 1.30it/s]
epoch 136 | loss 0.38997945189476013, f_iou 0.7504709959030151: 72%|████████████████████████▎ | 53/74 [00:46<00:16, 1.30it/s]
epoch 136 | loss 0.38997945189476013, f_iou 0.7504709959030151: 73%|████████████████████████▊ | 54/74 [00:46<00:15, 1.32it/s]
epoch 136 | loss 0.6192727088928223, f_iou 0.7529625296592712: 73%|█████████████████████████▌ | 54/74 [00:47<00:15, 1.32it/s]
epoch 136 | loss 0.6192727088928223, f_iou 0.7529625296592712: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.34it/s]
epoch 136 | loss 1.0510824918746948, f_iou 0.7527900338172913: 74%|██████████████████████████ | 55/74 [00:48<00:14, 1.34it/s]
epoch 136 | loss 1.0510824918746948, f_iou 0.7527900338172913: 76%|██████████████████████████▍ | 56/74 [00:48<00:13, 1.34it/s]
epoch 136 | loss 0.41647982597351074, f_iou 0.7482218146324158: 76%|█████████████████████████▋ | 56/74 [00:49<00:13, 1.34it/s]
epoch 136 | loss 0.41647982597351074, f_iou 0.7482218146324158: 77%|██████████████████████████▏ | 57/74 [00:49<00:12, 1.34it/s]
epoch 136 | loss 0.9117404222488403, f_iou 0.7492520809173584: 77%|██████████████████████████▉ | 57/74 [00:49<00:12, 1.34it/s]
epoch 136 | loss 0.9117404222488403, f_iou 0.7492520809173584: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.35it/s]
epoch 136 | loss 0.46007946133613586, f_iou 0.7515655755996704: 78%|██████████████████████████▋ | 58/74 [00:50<00:11, 1.35it/s]
epoch 136 | loss 0.46007946133613586, f_iou 0.7515655755996704: 80%|███████████████████████████ | 59/74 [00:50<00:11, 1.36it/s]
epoch 136 | loss 0.9501524567604065, f_iou 0.7514340281486511: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.36it/s]
epoch 136 | loss 0.9501524567604065, f_iou 0.7514340281486511: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.36it/s]
epoch 136 | loss 0.614202082157135, f_iou 0.7536786198616028: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.36it/s]
epoch 136 | loss 0.614202082157135, f_iou 0.7536786198616028: 82%|█████████████████████████████▋ | 61/74 [00:52<00:09, 1.35it/s]
epoch 136 | loss 0.8254141211509705, f_iou 0.7564045786857605: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.35it/s]
epoch 136 | loss 0.8254141211509705, f_iou 0.7564045786857605: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.32it/s]
epoch 136 | loss 0.9339910745620728, f_iou 0.7572739720344543: 84%|█████████████████████████████▎ | 62/74 [00:53<00:09, 1.32it/s]
epoch 136 | loss 0.9339910745620728, f_iou 0.7572739720344543: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.32it/s]
epoch 136 | loss 1.5563685894012451, f_iou 0.748000979423523: 85%|██████████████████████████████▋ | 63/74 [00:54<00:08, 1.32it/s]
epoch 136 | loss 1.5563685894012451, f_iou 0.748000979423523: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.34it/s]
epoch 136 | loss 1.2374979257583618, f_iou 0.7498340606689453: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.34it/s]
epoch 136 | loss 1.2374979257583618, f_iou 0.7498340606689453: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.35it/s]
epoch 136 | loss 0.7856631278991699, f_iou 0.7520478963851929: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.35it/s]
epoch 136 | loss 0.7856631278991699, f_iou 0.7520478963851929: 89%|███████████████████████████████▏ | 66/74 [00:55<00:05, 1.36it/s]
epoch 136 | loss 0.7481797933578491, f_iou 0.7508482933044434: 89%|███████████████████████████████▏ | 66/74 [00:56<00:05, 1.36it/s]
epoch 136 | loss 0.7481797933578491, f_iou 0.7508482933044434: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.37it/s]
epoch 136 | loss 0.5438957214355469, f_iou 0.7535373568534851: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.37it/s]
epoch 136 | loss 0.5438957214355469, f_iou 0.7535373568534851: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.36it/s]
epoch 136 | loss 0.5693472623825073, f_iou 0.7552071213722229: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.36it/s]
epoch 136 | loss 0.5693472623825073, f_iou 0.7552071213722229: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.37it/s]
epoch 136 | loss 0.5329643487930298, f_iou 0.7581098079681396: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.37it/s]
epoch 136 | loss 0.5329643487930298, f_iou 0.7581098079681396: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.38it/s]
epoch 136 | loss 0.7683107852935791, f_iou 0.7558841109275818: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.38it/s]
epoch 136 | loss 0.7683107852935791, f_iou 0.7558841109275818: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.38it/s]
epoch 136 | loss 0.6369187235832214, f_iou 0.7548790574073792: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.38it/s]
epoch 136 | loss 0.6369187235832214, f_iou 0.7548790574073792: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 136 | loss 2.0680387020111084, f_iou 0.7536782622337341: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.39it/s]
epoch 136 | loss 2.0680387020111084, f_iou 0.7536782622337341: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.39it/s]
epoch 136 | loss 0.5093887448310852, f_iou 0.753942608833313: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.39it/s]
epoch 136 | loss 0.5093887448310852, f_iou 0.753942608833313: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.39it/s]
epoch 136 | loss 0.5093887448310852, f_iou 0.753942608833313: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 136 | valid.f_iou 0.7482900023460388, valid.f_f-score 0.83971: 0%| | 0/16 [00:05, ?it/s]
epoch 136 | valid.f_iou 0.7482900023460388, valid.f_f-score 0.83971: 6%|█▉ | 1/16 [00:05<01:27, 5.82s/it]
epoch 136 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.87713: 6%|█▉ | 1/16 [00:06<01:27, 5.82s/it]
epoch 136 | valid.f_iou 0.7261999845504761, valid.f_f-score 0.87713: 12%|███▊ | 2/16 [00:06<00:37, 2.66s/it]
epoch 136 | valid.f_iou 0.591159999370575, valid.f_f-score 0.78405: 12%|███▉ | 2/16 [00:06<00:37, 2.66s/it]
epoch 136 | valid.f_iou 0.591159999370575, valid.f_f-score 0.78405: 19%|█████▊ | 3/16 [00:06<00:21, 1.66s/it]
epoch 136 | valid.f_iou 0.6154500246047974, valid.f_f-score 0.76505: 19%|█████▋ | 3/16 [00:07<00:21, 1.66s/it]
epoch 136 | valid.f_iou 0.6154500246047974, valid.f_f-score 0.76505: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 136 | valid.f_iou 0.6291099786758423, valid.f_f-score 0.77375: 25%|███████▌ | 4/16 [00:07<00:14, 1.18s/it]
epoch 136 | valid.f_iou 0.6291099786758423, valid.f_f-score 0.77375: 31%|█████████▍ | 5/16 [00:07<00:10, 1.08it/s]
epoch 136 | valid.f_iou 0.5857700109481812, valid.f_f-score 0.73678: 31%|█████████▍ | 5/16 [00:08<00:10, 1.08it/s]
epoch 136 | valid.f_iou 0.5857700109481812, valid.f_f-score 0.73678: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 136 | valid.f_iou 0.6090599894523621, valid.f_f-score 0.76101: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 136 | valid.f_iou 0.6090599894523621, valid.f_f-score 0.76101: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.51it/s]
epoch 136 | valid.f_iou 0.5788599848747253, valid.f_f-score 0.74569: 44%|█████████████▏ | 7/16 [00:09<00:05, 1.51it/s]
epoch 136 | valid.f_iou 0.5788599848747253, valid.f_f-score 0.74569: 50%|███████████████ | 8/16 [00:09<00:04, 1.69it/s]
epoch 136 | valid.f_iou 0.5969300270080566, valid.f_f-score 0.75416: 50%|███████████████ | 8/16 [00:09<00:04, 1.69it/s]
epoch 136 | valid.f_iou 0.5969300270080566, valid.f_f-score 0.75416: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.83it/s]
epoch 136 | valid.f_iou 0.5972099900245667, valid.f_f-score 0.75778: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.83it/s]
epoch 136 | valid.f_iou 0.5972099900245667, valid.f_f-score 0.75778: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.94it/s]
epoch 136 | valid.f_iou 0.5963299870491028, valid.f_f-score 0.75388: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.94it/s]
epoch 136 | valid.f_iou 0.5963299870491028, valid.f_f-score 0.75388: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.12it/s]
epoch 136 | valid.f_iou 0.617389976978302, valid.f_f-score 0.76851: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.12it/s]
epoch 136 | valid.f_iou 0.617389976978302, valid.f_f-score 0.76851: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.27it/s]
epoch 136 | valid.f_iou 0.6273900270462036, valid.f_f-score 0.77503: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.27it/s]
epoch 136 | valid.f_iou 0.6273900270462036, valid.f_f-score 0.77503: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.39it/s]
epoch 136 | valid.f_iou 0.6210100054740906, valid.f_f-score 0.77024: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.39it/s]
epoch 136 | valid.f_iou 0.6210100054740906, valid.f_f-score 0.77024: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 136 | valid.f_iou 0.6262999773025513, valid.f_f-score 0.76967: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.49it/s]
epoch 136 | valid.f_iou 0.6262999773025513, valid.f_f-score 0.76967: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 136 | valid.f_iou 0.6286799907684326, valid.f_f-score 0.76613: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.54it/s]
epoch 136 | valid.f_iou 0.6286799907684326, valid.f_f-score 0.76613: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.58it/s]
epoch 136 | valid.f_iou 0.6286799907684326, valid.f_f-score 0.76613: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 136 | valid.f_iou 0.7931100130081177, valid.f_f-score 0.79055: 0%| | 0/16 [00:05, ?it/s]
epoch 136 | valid.f_iou 0.7931100130081177, valid.f_f-score 0.79055: 6%|█▉ | 1/16 [00:05<01:22, 5.47s/it]
epoch 136 | valid.f_iou 0.8293899893760681, valid.f_f-score 0.86217: 6%|█▉ | 1/16 [00:05<01:22, 5.47s/it]
epoch 136 | valid.f_iou 0.8293899893760681, valid.f_f-score 0.86217: 12%|███▊ | 2/16 [00:05<00:35, 2.54s/it]
epoch 136 | valid.f_iou 0.7777299880981445, valid.f_f-score 0.85226: 12%|███▊ | 2/16 [00:06<00:35, 2.54s/it]
epoch 136 | valid.f_iou 0.7777299880981445, valid.f_f-score 0.85226: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 136 | valid.f_iou 0.7688900232315063, valid.f_f-score 0.82086: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 136 | valid.f_iou 0.7688900232315063, valid.f_f-score 0.82086: 25%|███████▌ | 4/16 [00:06<00:13, 1.13s/it]
epoch 136 | valid.f_iou 0.7329400181770325, valid.f_f-score 0.8026: 25%|███████▊ | 4/16 [00:07<00:13, 1.13s/it]
epoch 136 | valid.f_iou 0.7329400181770325, valid.f_f-score 0.8026: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 136 | valid.f_iou 0.7165899872779846, valid.f_f-score 0.78965: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 136 | valid.f_iou 0.7165899872779846, valid.f_f-score 0.78965: 38%|███████████▎ | 6/16 [00:07<00:07, 1.33it/s]
epoch 136 | valid.f_iou 0.7283999919891357, valid.f_f-score 0.8076: 38%|███████████▋ | 6/16 [00:08<00:07, 1.33it/s]
epoch 136 | valid.f_iou 0.7283999919891357, valid.f_f-score 0.8076: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.53it/s]
epoch 136 | valid.f_iou 0.7185199856758118, valid.f_f-score 0.80822: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.53it/s]
epoch 136 | valid.f_iou 0.7185199856758118, valid.f_f-score 0.80822: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 136 | valid.f_iou 0.7233899831771851, valid.f_f-score 0.81134: 50%|███████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 136 | valid.f_iou 0.7233899831771851, valid.f_f-score 0.81134: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 136 | valid.f_iou 0.7326400279998779, valid.f_f-score 0.82217: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 136 | valid.f_iou 0.7326400279998779, valid.f_f-score 0.82217: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.03it/s]
epoch 136 | valid.f_iou 0.7200899720191956, valid.f_f-score 0.8049: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.03it/s]
epoch 136 | valid.f_iou 0.7200899720191956, valid.f_f-score 0.8049: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.09it/s]
epoch 136 | valid.f_iou 0.7320600152015686, valid.f_f-score 0.81557: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.09it/s]
epoch 136 | valid.f_iou 0.7320600152015686, valid.f_f-score 0.81557: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 136 | valid.f_iou 0.7422599792480469, valid.f_f-score 0.82333: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.14it/s]
epoch 136 | valid.f_iou 0.7422599792480469, valid.f_f-score 0.82333: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.18it/s]
epoch 136 | valid.f_iou 0.7325299978256226, valid.f_f-score 0.81526: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.18it/s]
epoch 136 | valid.f_iou 0.7325299978256226, valid.f_f-score 0.81526: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.32it/s]
epoch 136 | valid.f_iou 0.741890013217926, valid.f_f-score 0.82433: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.32it/s]
epoch 136 | valid.f_iou 0.741890013217926, valid.f_f-score 0.82433: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 136 | valid.f_iou 0.7408300042152405, valid.f_f-score 0.82249: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.42it/s]
epoch 136 | valid.f_iou 0.7408300042152405, valid.f_f-score 0.82249: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.52it/s]
epoch 136 | valid.f_iou 0.7408300042152405, valid.f_f-score 0.82249: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 136 | valid.f_iou 0.7452899813652039, valid.f_f-score 0.76054: 0%| | 0/16 [00:05, ?it/s]
epoch 136 | valid.f_iou 0.7452899813652039, valid.f_f-score 0.76054: 6%|█▉ | 1/16 [00:05<01:24, 5.61s/it]
epoch 136 | valid.f_iou 0.8054800033569336, valid.f_f-score 0.84716: 6%|█▉ | 1/16 [00:06<01:24, 5.61s/it]
epoch 136 | valid.f_iou 0.8054800033569336, valid.f_f-score 0.84716: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 136 | valid.f_iou 0.7617899775505066, valid.f_f-score 0.84225: 12%|███▊ | 2/16 [00:06<00:36, 2.58s/it]
epoch 136 | valid.f_iou 0.7617899775505066, valid.f_f-score 0.84225: 19%|█████▋ | 3/16 [00:06<00:21, 1.62s/it]
epoch 136 | valid.f_iou 0.7528799772262573, valid.f_f-score 0.80627: 19%|█████▋ | 3/16 [00:06<00:21, 1.62s/it]
epoch 136 | valid.f_iou 0.7528799772262573, valid.f_f-score 0.80627: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 136 | valid.f_iou 0.7284700274467468, valid.f_f-score 0.79093: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 136 | valid.f_iou 0.7284700274467468, valid.f_f-score 0.79093: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 136 | valid.f_iou 0.7128700017929077, valid.f_f-score 0.77993: 31%|█████████▍ | 5/16 [00:07<00:09, 1.11it/s]
epoch 136 | valid.f_iou 0.7128700017929077, valid.f_f-score 0.77993: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 136 | valid.f_iou 0.7269899845123291, valid.f_f-score 0.79927: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 136 | valid.f_iou 0.7269899845123291, valid.f_f-score 0.79927: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 136 | valid.f_iou 0.7172799706459045, valid.f_f-score 0.80092: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.59it/s]
epoch 136 | valid.f_iou 0.7172799706459045, valid.f_f-score 0.80092: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 136 | valid.f_iou 0.7239199876785278, valid.f_f-score 0.80486: 50%|███████████████ | 8/16 [00:09<00:04, 1.77it/s]
epoch 136 | valid.f_iou 0.7239199876785278, valid.f_f-score 0.80486: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 136 | valid.f_iou 0.7301200032234192, valid.f_f-score 0.81283: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 136 | valid.f_iou 0.7301200032234192, valid.f_f-score 0.81283: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 136 | valid.f_iou 0.7178000211715698, valid.f_f-score 0.79641: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 136 | valid.f_iou 0.7178000211715698, valid.f_f-score 0.79641: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.20it/s]
epoch 136 | valid.f_iou 0.729960024356842, valid.f_f-score 0.80778: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.20it/s]
epoch 136 | valid.f_iou 0.729960024356842, valid.f_f-score 0.80778: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 136 | valid.f_iou 0.7402700185775757, valid.f_f-score 0.8168: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.33it/s]
epoch 136 | valid.f_iou 0.7402700185775757, valid.f_f-score 0.8168: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 136 | valid.f_iou 0.730679988861084, valid.f_f-score 0.80921: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.44it/s]
epoch 136 | valid.f_iou 0.730679988861084, valid.f_f-score 0.80921: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.52it/s]
epoch 136 | valid.f_iou 0.7401700019836426, valid.f_f-score 0.81868: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.52it/s]
epoch 136 | valid.f_iou 0.7401700019836426, valid.f_f-score 0.81868: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 136 | valid.f_iou 0.7397000193595886, valid.f_f-score 0.81719: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.57it/s]
epoch 136 | valid.f_iou 0.7397000193595886, valid.f_f-score 0.81719: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.62it/s]
epoch 136 | valid.f_iou 0.7397000193595886, valid.f_f-score 0.81719: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.36it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 137 | loss 0.8808736801147461, f_iou 0.15925078094005585: 0%| | 0/74 [00:06, ?it/s]
epoch 137 | loss 0.8808736801147461, f_iou 0.15925078094005585: 1%|▍ | 1/74 [00:06<07:57, 6.54s/it]
epoch 137 | loss 0.9473223090171814, f_iou 0.44637617468833923: 1%|▍ | 1/74 [00:07<07:57, 6.54s/it]
epoch 137 | loss 0.9473223090171814, f_iou 0.44637617468833923: 3%|▉ | 2/74 [00:07<03:48, 3.17s/it]
epoch 137 | loss 0.6436501741409302, f_iou 0.6033775806427002: 3%|▉ | 2/74 [00:08<03:48, 3.17s/it]
epoch 137 | loss 0.6436501741409302, f_iou 0.6033775806427002: 4%|█▍ | 3/74 [00:08<02:28, 2.09s/it]
epoch 137 | loss 0.9218668937683105, f_iou 0.6596769690513611: 4%|█▍ | 3/74 [00:08<02:28, 2.09s/it]
epoch 137 | loss 0.9218668937683105, f_iou 0.6596769690513611: 5%|█▉ | 4/74 [00:08<01:49, 1.56s/it]
epoch 137 | loss 2.2381591796875, f_iou 0.6349689364433289: 5%|██ | 4/74 [00:09<01:49, 1.56s/it]
epoch 137 | loss 2.2381591796875, f_iou 0.6349689364433289: 7%|██▋ | 5/74 [00:09<01:28, 1.28s/it]
epoch 137 | loss 0.7607446908950806, f_iou 0.5432354807853699: 7%|██▍ | 5/74 [00:10<01:28, 1.28s/it]
epoch 137 | loss 0.7607446908950806, f_iou 0.5432354807853699: 8%|██▉ | 6/74 [00:10<01:14, 1.09s/it]
epoch 137 | loss 0.8239591121673584, f_iou 0.5258808732032776: 8%|██▉ | 6/74 [00:11<01:14, 1.09s/it]
epoch 137 | loss 0.8239591121673584, f_iou 0.5258808732032776: 9%|███▍ | 7/74 [00:11<01:05, 1.03it/s]
epoch 137 | loss 0.8083467483520508, f_iou 0.544971227645874: 9%|███▌ | 7/74 [00:11<01:05, 1.03it/s]
epoch 137 | loss 0.8083467483520508, f_iou 0.544971227645874: 11%|████ | 8/74 [00:11<01:00, 1.09it/s]
epoch 137 | loss 1.4814269542694092, f_iou 0.5735633373260498: 11%|███▉ | 8/74 [00:12<01:00, 1.09it/s]
epoch 137 | loss 1.4814269542694092, f_iou 0.5735633373260498: 12%|████▍ | 9/74 [00:12<00:59, 1.09it/s]
epoch 137 | loss 0.6622254252433777, f_iou 0.5955531597137451: 12%|████▍ | 9/74 [00:13<00:59, 1.09it/s]
epoch 137 | loss 0.6622254252433777, f_iou 0.5955531597137451: 14%|████▋ | 10/74 [00:13<00:55, 1.16it/s]
epoch 137 | loss 0.659498929977417, f_iou 0.6145462393760681: 14%|████▊ | 10/74 [00:14<00:55, 1.16it/s]
epoch 137 | loss 0.659498929977417, f_iou 0.6145462393760681: 15%|█████▎ | 11/74 [00:14<00:53, 1.18it/s]
epoch 137 | loss 0.5252572298049927, f_iou 0.6237952709197998: 15%|█████▏ | 11/74 [00:15<00:53, 1.18it/s]
epoch 137 | loss 0.5252572298049927, f_iou 0.6237952709197998: 16%|█████▋ | 12/74 [00:15<00:51, 1.21it/s]
epoch 137 | loss 0.9368473291397095, f_iou 0.6413213014602661: 16%|█████▋ | 12/74 [00:15<00:51, 1.21it/s]
epoch 137 | loss 0.9368473291397095, f_iou 0.6413213014602661: 18%|██████▏ | 13/74 [00:15<00:49, 1.22it/s]
epoch 137 | loss 0.6721948385238647, f_iou 0.6606219410896301: 18%|██████▏ | 13/74 [00:16<00:49, 1.22it/s]
epoch 137 | loss 0.6721948385238647, f_iou 0.6606219410896301: 19%|██████▌ | 14/74 [00:16<00:48, 1.23it/s]
epoch 137 | loss 0.8582723140716553, f_iou 0.6725959777832031: 19%|██████▌ | 14/74 [00:17<00:48, 1.23it/s]
epoch 137 | loss 0.8582723140716553, f_iou 0.6725959777832031: 20%|███████ | 15/74 [00:17<00:46, 1.26it/s]
epoch 137 | loss 1.3321565389633179, f_iou 0.6807648539543152: 20%|███████ | 15/74 [00:18<00:46, 1.26it/s]
epoch 137 | loss 1.3321565389633179, f_iou 0.6807648539543152: 22%|███████▌ | 16/74 [00:18<00:45, 1.28it/s]
epoch 137 | loss 0.8313887715339661, f_iou 0.6759499907493591: 22%|███████▌ | 16/74 [00:19<00:45, 1.28it/s]
epoch 137 | loss 0.8313887715339661, f_iou 0.6759499907493591: 23%|████████ | 17/74 [00:19<00:43, 1.30it/s]
epoch 137 | loss 0.284461110830307, f_iou 0.6803749203681946: 23%|████████▎ | 17/74 [00:19<00:43, 1.30it/s]
epoch 137 | loss 0.284461110830307, f_iou 0.6803749203681946: 24%|████████▊ | 18/74 [00:19<00:42, 1.31it/s]
epoch 137 | loss 0.7577832937240601, f_iou 0.6932990550994873: 24%|████████▌ | 18/74 [00:20<00:42, 1.31it/s]
epoch 137 | loss 0.7577832937240601, f_iou 0.6932990550994873: 26%|████████▉ | 19/74 [00:20<00:41, 1.32it/s]
epoch 137 | loss 0.0, f_iou 0.7082199454307556: 26%|████████████▊ | 19/74 [00:21<00:41, 1.32it/s]
epoch 137 | loss 0.0, f_iou 0.7082199454307556: 27%|█████████████▌ | 20/74 [00:21<00:40, 1.32it/s]
epoch 137 | loss 0.6069135665893555, f_iou 0.7167390584945679: 27%|█████████▍ | 20/74 [00:22<00:40, 1.32it/s]
epoch 137 | loss 0.6069135665893555, f_iou 0.7167390584945679: 28%|█████████▉ | 21/74 [00:22<00:40, 1.32it/s]
epoch 137 | loss 0.7713102102279663, f_iou 0.7019761204719543: 28%|█████████▉ | 21/74 [00:22<00:40, 1.32it/s]
epoch 137 | loss 0.7713102102279663, f_iou 0.7019761204719543: 30%|██████████▍ | 22/74 [00:22<00:39, 1.30it/s]
epoch 137 | loss 0.764961838722229, f_iou 0.6972971558570862: 30%|██████████▋ | 22/74 [00:23<00:39, 1.30it/s]
epoch 137 | loss 0.764961838722229, f_iou 0.6972971558570862: 31%|███████████▏ | 23/74 [00:23<00:39, 1.28it/s]
epoch 137 | loss 0.8792749643325806, f_iou 0.7068659663200378: 31%|██████████▉ | 23/74 [00:24<00:39, 1.28it/s]
epoch 137 | loss 0.8792749643325806, f_iou 0.7068659663200378: 32%|███████████▎ | 24/74 [00:24<00:38, 1.29it/s]
epoch 137 | loss 0.7286898493766785, f_iou 0.7092001438140869: 32%|███████████▎ | 24/74 [00:25<00:38, 1.29it/s]
epoch 137 | loss 0.7286898493766785, f_iou 0.7092001438140869: 34%|███████████▊ | 25/74 [00:25<00:38, 1.28it/s]
epoch 137 | loss 0.994469165802002, f_iou 0.7156609892845154: 34%|████████████▏ | 25/74 [00:26<00:38, 1.28it/s]
epoch 137 | loss 0.994469165802002, f_iou 0.7156609892845154: 35%|████████████▋ | 26/74 [00:26<00:37, 1.27it/s]
epoch 137 | loss 0.49383270740509033, f_iou 0.7216328978538513: 35%|███████████▉ | 26/74 [00:26<00:37, 1.27it/s]
epoch 137 | loss 0.49383270740509033, f_iou 0.7216328978538513: 36%|████████████▍ | 27/74 [00:26<00:37, 1.27it/s]
epoch 137 | loss 0.4030560851097107, f_iou 0.7299763560295105: 36%|████████████▊ | 27/74 [00:27<00:37, 1.27it/s]
epoch 137 | loss 0.4030560851097107, f_iou 0.7299763560295105: 38%|█████████████▏ | 28/74 [00:27<00:36, 1.27it/s]
epoch 137 | loss 0.7644350528717041, f_iou 0.7362607717514038: 38%|█████████████▏ | 28/74 [00:28<00:36, 1.27it/s]
epoch 137 | loss 0.7644350528717041, f_iou 0.7362607717514038: 39%|█████████████▋ | 29/74 [00:28<00:35, 1.26it/s]
epoch 137 | loss 0.6390662789344788, f_iou 0.7428088188171387: 39%|█████████████▋ | 29/74 [00:29<00:35, 1.26it/s]
epoch 137 | loss 0.6390662789344788, f_iou 0.7428088188171387: 41%|██████████████▏ | 30/74 [00:29<00:34, 1.26it/s]
epoch 137 | loss 0.730776309967041, f_iou 0.7481209635734558: 41%|██████████████▌ | 30/74 [00:29<00:34, 1.26it/s]
epoch 137 | loss 0.730776309967041, f_iou 0.7481209635734558: 42%|███████████████ | 31/74 [00:29<00:34, 1.26it/s]
epoch 137 | loss 0.5242166519165039, f_iou 0.7524511814117432: 42%|██████████████▋ | 31/74 [00:30<00:34, 1.26it/s]
epoch 137 | loss 0.5242166519165039, f_iou 0.7524511814117432: 43%|███████████████▏ | 32/74 [00:30<00:33, 1.26it/s]
epoch 137 | loss 0.5573593974113464, f_iou 0.7345715761184692: 43%|███████████████▏ | 32/74 [00:31<00:33, 1.26it/s]
epoch 137 | loss 0.5573593974113464, f_iou 0.7345715761184692: 45%|███████████████▌ | 33/74 [00:31<00:32, 1.27it/s]
epoch 137 | loss 0.7610810995101929, f_iou 0.7367235422134399: 45%|███████████████▌ | 33/74 [00:32<00:32, 1.27it/s]
epoch 137 | loss 0.7610810995101929, f_iou 0.7367235422134399: 46%|████████████████ | 34/74 [00:32<00:31, 1.27it/s]
epoch 137 | loss 0.5689375996589661, f_iou 0.7433440089225769: 46%|████████████████ | 34/74 [00:33<00:31, 1.27it/s]
epoch 137 | loss 0.5689375996589661, f_iou 0.7433440089225769: 47%|████████████████▌ | 35/74 [00:33<00:30, 1.27it/s]
epoch 137 | loss 0.535286545753479, f_iou 0.7466468811035156: 47%|█████████████████ | 35/74 [00:33<00:30, 1.27it/s]
epoch 137 | loss 0.535286545753479, f_iou 0.7466468811035156: 49%|█████████████████▌ | 36/74 [00:33<00:30, 1.27it/s]
epoch 137 | loss 0.3499171733856201, f_iou 0.7526811361312866: 49%|█████████████████ | 36/74 [00:34<00:30, 1.27it/s]
epoch 137 | loss 0.3499171733856201, f_iou 0.7526811361312866: 50%|█████████████████▌ | 37/74 [00:34<00:29, 1.26it/s]
epoch 137 | loss 1.0366747379302979, f_iou 0.7379720211029053: 50%|█████████████████▌ | 37/74 [00:35<00:29, 1.26it/s]
epoch 137 | loss 1.0366747379302979, f_iou 0.7379720211029053: 51%|█████████████████▉ | 38/74 [00:35<00:28, 1.26it/s]
epoch 137 | loss 2.132328748703003, f_iou 0.724014937877655: 51%|███████████████████ | 38/74 [00:36<00:28, 1.26it/s]
epoch 137 | loss 2.132328748703003, f_iou 0.724014937877655: 53%|███████████████████▍ | 39/74 [00:36<00:27, 1.26it/s]
epoch 137 | loss 1.0256891250610352, f_iou 0.7251061201095581: 53%|██████████████████▍ | 39/74 [00:37<00:27, 1.26it/s]
epoch 137 | loss 1.0256891250610352, f_iou 0.7251061201095581: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.30it/s]
epoch 137 | loss 0.7451114058494568, f_iou 0.7293482422828674: 54%|██████████████████▉ | 40/74 [00:37<00:26, 1.30it/s]
epoch 137 | loss 0.7451114058494568, f_iou 0.7293482422828674: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.31it/s]
epoch 137 | loss 0.5114989876747131, f_iou 0.727630078792572: 55%|███████████████████▉ | 41/74 [00:38<00:25, 1.31it/s]
epoch 137 | loss 0.5114989876747131, f_iou 0.727630078792572: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.34it/s]
epoch 137 | loss 1.0445441007614136, f_iou 0.7309158444404602: 57%|███████████████████▊ | 42/74 [00:39<00:23, 1.34it/s]
epoch 137 | loss 1.0445441007614136, f_iou 0.7309158444404602: 58%|████████████████████▎ | 43/74 [00:39<00:23, 1.34it/s]
epoch 137 | loss 0.7974931001663208, f_iou 0.7315506935119629: 58%|████████████████████▎ | 43/74 [00:39<00:23, 1.34it/s]
epoch 137 | loss 0.7974931001663208, f_iou 0.7315506935119629: 59%|████████████████████▊ | 44/74 [00:39<00:22, 1.34it/s]
epoch 137 | loss 1.6367977857589722, f_iou 0.7278205752372742: 59%|████████████████████▊ | 44/74 [00:40<00:22, 1.34it/s]
epoch 137 | loss 1.6367977857589722, f_iou 0.7278205752372742: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.32it/s]
epoch 137 | loss 0.7674038410186768, f_iou 0.7282373905181885: 61%|█████████████████████▎ | 45/74 [00:41<00:21, 1.32it/s]
epoch 137 | loss 0.7674038410186768, f_iou 0.7282373905181885: 62%|█████████████████████▊ | 46/74 [00:41<00:21, 1.31it/s]
epoch 137 | loss 0.8499451875686646, f_iou 0.7179523706436157: 62%|█████████████████████▊ | 46/74 [00:42<00:21, 1.31it/s]
epoch 137 | loss 0.8499451875686646, f_iou 0.7179523706436157: 64%|██████████████████████▏ | 47/74 [00:42<00:20, 1.29it/s]
epoch 137 | loss 0.3772095739841461, f_iou 0.7231878638267517: 64%|██████████████████████▏ | 47/74 [00:43<00:20, 1.29it/s]
epoch 137 | loss 0.3772095739841461, f_iou 0.7231878638267517: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.28it/s]
epoch 137 | loss 0.8744628429412842, f_iou 0.7274828553199768: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.28it/s]
epoch 137 | loss 0.8744628429412842, f_iou 0.7274828553199768: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.28it/s]
epoch 137 | loss 1.0257257223129272, f_iou 0.7293450832366943: 66%|███████████████████████▏ | 49/74 [00:44<00:19, 1.28it/s]
epoch 137 | loss 1.0257257223129272, f_iou 0.7293450832366943: 68%|███████████████████████▋ | 50/74 [00:44<00:18, 1.28it/s]
epoch 137 | loss 0.8523288369178772, f_iou 0.7313896417617798: 68%|███████████████████████▋ | 50/74 [00:45<00:18, 1.28it/s]
epoch 137 | loss 0.8523288369178772, f_iou 0.7313896417617798: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.30it/s]
epoch 137 | loss 1.0260679721832275, f_iou 0.7321062088012695: 69%|████████████████████████ | 51/74 [00:46<00:17, 1.30it/s]
epoch 137 | loss 1.0260679721832275, f_iou 0.7321062088012695: 70%|████████████████████████▌ | 52/74 [00:46<00:16, 1.32it/s]
epoch 137 | loss 0.4981701374053955, f_iou 0.7364023923873901: 70%|████████████████████████▌ | 52/74 [00:46<00:16, 1.32it/s]
epoch 137 | loss 0.4981701374053955, f_iou 0.7364023923873901: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.34it/s]
epoch 137 | loss 1.4481096267700195, f_iou 0.7376121878623962: 72%|█████████████████████████ | 53/74 [00:47<00:15, 1.34it/s]
epoch 137 | loss 1.4481096267700195, f_iou 0.7376121878623962: 73%|█████████████████████████▌ | 54/74 [00:47<00:14, 1.35it/s]
epoch 137 | loss 0.7057552933692932, f_iou 0.7393657565116882: 73%|█████████████████████████▌ | 54/74 [00:48<00:14, 1.35it/s]
epoch 137 | loss 0.7057552933692932, f_iou 0.7393657565116882: 74%|██████████████████████████ | 55/74 [00:48<00:13, 1.36it/s]
epoch 137 | loss 0.35056281089782715, f_iou 0.739496111869812: 74%|██████████████████████████ | 55/74 [00:49<00:13, 1.36it/s]
epoch 137 | loss 0.35056281089782715, f_iou 0.739496111869812: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.37it/s]
epoch 137 | loss 0.0, f_iou 0.744005560874939: 76%|██████████████████████████████████████▌ | 56/74 [00:49<00:13, 1.37it/s]
epoch 137 | loss 0.0, f_iou 0.744005560874939: 77%|███████████████████████████████████████▎ | 57/74 [00:49<00:12, 1.38it/s]
epoch 137 | loss 0.6701601147651672, f_iou 0.7470393180847168: 77%|██████████████████████████▉ | 57/74 [00:50<00:12, 1.38it/s]
epoch 137 | loss 0.6701601147651672, f_iou 0.7470393180847168: 78%|███████████████████████████▍ | 58/74 [00:50<00:11, 1.38it/s]
epoch 137 | loss 0.6274394392967224, f_iou 0.7506299018859863: 78%|███████████████████████████▍ | 58/74 [00:51<00:11, 1.38it/s]
epoch 137 | loss 0.6274394392967224, f_iou 0.7506299018859863: 80%|███████████████████████████▉ | 59/74 [00:51<00:10, 1.38it/s]
epoch 137 | loss 0.7629901170730591, f_iou 0.7480466365814209: 80%|███████████████████████████▉ | 59/74 [00:51<00:10, 1.38it/s]
epoch 137 | loss 0.7629901170730591, f_iou 0.7480466365814209: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.38it/s]
epoch 137 | loss 1.3579649925231934, f_iou 0.7466278076171875: 81%|████████████████████████████▍ | 60/74 [00:52<00:10, 1.38it/s]
epoch 137 | loss 1.3579649925231934, f_iou 0.7466278076171875: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.38it/s]
epoch 137 | loss 1.742354154586792, f_iou 0.7403069734573364: 82%|█████████████████████████████▋ | 61/74 [00:53<00:09, 1.38it/s]
epoch 137 | loss 1.742354154586792, f_iou 0.7403069734573364: 84%|██████████████████████████████▏ | 62/74 [00:53<00:08, 1.38it/s]
epoch 137 | loss 1.0857487916946411, f_iou 0.7299104928970337: 84%|█████████████████████████████▎ | 62/74 [00:54<00:08, 1.38it/s]
epoch 137 | loss 1.0857487916946411, f_iou 0.7299104928970337: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.35it/s]
epoch 137 | loss 0.70821613073349, f_iou 0.7333406209945679: 85%|███████████████████████████████▌ | 63/74 [00:54<00:08, 1.35it/s]
epoch 137 | loss 0.70821613073349, f_iou 0.7333406209945679: 86%|████████████████████████████████ | 64/74 [00:54<00:07, 1.33it/s]
epoch 137 | loss 2.1475400924682617, f_iou 0.7323970794677734: 86%|██████████████████████████████▎ | 64/74 [00:55<00:07, 1.33it/s]
epoch 137 | loss 2.1475400924682617, f_iou 0.7323970794677734: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.31it/s]
epoch 137 | loss 1.0882824659347534, f_iou 0.732666015625: 88%|██████████████████████████████████▎ | 65/74 [00:56<00:06, 1.31it/s]
epoch 137 | loss 1.0882824659347534, f_iou 0.732666015625: 89%|██████████████████████████████████▊ | 66/74 [00:56<00:06, 1.31it/s]
epoch 137 | loss 1.0449696779251099, f_iou 0.7302761673927307: 89%|███████████████████████████████▏ | 66/74 [00:57<00:06, 1.31it/s]
epoch 137 | loss 1.0449696779251099, f_iou 0.7302761673927307: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.30it/s]
epoch 137 | loss 1.2482134103775024, f_iou 0.7301298975944519: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.30it/s]
epoch 137 | loss 1.2482134103775024, f_iou 0.7301298975944519: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.32it/s]
epoch 137 | loss 0.5446138381958008, f_iou 0.7334267497062683: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.32it/s]
epoch 137 | loss 0.5446138381958008, f_iou 0.7334267497062683: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.34it/s]
epoch 137 | loss 2.105435848236084, f_iou 0.7303196787834167: 93%|█████████████████████████████████▌ | 69/74 [00:59<00:03, 1.34it/s]
epoch 137 | loss 2.105435848236084, f_iou 0.7303196787834167: 95%|██████████████████████████████████ | 70/74 [00:59<00:02, 1.35it/s]
epoch 137 | loss 1.0709946155548096, f_iou 0.7285861968994141: 95%|█████████████████████████████████ | 70/74 [01:00<00:02, 1.35it/s]
epoch 137 | loss 1.0709946155548096, f_iou 0.7285861968994141: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.36it/s]
epoch 137 | loss 0.8104449510574341, f_iou 0.7297642827033997: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.36it/s]
epoch 137 | loss 0.8104449510574341, f_iou 0.7297642827033997: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.37it/s]
epoch 137 | loss 0.1519307792186737, f_iou 0.732888400554657: 97%|███████████████████████████████████ | 72/74 [01:01<00:01, 1.37it/s]
epoch 137 | loss 0.1519307792186737, f_iou 0.732888400554657: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.37it/s]
epoch 137 | loss 0.5708016157150269, f_iou 0.7351751327514648: 99%|██████████████████████████████████▌| 73/74 [01:02<00:00, 1.37it/s]
epoch 137 | loss 0.5708016157150269, f_iou 0.7351751327514648: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.37it/s]
epoch 137 | loss 0.5708016157150269, f_iou 0.7351751327514648: 100%|███████████████████████████████████| 74/74 [01:02<00:00, 1.19it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 137 | valid.f_iou 0.7443400025367737, valid.f_f-score 0.84299: 0%| | 0/16 [00:05, ?it/s]
epoch 137 | valid.f_iou 0.7443400025367737, valid.f_f-score 0.84299: 6%|█▉ | 1/16 [00:05<01:23, 5.58s/it]
epoch 137 | valid.f_iou 0.7232900261878967, valid.f_f-score 0.87857: 6%|█▉ | 1/16 [00:06<01:23, 5.58s/it]
epoch 137 | valid.f_iou 0.7232900261878967, valid.f_f-score 0.87857: 12%|███▊ | 2/16 [00:06<00:36, 2.57s/it]
epoch 137 | valid.f_iou 0.5877299904823303, valid.f_f-score 0.78384: 12%|███▊ | 2/16 [00:06<00:36, 2.57s/it]
epoch 137 | valid.f_iou 0.5877299904823303, valid.f_f-score 0.78384: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 137 | valid.f_iou 0.6102200150489807, valid.f_f-score 0.76275: 19%|█████▋ | 3/16 [00:06<00:20, 1.60s/it]
epoch 137 | valid.f_iou 0.6102200150489807, valid.f_f-score 0.76275: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 137 | valid.f_iou 0.6245999932289124, valid.f_f-score 0.77215: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 137 | valid.f_iou 0.6245999932289124, valid.f_f-score 0.77215: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 137 | valid.f_iou 0.581570029258728, valid.f_f-score 0.73507: 31%|█████████▋ | 5/16 [00:07<00:09, 1.12it/s]
epoch 137 | valid.f_iou 0.581570029258728, valid.f_f-score 0.73507: 38%|███████████▋ | 6/16 [00:07<00:07, 1.35it/s]
epoch 137 | valid.f_iou 0.6045799851417542, valid.f_f-score 0.75856: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 137 | valid.f_iou 0.6045799851417542, valid.f_f-score 0.75856: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 137 | valid.f_iou 0.5768799781799316, valid.f_f-score 0.74466: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.58it/s]
epoch 137 | valid.f_iou 0.5768799781799316, valid.f_f-score 0.74466: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 137 | valid.f_iou 0.5946199893951416, valid.f_f-score 0.75279: 50%|███████████████ | 8/16 [00:09<00:04, 1.77it/s]
epoch 137 | valid.f_iou 0.5946199893951416, valid.f_f-score 0.75279: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 137 | valid.f_iou 0.5910800099372864, valid.f_f-score 0.75429: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 137 | valid.f_iou 0.5910800099372864, valid.f_f-score 0.75429: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.04it/s]
epoch 137 | valid.f_iou 0.590399980545044, valid.f_f-score 0.75074: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.04it/s]
epoch 137 | valid.f_iou 0.590399980545044, valid.f_f-score 0.75074: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.09it/s]
epoch 137 | valid.f_iou 0.6118500232696533, valid.f_f-score 0.76562: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.09it/s]
epoch 137 | valid.f_iou 0.6118500232696533, valid.f_f-score 0.76562: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.13it/s]
epoch 137 | valid.f_iou 0.6223000288009644, valid.f_f-score 0.77289: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.13it/s]
epoch 137 | valid.f_iou 0.6223000288009644, valid.f_f-score 0.77289: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.17it/s]
epoch 137 | valid.f_iou 0.616159975528717, valid.f_f-score 0.76832: 81%|████████████████████████▍ | 13/16 [00:11<00:01, 2.17it/s]
epoch 137 | valid.f_iou 0.616159975528717, valid.f_f-score 0.76832: 88%|██████████████████████████▎ | 14/16 [00:11<00:00, 2.32it/s]
epoch 137 | valid.f_iou 0.6201300024986267, valid.f_f-score 0.76761: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.32it/s]
epoch 137 | valid.f_iou 0.6201300024986267, valid.f_f-score 0.76761: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 137 | valid.f_iou 0.6231099963188171, valid.f_f-score 0.76415: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.43it/s]
epoch 137 | valid.f_iou 0.6231099963188171, valid.f_f-score 0.76415: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.51it/s]
epoch 137 | valid.f_iou 0.6231099963188171, valid.f_f-score 0.76415: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.34it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 137 | valid.f_iou 0.8046299815177917, valid.f_f-score 0.79991: 0%| | 0/16 [00:05, ?it/s]
epoch 137 | valid.f_iou 0.8046299815177917, valid.f_f-score 0.79991: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 137 | valid.f_iou 0.8350600004196167, valid.f_f-score 0.86671: 6%|█▉ | 1/16 [00:05<01:21, 5.43s/it]
epoch 137 | valid.f_iou 0.8350600004196167, valid.f_f-score 0.86671: 12%|███▊ | 2/16 [00:05<00:34, 2.50s/it]
epoch 137 | valid.f_iou 0.781719982624054, valid.f_f-score 0.85538: 12%|███▉ | 2/16 [00:06<00:34, 2.50s/it]
epoch 137 | valid.f_iou 0.781719982624054, valid.f_f-score 0.85538: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 137 | valid.f_iou 0.7727500200271606, valid.f_f-score 0.82498: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 137 | valid.f_iou 0.7727500200271606, valid.f_f-score 0.82498: 25%|███████▌ | 4/16 [00:06<00:13, 1.12s/it]
epoch 137 | valid.f_iou 0.7416599988937378, valid.f_f-score 0.81175: 25%|███████▌ | 4/16 [00:07<00:13, 1.12s/it]
epoch 137 | valid.f_iou 0.7416599988937378, valid.f_f-score 0.81175: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 137 | valid.f_iou 0.7239599823951721, valid.f_f-score 0.79799: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 137 | valid.f_iou 0.7239599823951721, valid.f_f-score 0.79799: 38%|███████████▎ | 6/16 [00:07<00:07, 1.42it/s]
epoch 137 | valid.f_iou 0.7349100112915039, valid.f_f-score 0.81478: 38%|███████████▎ | 6/16 [00:08<00:07, 1.42it/s]
epoch 137 | valid.f_iou 0.7349100112915039, valid.f_f-score 0.81478: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 137 | valid.f_iou 0.7241100072860718, valid.f_f-score 0.81452: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.62it/s]
epoch 137 | valid.f_iou 0.7241100072860718, valid.f_f-score 0.81452: 50%|███████████████ | 8/16 [00:08<00:04, 1.79it/s]
epoch 137 | valid.f_iou 0.726639986038208, valid.f_f-score 0.81698: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.79it/s]
epoch 137 | valid.f_iou 0.726639986038208, valid.f_f-score 0.81698: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.93it/s]
epoch 137 | valid.f_iou 0.7358499765396118, valid.f_f-score 0.82717: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.93it/s]
epoch 137 | valid.f_iou 0.7358499765396118, valid.f_f-score 0.82717: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.12it/s]
epoch 137 | valid.f_iou 0.7228500247001648, valid.f_f-score 0.80948: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.12it/s]
epoch 137 | valid.f_iou 0.7228500247001648, valid.f_f-score 0.80948: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 137 | valid.f_iou 0.7345600128173828, valid.f_f-score 0.81976: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.28it/s]
epoch 137 | valid.f_iou 0.7345600128173828, valid.f_f-score 0.81976: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.40it/s]
epoch 137 | valid.f_iou 0.7446900010108948, valid.f_f-score 0.82714: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.40it/s]
epoch 137 | valid.f_iou 0.7446900010108948, valid.f_f-score 0.82714: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 137 | valid.f_iou 0.7340400218963623, valid.f_f-score 0.81788: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.48it/s]
epoch 137 | valid.f_iou 0.7340400218963623, valid.f_f-score 0.81788: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 137 | valid.f_iou 0.7416099905967712, valid.f_f-score 0.82657: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 137 | valid.f_iou 0.7416099905967712, valid.f_f-score 0.82657: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 137 | valid.f_iou 0.7406700253486633, valid.f_f-score 0.82465: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 137 | valid.f_iou 0.7406700253486633, valid.f_f-score 0.82465: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 137 | valid.f_iou 0.7406700253486633, valid.f_f-score 0.82465: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.40it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 137 | valid.f_iou 0.7567700147628784, valid.f_f-score 0.7699: 0%| | 0/16 [00:05, ?it/s]
epoch 137 | valid.f_iou 0.7567700147628784, valid.f_f-score 0.7699: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 137 | valid.f_iou 0.8111299872398376, valid.f_f-score 0.8517: 6%|█▉ | 1/16 [00:05<01:21, 5.40s/it]
epoch 137 | valid.f_iou 0.8111299872398376, valid.f_f-score 0.8517: 12%|███▉ | 2/16 [00:05<00:35, 2.50s/it]
epoch 137 | valid.f_iou 0.7657600045204163, valid.f_f-score 0.84538: 12%|███▊ | 2/16 [00:06<00:35, 2.50s/it]
epoch 137 | valid.f_iou 0.7657600045204163, valid.f_f-score 0.84538: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 137 | valid.f_iou 0.7560499906539917, valid.f_f-score 0.80859: 19%|█████▋ | 3/16 [00:06<00:20, 1.58s/it]
epoch 137 | valid.f_iou 0.7560499906539917, valid.f_f-score 0.80859: 25%|███████▌ | 4/16 [00:06<00:13, 1.14s/it]
epoch 137 | valid.f_iou 0.7365099787712097, valid.f_f-score 0.79864: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 137 | valid.f_iou 0.7365099787712097, valid.f_f-score 0.79864: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 137 | valid.f_iou 0.7196699976921082, valid.f_f-score 0.78706: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 137 | valid.f_iou 0.7196699976921082, valid.f_f-score 0.78706: 38%|███████████▎ | 6/16 [00:07<00:07, 1.35it/s]
epoch 137 | valid.f_iou 0.7329999804496765, valid.f_f-score 0.80542: 38%|███████████▎ | 6/16 [00:08<00:07, 1.35it/s]
epoch 137 | valid.f_iou 0.7329999804496765, valid.f_f-score 0.80542: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 137 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.80632: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 137 | valid.f_iou 0.7224500179290771, valid.f_f-score 0.80632: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 137 | valid.f_iou 0.7287999987602234, valid.f_f-score 0.80969: 50%|███████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 137 | valid.f_iou 0.7287999987602234, valid.f_f-score 0.80969: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 137 | valid.f_iou 0.7346000075340271, valid.f_f-score 0.81708: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.91it/s]
epoch 137 | valid.f_iou 0.7346000075340271, valid.f_f-score 0.81708: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.10it/s]
epoch 137 | valid.f_iou 0.7217199802398682, valid.f_f-score 0.8003: 62%|██████████████████▊ | 10/16 [00:09<00:02, 2.10it/s]
epoch 137 | valid.f_iou 0.7217199802398682, valid.f_f-score 0.8003: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.26it/s]
epoch 137 | valid.f_iou 0.733519971370697, valid.f_f-score 0.81135: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.26it/s]
epoch 137 | valid.f_iou 0.733519971370697, valid.f_f-score 0.81135: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.38it/s]
epoch 137 | valid.f_iou 0.7436599731445312, valid.f_f-score 0.82018: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.38it/s]
epoch 137 | valid.f_iou 0.7436599731445312, valid.f_f-score 0.82018: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 137 | valid.f_iou 0.7330899834632874, valid.f_f-score 0.81143: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.47it/s]
epoch 137 | valid.f_iou 0.7330899834632874, valid.f_f-score 0.81143: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.55it/s]
epoch 137 | valid.f_iou 0.7407199740409851, valid.f_f-score 0.82055: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.55it/s]
epoch 137 | valid.f_iou 0.7407199740409851, valid.f_f-score 0.82055: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 137 | valid.f_iou 0.7403200268745422, valid.f_f-score 0.81901: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 137 | valid.f_iou 0.7403200268745422, valid.f_f-score 0.81901: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.64it/s]
epoch 137 | valid.f_iou 0.7403200268745422, valid.f_f-score 0.81901: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.38it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 138 | loss 0.7866653203964233, f_iou 0.8611424565315247: 0%| | 0/74 [00:05, ?it/s]
epoch 138 | loss 0.7866653203964233, f_iou 0.8611424565315247: 1%|▍ | 1/74 [00:05<06:39, 5.47s/it]
epoch 138 | loss 0.7394341230392456, f_iou 0.8877330422401428: 1%|▍ | 1/74 [00:06<06:39, 5.47s/it]
epoch 138 | loss 0.7394341230392456, f_iou 0.8877330422401428: 3%|▉ | 2/74 [00:06<03:16, 2.73s/it]
epoch 138 | loss 0.0, f_iou 0.8664901256561279: 3%|█▍ | 2/74 [00:07<03:16, 2.73s/it]
epoch 138 | loss 0.0, f_iou 0.8664901256561279: 4%|██ | 3/74 [00:07<02:12, 1.87s/it]
epoch 138 | loss 0.5561528205871582, f_iou 0.8389612436294556: 4%|█▍ | 3/74 [00:08<02:12, 1.87s/it]
epoch 138 | loss 0.5561528205871582, f_iou 0.8389612436294556: 5%|█▉ | 4/74 [00:08<01:43, 1.48s/it]
epoch 138 | loss 0.9439219832420349, f_iou 0.8484839797019958: 5%|█▉ | 4/74 [00:08<01:43, 1.48s/it]
epoch 138 | loss 0.9439219832420349, f_iou 0.8484839797019958: 7%|██▍ | 5/74 [00:08<01:26, 1.25s/it]
epoch 138 | loss 2.153898000717163, f_iou 0.7886931896209717: 7%|██▌ | 5/74 [00:09<01:26, 1.25s/it]
epoch 138 | loss 2.153898000717163, f_iou 0.7886931896209717: 8%|███ | 6/74 [00:09<01:14, 1.09s/it]
epoch 138 | loss 1.011305570602417, f_iou 0.7811926007270813: 8%|███ | 6/74 [00:10<01:14, 1.09s/it]
epoch 138 | loss 1.011305570602417, f_iou 0.7811926007270813: 9%|███▌ | 7/74 [00:10<01:06, 1.01it/s]
epoch 138 | loss 0.8534175753593445, f_iou 0.7713828086853027: 9%|███▍ | 7/74 [00:11<01:06, 1.01it/s]
epoch 138 | loss 0.8534175753593445, f_iou 0.7713828086853027: 11%|███▉ | 8/74 [00:11<01:00, 1.08it/s]
epoch 138 | loss 1.1957842111587524, f_iou 0.7520939707756042: 11%|███▉ | 8/74 [00:11<01:00, 1.08it/s]
epoch 138 | loss 1.1957842111587524, f_iou 0.7520939707756042: 12%|████▍ | 9/74 [00:11<00:56, 1.14it/s]
epoch 138 | loss 1.1359999179840088, f_iou 0.7533894181251526: 12%|████▍ | 9/74 [00:12<00:56, 1.14it/s]
epoch 138 | loss 1.1359999179840088, f_iou 0.7533894181251526: 14%|████▋ | 10/74 [00:12<00:54, 1.18it/s]
epoch 138 | loss 1.8583192825317383, f_iou 0.7218014597892761: 14%|████▋ | 10/74 [00:13<00:54, 1.18it/s]
epoch 138 | loss 1.8583192825317383, f_iou 0.7218014597892761: 15%|█████▏ | 11/74 [00:13<00:52, 1.20it/s]
epoch 138 | loss 0.6480589509010315, f_iou 0.7343118190765381: 15%|█████▏ | 11/74 [00:14<00:52, 1.20it/s]
epoch 138 | loss 0.6480589509010315, f_iou 0.7343118190765381: 16%|█████▋ | 12/74 [00:14<00:50, 1.24it/s]
epoch 138 | loss 1.3169889450073242, f_iou 0.7390981316566467: 16%|█████▋ | 12/74 [00:15<00:50, 1.24it/s]
epoch 138 | loss 1.3169889450073242, f_iou 0.7390981316566467: 18%|██████▏ | 13/74 [00:15<00:48, 1.25it/s]
epoch 138 | loss 0.0, f_iou 0.7575989961624146: 18%|████████▊ | 13/74 [00:15<00:48, 1.25it/s]
epoch 138 | loss 0.0, f_iou 0.7575989961624146: 19%|█████████▍ | 14/74 [00:15<00:47, 1.27it/s]
epoch 138 | loss 0.39180734753608704, f_iou 0.769523024559021: 19%|██████▌ | 14/74 [00:16<00:47, 1.27it/s]
epoch 138 | loss 0.39180734753608704, f_iou 0.769523024559021: 20%|███████ | 15/74 [00:16<00:46, 1.27it/s]
epoch 138 | loss 0.3572426438331604, f_iou 0.7796472907066345: 20%|███████ | 15/74 [00:17<00:46, 1.27it/s]
epoch 138 | loss 0.3572426438331604, f_iou 0.7796472907066345: 22%|███████▌ | 16/74 [00:17<00:45, 1.28it/s]
epoch 138 | loss 1.5222883224487305, f_iou 0.7804794311523438: 22%|███████▌ | 16/74 [00:18<00:45, 1.28it/s]
epoch 138 | loss 1.5222883224487305, f_iou 0.7804794311523438: 23%|████████ | 17/74 [00:18<00:44, 1.27it/s]
epoch 138 | loss 0.8809847235679626, f_iou 0.7880957722663879: 23%|████████ | 17/74 [00:18<00:44, 1.27it/s]
epoch 138 | loss 0.8809847235679626, f_iou 0.7880957722663879: 24%|████████▌ | 18/74 [00:18<00:44, 1.27it/s]
epoch 138 | loss 0.6910668015480042, f_iou 0.7905837297439575: 24%|████████▌ | 18/74 [00:19<00:44, 1.27it/s]
epoch 138 | loss 0.6910668015480042, f_iou 0.7905837297439575: 26%|████████▉ | 19/74 [00:19<00:43, 1.27it/s]
epoch 138 | loss 0.5678253173828125, f_iou 0.79873126745224: 26%|█████████▌ | 19/74 [00:20<00:43, 1.27it/s]
epoch 138 | loss 0.5678253173828125, f_iou 0.79873126745224: 27%|██████████ | 20/74 [00:20<00:42, 1.28it/s]
epoch 138 | loss 0.8932980298995972, f_iou 0.8013944029808044: 27%|█████████▍ | 20/74 [00:21<00:42, 1.28it/s]
epoch 138 | loss 0.8932980298995972, f_iou 0.8013944029808044: 28%|█████████▉ | 21/74 [00:21<00:40, 1.30it/s]
epoch 138 | loss 0.6157441139221191, f_iou 0.8070643544197083: 28%|█████████▉ | 21/74 [00:22<00:40, 1.30it/s]
epoch 138 | loss 0.6157441139221191, f_iou 0.8070643544197083: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 138 | loss 1.0167169570922852, f_iou 0.8081923127174377: 30%|██████████▍ | 22/74 [00:22<00:39, 1.31it/s]
epoch 138 | loss 1.0167169570922852, f_iou 0.8081923127174377: 31%|██████████▉ | 23/74 [00:22<00:38, 1.33it/s]
epoch 138 | loss 0.5465887784957886, f_iou 0.8133758306503296: 31%|██████████▉ | 23/74 [00:23<00:38, 1.33it/s]
epoch 138 | loss 0.5465887784957886, f_iou 0.8133758306503296: 32%|███████████▎ | 24/74 [00:23<00:37, 1.35it/s]
epoch 138 | loss 0.6505693793296814, f_iou 0.8168330192565918: 32%|███████████▎ | 24/74 [00:24<00:37, 1.35it/s]
epoch 138 | loss 0.6505693793296814, f_iou 0.8168330192565918: 34%|███████████▊ | 25/74 [00:24<00:36, 1.35it/s]
epoch 138 | loss 0.6404973864555359, f_iou 0.8206503391265869: 34%|███████████▊ | 25/74 [00:24<00:36, 1.35it/s]
epoch 138 | loss 0.6404973864555359, f_iou 0.8206503391265869: 35%|████████████▎ | 26/74 [00:24<00:35, 1.35it/s]
epoch 138 | loss 0.5172998309135437, f_iou 0.8193716406822205: 35%|████████████▎ | 26/74 [00:25<00:35, 1.35it/s]
epoch 138 | loss 0.5172998309135437, f_iou 0.8193716406822205: 36%|████████████▊ | 27/74 [00:25<00:34, 1.36it/s]
epoch 138 | loss 0.30108755826950073, f_iou 0.8251193761825562: 36%|████████████▍ | 27/74 [00:26<00:34, 1.36it/s]
epoch 138 | loss 0.30108755826950073, f_iou 0.8251193761825562: 38%|████████████▊ | 28/74 [00:26<00:33, 1.36it/s]
epoch 138 | loss 0.6128247976303101, f_iou 0.803321361541748: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.36it/s]
epoch 138 | loss 0.6128247976303101, f_iou 0.803321361541748: 39%|██████████████ | 29/74 [00:27<00:33, 1.35it/s]
epoch 138 | loss 0.5630400776863098, f_iou 0.8074454665184021: 39%|█████████████▋ | 29/74 [00:27<00:33, 1.35it/s]
epoch 138 | loss 0.5630400776863098, f_iou 0.8074454665184021: 41%|██████████████▏ | 30/74 [00:27<00:33, 1.33it/s]
epoch 138 | loss 1.4094065427780151, f_iou 0.8026356101036072: 41%|██████████████▏ | 30/74 [00:28<00:33, 1.33it/s]
epoch 138 | loss 1.4094065427780151, f_iou 0.8026356101036072: 42%|██████████████▋ | 31/74 [00:28<00:32, 1.34it/s]
epoch 138 | loss 0.5369505286216736, f_iou 0.8050591349601746: 42%|██████████████▋ | 31/74 [00:29<00:32, 1.34it/s]
epoch 138 | loss 0.5369505286216736, f_iou 0.8050591349601746: 43%|███████████████▏ | 32/74 [00:29<00:31, 1.32it/s]
epoch 138 | loss 0.5767959952354431, f_iou 0.8091946244239807: 43%|███████████████▏ | 32/74 [00:30<00:31, 1.32it/s]
epoch 138 | loss 0.5767959952354431, f_iou 0.8091946244239807: 45%|███████████████▌ | 33/74 [00:30<00:31, 1.30it/s]
epoch 138 | loss 0.9000253677368164, f_iou 0.8126303553581238: 45%|███████████████▌ | 33/74 [00:31<00:31, 1.30it/s]
epoch 138 | loss 0.9000253677368164, f_iou 0.8126303553581238: 46%|████████████████ | 34/74 [00:31<00:30, 1.31it/s]
epoch 138 | loss 1.2481399774551392, f_iou 0.8143239617347717: 46%|████████████████ | 34/74 [00:31<00:30, 1.31it/s]
epoch 138 | loss 1.2481399774551392, f_iou 0.8143239617347717: 47%|████████████████▌ | 35/74 [00:31<00:29, 1.32it/s]
epoch 138 | loss 2.0415267944335938, f_iou 0.8056191205978394: 47%|████████████████▌ | 35/74 [00:32<00:29, 1.32it/s]
epoch 138 | loss 2.0415267944335938, f_iou 0.8056191205978394: 49%|█████████████████ | 36/74 [00:32<00:28, 1.33it/s]
epoch 138 | loss 1.6450673341751099, f_iou 0.8048465251922607: 49%|█████████████████ | 36/74 [00:33<00:28, 1.33it/s]
epoch 138 | loss 1.6450673341751099, f_iou 0.8048465251922607: 50%|█████████████████▌ | 37/74 [00:33<00:28, 1.32it/s]
epoch 138 | loss 1.1868207454681396, f_iou 0.802839994430542: 50%|██████████████████ | 37/74 [00:34<00:28, 1.32it/s]
epoch 138 | loss 1.1868207454681396, f_iou 0.802839994430542: 51%|██████████████████▍ | 38/74 [00:34<00:27, 1.31it/s]
epoch 138 | loss 0.8095081448554993, f_iou 0.7926313281059265: 51%|█████████████████▉ | 38/74 [00:34<00:27, 1.31it/s]
epoch 138 | loss 0.8095081448554993, f_iou 0.7926313281059265: 53%|██████████████████▍ | 39/74 [00:34<00:26, 1.31it/s]
epoch 138 | loss 0.66733717918396, f_iou 0.7921673655509949: 53%|███████████████████▍ | 39/74 [00:35<00:26, 1.31it/s]
epoch 138 | loss 0.66733717918396, f_iou 0.7921673655509949: 54%|████████████████████ | 40/74 [00:35<00:26, 1.30it/s]
epoch 138 | loss 0.5531714558601379, f_iou 0.7962203025817871: 54%|██████████████████▉ | 40/74 [00:36<00:26, 1.30it/s]
epoch 138 | loss 0.5531714558601379, f_iou 0.7962203025817871: 55%|███████████████████▍ | 41/74 [00:36<00:25, 1.30it/s]
epoch 138 | loss 2.1569790840148926, f_iou 0.7863285541534424: 55%|███████████████████▍ | 41/74 [00:37<00:25, 1.30it/s]
epoch 138 | loss 2.1569790840148926, f_iou 0.7863285541534424: 57%|███████████████████▊ | 42/74 [00:37<00:24, 1.30it/s]
epoch 138 | loss 1.560964822769165, f_iou 0.7856032848358154: 57%|████████████████████▍ | 42/74 [00:37<00:24, 1.30it/s]
epoch 138 | loss 1.560964822769165, f_iou 0.7856032848358154: 58%|████████████████████▉ | 43/74 [00:37<00:24, 1.29it/s]
epoch 138 | loss 0.8867318034172058, f_iou 0.7844167351722717: 58%|████████████████████▎ | 43/74 [00:38<00:24, 1.29it/s]
epoch 138 | loss 0.8867318034172058, f_iou 0.7844167351722717: 59%|████████████████████▊ | 44/74 [00:38<00:23, 1.30it/s]
epoch 138 | loss 0.31059032678604126, f_iou 0.7886372804641724: 59%|████████████████████▏ | 44/74 [00:39<00:23, 1.30it/s]
epoch 138 | loss 0.31059032678604126, f_iou 0.7886372804641724: 61%|████████████████████▋ | 45/74 [00:39<00:21, 1.32it/s]
epoch 138 | loss 1.1238462924957275, f_iou 0.7907000184059143: 61%|█████████████████████▎ | 45/74 [00:40<00:21, 1.32it/s]
epoch 138 | loss 1.1238462924957275, f_iou 0.7907000184059143: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.34it/s]
epoch 138 | loss 0.9911287426948547, f_iou 0.7812002897262573: 62%|█████████████████████▊ | 46/74 [00:40<00:20, 1.34it/s]
epoch 138 | loss 0.9911287426948547, f_iou 0.7812002897262573: 64%|██████████████████████▏ | 47/74 [00:40<00:19, 1.35it/s]
epoch 138 | loss 0.4570123553276062, f_iou 0.7801141142845154: 64%|██████████████████████▏ | 47/74 [00:41<00:19, 1.35it/s]
epoch 138 | loss 0.4570123553276062, f_iou 0.7801141142845154: 65%|██████████████████████▋ | 48/74 [00:41<00:19, 1.36it/s]
epoch 138 | loss 0.9363135695457458, f_iou 0.7786815166473389: 65%|██████████████████████▋ | 48/74 [00:42<00:19, 1.36it/s]
epoch 138 | loss 0.9363135695457458, f_iou 0.7786815166473389: 66%|███████████████████████▏ | 49/74 [00:42<00:18, 1.37it/s]
epoch 138 | loss 2.234592914581299, f_iou 0.7767448425292969: 66%|███████████████████████▊ | 49/74 [00:43<00:18, 1.37it/s]
epoch 138 | loss 2.234592914581299, f_iou 0.7767448425292969: 68%|████████████████████████▎ | 50/74 [00:43<00:17, 1.37it/s]
epoch 138 | loss 0.8169971704483032, f_iou 0.7790855169296265: 68%|███████████████████████▋ | 50/74 [00:43<00:17, 1.37it/s]
epoch 138 | loss 0.8169971704483032, f_iou 0.7790855169296265: 69%|████████████████████████ | 51/74 [00:43<00:17, 1.35it/s]
epoch 138 | loss 0.31374862790107727, f_iou 0.7788933515548706: 69%|███████████████████████▍ | 51/74 [00:44<00:17, 1.35it/s]
epoch 138 | loss 0.31374862790107727, f_iou 0.7788933515548706: 70%|███████████████████████▉ | 52/74 [00:44<00:16, 1.33it/s]
epoch 138 | loss 0.5553597211837769, f_iou 0.781460165977478: 70%|█████████████████████████▎ | 52/74 [00:45<00:16, 1.33it/s]
epoch 138 | loss 0.5553597211837769, f_iou 0.781460165977478: 72%|█████████████████████████▊ | 53/74 [00:45<00:15, 1.35it/s]
epoch 138 | loss 0.7176448106765747, f_iou 0.7834534645080566: 72%|█████████████████████████ | 53/74 [00:46<00:15, 1.35it/s]
epoch 138 | loss 0.7176448106765747, f_iou 0.7834534645080566: 73%|█████████████████████████▌ | 54/74 [00:46<00:14, 1.35it/s]
epoch 138 | loss 1.151511311531067, f_iou 0.7828348875045776: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.35it/s]
epoch 138 | loss 1.151511311531067, f_iou 0.7828348875045776: 74%|██████████████████████████▊ | 55/74 [00:46<00:14, 1.34it/s]
epoch 138 | loss 1.8391879796981812, f_iou 0.7775477170944214: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.34it/s]
epoch 138 | loss 1.8391879796981812, f_iou 0.7775477170944214: 76%|██████████████████████████▍ | 56/74 [00:47<00:13, 1.36it/s]
epoch 138 | loss 1.37498939037323, f_iou 0.7755306959152222: 76%|████████████████████████████ | 56/74 [00:48<00:13, 1.36it/s]
epoch 138 | loss 1.37498939037323, f_iou 0.7755306959152222: 77%|████████████████████████████▌ | 57/74 [00:48<00:12, 1.35it/s]
epoch 138 | loss 1.4843435287475586, f_iou 0.772512674331665: 77%|███████████████████████████▋ | 57/74 [00:48<00:12, 1.35it/s]
epoch 138 | loss 1.4843435287475586, f_iou 0.772512674331665: 78%|████████████████████████████▏ | 58/74 [00:48<00:11, 1.35it/s]
epoch 138 | loss 0.9490298628807068, f_iou 0.7752866744995117: 78%|███████████████████████████▍ | 58/74 [00:49<00:11, 1.35it/s]
epoch 138 | loss 0.9490298628807068, f_iou 0.7752866744995117: 80%|███████████████████████████▉ | 59/74 [00:49<00:11, 1.34it/s]
epoch 138 | loss 1.2953792810440063, f_iou 0.7715074419975281: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.34it/s]
epoch 138 | loss 1.2953792810440063, f_iou 0.7715074419975281: 81%|████████████████████████████▍ | 60/74 [00:50<00:10, 1.32it/s]
epoch 138 | loss 1.4719585180282593, f_iou 0.7693797945976257: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.32it/s]
epoch 138 | loss 1.4719585180282593, f_iou 0.7693797945976257: 82%|████████████████████████████▊ | 61/74 [00:51<00:09, 1.30it/s]
epoch 138 | loss 1.2704061269760132, f_iou 0.7685121893882751: 82%|████████████████████████████▊ | 61/74 [00:52<00:09, 1.30it/s]
epoch 138 | loss 1.2704061269760132, f_iou 0.7685121893882751: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.29it/s]
epoch 138 | loss 0.946977972984314, f_iou 0.770696759223938: 84%|███████████████████████████████ | 62/74 [00:52<00:09, 1.29it/s]
epoch 138 | loss 0.946977972984314, f_iou 0.770696759223938: 85%|███████████████████████████████▌ | 63/74 [00:52<00:08, 1.28it/s]
epoch 138 | loss 0.9064632654190063, f_iou 0.7703917622566223: 85%|█████████████████████████████▊ | 63/74 [00:53<00:08, 1.28it/s]
epoch 138 | loss 0.9064632654190063, f_iou 0.7703917622566223: 86%|██████████████████████████████▎ | 64/74 [00:53<00:07, 1.28it/s]
epoch 138 | loss 0.7036241292953491, f_iou 0.767932653427124: 86%|███████████████████████████████▏ | 64/74 [00:54<00:07, 1.28it/s]
epoch 138 | loss 0.7036241292953491, f_iou 0.767932653427124: 88%|███████████████████████████████▌ | 65/74 [00:54<00:07, 1.25it/s]
epoch 138 | loss 0.8888206481933594, f_iou 0.7697371244430542: 88%|██████████████████████████████▋ | 65/74 [00:55<00:07, 1.25it/s]
epoch 138 | loss 0.8888206481933594, f_iou 0.7697371244430542: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.25it/s]
epoch 138 | loss 0.7743945717811584, f_iou 0.7712981104850769: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.25it/s]
epoch 138 | loss 0.7743945717811584, f_iou 0.7712981104850769: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.25it/s]
epoch 138 | loss 0.3191321790218353, f_iou 0.7738749384880066: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.25it/s]
epoch 138 | loss 0.3191321790218353, f_iou 0.7738749384880066: 92%|████████████████████████████████▏ | 68/74 [00:56<00:04, 1.25it/s]
epoch 138 | loss 0.5134402513504028, f_iou 0.7753444910049438: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.25it/s]
epoch 138 | loss 0.5134402513504028, f_iou 0.7753444910049438: 93%|████████████████████████████████▋ | 69/74 [00:57<00:04, 1.25it/s]
epoch 138 | loss 0.4278038740158081, f_iou 0.7766351103782654: 93%|████████████████████████████████▋ | 69/74 [00:58<00:04, 1.25it/s]
epoch 138 | loss 0.4278038740158081, f_iou 0.7766351103782654: 95%|█████████████████████████████████ | 70/74 [00:58<00:03, 1.25it/s]
epoch 138 | loss 0.7465183734893799, f_iou 0.778427243232727: 95%|██████████████████████████████████ | 70/74 [00:59<00:03, 1.25it/s]
epoch 138 | loss 0.7465183734893799, f_iou 0.778427243232727: 96%|██████████████████████████████████▌ | 71/74 [00:59<00:02, 1.25it/s]
epoch 138 | loss 1.076613426208496, f_iou 0.779436469078064: 96%|███████████████████████████████████▌ | 71/74 [01:00<00:02, 1.25it/s]
epoch 138 | loss 1.076613426208496, f_iou 0.779436469078064: 97%|████████████████████████████████████ | 72/74 [01:00<00:01, 1.26it/s]
epoch 138 | loss 0.3452059030532837, f_iou 0.7819138169288635: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.26it/s]
epoch 138 | loss 0.3452059030532837, f_iou 0.7819138169288635: 99%|██████████████████████████████████▌| 73/74 [01:00<00:00, 1.26it/s]
epoch 138 | loss 0.835463285446167, f_iou 0.7731204628944397: 99%|███████████████████████████████████▌| 73/74 [01:01<00:00, 1.26it/s]
epoch 138 | loss 0.835463285446167, f_iou 0.7731204628944397: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.26it/s]
epoch 138 | loss 0.835463285446167, f_iou 0.7731204628944397: 100%|████████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 138 | valid.f_iou 0.7438799738883972, valid.f_f-score 0.83881: 0%| | 0/16 [00:05, ?it/s]
epoch 138 | valid.f_iou 0.7438799738883972, valid.f_f-score 0.83881: 6%|█▉ | 1/16 [00:05<01:29, 5.97s/it]
epoch 138 | valid.f_iou 0.7195000052452087, valid.f_f-score 0.87544: 6%|█▉ | 1/16 [00:06<01:29, 5.97s/it]
epoch 138 | valid.f_iou 0.7195000052452087, valid.f_f-score 0.87544: 12%|███▊ | 2/16 [00:06<00:38, 2.74s/it]
epoch 138 | valid.f_iou 0.5848900079727173, valid.f_f-score 0.78151: 12%|███▊ | 2/16 [00:06<00:38, 2.74s/it]
epoch 138 | valid.f_iou 0.5848900079727173, valid.f_f-score 0.78151: 19%|█████▋ | 3/16 [00:06<00:22, 1.69s/it]
epoch 138 | valid.f_iou 0.6078600287437439, valid.f_f-score 0.76164: 19%|█████▋ | 3/16 [00:07<00:22, 1.69s/it]
epoch 138 | valid.f_iou 0.6078600287437439, valid.f_f-score 0.76164: 25%|███████▌ | 4/16 [00:07<00:14, 1.20s/it]
epoch 138 | valid.f_iou 0.6210100054740906, valid.f_f-score 0.76979: 25%|███████▌ | 4/16 [00:07<00:14, 1.20s/it]
epoch 138 | valid.f_iou 0.6210100054740906, valid.f_f-score 0.76979: 31%|█████████▍ | 5/16 [00:07<00:10, 1.08it/s]
epoch 138 | valid.f_iou 0.5785499811172485, valid.f_f-score 0.73318: 31%|█████████▍ | 5/16 [00:08<00:10, 1.08it/s]
epoch 138 | valid.f_iou 0.5785499811172485, valid.f_f-score 0.73318: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 138 | valid.f_iou 0.6029300093650818, valid.f_f-score 0.75806: 38%|███████████▎ | 6/16 [00:08<00:07, 1.31it/s]
epoch 138 | valid.f_iou 0.6029300093650818, valid.f_f-score 0.75806: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 138 | valid.f_iou 0.5758399963378906, valid.f_f-score 0.74491: 44%|█████████████▏ | 7/16 [00:09<00:05, 1.57it/s]
epoch 138 | valid.f_iou 0.5758399963378906, valid.f_f-score 0.74491: 50%|███████████████ | 8/16 [00:09<00:04, 1.74it/s]
epoch 138 | valid.f_iou 0.5940499901771545, valid.f_f-score 0.75288: 50%|███████████████ | 8/16 [00:09<00:04, 1.74it/s]
epoch 138 | valid.f_iou 0.5940499901771545, valid.f_f-score 0.75288: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 138 | valid.f_iou 0.5915799736976624, valid.f_f-score 0.75466: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.97it/s]
epoch 138 | valid.f_iou 0.5915799736976624, valid.f_f-score 0.75466: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 138 | valid.f_iou 0.5908399820327759, valid.f_f-score 0.75107: 62%|██████████████████▏ | 10/16 [00:10<00:02, 2.05it/s]
epoch 138 | valid.f_iou 0.5908399820327759, valid.f_f-score 0.75107: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.12it/s]
epoch 138 | valid.f_iou 0.6121900081634521, valid.f_f-score 0.76593: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.12it/s]
epoch 138 | valid.f_iou 0.6121900081634521, valid.f_f-score 0.76593: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.26it/s]
epoch 138 | valid.f_iou 0.6222299933433533, valid.f_f-score 0.77297: 75%|█████████████████████▊ | 12/16 [00:11<00:01, 2.26it/s]
epoch 138 | valid.f_iou 0.6222299933433533, valid.f_f-score 0.77297: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.38it/s]
epoch 138 | valid.f_iou 0.6160100102424622, valid.f_f-score 0.76819: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.38it/s]
epoch 138 | valid.f_iou 0.6160100102424622, valid.f_f-score 0.76819: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 138 | valid.f_iou 0.6197699904441833, valid.f_f-score 0.76734: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.46it/s]
epoch 138 | valid.f_iou 0.6197699904441833, valid.f_f-score 0.76734: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.54it/s]
epoch 138 | valid.f_iou 0.6228200197219849, valid.f_f-score 0.76419: 94%|███████████████████████████▏ | 15/16 [00:12<00:00, 2.54it/s]
epoch 138 | valid.f_iou 0.6228200197219849, valid.f_f-score 0.76419: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.57it/s]
epoch 138 | valid.f_iou 0.6228200197219849, valid.f_f-score 0.76419: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.32it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 138 | valid.f_iou 0.8046299815177917, valid.f_f-score 0.79789: 0%| | 0/16 [00:05, ?it/s]
epoch 138 | valid.f_iou 0.8046299815177917, valid.f_f-score 0.79789: 6%|█▉ | 1/16 [00:05<01:23, 5.54s/it]
epoch 138 | valid.f_iou 0.8387699723243713, valid.f_f-score 0.86815: 6%|█▉ | 1/16 [00:06<01:23, 5.54s/it]
epoch 138 | valid.f_iou 0.8387699723243713, valid.f_f-score 0.86815: 12%|███▊ | 2/16 [00:06<00:35, 2.57s/it]
epoch 138 | valid.f_iou 0.7845399975776672, valid.f_f-score 0.85637: 12%|███▊ | 2/16 [00:06<00:35, 2.57s/it]
epoch 138 | valid.f_iou 0.7845399975776672, valid.f_f-score 0.85637: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 138 | valid.f_iou 0.7748600244522095, valid.f_f-score 0.82562: 19%|█████▋ | 3/16 [00:06<00:20, 1.61s/it]
epoch 138 | valid.f_iou 0.7748600244522095, valid.f_f-score 0.82562: 25%|███████▌ | 4/16 [00:06<00:13, 1.15s/it]
epoch 138 | valid.f_iou 0.7491999864578247, valid.f_f-score 0.82228: 25%|███████▌ | 4/16 [00:07<00:13, 1.15s/it]
epoch 138 | valid.f_iou 0.7491999864578247, valid.f_f-score 0.82228: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 138 | valid.f_iou 0.7309100031852722, valid.f_f-score 0.80688: 31%|█████████▍ | 5/16 [00:07<00:09, 1.12it/s]
epoch 138 | valid.f_iou 0.7309100031852722, valid.f_f-score 0.80688: 38%|███████████▎ | 6/16 [00:07<00:07, 1.34it/s]
epoch 138 | valid.f_iou 0.7410500049591064, valid.f_f-score 0.82246: 38%|███████████▎ | 6/16 [00:08<00:07, 1.34it/s]
epoch 138 | valid.f_iou 0.7410500049591064, valid.f_f-score 0.82246: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 138 | valid.f_iou 0.7295699715614319, valid.f_f-score 0.82141: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.55it/s]
epoch 138 | valid.f_iou 0.7295699715614319, valid.f_f-score 0.82141: 50%|███████████████ | 8/16 [00:08<00:04, 1.70it/s]
epoch 138 | valid.f_iou 0.7328500151634216, valid.f_f-score 0.82286: 50%|███████████████ | 8/16 [00:09<00:04, 1.70it/s]
epoch 138 | valid.f_iou 0.7328500151634216, valid.f_f-score 0.82286: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.85it/s]
epoch 138 | valid.f_iou 0.7411500215530396, valid.f_f-score 0.83264: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.85it/s]
epoch 138 | valid.f_iou 0.7411500215530396, valid.f_f-score 0.83264: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.94it/s]
epoch 138 | valid.f_iou 0.7278800010681152, valid.f_f-score 0.81471: 62%|██████████████████▏ | 10/16 [00:10<00:03, 1.94it/s]
epoch 138 | valid.f_iou 0.7278800010681152, valid.f_f-score 0.81471: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.02it/s]
epoch 138 | valid.f_iou 0.739109992980957, valid.f_f-score 0.82455: 69%|████████████████████▋ | 11/16 [00:10<00:02, 2.02it/s]
epoch 138 | valid.f_iou 0.739109992980957, valid.f_f-score 0.82455: 75%|██████████████████████▌ | 12/16 [00:10<00:01, 2.07it/s]
epoch 138 | valid.f_iou 0.7493900060653687, valid.f_f-score 0.83182: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.07it/s]
epoch 138 | valid.f_iou 0.7493900060653687, valid.f_f-score 0.83182: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.24it/s]
epoch 138 | valid.f_iou 0.7359600067138672, valid.f_f-score 0.81965: 81%|███████████████████████▌ | 13/16 [00:11<00:01, 2.24it/s]
epoch 138 | valid.f_iou 0.7359600067138672, valid.f_f-score 0.81965: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.37it/s]
epoch 138 | valid.f_iou 0.7431300282478333, valid.f_f-score 0.82807: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.37it/s]
epoch 138 | valid.f_iou 0.7431300282478333, valid.f_f-score 0.82807: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 138 | valid.f_iou 0.7420700192451477, valid.f_f-score 0.82601: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.47it/s]
epoch 138 | valid.f_iou 0.7420700192451477, valid.f_f-score 0.82601: 100%|█████████████████████████████| 16/16 [00:12<00:00, 2.54it/s]
epoch 138 | valid.f_iou 0.7420700192451477, valid.f_f-score 0.82601: 100%|█████████████████████████████| 16/16 [00:12<00:00, 1.33it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 138 | valid.f_iou 0.7567800283432007, valid.f_f-score 0.76788: 0%| | 0/16 [00:04, ?it/s]
epoch 138 | valid.f_iou 0.7567800283432007, valid.f_f-score 0.76788: 6%|█▉ | 1/16 [00:04<01:09, 4.64s/it]
epoch 138 | valid.f_iou 0.8148400187492371, valid.f_f-score 0.85315: 6%|█▉ | 1/16 [00:05<01:09, 4.64s/it]
epoch 138 | valid.f_iou 0.8148400187492371, valid.f_f-score 0.85315: 12%|███▊ | 2/16 [00:05<00:31, 2.24s/it]
epoch 138 | valid.f_iou 0.768589973449707, valid.f_f-score 0.84636: 12%|███▉ | 2/16 [00:05<00:31, 2.24s/it]
epoch 138 | valid.f_iou 0.768589973449707, valid.f_f-score 0.84636: 19%|█████▊ | 3/16 [00:05<00:18, 1.42s/it]
epoch 138 | valid.f_iou 0.7581899762153625, valid.f_f-score 0.80928: 19%|█████▋ | 3/16 [00:06<00:18, 1.42s/it]
epoch 138 | valid.f_iou 0.7581899762153625, valid.f_f-score 0.80928: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 138 | valid.f_iou 0.7439699769020081, valid.f_f-score 0.80921: 25%|███████▌ | 4/16 [00:06<00:12, 1.03s/it]
epoch 138 | valid.f_iou 0.7439699769020081, valid.f_f-score 0.80921: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 138 | valid.f_iou 0.7265499830245972, valid.f_f-score 0.79598: 31%|█████████▍ | 5/16 [00:06<00:09, 1.22it/s]
epoch 138 | valid.f_iou 0.7265499830245972, valid.f_f-score 0.79598: 38%|███████████▎ | 6/16 [00:06<00:06, 1.43it/s]
epoch 138 | valid.f_iou 0.739080011844635, valid.f_f-score 0.81312: 38%|███████████▋ | 6/16 [00:07<00:06, 1.43it/s]
epoch 138 | valid.f_iou 0.739080011844635, valid.f_f-score 0.81312: 44%|█████████████▌ | 7/16 [00:07<00:05, 1.63it/s]
epoch 138 | valid.f_iou 0.7278500199317932, valid.f_f-score 0.81324: 44%|█████████████▏ | 7/16 [00:07<00:05, 1.63it/s]
epoch 138 | valid.f_iou 0.7278500199317932, valid.f_f-score 0.81324: 50%|███████████████ | 8/16 [00:07<00:04, 1.78it/s]
epoch 138 | valid.f_iou 0.7331500053405762, valid.f_f-score 0.8156: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.78it/s]
epoch 138 | valid.f_iou 0.7331500053405762, valid.f_f-score 0.8156: 56%|█████████████████▍ | 9/16 [00:08<00:03, 1.92it/s]
epoch 138 | valid.f_iou 0.7384399771690369, valid.f_f-score 0.82258: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.92it/s]
epoch 138 | valid.f_iou 0.7384399771690369, valid.f_f-score 0.82258: 62%|██████████████████▏ | 10/16 [00:08<00:03, 1.99it/s]
epoch 138 | valid.f_iou 0.725409984588623, valid.f_f-score 0.80557: 62%|██████████████████▊ | 10/16 [00:09<00:03, 1.99it/s]
epoch 138 | valid.f_iou 0.725409984588623, valid.f_f-score 0.80557: 69%|████████████████████▋ | 11/16 [00:09<00:02, 2.07it/s]
epoch 138 | valid.f_iou 0.7368599772453308, valid.f_f-score 0.81617: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.07it/s]
epoch 138 | valid.f_iou 0.7368599772453308, valid.f_f-score 0.81617: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.22it/s]
epoch 138 | valid.f_iou 0.7472400069236755, valid.f_f-score 0.8251: 75%|██████████████████████▌ | 12/16 [00:09<00:01, 2.22it/s]
epoch 138 | valid.f_iou 0.7472400069236755, valid.f_f-score 0.8251: 81%|████████████████████████▍ | 13/16 [00:09<00:01, 2.35it/s]
epoch 138 | valid.f_iou 0.733959972858429, valid.f_f-score 0.81341: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.35it/s]
epoch 138 | valid.f_iou 0.733959972858429, valid.f_f-score 0.81341: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.45it/s]
epoch 138 | valid.f_iou 0.7412700057029724, valid.f_f-score 0.82225: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.45it/s]
epoch 138 | valid.f_iou 0.7412700057029724, valid.f_f-score 0.82225: 94%|███████████████████████████▏ | 15/16 [00:10<00:00, 2.52it/s]
epoch 138 | valid.f_iou 0.740809977054596, valid.f_f-score 0.82056: 94%|████████████████████████████▏ | 15/16 [00:11<00:00, 2.52it/s]
epoch 138 | valid.f_iou 0.740809977054596, valid.f_f-score 0.82056: 100%|██████████████████████████████| 16/16 [00:11<00:00, 2.55it/s]
epoch 138 | valid.f_iou 0.740809977054596, valid.f_f-score 0.82056: 100%|██████████████████████████████| 16/16 [00:11<00:00, 1.44it/s]
+
0%| | 0/74 [00:00, ?it/s]
epoch 139 | loss 1.0923538208007812, f_iou 0.8724525570869446: 0%| | 0/74 [00:06, ?it/s]
epoch 139 | loss 1.0923538208007812, f_iou 0.8724525570869446: 1%|▍ | 1/74 [00:06<07:42, 6.34s/it]
epoch 139 | loss 0.5772073268890381, f_iou 0.8793973922729492: 1%|▍ | 1/74 [00:07<07:42, 6.34s/it]
epoch 139 | loss 0.5772073268890381, f_iou 0.8793973922729492: 3%|▉ | 2/74 [00:07<03:45, 3.14s/it]
epoch 139 | loss 0.497739315032959, f_iou 0.7085534930229187: 3%|█ | 2/74 [00:08<03:45, 3.14s/it]
epoch 139 | loss 0.497739315032959, f_iou 0.7085534930229187: 4%|█▌ | 3/74 [00:08<02:35, 2.19s/it]
epoch 139 | loss 1.646599292755127, f_iou 0.7062479853630066: 4%|█▌ | 3/74 [00:09<02:35, 2.19s/it]
epoch 139 | loss 1.646599292755127, f_iou 0.7062479853630066: 5%|██ | 4/74 [00:09<01:55, 1.65s/it]
epoch 139 | loss 0.7178258895874023, f_iou 0.7097578644752502: 5%|█▉ | 4/74 [00:09<01:55, 1.65s/it]
epoch 139 | loss 0.7178258895874023, f_iou 0.7097578644752502: 7%|██▍ | 5/74 [00:09<01:32, 1.34s/it]
epoch 139 | loss 0.33302274346351624, f_iou 0.7533513307571411: 7%|██▎ | 5/74 [00:10<01:32, 1.34s/it]
epoch 139 | loss 0.33302274346351624, f_iou 0.7533513307571411: 8%|██▊ | 6/74 [00:10<01:19, 1.17s/it]
epoch 139 | loss 0.5399536490440369, f_iou 0.7745051980018616: 8%|██▉ | 6/74 [00:11<01:19, 1.17s/it]
epoch 139 | loss 0.5399536490440369, f_iou 0.7745051980018616: 9%|███▍ | 7/74 [00:11<01:10, 1.05s/it]
epoch 139 | loss 1.43806791305542, f_iou 0.7512285709381104: 9%|███▌ | 7/74 [00:12<01:10, 1.05s/it]
epoch 139 | loss 1.43806791305542, f_iou 0.7512285709381104: 11%|████ | 8/74 [00:12<01:03, 1.04it/s]
epoch 139 | loss 0.4260163903236389, f_iou 0.7685272097587585: 11%|███▉ | 8/74 [00:13<01:03, 1.04it/s]
epoch 139 | loss 0.4260163903236389, f_iou 0.7685272097587585: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 139 | loss 0.6060107946395874, f_iou 0.7800342440605164: 12%|████▍ | 9/74 [00:13<00:58, 1.11it/s]
epoch 139 | loss 0.6060107946395874, f_iou 0.7800342440605164: 14%|████▋ | 10/74 [00:13<00:55, 1.15it/s]
epoch 139 | loss 1.153378963470459, f_iou 0.7827632427215576: 14%|████▊ | 10/74 [00:14<00:55, 1.15it/s]
epoch 139 | loss 1.153378963470459, f_iou 0.7827632427215576: 15%|█████▎ | 11/74 [00:14<00:52, 1.19it/s]
epoch 139 | loss 1.6269303560256958, f_iou 0.7438424825668335: 15%|█████▏ | 11/74 [00:15<00:52, 1.19it/s]
epoch 139 | loss 1.6269303560256958, f_iou 0.7438424825668335: 16%|█████▋ | 12/74 [00:15<00:50, 1.23it/s]
epoch 139 | loss 0.9119048118591309, f_iou 0.746535062789917: 16%|█████▊ | 12/74 [00:16<00:50, 1.23it/s]
epoch 139 | loss 0.9119048118591309, f_iou 0.746535062789917: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 139 | loss 0.507146418094635, f_iou 0.7620086073875427: 18%|██████▎ | 13/74 [00:16<00:48, 1.25it/s]
epoch 139 | loss 0.507146418094635, f_iou 0.7620086073875427: 19%|██████▊ | 14/74 [00:16<00:46, 1.29it/s]
epoch 139 | loss 1.4599205255508423, f_iou 0.7427541017532349: 19%|██████▌ | 14/74 [00:17<00:46, 1.29it/s]
epoch 139 | loss 1.4599205255508423, f_iou 0.7427541017532349: 20%|███████ | 15/74 [00:17<00:44, 1.31it/s]
epoch 139 | loss 0.723311185836792, f_iou 0.7373535633087158: 20%|███████▎ | 15/74 [00:18<00:44, 1.31it/s]
epoch 139 | loss 0.723311185836792, f_iou 0.7373535633087158: 22%|███████▊ | 16/74 [00:18<00:43, 1.33it/s]
epoch 139 | loss 0.6264462471008301, f_iou 0.7452151775360107: 22%|███████▌ | 16/74 [00:19<00:43, 1.33it/s]
epoch 139 | loss 0.6264462471008301, f_iou 0.7452151775360107: 23%|████████ | 17/74 [00:19<00:42, 1.35it/s]
epoch 139 | loss 0.49500682950019836, f_iou 0.7550686001777649: 23%|███████▊ | 17/74 [00:19<00:42, 1.35it/s]
epoch 139 | loss 0.49500682950019836, f_iou 0.7550686001777649: 24%|████████▎ | 18/74 [00:19<00:41, 1.36it/s]
epoch 139 | loss 0.7514054775238037, f_iou 0.7561909556388855: 24%|████████▌ | 18/74 [00:20<00:41, 1.36it/s]
epoch 139 | loss 0.7514054775238037, f_iou 0.7561909556388855: 26%|████████▉ | 19/74 [00:20<00:40, 1.37it/s]
epoch 139 | loss 1.7787424325942993, f_iou 0.7576361298561096: 26%|████████▉ | 19/74 [00:21<00:40, 1.37it/s]
epoch 139 | loss 1.7787424325942993, f_iou 0.7576361298561096: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 139 | loss 0.9869316816329956, f_iou 0.7584949731826782: 27%|█████████▍ | 20/74 [00:21<00:39, 1.37it/s]
epoch 139 | loss 0.9869316816329956, f_iou 0.7584949731826782: 28%|█████████▉ | 21/74 [00:21<00:38, 1.37it/s]
epoch 139 | loss 1.048703670501709, f_iou 0.7657817006111145: 28%|██████████▏ | 21/74 [00:22<00:38, 1.37it/s]
epoch 139 | loss 1.048703670501709, f_iou 0.7657817006111145: 30%|██████████▋ | 22/74 [00:22<00:37, 1.38it/s]
epoch 139 | loss 0.3649429678916931, f_iou 0.7745795249938965: 30%|██████████▍ | 22/74 [00:23<00:37, 1.38it/s]
epoch 139 | loss 0.3649429678916931, f_iou 0.7745795249938965: 31%|██████████▉ | 23/74 [00:23<00:36, 1.38it/s]
epoch 139 | loss 1.8556902408599854, f_iou 0.759307861328125: 31%|███████████▏ | 23/74 [00:24<00:36, 1.38it/s]
epoch 139 | loss 1.8556902408599854, f_iou 0.759307861328125: 32%|███████████▋ | 24/74 [00:24<00:36, 1.38it/s]
epoch 139 | loss 0.5133440494537354, f_iou 0.7670516967773438: 32%|███████████▎ | 24/74 [00:24<00:36, 1.38it/s]
epoch 139 | loss 0.5133440494537354, f_iou 0.7670516967773438: 34%|███████████▊ | 25/74 [00:24<00:35, 1.38it/s]
epoch 139 | loss 1.1351795196533203, f_iou 0.7722835540771484: 34%|███████████▊ | 25/74 [00:25<00:35, 1.38it/s]
epoch 139 | loss 1.1351795196533203, f_iou 0.7722835540771484: 35%|████████████▎ | 26/74 [00:25<00:34, 1.38it/s]
epoch 139 | loss 2.1219940185546875, f_iou 0.7677750587463379: 35%|████████████▎ | 26/74 [00:26<00:34, 1.38it/s]
epoch 139 | loss 2.1219940185546875, f_iou 0.7677750587463379: 36%|████████████▊ | 27/74 [00:26<00:33, 1.38it/s]
epoch 139 | loss 0.8735877275466919, f_iou 0.7700411677360535: 36%|████████████▊ | 27/74 [00:27<00:33, 1.38it/s]
epoch 139 | loss 0.8735877275466919, f_iou 0.7700411677360535: 38%|█████████████▏ | 28/74 [00:27<00:33, 1.39it/s]
epoch 139 | loss 1.020450234413147, f_iou 0.7671459913253784: 38%|█████████████▌ | 28/74 [00:27<00:33, 1.39it/s]
epoch 139 | loss 1.020450234413147, f_iou 0.7671459913253784: 39%|██████████████ | 29/74 [00:27<00:32, 1.37it/s]
epoch 139 | loss 0.4843449592590332, f_iou 0.7719998359680176: 39%|█████████████▋ | 29/74 [00:28<00:32, 1.37it/s]
epoch 139 | loss 0.4843449592590332, f_iou 0.7719998359680176: 41%|██████████████▏ | 30/74 [00:28<00:32, 1.35it/s]
epoch 139 | loss 1.0748775005340576, f_iou 0.7752277255058289: 41%|██████████████▏ | 30/74 [00:29<00:32, 1.35it/s]
epoch 139 | loss 1.0748775005340576, f_iou 0.7752277255058289: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.36it/s]
epoch 139 | loss 0.7990584373474121, f_iou 0.7740918397903442: 42%|██████████████▋ | 31/74 [00:29<00:31, 1.36it/s]
epoch 139 | loss 0.7990584373474121, f_iou 0.7740918397903442: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.36it/s]
epoch 139 | loss 0.9823179244995117, f_iou 0.7747725248336792: 43%|███████████████▏ | 32/74 [00:30<00:30, 1.36it/s]
epoch 139 | loss 0.9823179244995117, f_iou 0.7747725248336792: 45%|███████████████▌ | 33/74 [00:30<00:30, 1.36it/s]
epoch 139 | loss 0.5028935670852661, f_iou 0.7786614298820496: 45%|███████████████▌ | 33/74 [00:31<00:30, 1.36it/s]
epoch 139 | loss 0.5028935670852661, f_iou 0.7786614298820496: 46%|████████████████ | 34/74 [00:31<00:29, 1.37it/s]
epoch 139 | loss 0.5407143831253052, f_iou 0.7832673192024231: 46%|████████████████ | 34/74 [00:32<00:29, 1.37it/s]
epoch 139 | loss 0.5407143831253052, f_iou 0.7832673192024231: 47%|████████████████▌ | 35/74 [00:32<00:28, 1.37it/s]
epoch 139 | loss 0.0, f_iou 0.7834060788154602: 47%|███████████████████████▋ | 35/74 [00:32<00:28, 1.37it/s]
epoch 139 | loss 0.0, f_iou 0.7834060788154602: 49%|████████████████████████▎ | 36/74 [00:32<00:27, 1.38it/s]
epoch 139 | loss 0.5282402634620667, f_iou 0.7869992852210999: 49%|█████████████████ | 36/74 [00:33<00:27, 1.38it/s]
epoch 139 | loss 0.5282402634620667, f_iou 0.7869992852210999: 50%|█████████████████▌ | 37/74 [00:33<00:26, 1.39it/s]
epoch 139 | loss 0.7273555397987366, f_iou 0.7853030562400818: 50%|█████████████████▌ | 37/74 [00:34<00:26, 1.39it/s]
epoch 139 | loss 0.7273555397987366, f_iou 0.7853030562400818: 51%|█████████████████▉ | 38/74 [00:34<00:26, 1.38it/s]
epoch 139 | loss 1.0681145191192627, f_iou 0.7841178774833679: 51%|█████████████████▉ | 38/74 [00:35<00:26, 1.38it/s]
epoch 139 | loss 1.0681145191192627, f_iou 0.7841178774833679: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 139 | loss 0.9741429090499878, f_iou 0.7708220481872559: 53%|██████████████████▍ | 39/74 [00:35<00:25, 1.38it/s]
epoch 139 | loss 0.9741429090499878, f_iou 0.7708220481872559: 54%|██████████████████▉ | 40/74 [00:35<00:24, 1.38it/s]
epoch 139 | loss 0.8918009400367737, f_iou 0.7581843137741089: 54%|██████████████████▉ | 40/74 [00:36<00:24, 1.38it/s]
epoch 139 | loss 0.8918009400367737, f_iou 0.7581843137741089: 55%|███████████████████▍ | 41/74 [00:36<00:24, 1.37it/s]
epoch 139 | loss 0.9574882984161377, f_iou 0.7558038234710693: 55%|███████████████████▍ | 41/74 [00:37<00:24, 1.37it/s]
epoch 139 | loss 0.9574882984161377, f_iou 0.7558038234710693: 57%|███████████████████▊ | 42/74 [00:37<00:23, 1.34it/s]
epoch 139 | loss 0.3678508996963501, f_iou 0.759895384311676: 57%|████████████████████▍ | 42/74 [00:38<00:23, 1.34it/s]
epoch 139 | loss 0.3678508996963501, f_iou 0.759895384311676: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.32it/s]
epoch 139 | loss 1.093662977218628, f_iou 0.7594974040985107: 58%|████████████████████▉ | 43/74 [00:38<00:23, 1.32it/s]
epoch 139 | loss 1.093662977218628, f_iou 0.7594974040985107: 59%|█████████████████████▍ | 44/74 [00:38<00:22, 1.31it/s]
epoch 139 | loss 0.0, f_iou 0.7646759152412415: 59%|█████████████████████████████▋ | 44/74 [00:39<00:22, 1.31it/s]
epoch 139 | loss 0.0, f_iou 0.7646759152412415: 61%|██████████████████████████████▍ | 45/74 [00:39<00:24, 1.20it/s]
epoch 139 | loss 0.0, f_iou 0.7678971886634827: 61%|██████████████████████████████▍ | 45/74 [00:40<00:24, 1.20it/s]
epoch 139 | loss 0.0, f_iou 0.7678971886634827: 62%|███████████████████████████████ | 46/74 [00:40<00:22, 1.22it/s]
epoch 139 | loss 0.28539371490478516, f_iou 0.7722330689430237: 62%|█████████████████████▏ | 46/74 [00:41<00:22, 1.22it/s]
epoch 139 | loss 0.28539371490478516, f_iou 0.7722330689430237: 64%|█████████████████████▌ | 47/74 [00:41<00:21, 1.24it/s]
epoch 139 | loss 1.0412986278533936, f_iou 0.7713565230369568: 64%|██████████████████████▏ | 47/74 [00:42<00:21, 1.24it/s]
epoch 139 | loss 1.0412986278533936, f_iou 0.7713565230369568: 65%|██████████████████████▋ | 48/74 [00:42<00:20, 1.24it/s]
epoch 139 | loss 0.6666591167449951, f_iou 0.7576760649681091: 65%|██████████████████████▋ | 48/74 [00:43<00:20, 1.24it/s]
epoch 139 | loss 0.6666591167449951, f_iou 0.7576760649681091: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.25it/s]
epoch 139 | loss 0.6532015800476074, f_iou 0.7572045922279358: 66%|███████████████████████▏ | 49/74 [00:43<00:19, 1.25it/s]
epoch 139 | loss 0.6532015800476074, f_iou 0.7572045922279358: 68%|███████████████████████▋ | 50/74 [00:43<00:19, 1.26it/s]
epoch 139 | loss 0.6799020767211914, f_iou 0.7425590753555298: 68%|███████████████████████▋ | 50/74 [00:44<00:19, 1.26it/s]
epoch 139 | loss 0.6799020767211914, f_iou 0.7425590753555298: 69%|████████████████████████ | 51/74 [00:44<00:17, 1.29it/s]
epoch 139 | loss 0.6445644497871399, f_iou 0.7434917092323303: 69%|████████████████████████ | 51/74 [00:45<00:17, 1.29it/s]
epoch 139 | loss 0.6445644497871399, f_iou 0.7434917092323303: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.31it/s]
epoch 139 | loss 1.1107993125915527, f_iou 0.7319428324699402: 70%|████████████████████████▌ | 52/74 [00:45<00:16, 1.31it/s]
epoch 139 | loss 1.1107993125915527, f_iou 0.7319428324699402: 72%|█████████████████████████ | 53/74 [00:45<00:15, 1.33it/s]
epoch 139 | loss 0.5461353659629822, f_iou 0.734504222869873: 72%|█████████████████████████▊ | 53/74 [00:46<00:15, 1.33it/s]
epoch 139 | loss 0.5461353659629822, f_iou 0.734504222869873: 73%|██████████████████████████▎ | 54/74 [00:46<00:14, 1.35it/s]
epoch 139 | loss 0.8196070194244385, f_iou 0.7340528964996338: 73%|█████████████████████████▌ | 54/74 [00:47<00:14, 1.35it/s]
epoch 139 | loss 0.8196070194244385, f_iou 0.7340528964996338: 74%|██████████████████████████ | 55/74 [00:47<00:14, 1.32it/s]
epoch 139 | loss 1.675072431564331, f_iou 0.7315232157707214: 74%|██████████████████████████▊ | 55/74 [00:48<00:14, 1.32it/s]
epoch 139 | loss 1.675072431564331, f_iou 0.7315232157707214: 76%|███████████████████████████▏ | 56/74 [00:48<00:13, 1.31it/s]
epoch 139 | loss 0.7049793601036072, f_iou 0.7346467971801758: 76%|██████████████████████████▍ | 56/74 [00:49<00:13, 1.31it/s]
epoch 139 | loss 0.7049793601036072, f_iou 0.7346467971801758: 77%|██████████████████████████▉ | 57/74 [00:49<00:13, 1.30it/s]
epoch 139 | loss 2.074021339416504, f_iou 0.729461133480072: 77%|████████████████████████████▌ | 57/74 [00:49<00:13, 1.30it/s]
epoch 139 | loss 2.074021339416504, f_iou 0.729461133480072: 78%|█████████████████████████████ | 58/74 [00:49<00:12, 1.29it/s]
epoch 139 | loss 1.2543954849243164, f_iou 0.7315751314163208: 78%|███████████████████████████▍ | 58/74 [00:50<00:12, 1.29it/s]
epoch 139 | loss 1.2543954849243164, f_iou 0.7315751314163208: 80%|███████████████████████████▉ | 59/74 [00:50<00:11, 1.28it/s]
epoch 139 | loss 0.7759578824043274, f_iou 0.7342048287391663: 80%|███████████████████████████▉ | 59/74 [00:51<00:11, 1.28it/s]
epoch 139 | loss 0.7759578824043274, f_iou 0.7342048287391663: 81%|████████████████████████████▍ | 60/74 [00:51<00:10, 1.28it/s]
epoch 139 | loss 0.8107606172561646, f_iou 0.737493634223938: 81%|█████████████████████████████▏ | 60/74 [00:52<00:10, 1.28it/s]
epoch 139 | loss 0.8107606172561646, f_iou 0.737493634223938: 82%|█████████████████████████████▋ | 61/74 [00:52<00:10, 1.27it/s]
epoch 139 | loss 0.7484406232833862, f_iou 0.7394664287567139: 82%|████████████████████████████▊ | 61/74 [00:52<00:10, 1.27it/s]
epoch 139 | loss 0.7484406232833862, f_iou 0.7394664287567139: 84%|█████████████████████████████▎ | 62/74 [00:52<00:09, 1.28it/s]
epoch 139 | loss 1.248611569404602, f_iou 0.7387533187866211: 84%|██████████████████████████████▏ | 62/74 [00:53<00:09, 1.28it/s]
epoch 139 | loss 1.248611569404602, f_iou 0.7387533187866211: 85%|██████████████████████████████▋ | 63/74 [00:53<00:08, 1.30it/s]
epoch 139 | loss 0.3492368459701538, f_iou 0.7423878908157349: 85%|█████████████████████████████▊ | 63/74 [00:54<00:08, 1.30it/s]
epoch 139 | loss 0.3492368459701538, f_iou 0.7423878908157349: 86%|██████████████████████████████▎ | 64/74 [00:54<00:07, 1.32it/s]
epoch 139 | loss 0.35139381885528564, f_iou 0.73183673620224: 86%|███████████████████████████████▏ | 64/74 [00:55<00:07, 1.32it/s]
epoch 139 | loss 0.35139381885528564, f_iou 0.73183673620224: 88%|███████████████████████████████▌ | 65/74 [00:55<00:06, 1.33it/s]
epoch 139 | loss 0.6054670810699463, f_iou 0.7348132729530334: 88%|██████████████████████████████▋ | 65/74 [00:55<00:06, 1.33it/s]
epoch 139 | loss 0.6054670810699463, f_iou 0.7348132729530334: 89%|███████████████████████████████▏ | 66/74 [00:55<00:06, 1.32it/s]
epoch 139 | loss 1.3317084312438965, f_iou 0.7361273169517517: 89%|███████████████████████████████▏ | 66/74 [00:56<00:06, 1.32it/s]
epoch 139 | loss 1.3317084312438965, f_iou 0.7361273169517517: 91%|███████████████████████████████▋ | 67/74 [00:56<00:05, 1.32it/s]
epoch 139 | loss 1.0328139066696167, f_iou 0.7383757829666138: 91%|███████████████████████████████▋ | 67/74 [00:57<00:05, 1.32it/s]
epoch 139 | loss 1.0328139066696167, f_iou 0.7383757829666138: 92%|████████████████████████████████▏ | 68/74 [00:57<00:04, 1.31it/s]
epoch 139 | loss 0.6000824570655823, f_iou 0.7408544421195984: 92%|████████████████████████████████▏ | 68/74 [00:58<00:04, 1.31it/s]
epoch 139 | loss 0.6000824570655823, f_iou 0.7408544421195984: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.32it/s]
epoch 139 | loss 0.5877575278282166, f_iou 0.7408441305160522: 93%|████████████████████████████████▋ | 69/74 [00:58<00:03, 1.32it/s]
epoch 139 | loss 0.5877575278282166, f_iou 0.7408441305160522: 95%|█████████████████████████████████ | 70/74 [00:58<00:02, 1.34it/s]
epoch 139 | loss 0.9501019716262817, f_iou 0.7329592108726501: 95%|█████████████████████████████████ | 70/74 [00:59<00:02, 1.34it/s]
epoch 139 | loss 0.9501019716262817, f_iou 0.7329592108726501: 96%|█████████████████████████████████▌ | 71/74 [00:59<00:02, 1.36it/s]
epoch 139 | loss 0.2678505778312683, f_iou 0.7362470626831055: 96%|█████████████████████████████████▌ | 71/74 [01:00<00:02, 1.36it/s]
epoch 139 | loss 0.2678505778312683, f_iou 0.7362470626831055: 97%|██████████████████████████████████ | 72/74 [01:00<00:01, 1.36it/s]
epoch 139 | loss 0.5264503955841064, f_iou 0.7368336319923401: 97%|██████████████████████████████████ | 72/74 [01:01<00:01, 1.36it/s]
epoch 139 | loss 0.5264503955841064, f_iou 0.7368336319923401: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.37it/s]
epoch 139 | loss 0.5674923062324524, f_iou 0.7393282651901245: 99%|██████████████████████████████████▌| 73/74 [01:01<00:00, 1.37it/s]
epoch 139 | loss 0.5674923062324524, f_iou 0.7393282651901245: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.37it/s]
epoch 139 | loss 0.5674923062324524, f_iou 0.7393282651901245: 100%|███████████████████████████████████| 74/74 [01:01<00:00, 1.20it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 139 | valid.f_iou 0.7422599792480469, valid.f_f-score 0.83964: 0%| | 0/16 [00:05, ?it/s]
epoch 139 | valid.f_iou 0.7422599792480469, valid.f_f-score 0.83964: 6%|█▉ | 1/16 [00:05<01:24, 5.61s/it]
epoch 139 | valid.f_iou 0.7186499834060669, valid.f_f-score 0.87587: 6%|█▉ | 1/16 [00:06<01:24, 5.61s/it]
epoch 139 | valid.f_iou 0.7186499834060669, valid.f_f-score 0.87587: 12%|███▊ | 2/16 [00:06<00:36, 2.57s/it]
epoch 139 | valid.f_iou 0.58406001329422, valid.f_f-score 0.78237: 12%|████ | 2/16 [00:06<00:36, 2.57s/it]
epoch 139 | valid.f_iou 0.58406001329422, valid.f_f-score 0.78237: 19%|██████ | 3/16 [00:06<00:21, 1.62s/it]
epoch 139 | valid.f_iou 0.606939971446991, valid.f_f-score 0.76273: 19%|█████▊ | 3/16 [00:06<00:21, 1.62s/it]
epoch 139 | valid.f_iou 0.606939971446991, valid.f_f-score 0.76273: 25%|███████▊ | 4/16 [00:06<00:13, 1.14s/it]
epoch 139 | valid.f_iou 0.6204900145530701, valid.f_f-score 0.77089: 25%|███████▌ | 4/16 [00:07<00:13, 1.14s/it]
epoch 139 | valid.f_iou 0.6204900145530701, valid.f_f-score 0.77089: 31%|█████████▍ | 5/16 [00:07<00:09, 1.13it/s]
epoch 139 | valid.f_iou 0.578220009803772, valid.f_f-score 0.73414: 31%|█████████▋ | 5/16 [00:07<00:09, 1.13it/s]
epoch 139 | valid.f_iou 0.578220009803772, valid.f_f-score 0.73414: 38%|███████████▋ | 6/16 [00:07<00:07, 1.36it/s]
epoch 139 | valid.f_iou 0.6023799777030945, valid.f_f-score 0.75841: 38%|███████████▎ | 6/16 [00:08<00:07, 1.36it/s]
epoch 139 | valid.f_iou 0.6023799777030945, valid.f_f-score 0.75841: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 139 | valid.f_iou 0.5733299851417542, valid.f_f-score 0.74435: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 139 | valid.f_iou 0.5733299851417542, valid.f_f-score 0.74435: 50%|███████████████ | 8/16 [00:08<00:04, 1.77it/s]
epoch 139 | valid.f_iou 0.5918700098991394, valid.f_f-score 0.75239: 50%|███████████████ | 8/16 [00:09<00:04, 1.77it/s]
epoch 139 | valid.f_iou 0.5918700098991394, valid.f_f-score 0.75239: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.96it/s]
epoch 139 | valid.f_iou 0.5895900130271912, valid.f_f-score 0.75418: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.96it/s]
epoch 139 | valid.f_iou 0.5895900130271912, valid.f_f-score 0.75418: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 139 | valid.f_iou 0.5889099836349487, valid.f_f-score 0.75047: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.05it/s]
epoch 139 | valid.f_iou 0.5889099836349487, valid.f_f-score 0.75047: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.22it/s]
epoch 139 | valid.f_iou 0.6103000044822693, valid.f_f-score 0.76536: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.22it/s]
epoch 139 | valid.f_iou 0.6103000044822693, valid.f_f-score 0.76536: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.36it/s]
epoch 139 | valid.f_iou 0.6204100251197815, valid.f_f-score 0.77223: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.36it/s]
epoch 139 | valid.f_iou 0.6204100251197815, valid.f_f-score 0.77223: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.46it/s]
epoch 139 | valid.f_iou 0.6142100095748901, valid.f_f-score 0.7675: 81%|████████████████████████▍ | 13/16 [00:10<00:01, 2.46it/s]
epoch 139 | valid.f_iou 0.6142100095748901, valid.f_f-score 0.7675: 88%|██████████████████████████▎ | 14/16 [00:10<00:00, 2.54it/s]
epoch 139 | valid.f_iou 0.6182299852371216, valid.f_f-score 0.76674: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 139 | valid.f_iou 0.6182299852371216, valid.f_f-score 0.76674: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 139 | valid.f_iou 0.6210799813270569, valid.f_f-score 0.76354: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.60it/s]
epoch 139 | valid.f_iou 0.6210799813270569, valid.f_f-score 0.76354: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.65it/s]
epoch 139 | valid.f_iou 0.6210799813270569, valid.f_f-score 0.76354: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.37it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 139 | valid.f_iou 0.8048200011253357, valid.f_f-score 0.79838: 0%| | 0/16 [00:05, ?it/s]
epoch 139 | valid.f_iou 0.8048200011253357, valid.f_f-score 0.79838: 6%|█▉ | 1/16 [00:05<01:15, 5.05s/it]
epoch 139 | valid.f_iou 0.8387899994850159, valid.f_f-score 0.86862: 6%|█▉ | 1/16 [00:05<01:15, 5.05s/it]
epoch 139 | valid.f_iou 0.8387899994850159, valid.f_f-score 0.86862: 12%|███▊ | 2/16 [00:05<00:32, 2.35s/it]
epoch 139 | valid.f_iou 0.7851300239562988, valid.f_f-score 0.8569: 12%|███▉ | 2/16 [00:05<00:32, 2.35s/it]
epoch 139 | valid.f_iou 0.7851300239562988, valid.f_f-score 0.8569: 19%|█████▊ | 3/16 [00:05<00:19, 1.50s/it]
epoch 139 | valid.f_iou 0.7750099897384644, valid.f_f-score 0.8251: 19%|█████▊ | 3/16 [00:06<00:19, 1.50s/it]
epoch 139 | valid.f_iou 0.7750099897384644, valid.f_f-score 0.8251: 25%|███████▊ | 4/16 [00:06<00:12, 1.08s/it]
epoch 139 | valid.f_iou 0.7486299872398376, valid.f_f-score 0.82115: 25%|███████▌ | 4/16 [00:06<00:12, 1.08s/it]
epoch 139 | valid.f_iou 0.7486299872398376, valid.f_f-score 0.82115: 31%|█████████▍ | 5/16 [00:06<00:09, 1.17it/s]
epoch 139 | valid.f_iou 0.7298799753189087, valid.f_f-score 0.80522: 31%|█████████▍ | 5/16 [00:07<00:09, 1.17it/s]
epoch 139 | valid.f_iou 0.7298799753189087, valid.f_f-score 0.80522: 38%|███████████▎ | 6/16 [00:07<00:07, 1.39it/s]
epoch 139 | valid.f_iou 0.7400000095367432, valid.f_f-score 0.821: 38%|████████████ | 6/16 [00:07<00:07, 1.39it/s]
epoch 139 | valid.f_iou 0.7400000095367432, valid.f_f-score 0.821: 44%|██████████████ | 7/16 [00:07<00:05, 1.61it/s]
epoch 139 | valid.f_iou 0.728879988193512, valid.f_f-score 0.82008: 44%|█████████████▌ | 7/16 [00:08<00:05, 1.61it/s]
epoch 139 | valid.f_iou 0.728879988193512, valid.f_f-score 0.82008: 50%|███████████████▌ | 8/16 [00:08<00:04, 1.76it/s]
epoch 139 | valid.f_iou 0.7325299978256226, valid.f_f-score 0.82186: 50%|███████████████ | 8/16 [00:08<00:04, 1.76it/s]
epoch 139 | valid.f_iou 0.7325299978256226, valid.f_f-score 0.82186: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.90it/s]
epoch 139 | valid.f_iou 0.7422099709510803, valid.f_f-score 0.83197: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.90it/s]
epoch 139 | valid.f_iou 0.7422099709510803, valid.f_f-score 0.83197: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.99it/s]
epoch 139 | valid.f_iou 0.7286400198936462, valid.f_f-score 0.81384: 62%|██████████████████▏ | 10/16 [00:09<00:03, 1.99it/s]
epoch 139 | valid.f_iou 0.7286400198936462, valid.f_f-score 0.81384: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.05it/s]
epoch 139 | valid.f_iou 0.7399200201034546, valid.f_f-score 0.82375: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.05it/s]
epoch 139 | valid.f_iou 0.7399200201034546, valid.f_f-score 0.82375: 75%|█████████████████████▊ | 12/16 [00:09<00:01, 2.11it/s]
epoch 139 | valid.f_iou 0.7500699758529663, valid.f_f-score 0.83107: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.11it/s]
epoch 139 | valid.f_iou 0.7500699758529663, valid.f_f-score 0.83107: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.26it/s]
epoch 139 | valid.f_iou 0.7388399839401245, valid.f_f-score 0.82142: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.26it/s]
epoch 139 | valid.f_iou 0.7388399839401245, valid.f_f-score 0.82142: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.37it/s]
epoch 139 | valid.f_iou 0.7459800243377686, valid.f_f-score 0.82978: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.37it/s]
epoch 139 | valid.f_iou 0.7459800243377686, valid.f_f-score 0.82978: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.46it/s]
epoch 139 | valid.f_iou 0.7446600198745728, valid.f_f-score 0.82757: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.46it/s]
epoch 139 | valid.f_iou 0.7446600198745728, valid.f_f-score 0.82757: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.54it/s]
epoch 139 | valid.f_iou 0.7446600198745728, valid.f_f-score 0.82757: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+
0%| | 0/16 [00:00, ?it/s]
epoch 139 | valid.f_iou 0.7569699883460999, valid.f_f-score 0.76836: 0%| | 0/16 [00:05, ?it/s]
epoch 139 | valid.f_iou 0.7569699883460999, valid.f_f-score 0.76836: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 139 | valid.f_iou 0.8148599863052368, valid.f_f-score 0.85361: 6%|█▉ | 1/16 [00:05<01:19, 5.32s/it]
epoch 139 | valid.f_iou 0.8148599863052368, valid.f_f-score 0.85361: 12%|███▊ | 2/16 [00:05<00:34, 2.48s/it]
epoch 139 | valid.f_iou 0.7691799998283386, valid.f_f-score 0.8469: 12%|███▉ | 2/16 [00:06<00:34, 2.48s/it]
epoch 139 | valid.f_iou 0.7691799998283386, valid.f_f-score 0.8469: 19%|█████▊ | 3/16 [00:06<00:20, 1.57s/it]
epoch 139 | valid.f_iou 0.7587299942970276, valid.f_f-score 0.80971: 19%|█████▋ | 3/16 [00:06<00:20, 1.57s/it]
epoch 139 | valid.f_iou 0.7587299942970276, valid.f_f-score 0.80971: 25%|███████▌ | 4/16 [00:06<00:13, 1.10s/it]
epoch 139 | valid.f_iou 0.7437199950218201, valid.f_f-score 0.80883: 25%|███████▌ | 4/16 [00:07<00:13, 1.10s/it]
epoch 139 | valid.f_iou 0.7437199950218201, valid.f_f-score 0.80883: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 139 | valid.f_iou 0.7257800102233887, valid.f_f-score 0.79496: 31%|█████████▍ | 5/16 [00:07<00:09, 1.15it/s]
epoch 139 | valid.f_iou 0.7257800102233887, valid.f_f-score 0.79496: 38%|███████████▎ | 6/16 [00:07<00:07, 1.37it/s]
epoch 139 | valid.f_iou 0.7382599711418152, valid.f_f-score 0.81221: 38%|███████████▎ | 6/16 [00:08<00:07, 1.37it/s]
epoch 139 | valid.f_iou 0.7382599711418152, valid.f_f-score 0.81221: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 139 | valid.f_iou 0.7273600101470947, valid.f_f-score 0.81239: 44%|█████████████▏ | 7/16 [00:08<00:05, 1.57it/s]
epoch 139 | valid.f_iou 0.7273600101470947, valid.f_f-score 0.81239: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 139 | valid.f_iou 0.7329199910163879, valid.f_f-score 0.81501: 50%|███████████████ | 8/16 [00:08<00:04, 1.73it/s]
epoch 139 | valid.f_iou 0.7329199910163879, valid.f_f-score 0.81501: 56%|████████████████▉ | 9/16 [00:08<00:03, 1.86it/s]
epoch 139 | valid.f_iou 0.7392200231552124, valid.f_f-score 0.82228: 56%|████████████████▉ | 9/16 [00:09<00:03, 1.86it/s]
epoch 139 | valid.f_iou 0.7392200231552124, valid.f_f-score 0.82228: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.06it/s]
epoch 139 | valid.f_iou 0.7259100079536438, valid.f_f-score 0.80504: 62%|██████████████████▏ | 10/16 [00:09<00:02, 2.06it/s]
epoch 139 | valid.f_iou 0.7259100079536438, valid.f_f-score 0.80504: 69%|███████████████████▉ | 11/16 [00:09<00:02, 2.23it/s]
epoch 139 | valid.f_iou 0.7374299764633179, valid.f_f-score 0.81568: 69%|███████████████████▉ | 11/16 [00:10<00:02, 2.23it/s]
epoch 139 | valid.f_iou 0.7374299764633179, valid.f_f-score 0.81568: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.34it/s]
epoch 139 | valid.f_iou 0.7477099895477295, valid.f_f-score 0.82459: 75%|█████████████████████▊ | 12/16 [00:10<00:01, 2.34it/s]
epoch 139 | valid.f_iou 0.7477099895477295, valid.f_f-score 0.82459: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.45it/s]
epoch 139 | valid.f_iou 0.7366399765014648, valid.f_f-score 0.81541: 81%|███████████████████████▌ | 13/16 [00:10<00:01, 2.45it/s]
epoch 139 | valid.f_iou 0.7366399765014648, valid.f_f-score 0.81541: 88%|█████████████████████████▍ | 14/16 [00:10<00:00, 2.54it/s]
epoch 139 | valid.f_iou 0.7439299821853638, valid.f_f-score 0.82417: 88%|█████████████████████████▍ | 14/16 [00:11<00:00, 2.54it/s]
epoch 139 | valid.f_iou 0.7439299821853638, valid.f_f-score 0.82417: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 139 | valid.f_iou 0.7432199716567993, valid.f_f-score 0.82231: 94%|███████████████████████████▏ | 15/16 [00:11<00:00, 2.59it/s]
epoch 139 | valid.f_iou 0.7432199716567993, valid.f_f-score 0.82231: 100%|█████████████████████████████| 16/16 [00:11<00:00, 2.63it/s]
epoch 139 | valid.f_iou 0.7432199716567993, valid.f_f-score 0.82231: 100%|█████████████████████████████| 16/16 [00:11<00:00, 1.39it/s]
+[1;34mwandb[0m: 🚀 View run [33mv1m-hiera-l[0m at: [34mhttps://wandb.ai/pyedog1976/AVS-final-report/runs/gzp5dmwi[0m
+[1;34mwandb[0m: Find logs at: [1;35mwandb/run-20260421_050129-gzp5dmwi/logs[0m
+[rank0]:[W421 08:52:15.119240765 ProcessGroupNCCL.cpp:1496] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())
diff --git a/ckpts/avs/v1s/0.86817.pth b/ckpts/avs/v1s/0.86817.pth
new file mode 100644
index 0000000000000000000000000000000000000000..7cd34830cdf24b112ba477f38c929cad4520eb34
--- /dev/null
+++ b/ckpts/avs/v1s/0.86817.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8edbef825e103a38aeb373e22a7a968b8f603267504e07e548dfe4ad7e7d28d5
+size 521966926
diff --git a/ckpts/avs/v1s/nohup.out b/ckpts/avs/v1s/nohup.out
new file mode 100644
index 0000000000000000000000000000000000000000..213e426b94e22e34c38aa14bd0d093a7ee14bc78
--- /dev/null
+++ b/ckpts/avs/v1s/nohup.out
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e3264bf35367076e699d43a353b19066b580b3c47398c0fecf9f9676ff795c9
+size 66906677
diff --git a/ckpts/avs/v2/0.79284.pth b/ckpts/avs/v2/0.79284.pth
new file mode 100644
index 0000000000000000000000000000000000000000..933cdde8a21d92e5fb821e9a9ffffafda5dbad39
--- /dev/null
+++ b/ckpts/avs/v2/0.79284.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:229258b4a1bb5e7257f469ccff4bb4475ac26fbcadce2a0feb1e57a6e42fad28
+size 521967323
diff --git a/ckpts/avs/v2/nohup.out b/ckpts/avs/v2/nohup.out
new file mode 100644
index 0000000000000000000000000000000000000000..c2bd3b21576a77c04f3f551d1b09285a605dfe0c
--- /dev/null
+++ b/ckpts/avs/v2/nohup.out
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e1e4c588f32466b9379f9fb3fb35e1221ee16569f248394aca7aa608672b224
+size 77047377
diff --git a/ckpts/ref-avs/nohup.out b/ckpts/ref-avs/nohup.out
new file mode 100644
index 0000000000000000000000000000000000000000..ccd5dfa58b88c4461abe3ae0c61c7db1753ccbd1
--- /dev/null
+++ b/ckpts/ref-avs/nohup.out
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:908cb3ccd51ad03c6c1468bb2276619b86083fc584bfe2abb1cec940d10810b9
+size 65186433
diff --git a/ckpts/ref-avs/s(0.58045)_u(0.70452)_af.pth b/ckpts/ref-avs/s(0.58045)_u(0.70452)_af.pth
new file mode 100644
index 0000000000000000000000000000000000000000..548e2045034f8c399e322133e25ceaf21a5c3881
--- /dev/null
+++ b/ckpts/ref-avs/s(0.58045)_u(0.70452)_af.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42193276256bd8885e6f19e9e002631d10f0703b43836a2f64a701e25327014d
+size 526136821
diff --git a/ckpts/ref-avs/s(0.59045)_u(0.68179)_af.pth b/ckpts/ref-avs/s(0.59045)_u(0.68179)_af.pth
new file mode 100644
index 0000000000000000000000000000000000000000..4681b65d3c60daa73aac97b73978450001a066bc
--- /dev/null
+++ b/ckpts/ref-avs/s(0.59045)_u(0.68179)_af.pth
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82f66984c4ec7ab00c96fcf8f5a4a9ae9b4280491a60f46471797f0b6e572160
+size 526136821
diff --git a/docs/auralsam2.yml b/docs/auralsam2.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0dd6e7ff2ed6114c961a10192c1f57b153b170ad
--- /dev/null
+++ b/docs/auralsam2.yml
@@ -0,0 +1,10 @@
+name: auralsam2
+channels:
+ - pytorch
+ - conda-forge
+ - defaults
+dependencies:
+ - python=3.12
+ - pip
+ - pip:
+ - -r requirements.txt
diff --git a/docs/before_start.md b/docs/before_start.md
new file mode 100644
index 0000000000000000000000000000000000000000..e032b1fc845edc25e0f9d758243ec90940577aef
--- /dev/null
+++ b/docs/before_start.md
@@ -0,0 +1,41 @@
+# Before Start
+
+This document provides a concise workflow to run AuralSAM2 experiments.
+
+## ⚙️ Prepare environment and data
+
+Please complete all setup steps in [installation](./installation.md) first.
+
+## 🚀 Training
+
+Use the unified launcher script:
+
+```bash
+cd scripts
+./run_avs_train.sh [gpus]
+./run_ref_train.sh [gpus]
+```
+The experiments are implemented by 4 GPUs by default.
+
+## 🔍 Inference (example)
+
+```bash
+cd avs.code/v2.code
+python inference.py --gpus 1 --batch_size 1 --inference_ckpt /absolute/path/to/checkpoint.pth
+```
+
+## 📊 Training Logs (Reproducibility)
+
+Some examples of training details, please see [this wandb link](https://wandb.ai/pyedog1976/AVS-final-report/workspace?nw=nwuserpyedog1976).
+
+In details, after clicking the run (e.g., [v1m-hiera-l](https://wandb.ai/pyedog1976/AVS-final-report/runs/gzp5dmwi/logs?nw=nwuserpyedog1976)), you can checkout:
+
+1)
overall information (e.g., command line, hardware information and training time).
+2)
training curves and validation visualisation.
+3)
output logs.
+
+
+## 💾 Checkpoints
+We release both checkpoints and training logs in this [Google Drive link](https://drive.google.com/drive/folders/1n0HaCHMn48KaImXvX2mu4qKHUQg4mo9R?usp=sharing).
+
+
diff --git a/docs/installation.md b/docs/installation.md
new file mode 100644
index 0000000000000000000000000000000000000000..51f2d513992bfb653e58b7add987468446b3f503
--- /dev/null
+++ b/docs/installation.md
@@ -0,0 +1,116 @@
+# Installation
+
+The project is based on Python and PyTorch. We usually run experiments with multi-GPU training.
+
+Tested runtime:
+- Python `3.12.3`
+- PyTorch `2.8.0+cu128`
+
+## 📥 Clone the Git repo
+
+``` shell
+$ https://github.com/yyliu01/AuralSAM2
+$ cd AuralSAM2
+```
+
+## 🧩 Install dependencies
+
+1) create conda env from yaml
+```shell
+$ conda env create -f docs/auralsam2.yml
+```
+
+2) activate env
+```shell
+$ conda activate auralsam2
+```
+
+3) install PyTorch (recommended: match tested runtime)
+```shell
+# CUDA 12.8 (tested):
+$ pip install torch==2.8.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
+```
+
+4) install python packages (if needed)
+```shell
+$ pip install -r docs/requirements.txt
+```
+
+## 🗂️ Prepare dataset
+
+### AVSBench (`avs.code`)
+
+1) download and prepare AVSBench under repository root.
+2) ensure the dataset root path is:
+ - `AVSBench/`
+ - `AVSBench/avss_index/metadata.csv` (and subset folders `v1s/`, `v1m/`, `v2/`)
+
+### Ref-AVS (`ref-avs.code`)
+
+1) download and prepare the Ref-AVS (REFAVS) dataset under repository root.
+2) ensure the dataset root path is:
+ - `REFAVS/`
+ - `REFAVS/metadata.csv` (splits: `train`, `test_s`, `test_u`, `test_n`)
+
+
+### Checkpoints (shared)
+
+Prepare under repository root:
+
+- `ckpts/sam_ckpts/sam2_hiera_large.pt`
+- `ckpts/vggish-10086976.pth`
+
+## 🏗️ Workspace structure
+
+```shell
+AuralSAM2/
+├── avs.code/
+│ ├── v1s.code/
+│ ├── v1m.code/
+│ └── v2.code/
+├── ref-avs.code/
+├── scripts/
+│ ├── run_avs_train.sh
+│ └── run_ref_train.sh
+├── AVSBench/
+│ ├── avss_index
+│ │ ├── metadata.csv
+│ │ ├── metadata_v1m_man.csv
+│ │ └── metadata_v2_man.csv
+│ ├── v1m
+│ │ ├── 01uIJMwnUvA_0
+│ │ ├── 0WxgIKuetYI_0
+│ │ ... (419 more)
+│ ├── v1s
+│ │ ├── --FenyW2i_4_5000_10000
+│ │ ├── --ZHUMfueO0_5000_10000
+│ │ ... (4927 more)
+│ └── v2
+│ ├── --KCIeTv6PM_14000_24000
+│ ├── --iSerV5DbY_68000_78000
+│ ... (5995 more)
+├── REFAVS/
+│ ├── gt_mask
+│ │ ├── --KCIeTv6PM_14000_24000
+│ │ ├── --iSerV5DbY_68000_78000
+│ │ ... (~4000 more)
+│ ├── media
+│ │ ├── --KCIeTv6PM_14000_24000
+│ │ ├── --iSerV5DbY_68000_78000
+│ │ ... (~4300 more)
+│ └── metadata.csv
+├── ckpts/
+│ ├── sam_ckpts/
+│ │ └── sam2_hiera_large.pt
+│ └── vggish-10086976.pth
+└── docs/
+ ├── installation.md
+ ├── before_start.md
+ ├── requirements.txt
+ └── auralsam2.yml
+```
+
+## 📝 Notes
+
+- use `docs/before_start.md` for training and inference commands.
+- if wandb is not needed, disable online logging in your config.
diff --git a/docs/overview.png b/docs/overview.png
new file mode 100644
index 0000000000000000000000000000000000000000..62f8247f972743545f2e8d2b1d8b59742d6d0959
--- /dev/null
+++ b/docs/overview.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0e707a6d77fa1ffff5416027e6da0126a3d84d77c04d0127caae35722ebf7965
+size 144143
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1d0d2a626752910d9eaf06cba3e341302075f958
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,159 @@
+absl-py==2.3.1
+annotated-doc==0.0.4
+annotated-types==0.7.0
+antlr4-python3-runtime==4.9.3
+anyio==4.10.0
+argon2-cffi==25.1.0
+argon2-cffi-bindings==25.1.0
+arrow==1.3.0
+asttokens==3.0.0
+async-lru==2.0.5
+attrs==25.3.0
+babel==2.17.0
+beautifulsoup4==4.13.4
+bleach==6.2.0
+click==8.3.2
+comm==0.2.3
+contourpy==1.3.3
+cycler==0.12.1
+debugpy==1.8.16
+decorator==5.2.1
+defusedxml==0.7.1
+easydict==1.13
+executing==2.2.0
+fastjsonschema==2.21.1
+filelock==3.18.0
+fonttools==4.59.0
+fqdn==1.5.1
+fsspec==2025.7.0
+gitdb==4.0.12
+GitPython==3.1.46
+grpcio==1.74.0
+h11==0.16.0
+hf-xet==1.4.3
+httpcore==1.0.9
+httpx==0.28.1
+huggingface_hub==1.11.0
+hydra-core==1.3.2
+iopath==0.1.10
+ipykernel==6.30.1
+ipython==9.4.0
+ipython_pygments_lexers==1.1.1
+ipywidgets==8.1.7
+isoduration==20.11.0
+jedi==0.19.2
+Jinja2==3.1.6
+json5==0.12.0
+jsonpointer==2.1
+jsonschema==4.25.0
+jsonschema-specifications==2025.4.1
+jupyter-events==0.12.0
+jupyter-lsp==2.2.6
+jupyter_client==8.6.3
+jupyter_core==5.8.1
+jupyter_server==2.16.0
+jupyter_server_terminals==0.5.3
+jupyterlab==4.4.5
+jupyterlab-language-pack-zh-CN==4.4.post0
+jupyterlab_pygments==0.3.0
+jupyterlab_server==2.27.3
+jupyterlab_widgets==3.0.15
+kiwisolver==1.4.8
+lark==1.2.2
+llvmlite==0.47.0
+Markdown==3.8.2
+markdown-it-py==4.0.0
+MarkupSafe==3.0.2
+matplotlib==3.10.5
+matplotlib-inline==0.1.7
+mdurl==0.1.2
+mistune==3.1.3
+mpmath==1.3.0
+nbclient==0.10.2
+nbconvert==7.16.6
+nbformat==5.10.4
+nest-asyncio==1.6.0
+networkx==3.5
+notebook_shim==0.2.4
+numba==0.65.0
+numpy<2
+nvidia-cublas-cu12==12.8.4.1
+nvidia-cuda-cupti-cu12==12.8.90
+nvidia-cuda-nvrtc-cu12==12.8.93
+nvidia-cuda-runtime-cu12==12.8.90
+nvidia-cudnn-cu12==9.10.2.21
+nvidia-cufft-cu12==11.3.3.83
+nvidia-cufile-cu12==1.13.1.3
+nvidia-curand-cu12==10.3.9.90
+nvidia-cusolver-cu12==11.7.3.90
+nvidia-cusparse-cu12==12.5.8.93
+nvidia-cusparselt-cu12==0.7.1
+nvidia-nccl-cu12==2.27.3
+nvidia-nvjitlink-cu12==12.8.93
+nvidia-nvtx-cu12==12.8.90
+omegaconf==2.3.0
+overrides==7.7.0
+pandas==3.0.2
+pandocfilters==1.5.1
+parso==0.8.4
+pexpect==4.9.0
+pillow==11.3.0
+portalocker==3.2.0
+prometheus_client==0.22.1
+prompt_toolkit==3.0.51
+protobuf==7.34.1
+psutil==7.0.0
+ptyprocess==0.7.0
+pure_eval==0.2.3
+pydantic==2.13.3
+pydantic_core==2.46.3
+Pygments==2.19.2
+pyparsing==3.2.3
+python-dateutil==2.9.0.post0
+python-json-logger==3.3.0
+PyYAML==6.0.2
+pyzmq==27.0.1
+referencing==0.36.2
+resampy==0.4.3
+rfc3339-validator==0.1.4
+rfc3986-validator==0.1.1
+rfc3987-syntax==1.1.0
+rich==15.0.0
+rpds-py==0.26.0
+safetensors==0.7.0
+Send2Trash==1.8.3
+sentry-sdk==2.58.0
+setuptools==69.5.1
+shellingham==1.5.4
+six==1.17.0
+smmap==5.0.3
+sniffio==1.3.1
+soundfile==0.13.1
+soupsieve==2.7
+stack-data==0.6.3
+supervisor==4.2.5
+sympy==1.14.0
+tensorboard==2.20.0
+tensorboard-data-server==0.7.2
+terminado==0.18.1
+timm==1.0.26
+tinycss2==1.4.0
+tornado==6.5.1
+traitlets==5.14.3
+triton==3.4.0
+typer==0.24.1
+types-python-dateutil==2.9.0.20250708
+typing-inspection==0.4.2
+typing_extensions==4.14.1
+uri-template==1.3.0
+wcwidth==0.2.13
+webcolors==24.11.1
+webencodings==0.5.1
+websocket-client==1.8.0
+Werkzeug==3.1.3
+wheel==0.43.0
+widgetsnbextension==4.0.14
+transformers==5.6.2
+audiomentations==0.39.0
+wandb==0.26.1
+
diff --git a/ref-avs.code/configs/auralfuser/architecture.yaml b/ref-avs.code/configs/auralfuser/architecture.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab4c3d06ca42335ce6bfc8064bbd5cfd44c8080a
--- /dev/null
+++ b/ref-avs.code/configs/auralfuser/architecture.yaml
@@ -0,0 +1,30 @@
+# @package _global_
+
+aural_fuser:
+ patch_cfgs:
+ - [4, 4]
+ - [2, 2]
+ - [1, 1]
+ f_depths: [3, 6, 12]
+ block_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
+ one_d_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
diff --git a/ref-avs.code/configs/config.py b/ref-avs.code/configs/config.py
new file mode 100644
index 0000000000000000000000000000000000000000..994ead1b8c6f1bf85c57737f2bb2ae402c297525
--- /dev/null
+++ b/ref-avs.code/configs/config.py
@@ -0,0 +1,52 @@
+"""Ref-AVS training / inference defaults (paths relative to repo root)."""
+import os
+import pathlib
+import numpy
+from easydict import EasyDict
+
+_CODE_ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+_WORKSPACE_ROOT = os.path.dirname(os.path.dirname(_CODE_ROOT))
+
+C = EasyDict()
+config = C
+cfg = C
+
+C.seed = 666
+
+C.audio = EasyDict()
+C.audio.FREEZE_AUDIO_EXTRACTOR = True
+C.audio.PRETRAINED_VGGISH_MODEL_PATH = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'vggish-10086976.pth')
+C.audio.PREPROCESS_AUDIO_TO_LOG_MEL = False
+C.audio.POSTPROCESS_LOG_MEL_WITH_PCA = False
+C.train_vggish = False
+
+C.root_dir = _CODE_ROOT
+
+# REFAVS layout: REFAVS/metadata.csv, REFAVS/media//...
+C.data_root_path = os.path.join(_WORKSPACE_ROOT, 'REFAVS')
+C.backbone_weight = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'sam_ckpts', 'sam2_hiera_large.pt')
+C.sam_config_path = os.path.join('sam2', 'sam2_hiera_l.yaml')
+
+C.num_classes = 2
+C.image_mean = numpy.array([0.485, 0.456, 0.406])
+C.image_std = numpy.array([0.229, 0.224, 0.225])
+C.image_size = 1024
+C.image_embedding_size = int(C.image_size / 16)
+C.scale_list = [.5, .75, 1., 1.25, 1.5]
+C.ignore_index = 255
+
+C.lr = 7.5e-5
+C.batch_size = 8
+C.lr_power = 0.9
+C.momentum = 0.9
+C.weight_decay = 0.05
+C.num_workers = 4
+
+# Paste W&B API key here or set WANDB_API_KEY in the environment.
+C.wandb_key = ""
+C.proj_name = "AVS-final-report"
+C.experiment_name = "ref-hiera-l"
+C.wandb_online = False
+
+C.saved_dir = os.path.join(_WORKSPACE_ROOT, 'ckpts', 'exp', C.experiment_name)
+pathlib.Path(C.saved_dir).mkdir(parents=True, exist_ok=True)
diff --git a/ref-avs.code/configs/sam2/sam2_hiera_b+.yaml b/ref-avs.code/configs/sam2/sam2_hiera_b+.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..52e0f10732134149f6a994be063d11fd7591c430
--- /dev/null
+++ b/ref-avs.code/configs/sam2/sam2_hiera_b+.yaml
@@ -0,0 +1,114 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 112
+ num_heads: 2
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [896, 448, 224, 112]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
+
diff --git a/ref-avs.code/configs/sam2/sam2_hiera_l.yaml b/ref-avs.code/configs/sam2/sam2_hiera_l.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8478b3d4b8b16d8b22f6555cf7b1f00231d7fd59
--- /dev/null
+++ b/ref-avs.code/configs/sam2/sam2_hiera_l.yaml
@@ -0,0 +1,117 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 144
+ num_heads: 2
+ stages: [2, 6, 36, 4]
+ global_att_blocks: [23, 33, 43]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ window_spec: [8, 4, 16, 8]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [1152, 576, 288, 144]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/ref-avs.code/configs/sam2/sam2_hiera_s.yaml b/ref-avs.code/configs/sam2/sam2_hiera_s.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..26e5d4d39f7b2892396106005c37c7ffe6c83bc2
--- /dev/null
+++ b/ref-avs.code/configs/sam2/sam2_hiera_s.yaml
@@ -0,0 +1,116 @@
+# @package _global_
+
+# Model
+model:
+ _target_: sam2.modeling.sam2_base.SAM2Base
+ image_encoder:
+ _target_: sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 11, 2]
+ global_att_blocks: [7, 10, 13]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/ref-avs.code/configs/sam2/sam2_hiera_t.yaml b/ref-avs.code/configs/sam2/sam2_hiera_t.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..59e605b73c9777b70942538252d27a55ae8a7e1a
--- /dev/null
+++ b/ref-avs.code/configs/sam2/sam2_hiera_t.yaml
@@ -0,0 +1,118 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 96
+ num_heads: 1
+ stages: [1, 2, 7, 2]
+ global_att_blocks: [5, 7, 9]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [768, 384, 192, 96]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 224 # 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ # SAM decoder
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: false
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ # HieraT does not currently support compilation, should always be set to False
+ compile_image_encoder: False
diff --git a/ref-avs.code/configs/training/sam2_training_config.yaml b/ref-avs.code/configs/training/sam2_training_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..29df1199d79c6a9031b82e23aa4b40df99064650
--- /dev/null
+++ b/ref-avs.code/configs/training/sam2_training_config.yaml
@@ -0,0 +1,60 @@
+# @package _global_
+
+# Video transforms
+train_transforms:
+ - _target_: dataloader.sam2_dataset.transforms.ComposeAPI
+ transforms:
+ - _target_: dataloader.sam2_dataset.transforms.RandomHorizontalFlip
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomAffine
+ degrees: 25
+ shear: 20
+ image_interpolation: bilinear
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomResizeAPI
+ sizes: 1024
+ square: true
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: True
+ brightness: 0.1
+ contrast: 0.03
+ saturation: 0.03
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.RandomGrayscale
+ p: 0.05
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: False
+ brightness: 0.1
+ contrast: 0.05
+ saturation: 0.05
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.ToTensorAPI
+ - _target_: dataloader.sam2_dataset.transforms.NormalizeAPI
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+
+loss:
+ all:
+ _target_: loss.training.sam2_training_loss.MultiStepMultiMasksAndIous
+ weight_dict:
+ loss_mask: 20
+ loss_dice: 1
+ loss_iou: 1
+ loss_class: 1
+ supervise_all_iou: true
+ iou_use_l1_loss: true
+ pred_obj_scores: true
+ focal_gamma_obj_score: 0.0
+ focal_alpha_obj_score: -1.0
+ gpu_num: 4.
+
+contrastive_learning:
+ temperature: 0.10
+ ignore_idx: 255
+ ood_idx: 254
+ max_views: 512
+ proj_dim: 512
+ sample_limits: 64
+ total_limits: 15240
diff --git a/ref-avs.code/dataloader/audio/audio_and_text_dataset.py b/ref-avs.code/dataloader/audio/audio_and_text_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..8b4a8bc3a4a4efacffa37483c37f0e4f6e3d030e
--- /dev/null
+++ b/ref-avs.code/dataloader/audio/audio_and_text_dataset.py
@@ -0,0 +1,35 @@
+"""Load REFAVS audio (log-mel) and pass through referring expression strings for the text encoder."""
+import os
+
+import numpy
+import soundfile
+import torch
+
+from dataloader.audio.preprocess_vgg.vggish_input import waveform_to_examples
+
+
+class AudioAndText(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split):
+ self.augmentation = augmentation
+ self.directory_path = directory_path
+ self.split = split
+
+ def load_audio_wave(self, file_index, text_expression):
+ audio_path = os.path.join(self.directory_path, 'media', file_index, 'audio.wav')
+ wav_data, sample_rate = soundfile.read(audio_path, dtype='int16')
+ assert wav_data.dtype == numpy.int16, 'Bad sample type: %r' % wav_data.dtype
+ wav_data = self.augmentation(wav_data, sample_rate, self.split)
+ if len(wav_data.shape) < 2:
+ wav_data = wav_data[:, numpy.newaxis]
+ wav_data = numpy.repeat(wav_data, axis=-1, repeats=2)
+
+ audio_log_mel = torch.cat([
+ waveform_to_examples(wav_data[:, 0], sample_rate, True).detach(),
+ waveform_to_examples(wav_data[:, 1], sample_rate, True).detach(),
+ ], dim=1)
+
+ # VGGish expects at least 5 temporal segments.
+ if audio_log_mel.shape[0] < 5:
+ pad = audio_log_mel[-1].unsqueeze(0).repeat(5 - audio_log_mel.shape[0], 1, 1, 1)
+ audio_log_mel = torch.cat([audio_log_mel, pad])
+ return audio_log_mel, text_expression
diff --git a/ref-avs.code/dataloader/audio/audio_augmentation.py b/ref-avs.code/dataloader/audio/audio_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..850d1577ea2bca4f8ec209edc201fb54968be928
--- /dev/null
+++ b/ref-avs.code/dataloader/audio/audio_augmentation.py
@@ -0,0 +1,23 @@
+import numpy
+
+
+class Augmentation(object):
+ """Audio pre-step used by training/inference: int16 waveform -> float in [-1, 1].
+
+ The previous audiomentations-based transforms were commented out and never applied;
+ behavior is unchanged: only scaling by 1/32768.
+ """
+
+ def __init__(self, mono=True):
+ self.mono = mono
+
+ def train_aug(self, x_, sr_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def test_process(self, x_):
+ x_ = x_ / 32768.0
+ return x_
+
+ def __call__(self, x, sr, split):
+ return self.train_aug(x, sr) if split == "train" else self.test_process(x)
diff --git a/ref-avs.code/dataloader/audio/audio_dataset.py b/ref-avs.code/dataloader/audio/audio_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c8e8b276e8545aa55ef56295719a0ad2b167106
--- /dev/null
+++ b/ref-avs.code/dataloader/audio/audio_dataset.py
@@ -0,0 +1,38 @@
+import torch
+import numpy
+import os
+from dataloader.audio.preprocess_vgg.vggish_input import waveform_to_examples
+import soundfile
+
+
+class Audio(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split):
+ # temporarily set no augmentation.
+ self.augmentation = augmentation
+ self.directory_path = directory_path
+ self.split = split
+
+ def load_audio_wave(self, file_index, file_index_mix):
+ audio_path = os.path.join(file_index, 'audio.wav')
+ wav_data, sample_rate = soundfile.read(audio_path, dtype='int16')
+ assert wav_data.dtype == numpy.int16, 'Bad sample type: %r' % wav_data.dtype
+
+ if file_index_mix is not None:
+ audio_path2 = os.path.join(file_index_mix, 'audio.wav')
+ wav_data2, _ = soundfile.read(audio_path2, dtype='int16')
+ mix_lambda = numpy.random.beta(10, 10)
+ min_length = min(wav_data.shape[0], wav_data2.shape[0])
+ wav_data = wav_data[:min_length] * mix_lambda + wav_data2[:min_length] * (1-mix_lambda)
+
+ wav_data = self.augmentation(wav_data, sample_rate, self.split)
+ audio_log_mel = torch.cat([waveform_to_examples(wav_data[:, 0], sample_rate, True).detach(),
+ waveform_to_examples(wav_data[:, 1], sample_rate, True).detach()], dim=1)
+
+ # for the vgg preprocess, we will need 5 seconds audio log.
+ if audio_log_mel.shape[0] < 5:
+ audio_log_mel = torch.cat([audio_log_mel,
+ audio_log_mel[-1].unsqueeze(0).repeat(5-audio_log_mel.shape[0], 1, 1, 1)])
+ return audio_log_mel
+
+ def __len__(self):
+ return len(self.audio_list)
diff --git a/ref-avs.code/dataloader/audio/preprocess_vgg/mel_features.py b/ref-avs.code/dataloader/audio/preprocess_vgg/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/ref-avs.code/dataloader/audio/preprocess_vgg/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/ref-avs.code/dataloader/audio/preprocess_vgg/vggish_input.py b/ref-avs.code/dataloader/audio/preprocess_vgg/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..9d58e81bc70a85138980128e033f271998794605
--- /dev/null
+++ b/ref-avs.code/dataloader/audio/preprocess_vgg/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from dataloader.audio.preprocess_vgg import mel_features
+from dataloader.audio.preprocess_vgg import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/ref-avs.code/dataloader/audio/preprocess_vgg/vggish_params.py b/ref-avs.code/dataloader/audio/preprocess_vgg/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/ref-avs.code/dataloader/audio/preprocess_vgg/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/ref-avs.code/dataloader/dataset.py b/ref-avs.code/dataloader/dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1fd43f7e17e9978fc5d36ec172796badde6f7f1
--- /dev/null
+++ b/ref-avs.code/dataloader/dataset.py
@@ -0,0 +1,68 @@
+"""Ref-AVS dataset: frames, masks, log-mel audio, and referring expressions."""
+import os
+import numpy
+import torch
+import pandas
+
+from dataloader.visual.visual_dataset import Visual
+from dataloader.audio.audio_and_text_dataset import AudioAndText
+
+
+class AV(torch.utils.data.Dataset):
+ """Pairs ``Visual`` with ``AudioAndText`` via REFAVS ``metadata.csv``."""
+
+ def __init__(self, split, augmentation, param, root_path=''):
+ self.visual_dataset = Visual(
+ augmentation['visual'], root_path, split,
+ param.image_size, param.image_embedding_size,
+ )
+ self.audio_and_text_dataset = AudioAndText(augmentation['audio'], root_path, split)
+ self.split = split
+ self.file_path = self.organise_files(self.split, root_path, csv_name_='metadata.csv')
+
+ def __getitem__(self, index):
+ vid, fid, exp, _ = self.file_path[index]
+ frame, label, prompts = self.visual_dataset.load_data(vid, fid)
+ audio_mel, text_feature = self.audio_and_text_dataset.load_audio_wave(vid, exp)
+ return {
+ 'frame': frame,
+ 'label': label,
+ 'spectrogram': audio_mel,
+ 'text': text_feature,
+ 'id': self.file_path[index],
+ 'prompts': prompts,
+ }
+
+ def __len__(self):
+ return len(self.file_path)
+
+ @staticmethod
+ def organise_files(split_, root_path_, csv_name_):
+ total_files = pandas.read_csv(os.path.join(root_path_, csv_name_))
+ if split_ == 'test_n':
+ rows = zip(
+ total_files[total_files['split'] == split_]['uid'],
+ total_files[total_files['split'] == split_]['fid'],
+ total_files[total_files['split'] == split_]['exp'],
+ )
+ return [
+ [name.rsplit('_', 2)[0], object_id, expression, 0]
+ for name, object_id, expression in rows
+ ]
+
+ rows = zip(
+ total_files[total_files['split'] == split_]['vid'],
+ total_files[total_files['split'] == split_]['fid'],
+ total_files[total_files['split'] == split_]['exp'],
+ )
+ file_path = [[vid, fid, expression, 0] for vid, fid, expression in rows]
+
+ if split_ == 'train':
+ null_uids = list(total_files[total_files['split'] == split_]['uid'])
+ assert len(null_uids) == len(file_path)
+ for idx, row in enumerate(file_path):
+ if 'null_' in null_uids[idx]:
+ row[0] = null_uids[idx].rsplit('_', 2)[0]
+ row[-1] = null_uids[idx].rsplit('_', 2)[1]
+
+ return file_path
diff --git a/ref-avs.code/dataloader/sam2_dataset/__init__.py b/ref-avs.code/dataloader/sam2_dataset/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..5277f46157403e47fd830fc519144b97ef69d4ae
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/__init__.py
@@ -0,0 +1,5 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
diff --git a/ref-avs.code/dataloader/sam2_dataset/sam2_datasets.py b/ref-avs.code/dataloader/sam2_dataset/sam2_datasets.py
new file mode 100644
index 0000000000000000000000000000000000000000..6deda056bea555fc07ace455ccc62c606a7b81c9
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/sam2_datasets.py
@@ -0,0 +1,180 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+import math
+from typing import Callable, Iterable, List, Optional, Sequence
+
+import torch
+
+from torch.utils.data import BatchSampler, DataLoader, Dataset, IterableDataset, Subset
+
+from torch.utils.data.distributed import DistributedSampler
+
+
+class MixedDataLoader:
+ def __init__(self, dataloaders: List[DataLoader], mixing_prob: torch.FloatTensor):
+ """
+ Args:
+ dataloaders (List[DataLoader]): List of DataLoaders to be mixed.
+ mixing_prob (torch.FloatTensor): Probability of each dataloader to be sampled from
+
+ """
+ assert len(dataloaders) == mixing_prob.shape[0]
+ self.dataloaders = dataloaders
+ self.mixing_prob = mixing_prob
+ # Iterator state
+ self._iter_dls = None
+ self._iter_mixing_prob = None
+ self.random_generator = torch.Generator()
+
+ def __len__(self):
+ return sum([len(d) for d in self.dataloaders])
+
+ def __iter__(self):
+ # Synchronize dataloader seeds
+ self.random_generator.manual_seed(42)
+ self._iter_dls = [iter(loader) for loader in self.dataloaders]
+ self._iter_mixing_prob = self.mixing_prob.clone()
+ return self
+
+ def __next__(self):
+ """
+ Sample a dataloader to sample from based on mixing probabilities. If one of the dataloaders is exhausted, we continue sampling from the other loaders until all are exhausted.
+ """
+ if self._iter_dls is None:
+ raise TypeError(f"{type(self).__name__} object is not an iterator")
+
+ while self._iter_mixing_prob.any(): # at least one D-Loader with non-zero prob.
+ dataset_idx = self._iter_mixing_prob.multinomial(
+ 1, generator=self.random_generator
+ ).item()
+ try:
+ item = next(self._iter_dls[dataset_idx])
+ return item
+ except StopIteration:
+ # No more iterations for this dataset, set it's mixing probability to zero and try again.
+ self._iter_mixing_prob[dataset_idx] = 0
+ except Exception as e:
+ # log and raise any other unexpected error.
+ logging.error(e)
+ raise e
+
+ # Exhausted all iterators
+ raise StopIteration
+
+
+class TorchTrainMixedDataset:
+ def __init__(
+ self,
+ datasets: List[Dataset],
+ batch_sizes: List[int],
+ num_workers: int,
+ shuffle: bool,
+ pin_memory: bool,
+ drop_last: bool,
+ collate_fn: Optional[Callable] = None,
+ worker_init_fn: Optional[Callable] = None,
+ phases_per_epoch: int = 1,
+ dataset_prob: Optional[List[float]] = None,
+ ) -> None:
+ """
+ Args:
+ datasets (List[Dataset]): List of Datasets to be mixed.
+ batch_sizes (List[int]): Batch sizes for each dataset in the list.
+ num_workers (int): Number of workers per dataloader.
+ shuffle (bool): Whether or not to shuffle data.
+ pin_memory (bool): If True, use pinned memory when loading tensors from disk.
+ drop_last (bool): Whether or not to drop the last batch of data.
+ collate_fn (Callable): Function to merge a list of samples into a mini-batch.
+ worker_init_fn (Callable): Function to init each dataloader worker.
+ phases_per_epoch (int): Number of phases per epoch.
+ dataset_prob (List[float]): Probability of choosing the dataloader to sample from. Should sum to 1.0
+ """
+
+ self.datasets = datasets
+ self.batch_sizes = batch_sizes
+ self.num_workers = num_workers
+ self.shuffle = shuffle
+ self.pin_memory = pin_memory
+ self.drop_last = drop_last
+ self.collate_fn = collate_fn
+ self.worker_init_fn = worker_init_fn
+ assert len(self.datasets) > 0
+ for dataset in self.datasets:
+ assert not isinstance(dataset, IterableDataset), "Not supported"
+ # `RepeatFactorWrapper` requires calling set_epoch first to get its length
+ self._set_dataset_epoch(dataset, 0)
+ self.phases_per_epoch = phases_per_epoch
+ self.chunks = [None] * len(datasets)
+ if dataset_prob is None:
+ # If not provided, assign each dataset a probability proportional to its length.
+ dataset_lens = [
+ (math.floor(len(d) / bs) if drop_last else math.ceil(len(d) / bs))
+ for d, bs in zip(datasets, batch_sizes)
+ ]
+ total_len = sum(dataset_lens)
+ dataset_prob = torch.tensor([d_len / total_len for d_len in dataset_lens])
+ else:
+ assert len(dataset_prob) == len(datasets)
+ dataset_prob = torch.tensor(dataset_prob)
+
+ logging.info(f"Dataset mixing probabilities: {dataset_prob.tolist()}")
+ assert dataset_prob.sum().item() == 1.0, "Probabilities should sum to 1.0"
+ self.dataset_prob = dataset_prob
+
+ def _set_dataset_epoch(self, dataset, epoch: int) -> None:
+ if hasattr(dataset, "epoch"):
+ dataset.epoch = epoch
+ if hasattr(dataset, "set_epoch"):
+ dataset.set_epoch(epoch)
+
+ def get_loader(self, epoch) -> Iterable:
+ dataloaders = []
+ for d_idx, (dataset, batch_size) in enumerate(
+ zip(self.datasets, self.batch_sizes)
+ ):
+ if self.phases_per_epoch > 1:
+ # Major epoch that looops over entire dataset
+ # len(main_epoch) == phases_per_epoch * len(epoch)
+ main_epoch = epoch // self.phases_per_epoch
+
+ # Phase with in the main epoch
+ local_phase = epoch % self.phases_per_epoch
+
+ # Start of new data-epoch or job is resumed after preemtion.
+ if local_phase == 0 or self.chunks[d_idx] is None:
+ # set seed for dataset epoch
+ # If using RepeatFactorWrapper, this step currectly re-samples indices before chunking.
+ self._set_dataset_epoch(dataset, main_epoch)
+
+ # Separate random generator for subset sampling
+ g = torch.Generator()
+ g.manual_seed(main_epoch)
+ self.chunks[d_idx] = torch.chunk(
+ torch.randperm(len(dataset), generator=g),
+ self.phases_per_epoch,
+ )
+
+ dataset = Subset(dataset, self.chunks[d_idx][local_phase])
+ else:
+ self._set_dataset_epoch(dataset, epoch)
+
+ sampler = DistributedSampler(dataset, shuffle=self.shuffle)
+ sampler.set_epoch(epoch)
+
+ batch_sampler = BatchSampler(sampler, batch_size, drop_last=self.drop_last)
+ dataloaders.append(
+ DataLoader(
+ dataset,
+ num_workers=self.num_workers,
+ pin_memory=self.pin_memory,
+ batch_sampler=batch_sampler,
+ collate_fn=self.collate_fn,
+ worker_init_fn=self.worker_init_fn,
+ )
+ )
+ return MixedDataLoader(dataloaders, self.dataset_prob)
diff --git a/ref-avs.code/dataloader/sam2_dataset/transforms.py b/ref-avs.code/dataloader/sam2_dataset/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..7731e59ba98a5465493e3a9c4b785eb4d4420ca2
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/transforms.py
@@ -0,0 +1,528 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Transforms and data augmentation for both image + bbox.
+"""
+
+import logging
+
+import random
+from typing import Iterable
+
+import torch
+import torchvision.transforms as T
+import torchvision.transforms.functional as F
+import torchvision.transforms.v2.functional as Fv2
+from PIL import Image as PILImage
+# from docutils.nodes import label
+import numpy
+from torchvision.transforms import InterpolationMode
+
+# from utils.data_utils import VideoDatapoint
+
+
+def hflip(frames, labels, index):
+ # print(index)
+ # print(len(frames), frames[index].size, type(frames[index]))
+ # print(len(labels), labels[index].size, type(labels[index]))
+ frames[index] = F.hflip(frames[index])
+ labels[index] = F.hflip(labels[index])
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.hflip(obj.segment)
+
+ return frames, labels
+
+
+def get_size_with_aspect_ratio(image_size, size, max_size=None):
+ w, h = image_size
+ if max_size is not None:
+ min_original_size = float(min((w, h)))
+ max_original_size = float(max((w, h)))
+ if max_original_size / min_original_size * size > max_size:
+ size = max_size * min_original_size / max_original_size
+
+ if (w <= h and w == size) or (h <= w and h == size):
+ return (h, w)
+
+ if w < h:
+ ow = int(round(size))
+ oh = int(round(size * h / w))
+ else:
+ oh = int(round(size))
+ ow = int(round(size * w / h))
+
+ return (oh, ow)
+
+
+def resize(frames, labels, index, size, max_size=None, square=False, v2=False):
+ # size can be min_size (scalar) or (w, h) tuple
+ def get_size(image_size, size, max_size=None):
+ if isinstance(size, (list, tuple)):
+ return size[::-1]
+ else:
+ return get_size_with_aspect_ratio(image_size, size, max_size)
+
+ if square:
+ size = size, size
+ else:
+ raise NotImplementedError
+ # cur_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ # size = get_size(cur_size, size, max_size)
+
+ # old_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+ if v2:
+ frames[index].data = Fv2.resize(
+ frames[index].data, size, antialias=True
+ )
+ else:
+ frames[index] = F.resize(frames[index], size)
+ labels[index] = F.resize(labels[index], size)
+ # new_size = (
+ # frames[index].data.size()[-2:][::-1]
+ # if v2
+ # else frames[index].data.size
+ # )
+
+ # for obj in frames[index].objects:
+ # if obj.segment is not None:
+ # obj.segment = F.resize(obj.segment[None, None], size).squeeze()
+
+ # h, w = size
+ # frames[index].size = (h, w)
+ return frames, labels
+
+
+def pad(frames, index, padding, v2=False):
+ old_h, old_w = frames[index].size
+ h, w = old_h, old_w
+ if len(padding) == 2:
+ # assumes that we only pad on the bottom right corners
+ frames[index].data = F.pad(
+ frames[index].data, (0, 0, padding[0], padding[1])
+ )
+ h += padding[1]
+ w += padding[0]
+ else:
+ # left, top, right, bottom
+ frames[index].data = F.pad(
+ frames[index].data,
+ (padding[0], padding[1], padding[2], padding[3]),
+ )
+ h += padding[1] + padding[3]
+ w += padding[0] + padding[2]
+
+ frames[index].size = (h, w)
+
+ for obj in frames[index].objects:
+ if obj.segment is not None:
+ if v2:
+ if len(padding) == 2:
+ obj.segment = Fv2.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = Fv2.pad(obj.segment, tuple(padding))
+ else:
+ if len(padding) == 2:
+ obj.segment = F.pad(obj.segment, (0, 0, padding[0], padding[1]))
+ else:
+ obj.segment = F.pad(obj.segment, tuple(padding))
+ return frames
+
+
+class RandomHorizontalFlip:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for i in range(len(frames)):
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+ for i in range(len(frames)):
+ if random.random() < self.p:
+ frames, labels = hflip(frames, labels, i)
+ return frames, labels
+
+
+class RandomResizeAPI:
+ def __init__(
+ self, sizes, consistent_transform, max_size=None, square=False, v2=False
+ ):
+ if isinstance(sizes, int):
+ sizes = (sizes,)
+ assert isinstance(sizes, Iterable)
+ self.sizes = list(sizes)
+ self.max_size = max_size
+ self.square = square
+ self.consistent_transform = consistent_transform
+ self.v2 = v2
+
+ def __call__(self, frames, labels):
+ if self.consistent_transform:
+ size = random.choice(self.sizes)
+ for i in range(len(frames)):
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+ for i in range(len(frames)):
+ size = random.choice(self.sizes)
+ frames, labels = resize(
+ frames, labels, i, size, self.max_size, square=self.square, v2=self.v2
+ )
+ return frames, labels
+
+
+class ToTensorAPI:
+ def __init__(self, v2=False):
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ if self.v2:
+ raise NotImplementedError
+ # frames[img_idx] = Fv2.to_tensor(frames[img_idx])
+ else:
+ frames[img_idx] = F.to_tensor(frames[img_idx])
+ labels[img_idx] = torch.tensor(numpy.array(labels[img_idx]), dtype=torch.float)
+ return frames, labels
+
+
+class NormalizeAPI:
+ def __init__(self, mean, std, v2=False):
+ self.mean = mean
+ self.std = std
+ self.v2 = v2
+
+ def __call__(self, frames, labels, **kwargs):
+ for img_idx in range(len(frames)):
+ # if self.v2:
+ # img.data = Fv2.convert_image_dtype(img.data, torch.float32)
+ # img.data = Fv2.normalize(img.data, mean=self.mean, std=self.std)
+ # else:
+ frames[img_idx] = F.normalize(frames[img_idx], mean=self.mean, std=self.std)
+
+ return frames, labels
+
+'''
+
+
+
+
+
+
+
+
+'''
+class ComposeAPI:
+ def __init__(self, transforms):
+ self.transforms = transforms
+
+ def __call__(self, frames, labels, **kwargs):
+ for t in self.transforms:
+ frames, labels = t(frames, labels, **kwargs)
+ return frames, labels
+
+ def __repr__(self):
+ format_string = self.__class__.__name__ + "("
+ for t in self.transforms:
+ format_string += "\n"
+ format_string += " {0}".format(t)
+ format_string += "\n)"
+ return format_string
+
+
+class RandomGrayscale:
+ def __init__(self, consistent_transform, p=0.5):
+ self.p = p
+ self.consistent_transform = consistent_transform
+ self.Grayscale = T.Grayscale(num_output_channels=3)
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ if random.random() < self.p:
+ for img_idx in range(len(frames)):
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+ for img_idx in range(len(frames)):
+ if random.random() < self.p:
+ frames[img_idx] = self.Grayscale(frames[img_idx])
+ return frames, labels
+
+
+class ColorJitter:
+ def __init__(self, consistent_transform, brightness, contrast, saturation, hue):
+ self.consistent_transform = consistent_transform
+ self.brightness = (
+ brightness
+ if isinstance(brightness, list)
+ else [max(0, 1 - brightness), 1 + brightness]
+ )
+ self.contrast = (
+ contrast
+ if isinstance(contrast, list)
+ else [max(0, 1 - contrast), 1 + contrast]
+ )
+ self.saturation = (
+ saturation
+ if isinstance(saturation, list)
+ else [max(0, 1 - saturation), 1 + saturation]
+ )
+ self.hue = hue if isinstance(hue, list) or hue is None else ([-hue, hue])
+
+ def __call__(self, frames, labels, **kwargs):
+ if self.consistent_transform:
+ # Create a color jitter transformation params
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for img in frames:
+ if not self.consistent_transform:
+ (
+ fn_idx,
+ brightness_factor,
+ contrast_factor,
+ saturation_factor,
+ hue_factor,
+ ) = T.ColorJitter.get_params(
+ self.brightness, self.contrast, self.saturation, self.hue
+ )
+ for fn_id in fn_idx:
+ if fn_id == 0 and brightness_factor is not None:
+ img = F.adjust_brightness(img, brightness_factor)
+ elif fn_id == 1 and contrast_factor is not None:
+ img = F.adjust_contrast(img, contrast_factor)
+ elif fn_id == 2 and saturation_factor is not None:
+ img = F.adjust_saturation(img, saturation_factor)
+ elif fn_id == 3 and hue_factor is not None:
+ img = F.adjust_hue(img, hue_factor)
+ return frames, labels
+
+
+class RandomAffine:
+ def __init__(
+ self,
+ degrees,
+ consistent_transform,
+ scale=None,
+ translate=None,
+ shear=None,
+ image_mean=(123, 116, 103),
+ label_fill_value=0.,
+ log_warning=True,
+ num_tentatives=1,
+ image_interpolation="bicubic",
+ ):
+ """
+ The mask is required for this transform.
+ if consistent_transform if True, then the same random affine is applied to all frames and masks.
+ """
+ self.degrees = degrees if isinstance(degrees, list) else ([-degrees, degrees])
+ self.scale = scale
+ self.shear = (
+ shear if isinstance(shear, list) else ([-shear, shear] if shear else None)
+ )
+ self.translate = translate
+ self.fill_img = image_mean
+ self.fill_label = label_fill_value
+ self.consistent_transform = consistent_transform
+ self.log_warning = log_warning
+ self.num_tentatives = num_tentatives
+ assert self.num_tentatives >= 1., 'must have at least one if we utilise the augmentation.'
+
+ if image_interpolation == "bicubic":
+ self.image_interpolation = InterpolationMode.BICUBIC
+ elif image_interpolation == "bilinear":
+ self.image_interpolation = InterpolationMode.BILINEAR
+ else:
+ raise NotImplementedError
+
+ def __call__(self, frames, labels, **kwargs):
+ for _tentative in range(self.num_tentatives):
+ res_img, res_labels = self.transform_frames(frames, labels)
+ # if res is not None:
+ return res_img, res_labels
+
+ # raise NotImplementedError
+ # if self.log_warning:
+ # logging.warning(
+ # f"Skip RandomAffine for zero-area mask in first frame after {self.num_tentatives} tentatives"
+ # )
+ # return frames
+
+ def transform_frames(self, frames, labels):
+ _, height, width = F.get_dimensions(frames[0])
+ img_size = [width, height]
+
+ if self.consistent_transform:
+ # Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+
+ for img_idx, img in enumerate(frames):
+ if not self.consistent_transform:
+ # if not consistent we create a new affine params for every frame&mask pair Create a random affine transformation
+ affine_params = T.RandomAffine.get_params(
+ degrees=self.degrees,
+ translate=self.translate,
+ scale_ranges=self.scale,
+ shears=self.shear,
+ img_size=img_size,
+ )
+ frames[img_idx] = F.affine(
+ img,
+ *affine_params,
+ interpolation=self.image_interpolation,
+ fill=self.fill_img,
+ )
+ labels[img_idx] = F.affine(
+ labels[img_idx],
+ *affine_params,
+ # default: interpolation='nearest',
+ fill=self.fill_label,
+ )
+ return frames, labels
+
+
+'''
+def random_mosaic_frame(
+ datapoint,
+ index,
+ grid_h,
+ grid_w,
+ target_grid_y,
+ target_grid_x,
+ should_hflip,
+):
+ # Step 1: downsize the images and paste them into a mosaic
+ image_data = datapoint.frames[index].data
+ is_pil = isinstance(image_data, PILImage.Image)
+ if is_pil:
+ H_im = image_data.height
+ W_im = image_data.width
+ image_data_output = PILImage.new("RGB", (W_im, H_im))
+ else:
+ H_im = image_data.size(-2)
+ W_im = image_data.size(-1)
+ image_data_output = torch.zeros_like(image_data)
+
+ downsize_cache = {}
+ for grid_y in range(grid_h):
+ for grid_x in range(grid_w):
+ y_offset_b = grid_y * H_im // grid_h
+ x_offset_b = grid_x * W_im // grid_w
+ y_offset_e = (grid_y + 1) * H_im // grid_h
+ x_offset_e = (grid_x + 1) * W_im // grid_w
+ H_im_downsize = y_offset_e - y_offset_b
+ W_im_downsize = x_offset_e - x_offset_b
+
+ if (H_im_downsize, W_im_downsize) in downsize_cache:
+ image_data_downsize = downsize_cache[(H_im_downsize, W_im_downsize)]
+ else:
+ image_data_downsize = F.resize(
+ image_data,
+ size=(H_im_downsize, W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )
+ downsize_cache[(H_im_downsize, W_im_downsize)] = image_data_downsize
+ if should_hflip[grid_y, grid_x].item():
+ image_data_downsize = F.hflip(image_data_downsize)
+
+ if is_pil:
+ image_data_output.paste(image_data_downsize, (x_offset_b, y_offset_b))
+ else:
+ image_data_output[:, y_offset_b:y_offset_e, x_offset_b:x_offset_e] = (
+ image_data_downsize
+ )
+
+ datapoint.frames[index].data = image_data_output
+
+ # Step 2: downsize the masks and paste them into the target grid of the mosaic
+ for obj in datapoint.frames[index].objects:
+ if obj.segment is None:
+ continue
+ assert obj.segment.shape == (H_im, W_im) and obj.segment.dtype == torch.uint8
+ segment_output = torch.zeros_like(obj.segment)
+
+ target_y_offset_b = target_grid_y * H_im // grid_h
+ target_x_offset_b = target_grid_x * W_im // grid_w
+ target_y_offset_e = (target_grid_y + 1) * H_im // grid_h
+ target_x_offset_e = (target_grid_x + 1) * W_im // grid_w
+ target_H_im_downsize = target_y_offset_e - target_y_offset_b
+ target_W_im_downsize = target_x_offset_e - target_x_offset_b
+
+ segment_downsize = F.resize(
+ obj.segment[None, None],
+ size=(target_H_im_downsize, target_W_im_downsize),
+ interpolation=InterpolationMode.BILINEAR,
+ antialias=True, # antialiasing for downsizing
+ )[0, 0]
+ if should_hflip[target_grid_y, target_grid_x].item():
+ segment_downsize = F.hflip(segment_downsize[None, None])[0, 0]
+
+ segment_output[
+ target_y_offset_b:target_y_offset_e, target_x_offset_b:target_x_offset_e
+ ] = segment_downsize
+ obj.segment = segment_output
+
+ return datapoint
+
+
+class RandomMosaicVideoAPI:
+ def __init__(self, prob=0.15, grid_h=2, grid_w=2, use_random_hflip=False):
+ self.prob = prob
+ self.grid_h = grid_h
+ self.grid_w = grid_w
+ self.use_random_hflip = use_random_hflip
+
+ def __call__(self, frames, **kwargs):
+ if random.random() > self.prob:
+ return datapoint
+
+ # select a random location to place the target mask in the mosaic
+ target_grid_y = random.randint(0, self.grid_h - 1)
+ target_grid_x = random.randint(0, self.grid_w - 1)
+ # whether to flip each grid in the mosaic horizontally
+ if self.use_random_hflip:
+ should_hflip = torch.rand(self.grid_h, self.grid_w) < 0.5
+ else:
+ should_hflip = torch.zeros(self.grid_h, self.grid_w, dtype=torch.bool)
+ for i in range(len(datapoint.frames)):
+ datapoint = random_mosaic_frame(
+ datapoint,
+ i,
+ grid_h=self.grid_h,
+ grid_w=self.grid_w,
+ target_grid_y=target_grid_y,
+ target_grid_x=target_grid_x,
+ should_hflip=should_hflip,
+ )
+
+ return datapoint
+'''
\ No newline at end of file
diff --git a/ref-avs.code/dataloader/sam2_dataset/utils.py b/ref-avs.code/dataloader/sam2_dataset/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..a658df234c3dcf74404f844b5be793b0545485ed
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/utils.py
@@ -0,0 +1,104 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""Some wrapping utilities extended from pytorch's to support repeat factor sampling in particular"""
+
+from typing import Iterable
+
+import torch
+from torch.utils.data import (
+ ConcatDataset as TorchConcatDataset,
+ Dataset,
+ Subset as TorchSubset,
+)
+
+
+class ConcatDataset(TorchConcatDataset):
+ def __init__(self, datasets: Iterable[Dataset]) -> None:
+ super(ConcatDataset, self).__init__(datasets)
+
+ self.repeat_factors = torch.cat([d.repeat_factors for d in datasets])
+
+ def set_epoch(self, epoch: int):
+ for dataset in self.datasets:
+ if hasattr(dataset, "epoch"):
+ dataset.epoch = epoch
+ if hasattr(dataset, "set_epoch"):
+ dataset.set_epoch(epoch)
+
+
+class Subset(TorchSubset):
+ def __init__(self, dataset, indices) -> None:
+ super(Subset, self).__init__(dataset, indices)
+
+ self.repeat_factors = dataset.repeat_factors[indices]
+ assert len(indices) == len(self.repeat_factors)
+
+
+# Adapted from Detectron2
+class RepeatFactorWrapper(Dataset):
+ """
+ Thin wrapper around a dataset to implement repeat factor sampling.
+ The underlying dataset must have a repeat_factors member to indicate the per-image factor.
+ Set it to uniformly ones to disable repeat factor sampling
+ """
+
+ def __init__(self, dataset, seed: int = 0):
+ self.dataset = dataset
+ self.epoch_ids = None
+ self._seed = seed
+
+ # Split into whole number (_int_part) and fractional (_frac_part) parts.
+ self._int_part = torch.trunc(dataset.repeat_factors)
+ self._frac_part = dataset.repeat_factors - self._int_part
+
+ def _get_epoch_indices(self, generator):
+ """
+ Create a list of dataset indices (with repeats) to use for one epoch.
+
+ Args:
+ generator (torch.Generator): pseudo random number generator used for
+ stochastic rounding.
+
+ Returns:
+ torch.Tensor: list of dataset indices to use in one epoch. Each index
+ is repeated based on its calculated repeat factor.
+ """
+ # Since repeat factors are fractional, we use stochastic rounding so
+ # that the target repeat factor is achieved in expectation over the
+ # course of training
+ rands = torch.rand(len(self._frac_part), generator=generator)
+ rep_factors = self._int_part + (rands < self._frac_part).float()
+ # Construct a list of indices in which we repeat images as specified
+ indices = []
+ for dataset_index, rep_factor in enumerate(rep_factors):
+ indices.extend([dataset_index] * int(rep_factor.item()))
+ return torch.tensor(indices, dtype=torch.int64)
+
+ def __len__(self):
+ if self.epoch_ids is None:
+ # Here we raise an error instead of returning original len(self.dataset) avoid
+ # accidentally using unwrapped length. Otherwise it's error-prone since the
+ # length changes to `len(self.epoch_ids)`changes after set_epoch is called.
+ raise RuntimeError("please call set_epoch first to get wrapped length")
+ # return len(self.dataset)
+
+ return len(self.epoch_ids)
+
+ def set_epoch(self, epoch: int):
+ g = torch.Generator()
+ g.manual_seed(self._seed + epoch)
+ self.epoch_ids = self._get_epoch_indices(g)
+ if hasattr(self.dataset, "set_epoch"):
+ self.dataset.set_epoch(epoch)
+
+ def __getitem__(self, idx):
+ if self.epoch_ids is None:
+ raise RuntimeError(
+ "Repeat ids haven't been computed. Did you forget to call set_epoch?"
+ )
+
+ return self.dataset[self.epoch_ids[idx]]
diff --git a/ref-avs.code/dataloader/sam2_dataset/vos_dataset.py b/ref-avs.code/dataloader/sam2_dataset/vos_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..d1e9d39fe184cf0d86fbf22b5385dc05988cab83
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/vos_dataset.py
@@ -0,0 +1,162 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+import random
+from copy import deepcopy
+
+import numpy as np
+
+import torch
+from iopath.common.file_io import g_pathmgr
+from PIL import Image as PILImage
+from torchvision.datasets.vision import VisionDataset
+
+from training.dataset.vos_raw_dataset import VOSRawDataset
+from training.dataset.vos_sampler import VOSSampler
+from training.dataset.vos_segment_loader import JSONSegmentLoader
+
+from training.utils.data_utils import Frame, Object, VideoDatapoint
+
+MAX_RETRIES = 100
+
+
+class VOSDataset(VisionDataset):
+ def __init__(
+ self,
+ transforms,
+ training: bool,
+ video_dataset: VOSRawDataset,
+ sampler: VOSSampler,
+ multiplier: int,
+ always_target=True,
+ target_segments_available=True,
+ ):
+ self._transforms = transforms
+ self.training = training
+ self.video_dataset = video_dataset
+ self.sampler = sampler
+
+ self.repeat_factors = torch.ones(len(self.video_dataset), dtype=torch.float32)
+ self.repeat_factors *= multiplier
+ print(f"Raw dataset length = {len(self.video_dataset)}")
+
+ self.curr_epoch = 0 # Used in case data loader behavior changes across epochs
+ self.always_target = always_target
+ self.target_segments_available = target_segments_available
+
+ def _get_datapoint(self, idx):
+
+ for retry in range(MAX_RETRIES):
+ try:
+ if isinstance(idx, torch.Tensor):
+ idx = idx.item()
+ # sample a video
+ video, segment_loader = self.video_dataset.get_video(idx)
+ # sample frames and object indices to be used in a datapoint
+ sampled_frms_and_objs = self.sampler.sample(
+ video, segment_loader, epoch=self.curr_epoch
+ )
+ break # Succesfully loaded video
+ except Exception as e:
+ if self.training:
+ logging.warning(
+ f"Loading failed (id={idx}); Retry {retry} with exception: {e}"
+ )
+ idx = random.randrange(0, len(self.video_dataset))
+ else:
+ # Shouldn't fail to load a val video
+ raise e
+
+ datapoint = self.construct(video, sampled_frms_and_objs, segment_loader)
+ for transform in self._transforms:
+ datapoint = transform(datapoint, epoch=self.curr_epoch)
+ return datapoint
+
+ def construct(self, video, sampled_frms_and_objs, segment_loader):
+ """
+ Constructs a VideoDatapoint sample to pass to transforms
+ """
+ sampled_frames = sampled_frms_and_objs.frames
+ sampled_object_ids = sampled_frms_and_objs.object_ids
+
+ images = []
+ rgb_images = load_images(sampled_frames)
+ # Iterate over the sampled frames and store their rgb data and object data (bbox, segment)
+ for frame_idx, frame in enumerate(sampled_frames):
+ w, h = rgb_images[frame_idx].size
+ images.append(
+ Frame(
+ data=rgb_images[frame_idx],
+ objects=[],
+ )
+ )
+ # We load the gt segments associated with the current frame
+ if isinstance(segment_loader, JSONSegmentLoader):
+ segments = segment_loader.load(
+ frame.frame_idx, obj_ids=sampled_object_ids
+ )
+ else:
+ segments = segment_loader.load(frame.frame_idx)
+ for obj_id in sampled_object_ids:
+ # Extract the segment
+ if obj_id in segments:
+ assert (
+ segments[obj_id] is not None
+ ), "None targets are not supported"
+ # segment is uint8 and remains uint8 throughout the transforms
+ segment = segments[obj_id].to(torch.uint8)
+ else:
+ # There is no target, we either use a zero mask target or drop this object
+ if not self.always_target:
+ continue
+ segment = torch.zeros(h, w, dtype=torch.uint8)
+
+ images[frame_idx].objects.append(
+ Object(
+ object_id=obj_id,
+ frame_index=frame.frame_idx,
+ segment=segment,
+ )
+ )
+ return VideoDatapoint(
+ frames=images,
+ video_id=video.video_id,
+ size=(h, w),
+ )
+
+ def __getitem__(self, idx):
+ return self._get_datapoint(idx)
+
+ def __len__(self):
+ return len(self.video_dataset)
+
+
+def load_images(frames):
+ all_images = []
+ cache = {}
+ for frame in frames:
+ if frame.data is None:
+ # Load the frame rgb data from file
+ path = frame.image_path
+ if path in cache:
+ all_images.append(deepcopy(all_images[cache[path]]))
+ continue
+ with g_pathmgr.open(path, "rb") as fopen:
+ all_images.append(PILImage.open(fopen).convert("RGB"))
+ cache[path] = len(all_images) - 1
+ else:
+ # The frame rgb data has already been loaded
+ # Convert it to a PILImage
+ all_images.append(tensor_2_PIL(frame.data))
+
+ return all_images
+
+
+def tensor_2_PIL(data: torch.Tensor) -> PILImage.Image:
+ data = data.cpu().numpy().transpose((1, 2, 0)) * 255.0
+ data = data.astype(np.uint8)
+ return PILImage.fromarray(data)
diff --git a/ref-avs.code/dataloader/sam2_dataset/vos_raw_dataset.py b/ref-avs.code/dataloader/sam2_dataset/vos_raw_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..44fe893717a3e3bd85b043baa33d349b52b4b34e
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/vos_raw_dataset.py
@@ -0,0 +1,308 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import glob
+import logging
+import os
+from dataclasses import dataclass
+
+from typing import List, Optional
+
+import pandas as pd
+
+import torch
+
+from iopath.common.file_io import g_pathmgr
+
+from omegaconf.listconfig import ListConfig
+
+from training.dataset.vos_segment_loader import (
+ JSONSegmentLoader,
+ MultiplePNGSegmentLoader,
+ PalettisedPNGSegmentLoader,
+ SA1BSegmentLoader,
+)
+
+
+@dataclass
+class VOSFrame:
+ frame_idx: int
+ image_path: str
+ data: Optional[torch.Tensor] = None
+ is_conditioning_only: Optional[bool] = False
+
+
+@dataclass
+class VOSVideo:
+ video_name: str
+ video_id: int
+ frames: List[VOSFrame]
+
+ def __len__(self):
+ return len(self.frames)
+
+
+class VOSRawDataset:
+ def __init__(self):
+ pass
+
+ def get_video(self, idx):
+ raise NotImplementedError()
+
+
+class PNGRawDataset(VOSRawDataset):
+ def __init__(
+ self,
+ img_folder,
+ gt_folder,
+ file_list_txt=None,
+ excluded_videos_list_txt=None,
+ sample_rate=1,
+ is_palette=True,
+ single_object_mode=False,
+ truncate_video=-1,
+ frames_sampling_mult=False,
+ ):
+ self.img_folder = img_folder
+ self.gt_folder = gt_folder
+ self.sample_rate = sample_rate
+ self.is_palette = is_palette
+ self.single_object_mode = single_object_mode
+ self.truncate_video = truncate_video
+
+ # Read the subset defined in file_list_txt
+ if file_list_txt is not None:
+ with g_pathmgr.open(file_list_txt, "r") as f:
+ subset = [os.path.splitext(line.strip())[0] for line in f]
+ else:
+ subset = os.listdir(self.img_folder)
+
+ # Read and process excluded files if provided
+ if excluded_videos_list_txt is not None:
+ with g_pathmgr.open(excluded_videos_list_txt, "r") as f:
+ excluded_files = [os.path.splitext(line.strip())[0] for line in f]
+ else:
+ excluded_files = []
+
+ # Check if it's not in excluded_files
+ self.video_names = sorted(
+ [video_name for video_name in subset if video_name not in excluded_files]
+ )
+
+ if self.single_object_mode:
+ # single object mode
+ self.video_names = sorted(
+ [
+ os.path.join(video_name, obj)
+ for video_name in self.video_names
+ for obj in os.listdir(os.path.join(self.gt_folder, video_name))
+ ]
+ )
+
+ if frames_sampling_mult:
+ video_names_mult = []
+ for video_name in self.video_names:
+ num_frames = len(os.listdir(os.path.join(self.img_folder, video_name)))
+ video_names_mult.extend([video_name] * num_frames)
+ self.video_names = video_names_mult
+
+ def get_video(self, idx):
+ """
+ Given a VOSVideo object, return the mask tensors.
+ """
+ video_name = self.video_names[idx]
+
+ if self.single_object_mode:
+ video_frame_root = os.path.join(
+ self.img_folder, os.path.dirname(video_name)
+ )
+ else:
+ video_frame_root = os.path.join(self.img_folder, video_name)
+
+ video_mask_root = os.path.join(self.gt_folder, video_name)
+
+ if self.is_palette:
+ segment_loader = PalettisedPNGSegmentLoader(video_mask_root)
+ else:
+ segment_loader = MultiplePNGSegmentLoader(
+ video_mask_root, self.single_object_mode
+ )
+
+ all_frames = sorted(glob.glob(os.path.join(video_frame_root, "*.jpg")))
+ if self.truncate_video > 0:
+ all_frames = all_frames[: self.truncate_video]
+ frames = []
+ for _, fpath in enumerate(all_frames[:: self.sample_rate]):
+ fid = int(os.path.basename(fpath).split(".")[0])
+ frames.append(VOSFrame(fid, image_path=fpath))
+ video = VOSVideo(video_name, idx, frames)
+ return video, segment_loader
+
+ def __len__(self):
+ return len(self.video_names)
+
+
+class SA1BRawDataset(VOSRawDataset):
+ def __init__(
+ self,
+ img_folder,
+ gt_folder,
+ file_list_txt=None,
+ excluded_videos_list_txt=None,
+ num_frames=1,
+ mask_area_frac_thresh=1.1, # no filtering by default
+ uncertain_iou=-1, # no filtering by default
+ ):
+ self.img_folder = img_folder
+ self.gt_folder = gt_folder
+ self.num_frames = num_frames
+ self.mask_area_frac_thresh = mask_area_frac_thresh
+ self.uncertain_iou = uncertain_iou # stability score
+
+ # Read the subset defined in file_list_txt
+ if file_list_txt is not None:
+ with g_pathmgr.open(file_list_txt, "r") as f:
+ subset = [os.path.splitext(line.strip())[0] for line in f]
+ else:
+ subset = os.listdir(self.img_folder)
+ subset = [
+ path.split(".")[0] for path in subset if path.endswith(".jpg")
+ ] # remove extension
+
+ # Read and process excluded files if provided
+ if excluded_videos_list_txt is not None:
+ with g_pathmgr.open(excluded_videos_list_txt, "r") as f:
+ excluded_files = [os.path.splitext(line.strip())[0] for line in f]
+ else:
+ excluded_files = []
+
+ # Check if it's not in excluded_files and it exists
+ self.video_names = [
+ video_name for video_name in subset if video_name not in excluded_files
+ ]
+
+ def get_video(self, idx):
+ """
+ Given a VOSVideo object, return the mask tensors.
+ """
+ video_name = self.video_names[idx]
+
+ video_frame_path = os.path.join(self.img_folder, video_name + ".jpg")
+ video_mask_path = os.path.join(self.gt_folder, video_name + ".json")
+
+ segment_loader = SA1BSegmentLoader(
+ video_mask_path,
+ mask_area_frac_thresh=self.mask_area_frac_thresh,
+ video_frame_path=video_frame_path,
+ uncertain_iou=self.uncertain_iou,
+ )
+
+ frames = []
+ for frame_idx in range(self.num_frames):
+ frames.append(VOSFrame(frame_idx, image_path=video_frame_path))
+ video_name = video_name.split("_")[-1] # filename is sa_{int}
+ # video id needs to be image_id to be able to load correct annotation file during eval
+ video = VOSVideo(video_name, int(video_name), frames)
+ return video, segment_loader
+
+ def __len__(self):
+ return len(self.video_names)
+
+
+class JSONRawDataset(VOSRawDataset):
+ """
+ Dataset where the annotation in the format of SA-V json files
+ """
+
+ def __init__(
+ self,
+ img_folder,
+ gt_folder,
+ file_list_txt=None,
+ excluded_videos_list_txt=None,
+ sample_rate=1,
+ rm_unannotated=True,
+ ann_every=1,
+ frames_fps=24,
+ ):
+ self.gt_folder = gt_folder
+ self.img_folder = img_folder
+ self.sample_rate = sample_rate
+ self.rm_unannotated = rm_unannotated
+ self.ann_every = ann_every
+ self.frames_fps = frames_fps
+
+ # Read and process excluded files if provided
+ excluded_files = []
+ if excluded_videos_list_txt is not None:
+ if isinstance(excluded_videos_list_txt, str):
+ excluded_videos_lists = [excluded_videos_list_txt]
+ elif isinstance(excluded_videos_list_txt, ListConfig):
+ excluded_videos_lists = list(excluded_videos_list_txt)
+ else:
+ raise NotImplementedError
+
+ for excluded_videos_list_txt in excluded_videos_lists:
+ with open(excluded_videos_list_txt, "r") as f:
+ excluded_files.extend(
+ [os.path.splitext(line.strip())[0] for line in f]
+ )
+ excluded_files = set(excluded_files)
+
+ # Read the subset defined in file_list_txt
+ if file_list_txt is not None:
+ with g_pathmgr.open(file_list_txt, "r") as f:
+ subset = [os.path.splitext(line.strip())[0] for line in f]
+ else:
+ subset = os.listdir(self.img_folder)
+
+ self.video_names = sorted(
+ [video_name for video_name in subset if video_name not in excluded_files]
+ )
+
+ def get_video(self, video_idx):
+ """
+ Given a VOSVideo object, return the mask tensors.
+ """
+ video_name = self.video_names[video_idx]
+ video_json_path = os.path.join(self.gt_folder, video_name + "_manual.json")
+ segment_loader = JSONSegmentLoader(
+ video_json_path=video_json_path,
+ ann_every=self.ann_every,
+ frames_fps=self.frames_fps,
+ )
+
+ frame_ids = [
+ int(os.path.splitext(frame_name)[0])
+ for frame_name in sorted(
+ os.listdir(os.path.join(self.img_folder, video_name))
+ )
+ ]
+
+ frames = [
+ VOSFrame(
+ frame_id,
+ image_path=os.path.join(
+ self.img_folder, f"{video_name}/%05d.jpg" % (frame_id)
+ ),
+ )
+ for frame_id in frame_ids[:: self.sample_rate]
+ ]
+
+ if self.rm_unannotated:
+ # Eliminate the frames that have not been annotated
+ valid_frame_ids = [
+ i * segment_loader.ann_every
+ for i, annot in enumerate(segment_loader.frame_annots)
+ if annot is not None and None not in annot
+ ]
+ frames = [f for f in frames if f.frame_idx in valid_frame_ids]
+
+ video = VOSVideo(video_name, video_idx, frames)
+ return video, segment_loader
+
+ def __len__(self):
+ return len(self.video_names)
diff --git a/ref-avs.code/dataloader/sam2_dataset/vos_sampler.py b/ref-avs.code/dataloader/sam2_dataset/vos_sampler.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ad84b759d0f66191a84017d17140d128b634ca0
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/vos_sampler.py
@@ -0,0 +1,105 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import random
+from dataclasses import dataclass
+from typing import List
+
+from training.dataset.vos_segment_loader import LazySegments
+
+MAX_RETRIES = 1000
+
+
+@dataclass
+class SampledFramesAndObjects:
+ frames: List[int]
+ object_ids: List[int]
+
+
+class VOSSampler:
+ def __init__(self, sort_frames=True):
+ # frames are ordered by frame id when sort_frames is True
+ self.sort_frames = sort_frames
+
+ def sample(self, video):
+ raise NotImplementedError()
+
+
+class RandomUniformSampler(VOSSampler):
+ def __init__(
+ self,
+ num_frames,
+ max_num_objects,
+ reverse_time_prob=0.0,
+ ):
+ self.num_frames = num_frames
+ self.max_num_objects = max_num_objects
+ self.reverse_time_prob = reverse_time_prob
+
+ def sample(self, video, segment_loader, epoch=None):
+
+ for retry in range(MAX_RETRIES):
+ if len(video.frames) < self.num_frames:
+ raise Exception(
+ f"Cannot sample {self.num_frames} frames from video {video.video_name} as it only has {len(video.frames)} annotated frames."
+ )
+ start = random.randrange(0, len(video.frames) - self.num_frames + 1)
+ frames = [video.frames[start + step] for step in range(self.num_frames)]
+ if random.uniform(0, 1) < self.reverse_time_prob:
+ # Reverse time
+ frames = frames[::-1]
+
+ # Get first frame object ids
+ visible_object_ids = []
+ loaded_segms = segment_loader.load(frames[0].frame_idx)
+ if isinstance(loaded_segms, LazySegments):
+ # LazySegments for SA1BRawDataset
+ visible_object_ids = list(loaded_segms.keys())
+ else:
+ for object_id, segment in segment_loader.load(
+ frames[0].frame_idx
+ ).items():
+ if segment.sum():
+ visible_object_ids.append(object_id)
+
+ # First frame needs to have at least a target to track
+ if len(visible_object_ids) > 0:
+ break
+ if retry >= MAX_RETRIES - 1:
+ raise Exception("No visible objects")
+
+ object_ids = random.sample(
+ visible_object_ids,
+ min(len(visible_object_ids), self.max_num_objects),
+ )
+ return SampledFramesAndObjects(frames=frames, object_ids=object_ids)
+
+
+class EvalSampler(VOSSampler):
+ """
+ VOS Sampler for evaluation: sampling all the frames and all the objects in a video
+ """
+
+ def __init__(
+ self,
+ ):
+ super().__init__()
+
+ def sample(self, video, segment_loader, epoch=None):
+ """
+ Sampling all the frames and all the objects
+ """
+ if self.sort_frames:
+ # ordered by frame id
+ frames = sorted(video.frames, key=lambda x: x.frame_idx)
+ else:
+ # use the original order
+ frames = video.frames
+ object_ids = segment_loader.load(frames[0].frame_idx).keys()
+ if len(object_ids) == 0:
+ raise Exception("First frame of the video has no objects")
+
+ return SampledFramesAndObjects(frames=frames, object_ids=object_ids)
diff --git a/ref-avs.code/dataloader/sam2_dataset/vos_segment_loader.py b/ref-avs.code/dataloader/sam2_dataset/vos_segment_loader.py
new file mode 100644
index 0000000000000000000000000000000000000000..27e17010cc8b010e103c3ac399689d80da7cfde9
--- /dev/null
+++ b/ref-avs.code/dataloader/sam2_dataset/vos_segment_loader.py
@@ -0,0 +1,300 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import glob
+import json
+import os
+
+import numpy as np
+import pandas as pd
+import torch
+
+from PIL import Image as PILImage
+
+try:
+ from pycocotools import mask as mask_utils
+except:
+ pass
+
+
+class JSONSegmentLoader:
+ def __init__(self, video_json_path, ann_every=1, frames_fps=24, valid_obj_ids=None):
+ # Annotations in the json are provided every ann_every th frame
+ self.ann_every = ann_every
+ # Ids of the objects to consider when sampling this video
+ self.valid_obj_ids = valid_obj_ids
+ with open(video_json_path, "r") as f:
+ data = json.load(f)
+ if isinstance(data, list):
+ self.frame_annots = data
+ elif isinstance(data, dict):
+ masklet_field_name = "masklet" if "masklet" in data else "masks"
+ self.frame_annots = data[masklet_field_name]
+ if "fps" in data:
+ if isinstance(data["fps"], list):
+ annotations_fps = int(data["fps"][0])
+ else:
+ annotations_fps = int(data["fps"])
+ assert frames_fps % annotations_fps == 0
+ self.ann_every = frames_fps // annotations_fps
+ else:
+ raise NotImplementedError
+
+ def load(self, frame_id, obj_ids=None):
+ assert frame_id % self.ann_every == 0
+ rle_mask = self.frame_annots[frame_id // self.ann_every]
+
+ valid_objs_ids = set(range(len(rle_mask)))
+ if self.valid_obj_ids is not None:
+ # Remove the masklets that have been filtered out for this video
+ valid_objs_ids &= set(self.valid_obj_ids)
+ if obj_ids is not None:
+ # Only keep the objects that have been sampled
+ valid_objs_ids &= set(obj_ids)
+ valid_objs_ids = sorted(list(valid_objs_ids))
+
+ # Construct rle_masks_filtered that only contains the rle masks we are interested in
+ id_2_idx = {}
+ rle_mask_filtered = []
+ for obj_id in valid_objs_ids:
+ if rle_mask[obj_id] is not None:
+ id_2_idx[obj_id] = len(rle_mask_filtered)
+ rle_mask_filtered.append(rle_mask[obj_id])
+ else:
+ id_2_idx[obj_id] = None
+
+ # Decode the masks
+ raw_segments = torch.from_numpy(mask_utils.decode(rle_mask_filtered)).permute(
+ 2, 0, 1
+ ) # (num_obj, h, w)
+ segments = {}
+ for obj_id in valid_objs_ids:
+ if id_2_idx[obj_id] is None:
+ segments[obj_id] = None
+ else:
+ idx = id_2_idx[obj_id]
+ segments[obj_id] = raw_segments[idx]
+ return segments
+
+ def get_valid_obj_frames_ids(self, num_frames_min=None):
+ # For each object, find all the frames with a valid (not None) mask
+ num_objects = len(self.frame_annots[0])
+
+ # The result dict associates each obj_id with the id of its valid frames
+ res = {obj_id: [] for obj_id in range(num_objects)}
+
+ for annot_idx, annot in enumerate(self.frame_annots):
+ for obj_id in range(num_objects):
+ if annot[obj_id] is not None:
+ res[obj_id].append(int(annot_idx * self.ann_every))
+
+ if num_frames_min is not None:
+ # Remove masklets that have less than num_frames_min valid masks
+ for obj_id, valid_frames in list(res.items()):
+ if len(valid_frames) < num_frames_min:
+ res.pop(obj_id)
+
+ return res
+
+
+class PalettisedPNGSegmentLoader:
+ def __init__(self, video_png_root):
+ """
+ SegmentLoader for datasets with masks stored as palettised PNGs.
+ video_png_root: the folder contains all the masks stored in png
+ """
+ self.video_png_root = video_png_root
+ # build a mapping from frame id to their PNG mask path
+ # note that in some datasets, the PNG paths could have more
+ # than 5 digits, e.g. "00000000.png" instead of "00000.png"
+ png_filenames = os.listdir(self.video_png_root)
+ self.frame_id_to_png_filename = {}
+ for filename in png_filenames:
+ frame_id, _ = os.path.splitext(filename)
+ self.frame_id_to_png_filename[int(frame_id)] = filename
+
+ def load(self, frame_id):
+ """
+ load the single palettised mask from the disk (path: f'{self.video_png_root}/{frame_id:05d}.png')
+ Args:
+ frame_id: int, define the mask path
+ Return:
+ binary_segments: dict
+ """
+ # check the path
+ mask_path = os.path.join(
+ self.video_png_root, self.frame_id_to_png_filename[frame_id]
+ )
+
+ # load the mask
+ masks = PILImage.open(mask_path).convert("P")
+ masks = np.array(masks)
+
+ object_id = pd.unique(masks.flatten())
+ object_id = object_id[object_id != 0] # remove background (0)
+
+ # convert into N binary segmentation masks
+ binary_segments = {}
+ for i in object_id:
+ bs = masks == i
+ binary_segments[i] = torch.from_numpy(bs)
+
+ return binary_segments
+
+ def __len__(self):
+ return
+
+
+class MultiplePNGSegmentLoader:
+ def __init__(self, video_png_root, single_object_mode=False):
+ """
+ video_png_root: the folder contains all the masks stored in png
+ single_object_mode: whether to load only a single object at a time
+ """
+ self.video_png_root = video_png_root
+ self.single_object_mode = single_object_mode
+ # read a mask to know the resolution of the video
+ if self.single_object_mode:
+ tmp_mask_path = glob.glob(os.path.join(video_png_root, "*.png"))[0]
+ else:
+ tmp_mask_path = glob.glob(os.path.join(video_png_root, "*", "*.png"))[0]
+ tmp_mask = np.array(PILImage.open(tmp_mask_path))
+ self.H = tmp_mask.shape[0]
+ self.W = tmp_mask.shape[1]
+ if self.single_object_mode:
+ self.obj_id = (
+ int(video_png_root.split("/")[-1]) + 1
+ ) # offset by 1 as bg is 0
+ else:
+ self.obj_id = None
+
+ def load(self, frame_id):
+ if self.single_object_mode:
+ return self._load_single_png(frame_id)
+ else:
+ return self._load_multiple_pngs(frame_id)
+
+ def _load_single_png(self, frame_id):
+ """
+ load single png from the disk (path: f'{self.obj_id}/{frame_id:05d}.png')
+ Args:
+ frame_id: int, define the mask path
+ Return:
+ binary_segments: dict
+ """
+ mask_path = os.path.join(self.video_png_root, f"{frame_id:05d}.png")
+ binary_segments = {}
+
+ if os.path.exists(mask_path):
+ mask = np.array(PILImage.open(mask_path))
+ else:
+ # if png doesn't exist, empty mask
+ mask = np.zeros((self.H, self.W), dtype=bool)
+ binary_segments[self.obj_id] = torch.from_numpy(mask > 0)
+ return binary_segments
+
+ def _load_multiple_pngs(self, frame_id):
+ """
+ load multiple png masks from the disk (path: f'{obj_id}/{frame_id:05d}.png')
+ Args:
+ frame_id: int, define the mask path
+ Return:
+ binary_segments: dict
+ """
+ # get the path
+ all_objects = sorted(glob.glob(os.path.join(self.video_png_root, "*")))
+ num_objects = len(all_objects)
+ assert num_objects > 0
+
+ # load the masks
+ binary_segments = {}
+ for obj_folder in all_objects:
+ # obj_folder is {video_name}/{obj_id}, obj_id is specified by the name of the folder
+ obj_id = int(obj_folder.split("/")[-1])
+ obj_id = obj_id + 1 # offset 1 as bg is 0
+ mask_path = os.path.join(obj_folder, f"{frame_id:05d}.png")
+ if os.path.exists(mask_path):
+ mask = np.array(PILImage.open(mask_path))
+ else:
+ mask = np.zeros((self.H, self.W), dtype=bool)
+ binary_segments[obj_id] = torch.from_numpy(mask > 0)
+
+ return binary_segments
+
+ def __len__(self):
+ return
+
+
+class LazySegments:
+ """
+ Only decodes segments that are actually used.
+ """
+
+ def __init__(self):
+ self.segments = {}
+ self.cache = {}
+
+ def __setitem__(self, key, item):
+ self.segments[key] = item
+
+ def __getitem__(self, key):
+ if key in self.cache:
+ return self.cache[key]
+ rle = self.segments[key]
+ mask = torch.from_numpy(mask_utils.decode([rle])).permute(2, 0, 1)[0]
+ self.cache[key] = mask
+ return mask
+
+ def __contains__(self, key):
+ return key in self.segments
+
+ def __len__(self):
+ return len(self.segments)
+
+ def keys(self):
+ return self.segments.keys()
+
+
+class SA1BSegmentLoader:
+ def __init__(
+ self,
+ video_mask_path,
+ mask_area_frac_thresh=1.1,
+ video_frame_path=None,
+ uncertain_iou=-1,
+ ):
+ with open(video_mask_path, "r") as f:
+ self.frame_annots = json.load(f)
+
+ if mask_area_frac_thresh <= 1.0:
+ # Lazily read frame
+ orig_w, orig_h = PILImage.open(video_frame_path).size
+ area = orig_w * orig_h
+
+ self.frame_annots = self.frame_annots["annotations"]
+
+ rle_masks = []
+ for frame_annot in self.frame_annots:
+ if not frame_annot["area"] > 0:
+ continue
+ if ("uncertain_iou" in frame_annot) and (
+ frame_annot["uncertain_iou"] < uncertain_iou
+ ):
+ # uncertain_iou is stability score
+ continue
+ if (
+ mask_area_frac_thresh <= 1.0
+ and (frame_annot["area"] / area) >= mask_area_frac_thresh
+ ):
+ continue
+ rle_masks.append(frame_annot["segmentation"])
+
+ self.segments = LazySegments()
+ for i, rle in enumerate(rle_masks):
+ self.segments[i] = rle
+
+ def load(self, frame_idx):
+ return self.segments
diff --git a/ref-avs.code/dataloader/visual/visual_augmentation.py b/ref-avs.code/dataloader/visual/visual_augmentation.py
new file mode 100644
index 0000000000000000000000000000000000000000..5d40aed7c8b8c08d50a46db122e1213bd4878afd
--- /dev/null
+++ b/ref-avs.code/dataloader/visual/visual_augmentation.py
@@ -0,0 +1,140 @@
+import random
+
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import torchvision.transforms.functional as F
+import torchvision.transforms as transforms
+
+
+class Augmentation(object):
+ def __init__(self, image_mean, image_std, image_width, image_height, scale_list, ignore_index=255):
+ self.image_size = (image_height, image_width)
+ # self.image_norm = (image_mean, image_std)
+ # self.get_crop_pos = transforms.RandomCrop(self.image_size)
+ self.color_jitter = transforms.ColorJitter(brightness=.5, contrast=.5, saturation=.5, hue=.25)
+ self.gaussian_blurring = transforms.GaussianBlur((3, 3))
+ self.scale_list = scale_list
+
+ self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+ self.to_tensor = transforms.ToTensor()
+
+ self.ignore_index = ignore_index
+
+ # self.normalise = transforms.Normalize(mean=image_mean, std=image_std)
+
+ # if setup == "avs" or setup == "avss" or setup == "avss_binary":
+ # # AVS
+ # self.scale_list = [.5, .75, 1.]
+ # self.color_jitter = None
+ # else:
+ # # COCO
+ # # self.scale_list = [.75, 1., 1.25, 1.5, 1.75, 2.]
+ # self.scale_list = [0.5,0.75,1.0,1.25,1.5,1.75,2.0]
+
+ # def normalise(self, image):
+ # image = image / 255.0
+ # image = image - self.image_norm[0]
+ # image = image / self.image_norm[1]
+ # return image
+
+ def resize(self, image_, label_, size=None):
+ h_, w_ = self.image_size if size is None else size
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ def random_crop_with_padding(self, image_, label_):
+ w_, h_ = image_.size
+ if min(h_, w_) < min(self.image_size):
+ res_w_ = max(self.image_size[0] - w_, 0)
+ res_h_ = max(self.image_size[1] - h_, 0)
+ image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=(numpy.array(self.image_norm[0]) * 255.).tolist())
+ # image_ = F.pad(image_, [0, 0, res_w_, res_h_], fill=self.ignore_index) # if error, define the padding value.
+ label_ = F.pad(label_, [0, 0, res_w_, res_h_], fill=self.ignore_index)
+
+ pos_ = self.get_crop_pos.get_params(image_, self.image_size)
+ image_ = F.crop(image_, *pos_)
+ label_ = F.crop(label_, *pos_)
+
+ return image_, label_
+
+ # @staticmethod
+ def random_scales(self, image_, label_):
+ w_, h_ = image_.size
+ chosen_scale = random.choice(self.scale_list)
+ w_, h_ = int(w_ * chosen_scale), int(h_ * chosen_scale)
+ image_ = F.resize(image_, (h_, w_), transforms.InterpolationMode.BICUBIC)
+ label_ = F.resize(label_, (h_, w_), transforms.InterpolationMode.NEAREST)
+ return image_, label_
+
+ @staticmethod
+ def random_flip_h(image_, label_):
+ chosen_flip = random.random() > 0.5
+ image_ = F.hflip(image_) if chosen_flip else image_
+ label_ = F.hflip(label_) if chosen_flip else label_
+ return image_, label_
+
+ def augment_entire_clip(self, x_list, y_list):
+ degree_ = float(torch.empty(1).uniform_(float(-25.), float(25.)).item())
+ shear_ = [float(torch.empty(1).uniform_(float(-20.), float(20.)).item()),
+ torch.empty(1).uniform_(float(-20.), float(20.)).item()]
+ dice = random.random()
+ for index, single_x in enumerate(x_list):
+ if dice <= 0.1:
+ single_x = F.rgb_to_grayscale(single_x, num_output_channels=3)
+
+ single_x = F.affine(single_x, angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.BILINEAR, fill=[0., 0., 0.])
+ single_y = F.affine(y_list[index], angle=degree_, shear=shear_, translate=[0,0], scale=1.,
+ interpolation=transforms.InterpolationMode.NEAREST, fill=[0.])
+ x_list[index] = single_x
+ y_list[index] = single_y
+
+ return x_list, y_list
+
+
+
+
+ def train_aug(self, x_, y_):
+ x_, y_ = self.random_flip_h(x_, y_)
+ # # x, y = self.random_scales(x, y)
+ x_, y_ = self.resize(x_, y_)
+
+ if self.color_jitter is not None and random.random() < 0.5:
+ x_ = self.color_jitter(x_)
+ if self.gaussian_blurring is not None and random.random() < 0.5:
+ x_ = self.gaussian_blurring(x_)
+
+ # x, y = self.random_crop_with_padding(x, y)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ # receive pseudo labels.
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def test_process(self, x_, y_):
+ # x = self.to_tensor(x)
+ # y = torch.tensor(numpy.asarray(y)).long()
+
+ # following AVSbench setup, we fix image size (224, 224)
+ x_, y_ = self.resize(x_, y_)
+
+ x_ = self.normalise(self.to_tensor(x_)).type(torch.float32)
+ y_ = torch.tensor(numpy.array(y_)[numpy.newaxis, ...], dtype=torch.float)
+ return x_, y_
+
+ def __call__(self, x, y, split):
+ return self.train_aug(x, y) if split == "train" \
+ else self.test_process(x, y)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ref-avs.code/dataloader/visual/visual_dataset.py b/ref-avs.code/dataloader/visual/visual_dataset.py
new file mode 100644
index 0000000000000000000000000000000000000000..a103a0234445c1f7ffb238594ef896438cdab8b5
--- /dev/null
+++ b/ref-avs.code/dataloader/visual/visual_dataset.py
@@ -0,0 +1,112 @@
+import os
+import re
+import PIL.Image
+import matplotlib.pyplot as plt
+import numpy
+import torch
+import pandas
+import torchvision
+
+
+class Visual(torch.utils.data.Dataset):
+ def __init__(self, augmentation, directory_path, split, image_size, image_embedding_size):
+ self.augment = augmentation
+ self.directory_path = directory_path
+ self.split = split
+ self.image_size = image_size
+ self.embedding_size = image_embedding_size
+
+ def get_frame_and_label(self, file_prefix, object_id):
+ # if self.split == 'null':
+ # frame_path = os.path.join(self.directory_path, 'media_cross', file_prefix, 'frames')
+ # frame_path = [os.path.join(frame_path, i) for i in os.listdir(frame_path)]
+ # frame_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.jpg')[0])))
+ # # dummy empty label.
+ # frame = [PIL.Image.open(i) for i in frame_path]
+ # label = [PIL.Image.new('L', frame[0].size)] * len(frame)
+ # else:
+ frame_path = os.path.join(self.directory_path, 'media', file_prefix, 'frames')
+ label_path = os.path.join(self.directory_path, 'gt_mask', file_prefix, 'fid_{}'.format(str(object_id)))
+ frame_path = [os.path.join(frame_path, i) for i in os.listdir(frame_path)]
+ label_path = [os.path.join(label_path, i) for i in os.listdir(label_path)]
+ frame_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.jpg')[0])))
+ label_path.sort(key=lambda x: tuple(map(int, x.split('/')[-1].split("_")[-1].split('.png')[0])))
+ frame = [PIL.Image.open(i) for i in frame_path]
+ label = [PIL.Image.open(i).convert('L') for i in label_path]
+ return frame, label
+
+ def load_data(self, file_prefix, object_id):
+ frame, label = self.get_frame_and_label(file_prefix, object_id)
+ label_idx = torch.tensor(list([1] * 10), dtype=torch.bool)
+
+ prompts = {}
+ image_batch = [None]*len(frame)
+ label_batch = [None]*len(frame)
+
+ if self.split == 'train':
+ # apply sam2 augmentation.
+ frame, label = self.augment(frame, label)
+
+ for i in range(len(frame)):
+ if 'test_' in self.split:
+ # note: there is no augmentation in here.
+ curr_frame, curr_label = self.augment(frame[i], label[i], split=self.split)
+ else:
+ curr_frame, curr_label = frame[i], label[i]
+
+ curr_label[curr_label > 0.] = 1.
+ image_batch[i], label_batch[i] = curr_frame, curr_label
+
+ # image_batch[i], label_batch[i] = self.augment(frame[i], label[i], split=self.split)
+ # note: we simply convert the code to binary mask in v1s, v1m;
+ # to some reason, we failed to load the label in `L' format and had to hardcoding here.
+ # label_batch[i][label_batch[i] > 0.] = 1.
+
+ # prompts['box_coords'][i], prompts['masks'][i] = self.receive_other_prompts(label_batch[i])
+
+ # organise the prompts
+ # prompts.update({'masks': torch.stack(prompts['masks'], dim=0)})
+ # prompts.update({'box_coords': torch.stack(prompts['box_coords'], dim=0)})
+ # prompts.update({'point_labels': torch.stack(prompts['point_labels'], dim=0)})
+ prompts.update({'label_index': label_idx})
+ return torch.stack(image_batch, dim=0), torch.stack(label_batch, dim=0), prompts
+
+ def receive_other_prompts(self, y_):
+ # y_ = torch.zeros_like(y_)
+ if len(torch.unique(y_)) > 1:
+ # foreground point
+ points_foreground = torch.stack(torch.where(y_ > 0)[::-1], dim=0).transpose(1, 0)
+
+ # bbox prompt (left-top corner & right-bottom corner)
+ bbox_one = torch.min(points_foreground[:, 0]), torch.min(points_foreground[:, 1])
+ bbox_fou = torch.max(points_foreground[:, 0]), torch.max(points_foreground[:, 1])
+ bbox_coord = torch.tensor(bbox_one + bbox_fou, dtype=torch.float)
+ bbox_coord = self.transform_coords(bbox_coord, orig_hw=y_.squeeze().shape)
+ # mask prompt
+ low_mask = torchvision.transforms.functional.resize(y_.clone(), [self.embedding_size*4, self.embedding_size*4],
+ torchvision.transforms.InterpolationMode.NEAREST)
+ else:
+ # for the pure background situation.
+ bbox_coord = torch.zeros([4], dtype=torch.float).fill_(float('nan'))
+ low_mask = torch.zeros([1, self.embedding_size*4, self.embedding_size*4], dtype=torch.float).fill_(float('nan'))
+
+ return bbox_coord, low_mask
+
+ # we transfer the coords to SAM's input resolution (1024, 1024).
+ def transform_coords(self, coords: torch.Tensor, orig_hw=None) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the sam2 model.
+ """
+ h, w = orig_hw
+ coords = coords.clone().reshape(-1, 2, 2)
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+ coords = coords * self.image_size # unnormalize coords
+ return coords.reshape(4)
+
+
+
diff --git a/ref-avs.code/inference.py b/ref-avs.code/inference.py
new file mode 100644
index 0000000000000000000000000000000000000000..2b7a5f188b2132e112f1173b43d6d357ab9f92e6
--- /dev/null
+++ b/ref-avs.code/inference.py
@@ -0,0 +1,201 @@
+"""Distributed inference on Ref-AVS (test_s / test_u / test_n); uses Trainer.valid / valid_null like main.py."""
+import os
+import pathlib
+import argparse
+import random
+
+import numpy
+import torch
+from easydict import EasyDict
+
+
+_real_mkdir = pathlib.Path.mkdir
+
+
+def _safe_mkdir(self, mode=0o777, parents=False, exist_ok=False):
+ try:
+ return _real_mkdir(self, mode, parents, exist_ok=exist_ok)
+ except PermissionError:
+ pass
+
+
+pathlib.Path.mkdir = _safe_mkdir
+
+
+def seed_it(seed):
+ random.seed(seed)
+ os.environ["PYTHONSEED"] = str(seed)
+ numpy.random.seed(seed)
+ torch.manual_seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.deterministic = True
+ torch.backends.cudnn.benchmark = False
+ torch.backends.cudnn.enabled = True
+
+
+class _DummyTensorboard:
+ """Minimal Tensorboard stub so Trainer.valid / valid_null run without wandb logging."""
+
+ def upload_wandb_info(self, info_dict):
+ pass
+
+ def upload_wandb_image(self, *args, **kwargs):
+ pass
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ torch.distributed.init_process_group(
+ backend='nccl',
+ init_method='env://',
+ rank=hyp_param.local_rank,
+ world_size=hyp_param.gpus,
+ )
+ seed_it(local_rank + hyp_param.seed)
+ torch.cuda.set_device(hyp_param.local_rank)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra config store
+ from hydra import compose
+ from omegaconf import OmegaConf
+
+ arch_h = compose(config_name='configs/auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ train_cfg = compose(config_name='configs/training/sam2_training_config.yaml')
+ OmegaConf.resolve(train_cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(train_cfg.contrastive_learning, resolve=True)
+
+ hyp_param.image_size = 1024
+ hyp_param.image_embedding_size = int(hyp_param.image_size / 16)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda(hyp_param.local_rank)
+ if not hyp_param.inference_ckpt:
+ raise ValueError("--inference_ckpt is required for inference.")
+
+ ckpt_sd = torch.load(hyp_param.inference_ckpt, map_location="cpu")
+ if not isinstance(ckpt_sd, dict):
+ raise TypeError("Checkpoint must be a state_dict dictionary.")
+ if any(k.startswith("v_model.") or k.startswith("aural_fuser.") for k in ckpt_sd):
+ av_model.load_state_dict(ckpt_sd, strict=True)
+ else:
+ av_model.aural_fuser.load_state_dict(ckpt_sd, strict=True)
+
+ av_model = torch.nn.parallel.DistributedDataParallel(
+ av_model, device_ids=[hyp_param.local_rank], find_unused_parameters=False,
+ )
+ av_model.eval()
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data import DataLoader, Subset
+ from torch.utils.data.distributed import DistributedSampler
+
+ visual_aug = VisualAugmentation(
+ hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index,
+ )
+ audio_aug = AudioAugmentation(mono=True)
+
+ max_batches = getattr(hyp_param, "inference_max_batches", 0) or 0
+ val_batch_size = getattr(hyp_param, "inference_val_batch_size", 4)
+
+ def _test_loader(split):
+ ds = AV(
+ split=split,
+ augmentation={"visual": visual_aug, "audio": audio_aug},
+ param=hyp_param,
+ root_path=hyp_param.data_root_path,
+ )
+ if max_batches > 0:
+ n_samples = min(max_batches * val_batch_size, len(ds))
+ ds = Subset(ds, range(n_samples))
+ sampler = DistributedSampler(ds, shuffle=False)
+ return DataLoader(
+ ds,
+ batch_size=val_batch_size,
+ sampler=sampler,
+ num_workers=hyp_param.num_workers,
+ )
+
+ test_s_loader = _test_loader('test_s')
+ test_u_loader = _test_loader('test_u')
+ test_n_loader = _test_loader('test_n')
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+ from utils.foreground_s import ForegroundS
+
+ metrics = {
+ "foreground_iou": ForegroundIoU(),
+ "foreground_f-score": ForegroundFScore(hyp_param.local_rank),
+ "foreground_s": ForegroundS(),
+ }
+ trainer = Trainer(hyp_param, loss=None, tensorboard=_DummyTensorboard(), metrics=metrics)
+
+ test_s_iou, test_s_f = trainer.valid(
+ epoch=0, dataloader=test_s_loader, model=av_model, process='test_s',
+ )
+ torch.cuda.empty_cache()
+
+ test_u_iou, test_u_f = trainer.valid(
+ epoch=0, dataloader=test_u_loader, model=av_model, process='test_u',
+ )
+ torch.cuda.empty_cache()
+
+ test_n_s = trainer.valid_null(
+ epoch=0, dataloader=test_n_loader, model=av_model, process='test_n',
+ )
+ torch.cuda.empty_cache()
+
+ if hyp_param.local_rank <= 0:
+ print("\n========== Ref-AVS inference (same splits / metrics as training valid) ==========")
+ print(" test_s f_iou={} f_f-score={}".format(test_s_iou, test_s_f))
+ print(" test_u f_iou={} f_f-score={}".format(test_u_iou, test_u_f))
+ print(" test_n f_s={}".format(test_n_s))
+ print("=======================================================\n")
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Ref-AVS inference: test_s / test_u / test_n')
+
+ parser.add_argument('--local_rank', type=int, default=-1,
+ help='multi-process training for DDP')
+ parser.add_argument('-g', '--gpus', default=1, type=int,
+ help='number of gpus per node')
+ parser.add_argument('--batch_size', default=1, type=int,
+ help='unused at inference (validation uses inference_val_batch_size)')
+ parser.add_argument('--epochs', default=80, type=int, help='unused')
+ parser.add_argument('--lr', default=1e-5, type=float, help='unused')
+ parser.add_argument('--online', action='store_true', help='unused')
+ parser.add_argument(
+ '--inference_ckpt', type=str, required=True,
+ help='Trained AuralFuser checkpoint (.pth). SAM2 from backbone_weight in configs.',
+ )
+ parser.add_argument('--inference_max_batches', type=int, default=0,
+ help='0 = full split; >0 = first N batches per split (debug)')
+ parser.add_argument('--inference_val_batch_size', type=int, default=4,
+ help='Validation batch size (default 4, same as main.py _test_loader)')
+
+ args = parser.parse_args()
+
+ from configs.config import C
+ args = EasyDict({**C, **vars(args)})
+
+ _repo = pathlib.Path(__file__).resolve().parent
+ _workspace = _repo.parent
+ args.data_root_path = str(_workspace / 'REFAVS')
+ args.backbone_weight = str(_workspace / 'ckpts' / 'sam_ckpts' / 'sam2_hiera_large.pt')
+ args.audio.PRETRAINED_VGGISH_MODEL_PATH = str(_workspace / 'ckpts' / 'vggish-10086976.pth')
+ args.saved_dir = '/tmp/ref_avs_infer_ckpt'
+ pathlib.Path(args.saved_dir).mkdir(parents=True, exist_ok=True)
+
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9902'
+
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/ref-avs.code/loss/misc.py b/ref-avs.code/loss/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..874d9805b482f52bbffc1be620e36e0cffc07c46
--- /dev/null
+++ b/ref-avs.code/loss/misc.py
@@ -0,0 +1,111 @@
+# Copyright (c) Facebook, Inc. and its affiliates.
+# Modified by Bowen Cheng from https://github.com/facebookresearch/detr/blob/master/util/misc.py
+"""
+Misc functions, including distributed helpers.
+
+Mostly copy-paste from torchvision references.
+"""
+from typing import List, Optional
+
+import torch
+import torch.distributed as dist
+import torchvision
+from torch import Tensor
+
+
+def _max_by_axis(the_list):
+ # type: (List[List[int]]) -> List[int]
+ maxes = the_list[0]
+ for sublist in the_list[1:]:
+ for index, item in enumerate(sublist):
+ maxes[index] = max(maxes[index], item)
+ return maxes
+
+
+class NestedTensor(object):
+ def __init__(self, tensors, mask: Optional[Tensor]):
+ self.tensors = tensors
+ self.mask = mask
+
+ def to(self, device):
+ # type: (Device) -> NestedTensor # noqa
+ cast_tensor = self.tensors.to(device)
+ mask = self.mask
+ if mask is not None:
+ assert mask is not None
+ cast_mask = mask.to(device)
+ else:
+ cast_mask = None
+ return NestedTensor(cast_tensor, cast_mask)
+
+ def decompose(self):
+ return self.tensors, self.mask
+
+ def __repr__(self):
+ return str(self.tensors)
+
+
+def nested_tensor_from_tensor_list(tensor_list: List[Tensor]):
+ # TODO make this more general
+ if tensor_list[0].ndim == 3:
+ if torchvision._is_tracing():
+ # nested_tensor_from_tensor_list() does not export well to ONNX
+ # call _onnx_nested_tensor_from_tensor_list() instead
+ return _onnx_nested_tensor_from_tensor_list(tensor_list)
+
+ # TODO make it support different-sized images
+ max_size = _max_by_axis([list(img.shape) for img in tensor_list])
+ # min_size = tuple(min(s) for s in zip(*[img.shape for img in tensor_list]))
+ batch_shape = [len(tensor_list)] + max_size
+ b, c, h, w = batch_shape
+ dtype = tensor_list[0].dtype
+ device = tensor_list[0].device
+ tensor = torch.zeros(batch_shape, dtype=dtype, device=device)
+ mask = torch.ones((b, h, w), dtype=torch.bool, device=device)
+ for img, pad_img, m in zip(tensor_list, tensor, mask):
+ pad_img[: img.shape[0], : img.shape[1], : img.shape[2]].copy_(img)
+ m[: img.shape[1], : img.shape[2]] = False
+ else:
+ raise ValueError("not supported")
+ return NestedTensor(tensor, mask)
+
+
+# _onnx_nested_tensor_from_tensor_list() is an implementation of
+# nested_tensor_from_tensor_list() that is supported by ONNX tracing.
+@torch.jit.unused
+def _onnx_nested_tensor_from_tensor_list(tensor_list: List[Tensor]) -> NestedTensor:
+ max_size = []
+ for i in range(tensor_list[0].dim()):
+ max_size_i = torch.max(
+ torch.stack([img.shape[i] for img in tensor_list]).to(torch.float32)
+ ).to(torch.int64)
+ max_size.append(max_size_i)
+ max_size = tuple(max_size)
+
+ # work around for
+ # pad_img[: img.shape[0], : img.shape[1], : img.shape[2]].copy_(img)
+ # m[: img.shape[1], :img.shape[2]] = False
+ # which is not yet supported in onnx
+ padded_imgs = []
+ padded_masks = []
+ for img in tensor_list:
+ padding = [(s1 - s2) for s1, s2 in zip(max_size, tuple(img.shape))]
+ padded_img = torch.nn.functional.pad(img, (0, padding[2], 0, padding[1], 0, padding[0]))
+ padded_imgs.append(padded_img)
+
+ m = torch.zeros_like(img[0], dtype=torch.int, device=img.device)
+ padded_mask = torch.nn.functional.pad(m, (0, padding[2], 0, padding[1]), "constant", 1)
+ padded_masks.append(padded_mask.to(torch.bool))
+
+ tensor = torch.stack(padded_imgs)
+ mask = torch.stack(padded_masks)
+
+ return NestedTensor(tensor, mask=mask)
+
+
+def is_dist_avail_and_initialized():
+ if not dist.is_available():
+ return False
+ if not dist.is_initialized():
+ return False
+ return True
diff --git a/ref-avs.code/loss/training/contrastive_learning.py b/ref-avs.code/loss/training/contrastive_learning.py
new file mode 100644
index 0000000000000000000000000000000000000000..b45e48c52727cdb0d0f3e678b91e1ced349a5bda
--- /dev/null
+++ b/ref-avs.code/loss/training/contrastive_learning.py
@@ -0,0 +1,545 @@
+"""Contrastive loss used during SAM2 + fusion training (config from Hydra `contrastive_learning`, tmp.code style)."""
+import torch
+from abc import ABC
+import torch.nn as nn
+
+
+class ContrastLoss(nn.Module, ABC):
+ def __init__(self, hyp_param):
+ super(ContrastLoss, self).__init__()
+ self.param = hyp_param
+ _defaults = {
+ "temperature": 0.10,
+ "ignore_idx": 255,
+ "ood_idx": 254,
+ "max_views": 512,
+ "proj_dim": 512,
+ "sample_limits": 64,
+ "total_limits": 15240,
+ }
+ _raw = getattr(hyp_param, "contrastive_learning", None) or {}
+ _cfg = {**_defaults, **_raw}
+ self.temperature = _cfg["temperature"]
+ self.ignore_idx = _cfg["ignore_idx"]
+ self.ood_idx = _cfg["ood_idx"]
+ self.max_views = _cfg["max_views"]
+ self.proj_dim = _cfg["proj_dim"]
+ self.sample_limits = _cfg["sample_limits"]
+ self.total_limits = _cfg["total_limits"]
+
+ def select_class_wise_samples(self, embeddings, audio_embeddings, predictions, masks, batch_idx):
+ embedding_sample_list = []
+ label_list = []
+ embedding_sample_list_a = []
+ label_list_a = []
+ class_index_list = torch.unique(masks)
+ # means not silence
+ if len(class_index_list) > 1:
+ for class_index in class_index_list[1:]:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(class_index.unsqueeze(0) + batch_idx * 1e3)
+ else:
+ embedding_sample_list_a.append(audio_embeddings.unsqueeze(0))
+ label_list_a.append(torch.zeros([1], device=embeddings.device) + batch_idx * 1e3)
+
+ # contras_list = []
+ # contras_label_list = []
+ sample_limits = self.sample_limits
+ # we only have 0, 1
+ embeddings = embeddings.permute(1, 0)
+ for class_index in class_index_list:
+ hard_indices = embeddings[((masks != predictions) & (masks == class_index)).nonzero()]
+ easy_indices = embeddings[((masks == predictions) & (masks == class_index)).nonzero()]
+
+ hard_indices_num, easy_indices_num = hard_indices.shape[0], easy_indices.shape[0]
+
+ # the number that is selected to the contrastive learning.
+ selective_num_hard = min(sample_limits, hard_indices_num)
+ selective_num_easy = min(sample_limits, easy_indices_num)
+
+ if (selective_num_hard + selective_num_easy) < sample_limits * 2:
+ if selective_num_hard > selective_num_easy:
+ selective_num_hard += sample_limits * 2 - selective_num_easy
+ else:
+ selective_num_easy += sample_limits * 2 - selective_num_hard
+
+ # skip if contains too limited samples.
+ # if selective_num_hard < 10 and selective_num_easy < 10:
+ # continue
+ hard_chosen_indices = torch.randperm(hard_indices_num)[:selective_num_hard]
+ embedding_sample_list.append(hard_indices[hard_chosen_indices])
+ label_list.append(masks[hard_chosen_indices] + batch_idx * 1e3)
+
+ # add negative features to list.
+ easy_chosen_indices = torch.randperm(easy_indices_num)[:selective_num_easy]
+ embedding_sample_list.append(easy_indices[easy_chosen_indices])
+ label_list.append(masks[easy_chosen_indices] + batch_idx * 1e3)
+ return embedding_sample_list, label_list, embedding_sample_list_a, label_list_a
+
+ def forward_audio_visual(self, visual_embeddings, audio_embeddings, masks, predictions):
+ masks = masks.flatten(start_dim=1)
+ predictions = predictions.flatten(start_dim=1)
+ visual_embeddings = visual_embeddings.flatten(start_dim=-2)
+
+ visual_embedding_sample_list = []
+ visual_label_list = []
+ audio_embedding_sample_list = []
+ audio_label_list = []
+
+ for frame_idx in range(masks.shape[0]):
+ current_vision_feats = visual_embeddings[frame_idx]
+ current_masks = masks[frame_idx]
+ current_predictions = predictions[frame_idx]
+ current_audio_feats = audio_embeddings[frame_idx]
+ for layer_idx in range(3):
+ (selected_vision_embeddings, selected_vision_labels,
+ selected_audio_embeddings, selected_audio_labels) = self.select_class_wise_samples(current_vision_feats[layer_idx],
+ current_audio_feats[layer_idx],
+ current_predictions,
+ current_masks,
+ 0)
+
+ visual_embedding_sample_list += selected_vision_embeddings
+ visual_label_list += selected_vision_labels
+
+ audio_embedding_sample_list += selected_audio_embeddings
+ audio_label_list += selected_audio_labels
+
+ if len(visual_embedding_sample_list) == 0: return 0.
+ visual_embedding_sample_list = torch.cat(visual_embedding_sample_list, dim=0).squeeze()
+ visual_label_list = torch.cat(visual_label_list, dim=0).unsqueeze(-1)
+ audio_embedding_sample_list = torch.cat(audio_embedding_sample_list, dim=0).squeeze()
+ audio_label_list = torch.cat(audio_label_list).unsqueeze(1)
+
+ # print(visual_embedding_sample_list.shape, visual_label_list.shape)
+ # print(audio_embedding_sample_list.shape, audio_label_list.shape)
+ # exit(1)
+ total_limits = self.total_limits
+ if visual_embedding_sample_list.shape[0] > total_limits:
+ rand_index = torch.randperm(visual_embedding_sample_list.shape[0])[total_limits]
+ visual_embedding_sample_list = visual_embedding_sample_list[:rand_index]
+ visual_label_list = visual_label_list[:rand_index]
+ loss = self.info_nce(visual_embedding_sample_list, visual_label_list, audio_embedding_sample_list,
+ audio_label_list)
+ return loss
+
+
+ # proof the q-project CAN BE the projector head of the contrastive learning.
+ # At the moment, I do believe the ATTENTION is the another format of the contrastive learning.
+ # First experiment: ignore the sound, only work on the projected vision mask.
+ def forward(self, embeddings, output_dicts, masks):
+ predictions = torch.cat([i['multistep_pred_masks'] for i in output_dicts])
+ predictions = torch.nn.functional.interpolate(predictions, size=(int(self.param.image_size/16), int(self.param.image_size/16)),
+ mode='bilinear', align_corners=False).squeeze(1)
+ masks = torch.nn.functional.interpolate(masks.unsqueeze(1), size=(int(self.param.image_size/16), int(self.param.image_size/16)),
+ mode='nearest').squeeze(1)
+ visual_embeddings, audio_embeddings = embeddings
+ # if len(predictions.shape) < 3 and len(masks.shape) < 3:
+ # predictions = predictions.unsqueeze(0)
+ # masks = masks.unsqueeze(0)
+
+ visual_embeddings = torch.cat([torch.cat([visual_embeddings[0][i].unsqueeze(0),
+ visual_embeddings[1][i].unsqueeze(0),
+ visual_embeddings[2][i].unsqueeze(0)]).unsqueeze(0)
+ for i in range(masks.shape[0])])
+ audio_embeddings = torch.cat([torch.cat([audio_embeddings[0][i].unsqueeze(0),
+ audio_embeddings[1][i].unsqueeze(0),
+ audio_embeddings[2][i].unsqueeze(0)]).unsqueeze(0)
+ for i in range(masks.shape[0])])
+
+ # dict_keys(['point_inputs', 'mask_inputs', 'multistep_pred_masks', 'multistep_pred_masks_high_res',
+ # 'multistep_pred_multimasks', 'multistep_pred_multimasks_high_res', 'multistep_pred_ious',
+ # 'multistep_point_inputs', 'multistep_object_score_logits', 'pred_masks', 'pred_masks_high_res',
+ # 'maskmem_features', 'maskmem_pos_enc'])
+ return self.forward_audio_visual(visual_embeddings, audio_embeddings.squeeze(-1), masks, predictions)
+
+ # def forward_visual_only(self, visual_embeddings, masks, predictions):
+ # masks = masks.flatten(start_dim=1)
+ # predictions = predictions.flatten(start_dim=1)
+ # visual_embeddings = visual_embeddings.flatten(start_dim=-2)
+ #
+ # visual_embedding_sample_list = []
+ # visual_label_list = []
+ # audio_embedding_sample_list = []
+ # audio_label_list = []
+ #
+ # for frame_idx in range(masks.shape[0]):
+ # current_vision_feats = visual_embeddings[frame_idx]
+ # current_masks = masks[frame_idx]
+ # current_predictions = predictions[frame_idx]
+ # for layer_idx in range(3):
+ # current_select_embeddings, current_select_labels = self.select_class_wise_samples(current_vision_feats[layer_idx],
+ # None,
+ # current_predictions,
+ # current_masks,
+ # frame_idx)
+ # visual_embedding_sample_list += current_select_embeddings
+ # visual_label_list += current_select_labels
+ #
+ #
+ #
+ # if len(embedding_sample_list) == 0: return 0.
+ # embedding_sample_list = torch.cat(embedding_sample_list, dim=0).squeeze()
+ # label_list = torch.cat(label_list, dim=0).unsqueeze(-1)
+ # total_limits = 15240
+ # if embedding_sample_list.shape[0] > total_limits:
+ # rand_index = torch.randperm(embedding_sample_list.shape[0])[total_limits]
+ # embedding_sample_list = embedding_sample_list[:rand_index]
+ # label_list = label_list[:rand_index]
+ # loss = self.info_nce(embedding_sample_list, label_list, embedding_sample_list,
+ # label_list)
+ # return loss
+
+
+ """
+ # embeddings_size = (int(self.param.image_size/16), int(self.param.image_size/16))
+ # masks = torch.nn.functional.interpolate(masks.float(), embeddings_size, mode='nearest')
+ # masks = masks.flatten(start_dim=1)
+ # predictions = torch.nn.functional.interpolate(predictions.float(), embeddings_size, mode='nearest')
+ # predictions = predictions.flatten(start_dim=1)
+ #
+ # embedding_sample_list = []
+ # label_list = []
+ # contras_sample_list = []
+ # contras_label_list = []
+
+ # temp3.
+ # embedding_visual, embedding_audio = embeddings
+ # embedding_visual = torch.nn.functional.normalize(embedding_visual, p=2, dim=1)
+ # embedding_audio = torch.nn.functional.normalize(embedding_audio, p=2, dim=1)
+ # embedding_visual = embedding_visual.reshape(self.param.batch_size, int(embedding_visual.shape[0]/self.param.batch_size),
+ # *embedding_visual.shape[-2:])
+ #
+ # embedding_audio = embedding_audio.reshape(self.param.batch_size, int(embedding_audio.shape[0]/self.param.batch_size),
+ # *embedding_audio.shape[-2:])
+ # masks = masks.reshape(self.param.batch_size, int(masks.shape[0]/self.param.batch_size),
+ # masks.shape[-1])
+ # predictions = predictions.reshape(self.param.batch_size, int(predictions.shape[0]/self.param.batch_size),
+ # predictions.shape[-1])
+ #
+ # for batch_idx in range(masks.shape[0]):
+ # current_video_clip_embed = embedding_visual[batch_idx]
+ # current_video_clip_masks = masks[batch_idx]
+ # current_video_clip_preds = predictions[batch_idx]
+ # current_audio_clip_embed = embedding_audio[batch_idx]
+ # # print(current_video_clip_embed.shape, current_audio_clip_embed.shape, current_video_clip_masks.shape, current_video_clip_preds.shape)
+ # # exit(1)
+ # for sample_idx in range(masks.shape[1]):
+ # current_vision_feats = current_video_clip_embed[batch_idx]
+ # current_audio_feats = current_audio_clip_embed[batch_idx]
+ # current_masks = current_video_clip_masks[batch_idx]
+ # current_predictions = current_video_clip_preds[batch_idx]
+ # current_select_embeddings, current_select_labels = self.select_class_wise_samples(current_vision_feats,
+ # current_audio_feats,
+ # current_predictions,
+ # current_masks,
+ # batch_idx)
+
+ # temp2.
+ embeddings = torch.nn.functional.normalize(embeddings, p=2, dim=1)
+
+ embeddings = embeddings.reshape(self.param.batch_size, int(embeddings.shape[0]/self.param.batch_size),
+ *embeddings.shape[-2:])
+ masks = masks.reshape(self.param.batch_size, int(masks.shape[0]/self.param.batch_size),
+ masks.shape[-1])
+ predictions = predictions.reshape(self.param.batch_size, int(predictions.shape[0]/self.param.batch_size),
+ predictions.shape[-1])
+
+ for batch_idx in range(masks.shape[0]):
+ current_video_clip_embed = embeddings[batch_idx]
+ current_video_clip_masks = masks[batch_idx]
+ current_video_clip_preds = predictions[batch_idx]
+ # current_audio_clip_feats =
+ for sample_idx in range(masks.shape[1]):
+ current_vision_feats = current_video_clip_embed[batch_idx]
+ current_masks = current_video_clip_masks[batch_idx]
+ current_predictions = current_video_clip_preds[batch_idx]
+ current_select_embeddings, current_select_labels = self.select_class_wise_samples(current_vision_feats,
+ current_predictions,
+ current_masks,
+ batch_idx)
+ embedding_sample_list += current_select_embeddings
+ label_list += current_select_labels
+ # hard_indices = current_vision_feats[(current_masks != current_predictions).nonzero()]
+ # easy_indices = current_vision_feats[(current_masks == current_predictions).nonzero()]
+ #
+ # hard_indices_num, easy_indices_num = hard_indices.shape[0], easy_indices.shape[0]
+ #
+ # # the number that is selected to the contrastive learning.
+ # selective_num_hard = min(sample_limits, hard_indices_num)
+ # selective_num_easy = min(sample_limits, easy_indices_num)
+ # # skip if contains too limited samples.
+ # if selective_num_hard < 10 or selective_num_easy < 10:
+ # continue
+ #
+ # hard_chosen_indices = torch.randperm(hard_indices_num)[:selective_num_hard]
+ # embedding_sample_list.append(hard_indices[hard_chosen_indices])
+ # label_list.append(current_masks[hard_chosen_indices] + batch_idx * 1e3)
+ #
+ # # add negative features to list.
+ # easy_chosen_indices = torch.randperm(easy_indices_num)[:selective_num_easy]
+ # embedding_sample_list.append(easy_indices[easy_chosen_indices])
+ # label_list.append(current_masks[easy_chosen_indices] + batch_idx * 1e3)
+
+ if len(embedding_sample_list) == 0: return 0.
+ embedding_sample_list = torch.cat(embedding_sample_list, dim=0).squeeze()
+ label_list = torch.cat(label_list, dim=0).unsqueeze(-1)
+ total_limits = self.total_limits
+ if embedding_sample_list.shape[0] > total_limits:
+ rand_index = torch.randperm(embedding_sample_list.shape[0])[total_limits]
+ embedding_sample_list = embedding_sample_list[:rand_index]
+ label_list = label_list[:rand_index]
+ loss = self.info_nce(embedding_sample_list, label_list, embedding_sample_list,
+ label_list)
+
+ # temp.
+ # sample_limits = 500
+ # for batch_idx in range(masks.shape[0]):
+ # # go through 3 layers embeddings.
+ # for j in range(len(embeddings)):
+ # current_vision_feats_list = embeddings[j]
+ # current_vision_feats = torch.nn.functional.normalize(current_vision_feats_list[batch_idx], p=2, dim=1)
+ # current_masks = masks[batch_idx]
+ # positive_indices = current_vision_feats[current_masks > 0, ...]
+ # negative_indices = current_vision_feats[current_masks == 0, ...]
+ # positive_indices_num, negative_indices_num = positive_indices.shape[0], negative_indices.shape[0]
+ #
+ # # the number that is selected to the contrastive learning.
+ # selective_num = min(sample_limits, positive_indices_num, negative_indices_num)
+ # if selective_num < 50: continue # skip if contains too limited samples.
+ #
+ # embedding_sample_list.append(positive_indices[torch.randperm(positive_indices_num)[:selective_num]])
+ # label_list.append(torch.tensor([batch_idx + (self.param.local_rank * 100)] * selective_num,
+ # device=positive_indices.device))
+ #
+ # # add negative features to list.
+ # negative_sample_list.append(negative_indices[torch.randperm(negative_indices_num)[:selective_num]])
+ # negative_label_list.append(torch.tensor([-1] * selective_num, device=negative_indices.device))
+ #
+ # if len(embedding_sample_list) == 0: return 0.
+ # embedding_sample_list = torch.cat(embedding_sample_list, dim=0)
+ # negative_sample_list = torch.cat(negative_sample_list, dim=0)
+ # label_list = torch.cat(label_list)
+ # negative_label_list = torch.cat(negative_label_list)
+ #
+ # loss = self.info_nce(embedding_sample_list, label_list.unsqueeze(-1),
+ # torch.cat([embedding_sample_list, negative_sample_list], dim=0),
+ # torch.cat([label_list, negative_label_list]).unsqueeze(-1))
+
+ # output_list_embeddings = [torch.zeros_like(embedding_sample_list) for _ in range(torch.distributed.get_world_size())]
+ # output_list_labels = [torch.zeros_like(label_list) for _ in range(torch.distributed.get_world_size())]
+ #
+ # torch.distributed.all_gather(output_list_embeddings, embedding_sample_list)
+ # torch.distributed.all_gather(output_list_labels, label_list)
+ #
+ # output_list_embeddings = torch.cat(output_list_embeddings)
+ # output_list_labels = torch.cat(output_list_labels, dim=1)
+ # loss = self.info_nce(output_list_embeddings, output_list_labels, output_list_embeddings, output_list_labels)
+ return loss
+ """
+ # q_max.
+ # def forward(self, embeddings, masks):
+ # # for single-sounding obj. only, with first idx mask.
+ # masks = torch.nn.functional.interpolate(masks.float(), (64, 64), mode='bilinear', align_corners=False)
+ # masks = masks.flatten(start_dim=1)
+ # # embedding_sample_list = torch.zeros([masks.shape[0], 128]).to(self.param.local_rank)
+ # embedding_sample_list = []
+ # label_list = []
+ #
+ # negative_sample_list = []
+ # negative_label_list = []
+ # sample_limits = 20
+ # for batch_idx in range(masks.shape[0]):
+ # # go through 3 layers embeddings.
+ # for j in range(len(embeddings)):
+ # current_vision_feats_list, current_audio_feats_list = embeddings[j]
+ # current_audio_feats = torch.nn.functional.normalize(current_audio_feats_list[batch_idx], p=2, dim=1)
+ # current_vision_feats = torch.nn.functional.normalize(current_vision_feats_list[batch_idx], p=2, dim=1)
+ # current_masks = masks[batch_idx]
+ #
+ # # add following features to list.
+ # embedding_sample_list.append(current_vision_feats[current_masks > 0, ...].max(dim=0)[0].unsqueeze(0))
+ # label_list.append(batch_idx + (self.param.local_rank * 100))
+ #
+ # embedding_sample_list.append(current_audio_feats)
+ # label_list.append(batch_idx + (self.param.local_rank * 100))
+ #
+ # # add negative features to list.
+ # negative_num = min(current_vision_feats[current_masks == 0, ...].shape[0], sample_limits)
+ # if negative_num < 5: continue # skip if contains too limited samples.
+ # rand_idx = torch.randperm(current_vision_feats[current_masks == 0, ...].shape[0])[:negative_num]
+ # negative_sample_list.append(current_vision_feats[current_masks == 0, ...][rand_idx])
+ # negative_label_list.append(torch.tensor([-1] * negative_num, device=current_vision_feats.device))
+ #
+ # embedding_sample_list = torch.cat(embedding_sample_list)
+ # label_list = torch.tensor(label_list, device=masks.device)
+ # negative_sample_list = torch.cat(negative_sample_list, dim=0)
+ # negative_label_list = torch.cat(negative_label_list)
+ #
+ # loss = self.info_nce(embedding_sample_list, label_list.unsqueeze(-1),
+ # torch.cat([embedding_sample_list, negative_sample_list], dim=0),
+ # torch.cat([label_list, negative_label_list]).unsqueeze(-1))
+ #
+ # # output_list_embeddings = [torch.zeros_like(embedding_sample_list) for _ in range(torch.distributed.get_world_size())]
+ # # output_list_labels = [torch.zeros_like(label_list) for _ in range(torch.distributed.get_world_size())]
+ # #
+ # # torch.distributed.all_gather(output_list_embeddings, embedding_sample_list)
+ # # torch.distributed.all_gather(output_list_labels, label_list)
+ # #
+ # # output_list_embeddings = torch.cat(output_list_embeddings)
+ # # output_list_labels = torch.cat(output_list_labels, dim=1)
+ # # loss = self.info_nce(output_list_embeddings, output_list_labels, output_list_embeddings, output_list_labels)
+ # return loss
+
+ # attention mean.
+ # def forward(self, embeddings):
+ # embedding_sample_list = []
+ # label_list = []
+ # for layer_embeddings in embeddings:
+ # embedding_sample_list.append(torch.nn.functional.normalize(layer_embeddings, p=2, dim=1))
+ # # currently we only utilise single frame.
+ # label_list.append(torch.tensor(list(range(0, 1 + 1)) * self.param.batch_size) + (self.param.local_rank * 100))
+ # embedding_sample_list = torch.cat(embedding_sample_list).cuda(self.param.local_rank)
+ # label_list = torch.cat(label_list).cuda(self.param.local_rank).unsqueeze(0)
+ #
+ # """
+ # all gather implementation.
+ # """
+ # """
+ # output_list_embeddings = [torch.zeros_like(embedding_sample_list) for _ in range(torch.distributed.get_world_size())]
+ # output_list_labels = [torch.zeros_like(label_list) for _ in range(torch.distributed.get_world_size())]
+ #
+ # torch.distributed.all_gather(output_list_embeddings, embedding_sample_list)
+ # torch.distributed.all_gather(output_list_labels, label_list)
+ #
+ # output_list_embeddings = torch.cat(output_list_embeddings)
+ # output_list_labels = torch.cat(output_list_labels, dim=1)
+ # loss = self.info_nce(output_list_embeddings, output_list_labels, output_list_embeddings, output_list_labels)
+ # """
+ # loss = self.info_nce(embedding_sample_list, label_list, embedding_sample_list, label_list)
+ # # frame_token_semantic_attn = torch.nn.functional.normalize(frame_token_semantic_attn.squeeze(), p=2, dim=1)
+ # # audio_token_attn = torch.nn.functional.normalize(audio_token_attn, p=2, dim=1)
+ # # city_gt = torch.nn.functional.interpolate(city_gt.unsqueeze(1).float(), size=city_proj.shape[2:],
+ # # mode='nearest').squeeze().long()
+ # #
+ # # ood_gt = torch.nn.functional.interpolate(ood_gt.unsqueeze(1).float(), size=ood_proj.shape[2:],
+ # # mode='nearest').squeeze().long()
+ # #
+ # # # normalise the embed results
+ # # city_proj = torch.nn.functional.normalize(city_proj, p=2, dim=1)
+ # # ood_proj = torch.nn.functional.normalize(ood_proj, p=2, dim=1)
+ #
+ # # randomly extract embed samples within a batch
+ # # anchor_embeds, anchor_labels, contrs_embeds, contrs_labels = self.extraction_samples(city_proj, city_gt,
+ # # ood_proj, ood_gt)
+ # #
+ # # # calculate the CoroCL
+ # # loss = self.info_nce(anchors_=anchor_embeds, a_labels_=anchor_labels.unsqueeze(1), contras_=contrs_embeds,
+ # # c_labels_=contrs_labels.unsqueeze(1)) if anchor_embeds.nelement() > 0 else \
+ # # torch.tensor([.0], device=city_proj.device)
+ #
+ # return loss
+ @staticmethod
+ def manipulate_cover_mask(a_label, current_mask):
+ # shifting current visual index value
+ # background:=1, foreground:=2.
+ a_label = a_label + 1
+ visual_mask = torch.matmul(a_label, torch.transpose(a_label, 0, 1))
+ # kicked out the positive value in same visual class.
+ current_mask[:visual_mask.shape[1], :visual_mask.shape[0]][visual_mask == 1.] = 0
+ current_mask[:visual_mask.shape[1], :visual_mask.shape[0]][visual_mask == 4.] = 0
+
+ return current_mask
+
+ # The implementation of cross-image contrastive learning is based on:
+ # https://github.com/tfzhou/ContrastiveSeg/blob/287e5d3069ce6d7a1517ddf98e004c00f23f8f99/lib/loss/loss_contrast.py
+ def info_nce(self, anchors_, a_labels_, contras_, c_labels_):
+ c_labels_ = torch.cat([a_labels_, c_labels_])
+ contras_ = torch.cat([anchors_, contras_])
+ # calculates the binary mask: same category => 1, different categories => 0
+ mask = torch.eq(a_labels_, torch.transpose(c_labels_, 0, 1)).float()
+
+ # calculates the dot product
+ anchor_dot_contrast = torch.div(torch.matmul(anchors_, torch.transpose(contras_, 0, 1)),
+ self.temperature)
+
+ # for numerical stability
+ logits_max, _ = torch.max(anchor_dot_contrast, dim=1, keepdim=True)
+ logits = anchor_dot_contrast - logits_max.detach()
+
+ # calculates the negative mask
+ neg_mask = 1 - mask
+
+ # avoid the self duplicate issue
+ mask = self.manipulate_cover_mask(a_label=a_labels_, current_mask=mask)
+ mask = mask.fill_diagonal_(0.)
+
+ # sum the negative odot results
+ neg_logits = torch.exp(logits) * neg_mask
+ neg_logits = neg_logits.sum(1, keepdim=True)
+
+ exp_logits = torch.exp(logits)
+
+ # log_prob -> log(exp(x))-log(exp(x) + exp(y))
+ # log_prob -> log{exp(x)/[exp(x)+exp(y)]}
+ log_prob = logits - torch.log(exp_logits + neg_logits)
+ # log_prob = logits - torch.log(exp_logits.sum(1, keepdim=True))
+
+ # calculate the info-nce based on the positive samples (under same categories)
+ mask_pos_pairs = mask.sum(1)
+ mask_pos_pairs = torch.where(mask_pos_pairs < 1e-6, 1, mask_pos_pairs)
+ # mean_log_prob_pos = (mask * log_prob).sum(1) / mask_pos_pairs.sum(1)
+ mean_log_prob_pos = (mask * log_prob).sum(1) / mask_pos_pairs
+ assert not torch.isnan(mean_log_prob_pos).any(), print(torch.isnan(log_prob).any())
+ return - mean_log_prob_pos.mean()
+
+ # def extraction_samples(self, city_embd, city_label, ood_embd, ood_label):
+ # # reformat the matrix
+ # city_embd = city_embd.flatten(start_dim=2).permute(0, 2, 1)
+ # city_label = city_label.flatten(start_dim=1)
+ # ood_embd = ood_embd.flatten(start_dim=2).permute(0, 2, 1)
+ # ood_label = ood_label.flatten(start_dim=1)
+ #
+ # # define different types of embeds
+ # city_positive = city_embd[city_label == self.ood_idx]
+ # city_negative = city_embd[(city_label != self.ood_idx) & (city_label != self.ignore_idx)]
+ # ood_positive = ood_embd[ood_label == self.ood_idx]
+ # ood_negative = ood_embd[(ood_label != self.ood_idx) & (ood_label != self.ignore_idx)]
+ #
+ # # define the number of choice
+ # sample_num = int(min(self.max_views, city_positive.shape[0], ood_positive.shape[0],
+ # city_negative.shape[0], ood_negative.shape[0]))
+ #
+ # # randomly extract the anchor set with {city_ood, city_inlier}
+ # city_positive_anchor = city_positive[torch.randperm(city_positive.shape[0])][:sample_num]
+ # city_negative_anchor = city_negative[torch.randperm(city_negative.shape[0])][:sample_num]
+ #
+ # anchor_embed = torch.cat([city_positive_anchor, city_negative_anchor], dim=0)
+ #
+ # anchor_label = torch.cat([torch.empty(city_positive_anchor.shape[0],
+ # device=city_positive_anchor.device).fill_(1.),
+ # torch.empty(city_negative_anchor.shape[0],
+ # device=city_negative_anchor.device).fill_(0.)])
+ #
+ # # randomly extract the contras set with {city_ood, city_inlier, coco_ood, coco_inlier}
+ # city_positive_contras = city_positive_anchor.clone()
+ # city_negative_contras = city_negative_anchor.clone()
+ # ood_positive_contras = ood_positive[torch.randperm(ood_positive.shape[0])][:sample_num]
+ # ood_negative_contras = ood_negative[torch.randperm(ood_negative.shape[0])][:sample_num]
+ #
+ # contrs_embed = torch.cat([city_positive_contras, city_negative_contras,
+ # ood_positive_contras, ood_negative_contras], dim=0)
+ #
+ # contrs_label = torch.cat([torch.empty(city_positive_contras.shape[0],
+ # device=city_positive_contras.device).fill_(1.),
+ # torch.empty(city_negative_contras.shape[0],
+ # device=city_negative_contras.device).fill_(0.),
+ # torch.empty(ood_positive_contras.shape[0],
+ # device=ood_positive_contras.device).fill_(1.),
+ # torch.empty(ood_negative_contras.shape[0],
+ # device=ood_negative_contras.device).fill_(0.)])
+ #
+ # return anchor_embed, anchor_label, contrs_embed, contrs_label
+
+
+
diff --git a/ref-avs.code/loss/training/sam2_training_loss.py b/ref-avs.code/loss/training/sam2_training_loss.py
new file mode 100644
index 0000000000000000000000000000000000000000..0862f6e54b675f5fc8b59a7454931fb58df45d58
--- /dev/null
+++ b/ref-avs.code/loss/training/sam2_training_loss.py
@@ -0,0 +1,221 @@
+"""SAM2 multi-step mask + IoU + objectness loss (Hydra `_target_`: `MultiStepMultiMasksAndIous`)."""
+from collections import defaultdict
+from typing import Dict, List
+
+import torch
+import torch.distributed
+import torch.nn as nn
+import torch.nn.functional as F
+
+CORE_LOSS_KEY = "core_loss"
+
+
+def dice_loss(inputs, targets, num_objects, loss_on_multimask=False):
+ inputs = inputs.sigmoid()
+ if loss_on_multimask:
+ assert inputs.dim() == 4 and targets.dim() == 4
+ inputs = inputs.flatten(2)
+ targets = targets.flatten(2)
+ numerator = 2 * (inputs * targets).sum(-1)
+ else:
+ inputs = inputs.flatten(1)
+ numerator = 2 * (inputs * targets).sum(1)
+ denominator = inputs.sum(-1) + targets.sum(-1)
+ loss = 1 - (numerator + 1) / (denominator + 1)
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+def sigmoid_focal_loss(
+ inputs,
+ targets,
+ num_objects,
+ alpha: float = 0.25,
+ gamma: float = 2,
+ loss_on_multimask=False,
+):
+ prob = inputs.sigmoid()
+ ce_loss = F.binary_cross_entropy_with_logits(inputs, targets, reduction="none")
+ p_t = prob * targets + (1 - prob) * (1 - targets)
+ loss = ce_loss * ((1 - p_t) ** gamma)
+
+ if alpha >= 0:
+ alpha_t = alpha * targets + (1 - alpha) * (1 - targets)
+ loss = alpha_t * loss
+
+ if loss_on_multimask:
+ assert loss.dim() == 4
+ return loss.flatten(2).mean(-1) / num_objects
+ return loss.mean(1).sum() / num_objects
+
+
+def iou_loss(
+ inputs, targets, pred_ious, num_objects, loss_on_multimask=False, use_l1_loss=False
+):
+ assert inputs.dim() == 4 and targets.dim() == 4
+ pred_mask = inputs.flatten(2) > 0
+ gt_mask = targets.flatten(2) > 0
+ area_i = torch.sum(pred_mask & gt_mask, dim=-1).float()
+ area_u = torch.sum(pred_mask | gt_mask, dim=-1).float()
+ actual_ious = area_i / torch.clamp(area_u, min=1.0)
+
+ if use_l1_loss:
+ loss = F.l1_loss(pred_ious, actual_ious, reduction="none")
+ else:
+ loss = F.mse_loss(pred_ious, actual_ious, reduction="none")
+ if loss_on_multimask:
+ return loss / num_objects
+ return loss.sum() / num_objects
+
+
+class MultiStepMultiMasksAndIous(nn.Module):
+ def __init__(
+ self,
+ weight_dict,
+ focal_alpha=0.25,
+ focal_gamma=2,
+ supervise_all_iou=False,
+ iou_use_l1_loss=False,
+ pred_obj_scores=False,
+ focal_gamma_obj_score=0.0,
+ focal_alpha_obj_score=-1,
+ gpu_num=1,
+ ):
+ super().__init__()
+ self.weight_dict = weight_dict
+ self.focal_alpha = focal_alpha
+ self.focal_gamma = focal_gamma
+ self.world_size = gpu_num
+ assert "loss_mask" in self.weight_dict
+ assert "loss_dice" in self.weight_dict
+ assert "loss_iou" in self.weight_dict
+ if "loss_class" not in self.weight_dict:
+ self.weight_dict["loss_class"] = 0.0
+
+ self.focal_alpha_obj_score = focal_alpha_obj_score
+ self.focal_gamma_obj_score = focal_gamma_obj_score
+ self.supervise_all_iou = supervise_all_iou
+ self.iou_use_l1_loss = iou_use_l1_loss
+ self.pred_obj_scores = pred_obj_scores
+
+ def forward(self, outs_batch: List[Dict], targets_batch: torch.Tensor):
+ assert len(outs_batch) == len(targets_batch)
+ num_objects = torch.tensor(
+ targets_batch.shape[1], device=targets_batch.device, dtype=torch.float
+ )
+ torch.distributed.all_reduce(num_objects)
+ num_objects = torch.clamp(num_objects / self.world_size, min=1).item()
+
+ losses = defaultdict(int)
+ for outs, targets in zip(outs_batch, targets_batch):
+ cur_losses = self._forward(outs, targets, num_objects)
+ for k, v in cur_losses.items():
+ losses[k] += v
+ return losses
+
+ def _forward(self, outputs: Dict, targets: torch.Tensor, num_objects):
+ target_masks = targets.unsqueeze(1).float()
+ assert target_masks.dim() == 4
+
+ src_masks_list = outputs["multistep_pred_multimasks_high_res"]
+ ious_list = outputs["multistep_pred_ious"]
+ object_score_logits_list = outputs["multistep_object_score_logits"]
+ assert len(src_masks_list) == len(ious_list)
+ assert len(object_score_logits_list) == len(ious_list)
+
+ losses = {"loss_mask": 0, "loss_dice": 0, "loss_iou": 0, "loss_class": 0}
+ for src_masks, ious, object_score_logits in zip(
+ src_masks_list, ious_list, object_score_logits_list
+ ):
+ self._update_losses(
+ losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ )
+ losses[CORE_LOSS_KEY] = self.reduce_loss(losses)
+ return losses
+
+ def _update_losses(
+ self, losses, src_masks, target_masks, ious, num_objects, object_score_logits
+ ):
+ target_masks = target_masks.expand_as(src_masks)
+ loss_multimask = sigmoid_focal_loss(
+ src_masks,
+ target_masks,
+ num_objects,
+ alpha=self.focal_alpha,
+ gamma=self.focal_gamma,
+ loss_on_multimask=True,
+ )
+ loss_multidice = dice_loss(
+ src_masks, target_masks, num_objects, loss_on_multimask=True
+ )
+ if not self.pred_obj_scores:
+ loss_class = torch.tensor(
+ 0.0, dtype=loss_multimask.dtype, device=loss_multimask.device
+ )
+ target_obj = torch.ones(
+ loss_multimask.shape[0],
+ 1,
+ dtype=loss_multimask.dtype,
+ device=loss_multimask.device,
+ )
+ else:
+ target_obj = torch.any((target_masks[:, 0] > 0).flatten(1), dim=-1)[
+ ..., None
+ ].float()
+ loss_class = sigmoid_focal_loss(
+ object_score_logits,
+ target_obj,
+ num_objects,
+ alpha=self.focal_alpha_obj_score,
+ gamma=self.focal_gamma_obj_score,
+ )
+
+ loss_multiiou = iou_loss(
+ src_masks,
+ target_masks,
+ ious,
+ num_objects,
+ loss_on_multimask=True,
+ use_l1_loss=self.iou_use_l1_loss,
+ )
+ assert loss_multimask.dim() == 2
+ assert loss_multidice.dim() == 2
+ assert loss_multiiou.dim() == 2
+ if loss_multimask.size(1) > 1:
+ loss_combo = (
+ loss_multimask * self.weight_dict["loss_mask"]
+ + loss_multidice * self.weight_dict["loss_dice"]
+ )
+ best_loss_inds = torch.argmin(loss_combo, dim=-1)
+ batch_inds = torch.arange(loss_combo.size(0), device=loss_combo.device)
+
+ loss_mask = loss_multimask[batch_inds, best_loss_inds].unsqueeze(1)
+ loss_dice = loss_multidice[batch_inds, best_loss_inds].unsqueeze(1)
+ if self.supervise_all_iou:
+ loss_iou = loss_multiiou.mean(dim=-1).unsqueeze(1)
+ else:
+ loss_iou = loss_multiiou[batch_inds, best_loss_inds].unsqueeze(1)
+ else:
+ loss_mask = loss_multimask
+ loss_dice = loss_multidice
+ loss_iou = loss_multiiou
+
+ loss_mask = loss_mask * target_obj
+ loss_dice = loss_dice * target_obj
+ loss_iou = loss_iou * target_obj
+
+ losses["loss_mask"] += loss_mask.sum()
+ losses["loss_dice"] += loss_dice.sum()
+ losses["loss_iou"] += loss_iou.sum()
+ losses["loss_class"] += loss_class
+
+ def reduce_loss(self, losses):
+ reduced_loss = 0.0
+ for loss_key, weight in self.weight_dict.items():
+ if loss_key not in losses:
+ raise ValueError(f"{type(self)} doesn't compute {loss_key}")
+ if weight != 0:
+ reduced_loss += losses[loss_key] * weight
+ return reduced_loss
+
diff --git a/ref-avs.code/main.py b/ref-avs.code/main.py
new file mode 100644
index 0000000000000000000000000000000000000000..e61f125fb4c8d787142732df7e0a82985d60dfe0
--- /dev/null
+++ b/ref-avs.code/main.py
@@ -0,0 +1,157 @@
+"""DDP training: frozen SAM2 + text, trainable AuralFuser (Ref-AVS)."""
+import os
+import argparse
+import random
+
+import numpy
+import torch
+from easydict import EasyDict
+
+
+def seed_it(seed):
+ os.environ["PYTHONSEED"] = str(seed)
+ random.seed(seed)
+ numpy.random.seed(seed)
+ torch.manual_seed(seed)
+ torch.cuda.manual_seed(seed)
+ torch.cuda.manual_seed_all(seed)
+ torch.backends.cudnn.enabled = True
+ torch.backends.cudnn.deterministic = True
+ torch.backends.cudnn.benchmark = False
+
+
+def main(local_rank, ngpus_per_node, hyp_param):
+ hyp_param.local_rank = local_rank
+ torch.distributed.init_process_group(
+ backend='nccl', init_method='env://',
+ rank=local_rank, world_size=hyp_param.gpus,
+ )
+ seed_it(local_rank + hyp_param.seed)
+ torch.cuda.set_device(local_rank)
+
+ import model.visual.sam2 # noqa: F401 — registers Hydra config store
+
+ from hydra import compose
+ from hydra.utils import instantiate
+ from omegaconf import OmegaConf
+
+ cfg = compose(config_name='configs/training/sam2_training_config.yaml')
+ OmegaConf.resolve(cfg)
+ hyp_param.contrastive_learning = OmegaConf.to_container(cfg.contrastive_learning, resolve=True)
+
+ arch_h = compose(config_name='configs/auralfuser/architecture.yaml')
+ OmegaConf.resolve(arch_h)
+ hyp_param.aural_fuser = OmegaConf.to_container(arch_h.aural_fuser, resolve=True)
+
+ hyp_param.image_size = 1024
+ hyp_param.image_embedding_size = int(hyp_param.image_size / 16)
+
+ from model.mymodel import AVmodel
+ av_model = AVmodel(hyp_param).cuda(local_rank)
+ av_model = torch.nn.parallel.DistributedDataParallel(
+ av_model, device_ids=[local_rank], find_unused_parameters=True,
+ )
+
+ from utils.utils import manipulate_params
+ optimiser = torch.optim.AdamW(manipulate_params(hyp_param, av_model.module.aural_fuser), betas=(0.9, 0.999))
+
+ from dataloader.dataset import AV
+ from dataloader.visual.visual_augmentation import Augmentation as VisualAugmentation
+ from dataloader.audio.audio_augmentation import Augmentation as AudioAugmentation
+ from torch.utils.data.distributed import DistributedSampler
+
+ compose_api = instantiate(cfg.train_transforms, _recursive_=True)[0]
+ audio_aug = AudioAugmentation(mono=True)
+ train_dataset = AV(
+ split='train',
+ augmentation={"visual": compose_api, "audio": audio_aug},
+ param=hyp_param,
+ root_path=hyp_param.data_root_path,
+ )
+
+ visual_aug = VisualAugmentation(
+ hyp_param.image_mean, hyp_param.image_std,
+ hyp_param.image_size, hyp_param.image_size,
+ hyp_param.scale_list, ignore_index=hyp_param.ignore_index,
+ )
+ train_loader = torch.utils.data.DataLoader(
+ train_dataset,
+ batch_size=hyp_param.batch_size,
+ sampler=DistributedSampler(train_dataset, shuffle=True),
+ num_workers=hyp_param.num_workers,
+ drop_last=True,
+ )
+
+ def _test_loader(split):
+ ds = AV(split=split, augmentation={"visual": visual_aug, "audio": audio_aug},
+ param=hyp_param, root_path=hyp_param.data_root_path)
+ return torch.utils.data.DataLoader(
+ ds, batch_size=4,
+ sampler=DistributedSampler(ds, shuffle=False),
+ num_workers=hyp_param.num_workers,
+ )
+
+ test_s_loader = _test_loader('test_s')
+ test_u_loader = _test_loader('test_u')
+ test_n_loader = _test_loader('test_n')
+
+ criterion = instantiate(cfg.loss, _recursive_=True)['all']
+
+ from utils.tensorboard import Tensorboard
+ tensorboard = Tensorboard(config=hyp_param) if local_rank <= 0 else None
+
+ from trainer.train import Trainer
+ from utils.foreground_iou import ForegroundIoU
+ from utils.foreground_fscore import ForegroundFScore
+ from utils.foreground_s import ForegroundS
+ metrics = {
+ "foreground_iou": ForegroundIoU(),
+ "foreground_f-score": ForegroundFScore(0 if local_rank <= 0 else local_rank),
+ "foreground_s": ForegroundS(),
+ }
+ trainer = Trainer(hyp_param, loss=criterion, tensorboard=tensorboard, metrics=metrics)
+
+ test_s_best, test_u_best = 0.2, 0.2
+ for epoch in range(hyp_param.epochs + 1):
+ av_model.train()
+ av_model.module.freeze_sam_parameters()
+ train_loader.sampler.set_epoch(epoch)
+ trainer.train(epoch=epoch, dataloader=train_loader, model=av_model, optimiser=optimiser)
+
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+ av_model.eval()
+ test_s, _ = trainer.valid(epoch=epoch, dataloader=test_s_loader, model=av_model, process='test_s')
+ test_u, _ = trainer.valid(epoch=epoch, dataloader=test_u_loader, model=av_model, process='test_u')
+ trainer.valid_null(epoch=epoch, dataloader=test_n_loader, model=av_model, process='test_n')
+
+ if local_rank <= 0 and (test_s > test_s_best or test_u > test_u_best):
+ test_s_best = max(test_s, test_s_best)
+ test_u_best = max(test_u, test_u_best)
+ torch.save(
+ av_model.module.aural_fuser.state_dict(),
+ os.path.join(
+ hyp_param.saved_dir,
+ f's({float(test_s)})_u({float(test_u)}).pth',
+ ),
+ )
+
+ torch.distributed.barrier()
+ torch.cuda.empty_cache()
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='Ref-AVS training')
+ parser.add_argument('--local_rank', type=int, default=-1)
+ parser.add_argument('-g', '--gpus', default=1, type=int)
+ parser.add_argument('--batch_size', default=1, type=int)
+ parser.add_argument('--epochs', default=80, type=int)
+ parser.add_argument('--lr', default=5e-4, type=float)
+ args = parser.parse_args()
+
+ from configs.config import C
+ args = EasyDict({**C, **vars(args)})
+ os.environ['MASTER_ADDR'] = '127.0.0.1'
+ os.environ['MASTER_PORT'] = '9901'
+ torch.multiprocessing.spawn(main, nprocs=args.gpus, args=(args.gpus, args))
diff --git a/ref-avs.code/model/audio/torchvggish/mel_features.py b/ref-avs.code/model/audio/torchvggish/mel_features.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac58fb5427f772fcced9cbd3cec3373ffbe5908c
--- /dev/null
+++ b/ref-avs.code/model/audio/torchvggish/mel_features.py
@@ -0,0 +1,223 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Defines routines to compute mel spectrogram features from audio waveform."""
+
+import numpy as np
+
+
+def frame(data, window_length, hop_length):
+ """Convert array into a sequence of successive possibly overlapping frames.
+
+ An n-dimensional array of shape (num_samples, ...) is converted into an
+ (n+1)-D array of shape (num_frames, window_length, ...), where each frame
+ starts hop_length points after the preceding one.
+
+ This is accomplished using stride_tricks, so the original data is not
+ copied. However, there is no zero-padding, so any incomplete frames at the
+ end are not included.
+
+ Args:
+ data: np.array of dimension N >= 1.
+ window_length: Number of samples in each frame.
+ hop_length: Advance (in samples) between each window.
+
+ Returns:
+ (N+1)-D np.array with as many rows as there are complete frames that can be
+ extracted.
+ """
+ num_samples = data.shape[0]
+ num_frames = 1 + int(np.floor((num_samples - window_length) / hop_length))
+ shape = (num_frames, window_length) + data.shape[1:]
+ strides = (data.strides[0] * hop_length,) + data.strides
+ return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
+
+
+def periodic_hann(window_length):
+ """Calculate a "periodic" Hann window.
+
+ The classic Hann window is defined as a raised cosine that starts and
+ ends on zero, and where every value appears twice, except the middle
+ point for an odd-length window. Matlab calls this a "symmetric" window
+ and np.hanning() returns it. However, for Fourier analysis, this
+ actually represents just over one cycle of a period N-1 cosine, and
+ thus is not compactly expressed on a length-N Fourier basis. Instead,
+ it's better to use a raised cosine that ends just before the final
+ zero value - i.e. a complete cycle of a period-N cosine. Matlab
+ calls this a "periodic" window. This routine calculates it.
+
+ Args:
+ window_length: The number of points in the returned window.
+
+ Returns:
+ A 1D np.array containing the periodic hann window.
+ """
+ return 0.5 - (0.5 * np.cos(2 * np.pi / window_length *
+ np.arange(window_length)))
+
+
+def stft_magnitude(signal, fft_length,
+ hop_length=None,
+ window_length=None):
+ """Calculate the short-time Fourier transform magnitude.
+
+ Args:
+ signal: 1D np.array of the input time-domain signal.
+ fft_length: Size of the FFT to apply.
+ hop_length: Advance (in samples) between each frame passed to FFT.
+ window_length: Length of each block of samples to pass to FFT.
+
+ Returns:
+ 2D np.array where each row contains the magnitudes of the fft_length/2+1
+ unique values of the FFT for the corresponding frame of input samples.
+ """
+ frames = frame(signal, window_length, hop_length)
+ # Apply frame window to each frame. We use a periodic Hann (cosine of period
+ # window_length) instead of the symmetric Hann of np.hanning (period
+ # window_length-1).
+ window = periodic_hann(window_length)
+ windowed_frames = frames * window
+ return np.abs(np.fft.rfft(windowed_frames, int(fft_length)))
+
+
+# Mel spectrum constants and functions.
+_MEL_BREAK_FREQUENCY_HERTZ = 700.0
+_MEL_HIGH_FREQUENCY_Q = 1127.0
+
+
+def hertz_to_mel(frequencies_hertz):
+ """Convert frequencies to mel scale using HTK formula.
+
+ Args:
+ frequencies_hertz: Scalar or np.array of frequencies in hertz.
+
+ Returns:
+ Object of same size as frequencies_hertz containing corresponding values
+ on the mel scale.
+ """
+ return _MEL_HIGH_FREQUENCY_Q * np.log(
+ 1.0 + (frequencies_hertz / _MEL_BREAK_FREQUENCY_HERTZ))
+
+
+def spectrogram_to_mel_matrix(num_mel_bins=20,
+ num_spectrogram_bins=129,
+ audio_sample_rate=8000,
+ lower_edge_hertz=125.0,
+ upper_edge_hertz=3800.0):
+ """Return a matrix that can post-multiply spectrogram rows to make mel.
+
+ Returns a np.array matrix A that can be used to post-multiply a matrix S of
+ spectrogram values (STFT magnitudes) arranged as frames x bins to generate a
+ "mel spectrogram" M of frames x num_mel_bins. M = S A.
+
+ The classic HTK algorithm exploits the complementarity of adjacent mel bands
+ to multiply each FFT bin by only one mel weight, then add it, with positive
+ and negative signs, to the two adjacent mel bands to which that bin
+ contributes. Here, by expressing this operation as a matrix multiply, we go
+ from num_fft multiplies per frame (plus around 2*num_fft adds) to around
+ num_fft^2 multiplies and adds. However, because these are all presumably
+ accomplished in a single call to np.dot(), it's not clear which approach is
+ faster in Python. The matrix multiplication has the attraction of being more
+ general and flexible, and much easier to read.
+
+ Args:
+ num_mel_bins: How many bands in the resulting mel spectrum. This is
+ the number of columns in the output matrix.
+ num_spectrogram_bins: How many bins there are in the source spectrogram
+ data, which is understood to be fft_size/2 + 1, i.e. the spectrogram
+ only contains the nonredundant FFT bins.
+ audio_sample_rate: Samples per second of the audio at the input to the
+ spectrogram. We need this to figure out the actual frequencies for
+ each spectrogram bin, which dictates how they are mapped into mel.
+ lower_edge_hertz: Lower bound on the frequencies to be included in the mel
+ spectrum. This corresponds to the lower edge of the lowest triangular
+ band.
+ upper_edge_hertz: The desired top edge of the highest frequency band.
+
+ Returns:
+ An np.array with shape (num_spectrogram_bins, num_mel_bins).
+
+ Raises:
+ ValueError: if frequency edges are incorrectly ordered or out of range.
+ """
+ nyquist_hertz = audio_sample_rate / 2.
+ if lower_edge_hertz < 0.0:
+ raise ValueError("lower_edge_hertz %.1f must be >= 0" % lower_edge_hertz)
+ if lower_edge_hertz >= upper_edge_hertz:
+ raise ValueError("lower_edge_hertz %.1f >= upper_edge_hertz %.1f" %
+ (lower_edge_hertz, upper_edge_hertz))
+ if upper_edge_hertz > nyquist_hertz:
+ raise ValueError("upper_edge_hertz %.1f is greater than Nyquist %.1f" %
+ (upper_edge_hertz, nyquist_hertz))
+ spectrogram_bins_hertz = np.linspace(0.0, nyquist_hertz, num_spectrogram_bins)
+ spectrogram_bins_mel = hertz_to_mel(spectrogram_bins_hertz)
+ # The i'th mel band (starting from i=1) has center frequency
+ # band_edges_mel[i], lower edge band_edges_mel[i-1], and higher edge
+ # band_edges_mel[i+1]. Thus, we need num_mel_bins + 2 values in
+ # the band_edges_mel arrays.
+ band_edges_mel = np.linspace(hertz_to_mel(lower_edge_hertz),
+ hertz_to_mel(upper_edge_hertz), num_mel_bins + 2)
+ # Matrix to post-multiply feature arrays whose rows are num_spectrogram_bins
+ # of spectrogram values.
+ mel_weights_matrix = np.empty((num_spectrogram_bins, num_mel_bins))
+ for i in range(num_mel_bins):
+ lower_edge_mel, center_mel, upper_edge_mel = band_edges_mel[i:i + 3]
+ # Calculate lower and upper slopes for every spectrogram bin.
+ # Line segments are linear in the *mel* domain, not hertz.
+ lower_slope = ((spectrogram_bins_mel - lower_edge_mel) /
+ (center_mel - lower_edge_mel))
+ upper_slope = ((upper_edge_mel - spectrogram_bins_mel) /
+ (upper_edge_mel - center_mel))
+ # .. then intersect them with each other and zero.
+ mel_weights_matrix[:, i] = np.maximum(0.0, np.minimum(lower_slope,
+ upper_slope))
+ # HTK excludes the spectrogram DC bin; make sure it always gets a zero
+ # coefficient.
+ mel_weights_matrix[0, :] = 0.0
+ return mel_weights_matrix
+
+
+def log_mel_spectrogram(data,
+ audio_sample_rate=8000,
+ log_offset=0.0,
+ window_length_secs=0.025,
+ hop_length_secs=0.010,
+ **kwargs):
+ """Convert waveform to a log magnitude mel-frequency spectrogram.
+
+ Args:
+ data: 1D np.array of waveform data.
+ audio_sample_rate: The sampling rate of data.
+ log_offset: Add this to values when taking log to avoid -Infs.
+ window_length_secs: Duration of each window to analyze.
+ hop_length_secs: Advance between successive analysis windows.
+ **kwargs: Additional arguments to pass to spectrogram_to_mel_matrix.
+
+ Returns:
+ 2D np.array of (num_frames, num_mel_bins) consisting of log mel filterbank
+ magnitudes for successive frames.
+ """
+ window_length_samples = int(round(audio_sample_rate * window_length_secs))
+ hop_length_samples = int(round(audio_sample_rate * hop_length_secs))
+ fft_length = 2 ** int(np.ceil(np.log(window_length_samples) / np.log(2.0)))
+ spectrogram = stft_magnitude(
+ data,
+ fft_length=fft_length,
+ hop_length=hop_length_samples,
+ window_length=window_length_samples)
+ mel_spectrogram = np.dot(spectrogram, spectrogram_to_mel_matrix(
+ num_spectrogram_bins=spectrogram.shape[1],
+ audio_sample_rate=audio_sample_rate, **kwargs))
+ return np.log(mel_spectrogram + log_offset)
diff --git a/ref-avs.code/model/audio/torchvggish/vggish.py b/ref-avs.code/model/audio/torchvggish/vggish.py
new file mode 100644
index 0000000000000000000000000000000000000000..f01c22867c713bfd8713eee5665120b92602761d
--- /dev/null
+++ b/ref-avs.code/model/audio/torchvggish/vggish.py
@@ -0,0 +1,193 @@
+import numpy as np
+import torch
+import torch.nn as nn
+from torch import hub
+
+from . import vggish_input, vggish_params
+
+
+class VGG(nn.Module):
+ def __init__(self, features):
+ super(VGG, self).__init__()
+ self.features = features
+ self.embeddings = nn.Sequential(
+ nn.Linear(512 * 4 * 6, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 4096),
+ nn.ReLU(True),
+ nn.Linear(4096, 128),
+ nn.ReLU(True))
+
+ def forward(self, x):
+ x = self.features(x)
+
+ # Transpose the output from features to
+ # remain compatible with vggish embeddings
+ x = torch.transpose(x, 1, 3)
+ x = torch.transpose(x, 1, 2)
+ x = x.contiguous()
+ x = x.view(x.size(0), -1)
+
+ return self.embeddings(x)
+
+
+class Postprocessor(nn.Module):
+ """Post-processes VGGish embeddings. Returns a torch.Tensor instead of a
+ numpy array in order to preserve the gradient.
+
+ "The initial release of AudioSet included 128-D VGGish embeddings for each
+ segment of AudioSet. These released embeddings were produced by applying
+ a PCA transformation (technically, a whitening transform is included as well)
+ and 8-bit quantization to the raw embedding output from VGGish, in order to
+ stay compatible with the YouTube-8M project which provides visual embeddings
+ in the same format for a large set of YouTube videos. This class implements
+ the same PCA (with whitening) and quantization transformations."
+ """
+
+ def __init__(self):
+ """Constructs a postprocessor."""
+ super(Postprocessor, self).__init__()
+ # Create empty matrix, for user's state_dict to load
+ self.pca_eigen_vectors = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, vggish_params.EMBEDDING_SIZE,),
+ dtype=torch.float,
+ )
+ self.pca_means = torch.empty(
+ (vggish_params.EMBEDDING_SIZE, 1), dtype=torch.float
+ )
+
+ self.pca_eigen_vectors = nn.Parameter(self.pca_eigen_vectors, requires_grad=False)
+ self.pca_means = nn.Parameter(self.pca_means, requires_grad=False)
+
+ def postprocess(self, embeddings_batch):
+ """Applies tensor postprocessing to a batch of embeddings.
+
+ Args:
+ embeddings_batch: An tensor of shape [batch_size, embedding_size]
+ containing output from the embedding layer of VGGish.
+
+ Returns:
+ A tensor of the same shape as the input, containing the PCA-transformed,
+ quantized, and clipped version of the input.
+ """
+ assert len(embeddings_batch.shape) == 2, "Expected 2-d batch, got %r" % (
+ embeddings_batch.shape,
+ )
+ assert (
+ embeddings_batch.shape[1] == vggish_params.EMBEDDING_SIZE
+ ), "Bad batch shape: %r" % (embeddings_batch.shape,)
+
+ # Apply PCA.
+ # - Embeddings come in as [batch_size, embedding_size].
+ # - Transpose to [embedding_size, batch_size].
+ # - Subtract pca_means column vector from each column.
+ # - Premultiply by PCA matrix of shape [output_dims, input_dims]
+ # where both are are equal to embedding_size in our case.
+ # - Transpose result back to [batch_size, embedding_size].
+ pca_applied = torch.mm(self.pca_eigen_vectors, (embeddings_batch.t() - self.pca_means)).t()
+
+ # Quantize by:
+ # - clipping to [min, max] range
+ clipped_embeddings = torch.clamp(
+ pca_applied, vggish_params.QUANTIZE_MIN_VAL, vggish_params.QUANTIZE_MAX_VAL
+ )
+ # - convert to 8-bit in range [0.0, 255.0]
+ quantized_embeddings = torch.round(
+ (clipped_embeddings - vggish_params.QUANTIZE_MIN_VAL)
+ * (
+ 255.0
+ / (vggish_params.QUANTIZE_MAX_VAL - vggish_params.QUANTIZE_MIN_VAL)
+ )
+ )
+ return torch.squeeze(quantized_embeddings)
+
+ def forward(self, x):
+ return self.postprocess(x)
+
+
+def make_layers():
+ layers = []
+ in_channels = 1
+ for v in [64, "M", 128, "M", 256, 256, "M", 512, 512, "M"]:
+ if v == "M":
+ layers += [nn.MaxPool2d(kernel_size=2, stride=2)]
+ else:
+ conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1)
+ layers += [conv2d, nn.ReLU(inplace=True)]
+ in_channels = v
+ return nn.Sequential(*layers)
+
+
+def _vgg():
+ return VGG(make_layers())
+
+
+# def _spectrogram():
+# config = dict(
+# sr=16000,
+# n_fft=400,
+# n_mels=64,
+# hop_length=160,
+# window="hann",
+# center=False,
+# pad_mode="reflect",
+# htk=True,
+# fmin=125,
+# fmax=7500,
+# output_format='Magnitude',
+# # device=device,
+# )
+# return Spectrogram.MelSpectrogram(**config)
+
+
+class VGGish(VGG):
+ def __init__(self, cfg, device=None):
+ super().__init__(make_layers())
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_VGGISH_MODEL_PATH)
+ super().load_state_dict(state_dict)
+ print(f'==> Load pretrained VGGish parameters from {cfg.PRETRAINED_VGGISH_MODEL_PATH}')
+
+ if device is None:
+ device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
+ print("device: ", device)
+ self.device = device
+
+ self.preprocess = cfg.PREPROCESS_AUDIO_TO_LOG_MEL
+ self.postprocess = cfg.POSTPROCESS_LOG_MEL_WITH_PCA
+ if self.postprocess:
+ self.pproc = Postprocessor()
+ if cfg.FREEZE_AUDIO_EXTRACTOR:
+ state_dict = torch.load(cfg.PRETRAINED_PCA_PARAMS_PATH)
+ # TODO: Convert the state_dict to torch
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_EIGEN_VECTORS_NAME], dtype=torch.float
+ )
+ state_dict[vggish_params.PCA_MEANS_NAME] = torch.as_tensor(
+ state_dict[vggish_params.PCA_MEANS_NAME].reshape(-1, 1), dtype=torch.float
+ )
+ self.pproc.load_state_dict(state_dict)
+ self.to(self.device)
+
+ def forward(self, x):
+ if self.preprocess:
+ print(">>> pre processing...")
+ x = self._preprocess(x)
+ x = x.to(self.device)
+ x = VGG.forward(self, x)
+ if self.postprocess:
+ print(">>> post processing...")
+ x = self._postprocess(x)
+ return x
+
+ def _preprocess(self, x):
+ # if isinstance(x, np.ndarray):
+ # x = vggish_input.waveform_to_examples(x, fs)
+ if isinstance(x, str):
+ x = vggish_input.wavfile_to_examples(x)
+ else:
+ raise AttributeError
+ return x
+
+ def _postprocess(self, x):
+ return self.pproc(x)
diff --git a/ref-avs.code/model/audio/torchvggish/vggish_input.py b/ref-avs.code/model/audio/torchvggish/vggish_input.py
new file mode 100644
index 0000000000000000000000000000000000000000..ede228b1fb630180f1f49244355d373fb3300f03
--- /dev/null
+++ b/ref-avs.code/model/audio/torchvggish/vggish_input.py
@@ -0,0 +1,98 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Compute input examples for VGGish from audio waveform."""
+
+# Modification: Return torch tensors rather than numpy arrays
+import torch
+
+import numpy as np
+import resampy
+
+from . import mel_features
+from . import vggish_params
+
+import soundfile as sf
+
+
+def waveform_to_examples(data, sample_rate, return_tensor=True):
+ """Converts audio waveform into an array of examples for VGGish.
+
+ Args:
+ data: np.array of either one dimension (mono) or two dimensions
+ (multi-channel, with the outer dimension representing channels).
+ Each sample is generally expected to lie in the range [-1.0, +1.0],
+ although this is not required.
+ sample_rate: Sample rate of data.
+ return_tensor: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ 3-D np.array of shape [num_examples, num_frames, num_bands] which represents
+ a sequence of examples, each of which contains a patch of log mel
+ spectrogram, covering num_frames frames of audio and num_bands mel frequency
+ bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
+
+ """
+ # Convert to mono.
+ if len(data.shape) > 1:
+ data = np.mean(data, axis=1)
+ # Resample to the rate assumed by VGGish.
+ if sample_rate != vggish_params.SAMPLE_RATE:
+ data = resampy.resample(data, sample_rate, vggish_params.SAMPLE_RATE)
+
+ # Compute log mel spectrogram features.
+ log_mel = mel_features.log_mel_spectrogram(
+ data,
+ audio_sample_rate=vggish_params.SAMPLE_RATE,
+ log_offset=vggish_params.LOG_OFFSET,
+ window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
+ hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
+ num_mel_bins=vggish_params.NUM_MEL_BINS,
+ lower_edge_hertz=vggish_params.MEL_MIN_HZ,
+ upper_edge_hertz=vggish_params.MEL_MAX_HZ)
+
+ # Frame features into examples.
+ features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
+ example_window_length = int(round(
+ vggish_params.EXAMPLE_WINDOW_SECONDS * features_sample_rate))
+ example_hop_length = int(round(
+ vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate))
+ log_mel_examples = mel_features.frame(
+ log_mel,
+ window_length=example_window_length,
+ hop_length=example_hop_length)
+
+ if return_tensor:
+ log_mel_examples = torch.tensor(
+ log_mel_examples, requires_grad=True)[:, None, :, :].float()
+
+ return log_mel_examples
+
+
+def wavfile_to_examples(wav_file, return_tensor=True):
+ """Convenience wrapper around waveform_to_examples() for a common WAV format.
+
+ Args:
+ wav_file: String path to a file, or a file-like object. The file
+ is assumed to contain WAV audio data with signed 16-bit PCM samples.
+ torch: Return data as a Pytorch tensor ready for VGGish
+
+ Returns:
+ See waveform_to_examples.
+ """
+ wav_data, sr = sf.read(wav_file, dtype='int16')
+ assert wav_data.dtype == np.int16, 'Bad sample type: %r' % wav_data.dtype
+ samples = wav_data / 32768.0 # Convert to [-1.0, +1.0]
+ return waveform_to_examples(samples, sr, return_tensor)
diff --git a/ref-avs.code/model/audio/torchvggish/vggish_params.py b/ref-avs.code/model/audio/torchvggish/vggish_params.py
new file mode 100644
index 0000000000000000000000000000000000000000..526784bceaa4c9c8b8dc2b8f82e0f3d395d4bec2
--- /dev/null
+++ b/ref-avs.code/model/audio/torchvggish/vggish_params.py
@@ -0,0 +1,53 @@
+# Copyright 2017 The TensorFlow Authors All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ==============================================================================
+
+"""Global parameters for the VGGish model.
+
+See vggish_slim.py for more information.
+"""
+
+# Architectural constants.
+NUM_FRAMES = 96 # Frames in input mel-spectrogram patch.
+NUM_BANDS = 64 # Frequency bands in input mel-spectrogram patch.
+EMBEDDING_SIZE = 128 # Size of embedding layer.
+
+# Hyperparameters used in feature and example generation.
+SAMPLE_RATE = 16000
+STFT_WINDOW_LENGTH_SECONDS = 0.025
+STFT_HOP_LENGTH_SECONDS = 0.010
+NUM_MEL_BINS = NUM_BANDS
+MEL_MIN_HZ = 125
+MEL_MAX_HZ = 7500
+LOG_OFFSET = 0.01 # Offset used for stabilized log of input mel-spectrogram.
+EXAMPLE_WINDOW_SECONDS = 0.96 # Each example contains 96 10ms frames
+EXAMPLE_HOP_SECONDS = 0.96 # with zero overlap.
+
+# Parameters used for embedding postprocessing.
+PCA_EIGEN_VECTORS_NAME = 'pca_eigen_vectors'
+PCA_MEANS_NAME = 'pca_means'
+QUANTIZE_MIN_VAL = -2.0
+QUANTIZE_MAX_VAL = +2.0
+
+# Hyperparameters used in training.
+INIT_STDDEV = 0.01 # Standard deviation used to initialize weights.
+LEARNING_RATE = 1e-4 # Learning rate for the Adam optimizer.
+ADAM_EPSILON = 1e-8 # Epsilon for the Adam optimizer.
+
+# Names of ops, tensors, and features.
+INPUT_OP_NAME = 'vggish/input_features'
+INPUT_TENSOR_NAME = INPUT_OP_NAME + ':0'
+OUTPUT_OP_NAME = 'vggish/embedding'
+OUTPUT_TENSOR_NAME = OUTPUT_OP_NAME + ':0'
+AUDIO_EMBEDDING_FEATURE_NAME = 'audio_embedding'
diff --git a/ref-avs.code/model/aural_fuser.py b/ref-avs.code/model/aural_fuser.py
new file mode 100644
index 0000000000000000000000000000000000000000..893b868c2ae451a725f45497b6db5abc3a610c82
--- /dev/null
+++ b/ref-avs.code/model/aural_fuser.py
@@ -0,0 +1,742 @@
+import torch
+import torch.nn as nn
+from model.audio.torchvggish import vggish
+from timm.models.layers import DropPath, trunc_normal_
+import math
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingSine
+
+
+class ProjectionHead(nn.Module):
+ def __init__(self, dim_in, proj_dim=256, norm_act=nn.BatchNorm2d, conv_layer=nn.Conv2d):
+ super(ProjectionHead, self).__init__()
+ self.proj = nn.Sequential(
+ nn.Linear(dim_in, proj_dim),
+ nn.GELU(),
+ nn.LayerNorm(proj_dim),
+ nn.Linear(proj_dim, proj_dim),
+ )
+
+ def forward(self, x):
+ return torch.nn.functional.normalize(self.proj(x), p=2, dim=1)
+
+
+class AuralFuser(torch.nn.Module):
+ """Fuses VGGish audio, RoBERTa text, and SAM2 FPN maps via patch embeds, fusion blocks, and projection heads."""
+
+ def __init__(self, hyp_param):
+ self.hyp_param = hyp_param
+ super().__init__()
+ self.vgg = vggish.VGGish(self.hyp_param.audio)
+ if not getattr(self.hyp_param, "train_vggish", False):
+ for p in self.vgg.parameters():
+ p.requires_grad = False
+
+ self.position_encoding_func = PositionEmbeddingSine(num_pos_feats=256, normalize=True, scale=None,
+ temperature=10000)
+
+ if not hasattr(self.hyp_param, "aural_fuser") or self.hyp_param.aural_fuser is None:
+ raise ValueError(
+ "hyp_param.aural_fuser is missing; load it with Hydra compose before constructing AuralFuser."
+ )
+ arch_cfg = self.hyp_param.aural_fuser
+
+ _patch_cfgs = [tuple(i) for i in arch_cfg["patch_cfgs"]]
+ _f_depths = arch_cfg["f_depths"]
+ _block_kw = dict(arch_cfg["block_kw"])
+ _block_kw["norm_layer"] = nn.LayerNorm
+ _one_d_kw = dict(arch_cfg["one_d_kw"])
+ _one_d_kw["norm_layer"] = nn.LayerNorm
+
+ self.patch_embeds = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=k, stride=s) for k, s in _patch_cfgs
+ )
+
+ self.f_blocks = nn.ModuleList(
+ nn.ModuleList([Block(**_block_kw) for _ in range(n)]) for n in _f_depths
+ )
+
+ self.a_blocks = nn.ModuleList(
+ nn.ModuleList([OneDBlock(**_one_d_kw) for _ in range(3)]) for _ in range(3)
+ )
+
+ self.fusion_modules = nn.ModuleList(
+ TPAVIModuleDIY(in_channels=256, mode='dot') for _ in range(3)
+ )
+ self.smooth_convs = nn.ModuleList(
+ nn.Conv2d(256, 256, kernel_size=1, stride=1, padding=0) for _ in range(2)
+ )
+
+ self.train_proj_v1 = ProjectionHead(dim_in=256, proj_dim=128)
+ self.train_proj_a1 = ProjectionHead(dim_in=256, proj_dim=128)
+
+ self.text_proj = nn.Sequential(
+ nn.Linear(768, 1024),
+ nn.GELU(),
+ nn.Linear(1024, 256),
+ )
+
+ @staticmethod
+ def positionalencoding1d(d_model, length):
+ if d_model % 2 != 0:
+ raise ValueError("Cannot use sin/cos positional encoding with "
+ "odd dim (got dim={:d})".format(d_model))
+ pe = torch.zeros(length, d_model)
+ position = torch.arange(0, length).unsqueeze(1)
+ div_term = torch.exp((torch.arange(0, d_model, 2, dtype=torch.float) *
+ -(math.log(10000.0) / d_model)))
+ pe[:, 0::2] = torch.sin(position.float() * div_term)
+ pe[:, 1::2] = torch.cos(position.float() * div_term)
+
+ return pe
+
+ def forward(self, feature_dicts, spect=None, text=None):
+ image_embed_shape = [self.hyp_param.image_embedding_size] * 2
+ H, W = image_embed_shape[0], image_embed_shape[1]
+ d = torch.cat(
+ [
+ self.vgg(spect[:, 0, ...].unsqueeze(1)),
+ self.vgg(spect[:, 1, ...].unsqueeze(1)),
+ ],
+ dim=-1,
+ )
+ text = self.text_proj(text)
+ d = torch.cat([d, text.squeeze()])
+
+ length = d.shape[-1]
+ fix_audio_pos = self.positionalencoding1d(length, 1).squeeze().to(spect.device)
+ fpn = list(feature_dicts["backbone_fpn"])
+ patch_embeds = list(self.patch_embeds)
+ f_blocks = list(self.f_blocks)
+ a_blocks = list(self.a_blocks)
+ tpavi = list(self.fusion_modules)
+ smooths = [None, self.smooth_convs[0], self.smooth_convs[1]]
+
+ feats = [None, None, None]
+ d_outputs = []
+ vis_attn_feats = []
+
+ for i in range(3):
+ x = fpn[i]
+ x = patch_embeds[i](x)
+ x_pos = self.position_encoding_func(x)
+ x = x.flatten(2).permute(0, 2, 1)
+ x_pos = x_pos.flatten(2).permute(0, 2, 1)
+
+ if i == 0:
+ x = x + x_pos
+ d = d + fix_audio_pos
+ else:
+ x = x + feats[i - 1]
+ x = smooths[i](
+ x.permute(0, 2, 1).reshape(x.shape[0], 256, H, W)
+ ).flatten(2).permute(0, 2, 1)
+ x = x + x_pos
+ d = d + fix_audio_pos
+
+ for blks in f_blocks[i]:
+ x = blks(x, H, W, x_pos)
+ for blks in a_blocks[i]:
+ d = blks(d, fix_audio_pos)
+
+ x = x + x_pos
+ d = d + fix_audio_pos
+ x, d_out, x_attn, _ = tpavi[i](x, H, W, x_pos, d, length)
+ d = d_out
+ feats[i] = x
+ d_outputs.append(d_out)
+ vis_attn_feats.append(x_attn)
+
+ a, b, c = feats
+ d1, d2, d3 = d_outputs
+ a_attn, b_attn, c_attn = vis_attn_feats
+
+ feature_residual = [a, b, c]
+ audio_out = [d1, d2, d3]
+
+ proj_feature_out = [
+ [
+ self.train_proj_v1(a_attn.flatten(start_dim=2).permute(0, 2, 1)).reshape(
+ -1, *image_embed_shape, 128
+ ).permute(0, 3, 1, 2),
+ self.train_proj_v1(b_attn.flatten(start_dim=2).permute(0, 2, 1)).reshape(
+ -1, *image_embed_shape, 128
+ ).permute(0, 3, 1, 2),
+ self.train_proj_v1(c_attn.flatten(start_dim=2).permute(0, 2, 1)).reshape(
+ -1, *image_embed_shape, 128
+ ).permute(0, 3, 1, 2),
+ ],
+ [
+ self.train_proj_a1(d1[:10]).unsqueeze(-1),
+ self.train_proj_a1(d2[:10]).unsqueeze(-1),
+ self.train_proj_a1(d3[:10]).unsqueeze(-1),
+ ],
+ ]
+
+ return feature_residual, audio_out, proj_feature_out
+
+
+class TPAVIModuleDIY(nn.Module):
+ def __init__(self, in_channels, inter_channels=None, mode='dot',
+ dimension=3):
+ """
+ args:
+ in_channels: original channel size (1024 in the paper)
+ inter_channels: channel size inside the block if not specifed reduced to half (512 in the paper)
+ mode: supports Gaussian, Embedded Gaussian, Dot Product, and Concatenation
+ dimension: can be 1 (temporal), 2 (spatial), 3 (spatiotemporal)
+ bn_layer: whether to add batch norm
+ """
+ super(TPAVIModuleDIY, self).__init__()
+ assert mode == 'dot', print('... following original paper.')
+ self.mode = mode
+ self.dimension = dimension
+
+ self.in_channels = in_channels
+ self.inter_channels = inter_channels
+
+ self.inter_channels = in_channels // 2
+
+ self.align_channel = nn.Conv1d(256, in_channels, kernel_size=1)
+ self.align_channel_back = nn.Conv1d(in_channels, 128, kernel_size=1)
+
+ self.norm_layer = nn.LayerNorm(in_channels)
+
+ if dimension == 3:
+ conv_nd = nn.Conv3d
+ bn = nn.BatchNorm3d
+ elif dimension == 2:
+ conv_nd = nn.Conv2d
+ bn = nn.BatchNorm2d
+ else:
+ conv_nd = nn.Conv1d
+ bn = nn.BatchNorm1d
+
+ self.g = conv_nd(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.W_z = nn.Sequential(
+ conv_nd(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ bn(self.in_channels)
+ )
+ nn.init.constant_(self.W_z[1].weight, 0)
+ nn.init.constant_(self.W_z[1].bias, 0)
+
+ self.W_z2 = nn.Sequential(
+ nn.Conv1d(in_channels=self.inter_channels, out_channels=self.in_channels, kernel_size=1),
+ nn.BatchNorm1d(self.in_channels)
+ )
+ nn.init.constant_(self.W_z2[1].weight, 0)
+ nn.init.constant_(self.W_z2[1].bias, 0)
+ self.norm_layer2 = nn.LayerNorm(self.in_channels)
+
+ self.q_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.k_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+ self.v_frame = nn.Conv3d(in_channels=self.in_channels, out_channels=self.inter_channels, kernel_size=1)
+
+ self.q_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.k_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+ self.v_audio = nn.Conv1d(self.in_channels, self.inter_channels, kernel_size=1)
+
+
+ def forward(self, frame, H_x, W_x, tmp1, audio, tmp2):
+ """
+ args:
+ x: (N, C, T, H, W) for dimension=3; (N, C, H, W) for dimension 2; (N, C, T) for dimension 1
+ audio: (N, T, C)
+ """
+ frame = frame.permute(0, 2, 1)
+ frame = frame.reshape(frame.shape[0], frame.shape[1], H_x, W_x)
+
+ frame = frame.unsqueeze(2)
+ audio = self.align_channel(audio.unsqueeze(-1))
+
+
+ batch_size = frame.size(0)
+ audio_batch_size = audio.size(0)
+ q_frame = self.q_frame(frame).reshape(1, -1, self.inter_channels) # [bs, 4096, 128]
+ k_frame = self.k_frame(frame).reshape(1, -1, self.inter_channels) # [bs, 4096, 128]
+ v_frame = self.v_frame(frame).reshape(1, -1, self.inter_channels) # [bs, 4096, 128]
+
+ q_audio = self.q_audio(audio).reshape(1, -1, self.inter_channels) # [bs, 1, 128]
+ k_audio = self.k_audio(audio).reshape(1, -1, self.inter_channels) # [bs, 1, 128]
+ v_audio = self.v_audio(audio).reshape(1, -1, self.inter_channels) # [bs, 1, 128]
+
+ f = torch.matmul(q_frame, k_audio.mT) # [bs, 4096, 1]
+ f_normalise = f / f.size(1) # [bs, THW, THW]
+
+ frame_attn = torch.matmul(f_normalise, v_audio) # [bs, THW, C]
+
+ frame_attn = frame_attn.permute(0, 2, 1).contiguous() # [bs, C, THW]
+ frame_attn = frame_attn.view(batch_size, self.inter_channels, *frame.size()[2:]) #
+ frame_attn = self.W_z(frame_attn) # [bs, C, T, H, W]
+ frame = frame_attn + frame # # [bs, C, T, H, W]
+
+ frame = frame.permute(0, 2, 3, 4, 1) # [bs, T, H, W, C]
+ frame = self.norm_layer(frame)
+ frame = frame.permute(0, 4, 1, 2, 3) # [bs, C, T, H, W]
+ frame = frame.squeeze().flatten(start_dim=2).permute(0, 2, 1)
+
+ a = torch.matmul(q_audio, k_frame.mT) # [bs, THW, THW]
+ a_normalise = a / a.size(-1)
+
+ audio_attn = torch.matmul(a_normalise, v_frame)
+ audio_attn = audio_attn.permute(0, 2, 1).contiguous() # [bs, C, THW]
+
+ audio_attn = audio_attn.view(audio_batch_size, self.inter_channels).unsqueeze(-1)
+ audio_attn = self.W_z2(audio_attn) # [bs, C, T, H, W]
+
+ audio = audio_attn + audio
+
+ audio = self.norm_layer2(audio.squeeze()).squeeze()
+
+ return frame, audio, frame_attn, audio_attn
+
+
+class OneDBlock(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = OneDAttention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = OneDMlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop,
+ linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, pos):
+ x = x + self.drop_path(self.attn(self.norm1(x)))
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+
+ return x
+
+
+class OneDAttention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = x.unsqueeze(0)
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+
+ k, v = kv[0], kv[1]
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ x = x.squeeze()
+ return x
+
+
+class OneDMlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class TwoWayBlock(nn.Module):
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1_f = norm_layer(dim)
+ self.norm1_a = norm_layer(dim)
+ self.attn = TwoWayCrossAttention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2_f = norm_layer(dim)
+ self.norm2_a = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp_f = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
+ self.mlp_a = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x_f, H_f, W_f, x_f_pos, x_a, H_a, W_a, x_a_pos):
+ x_f_1, x_a_1 = self.attn(self.norm1_f(x_f + x_f_pos), H_f, W_f, self.norm1_a(x_a + x_a_pos), H_a, W_a)
+ x_f, x_a = x_f + self.drop_path(x_f_1), x_a + self.drop_path(x_a_1)
+
+ x_f_2, x_a_2 = self.mlp_f(self.norm2_f(x_f), H_f, W_f), self.mlp_a(self.norm2_a(x_a), H_a, W_a)
+ x_f, x_a = x_f + self.drop_path(x_f_2), x_a + self.drop_path(x_a_2)
+ return x_f, x_a
+
+
+class TwoWayCrossAttention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ for i in ['frame', 'audio']:
+ setattr(self, i + '_q', nn.Linear(dim, dim, bias=qkv_bias))
+ setattr(self, i + '_kv', nn.Linear(dim, dim, bias=qkv_bias))
+ setattr(self, i + '_attn_drop', nn.Dropout(attn_drop))
+ setattr(self, i + '_proj', nn.Linear(dim, dim, bias=qkv_bias))
+ setattr(self, i + '_proj_drop', nn.Dropout(proj_drop))
+ if not linear:
+ if sr_ratio > 1:
+ setattr(self, i + '_sr', nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio))
+ setattr(self, i + '_norm', nn.LayerNorm(dim))
+ else:
+ setattr(self, i + '_pool', nn.AdaptiveAvgPool2d(7))
+ setattr(self, i + '_sr', nn.Conv2d(dim, dim, kernel_size=1, stride=1))
+ setattr(self, i + '_norm', nn.LayerNorm(dim))
+ setattr(self, i + '_act', nn.GELU())
+
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x_f, H_f, W_f, x_a, H_a, W_a):
+ B_f, N_f, C_f = x_f.shape
+ B_a, N_a, C_a = x_a.shape
+ q_f = self.frame_q(x_f).reshape(B_f, N_f, self.num_heads, C_f // self.num_heads).permute(0, 2, 1, 3)
+ q_a = self.audio_q(x_a).reshape(B_a, N_a, self.num_heads, C_a // self.num_heads).permute(0, 2, 1, 3)
+
+ if not self.linear:
+ if self.sr_ratio > 1:
+ x_f = x_f.permute(0, 2, 1).reshape(B_f, C_f, H_f, W_f)
+ x_f = self.frame_sr(x_f).reshape(B_f, C_f, -1).permute(0, 2, 1)
+ x_f = self.frame_norm(x_f)
+ kv_f = self.frame_kv(x_f).reshape(B_f, -1, 2, self.num_heads, C_f // self.num_heads).permute(2, 0, 3, 1,
+ 4)
+
+ x_a = x_a.permute(0, 2, 1).reshape(B_a, C_a, H_a, W_a)
+ x_a = self.audio_sr(x_a).reshape(B_a, C_a, -1).permute(0, 2, 1)
+ x_a = self.audio_norm(x_a)
+ kv_a = self.audio_kv(x_a).reshape(B_a, -1, 2, self.num_heads, C_f // self.num_heads).permute(2, 0, 3, 1,
+ 4)
+
+ else:
+ kv_f = self.frame_kv(x_f).reshape(B_f, -1, 2, self.num_heads, C_f // self.num_heads).permute(2, 0, 3, 1,
+ 4)
+ kv_a = self.kv(x_a).reshape(B_a, -1, 2, self.num_heads, C_a // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ raise NotImplementedError
+
+ k_f, v_f = kv_f[0], kv_f[1]
+ k_a, v_a = kv_a[0], kv_a[1]
+
+ attn_a = (q_a @ k_f.transpose(-2, -1)) * self.scale
+ attn_a = attn_a.softmax(dim=-1)
+ attn_a = self.audio_attn_drop(attn_a)
+ x_a = (attn_a @ v_f).transpose(1, 2).reshape(B_a, N_a, C_a)
+ x_a = self.audio_proj(x_a)
+ x_a = self.audio_proj_drop(x_a)
+
+ attn_f = (q_f @ k_a.transpose(-2, -1)) * self.scale
+ attn_f = attn_f.softmax(dim=-1)
+ attn_f = self.frame_attn_drop(attn_f)
+ x_f = (attn_f @ v_a).transpose(1, 2).reshape(B_f, N_f, C_f)
+ x_f = self.frame_proj(x_f)
+ x_f = self.frame_proj_drop(x_f)
+
+ return x_f, x_a
+
+
+class Block(nn.Module):
+
+ def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0.,
+ drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm, sr_ratio=1, linear=False):
+ super().__init__()
+ self.norm1 = norm_layer(dim)
+ self.attn = Attention(
+ dim,
+ num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale,
+ attn_drop=attn_drop, proj_drop=drop, sr_ratio=sr_ratio, linear=linear)
+ self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity()
+ self.norm2 = norm_layer(dim)
+ mlp_hidden_dim = int(dim * mlp_ratio)
+ self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop, linear=linear)
+
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W, pos):
+ x = x + self.drop_path(self.attn(self.norm1(x), H, W))
+ x = x + self.drop_path(self.mlp(self.norm2(x), H, W))
+
+ return x
+
+
+class Attention(nn.Module):
+ def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0., sr_ratio=1,
+ linear=False):
+ super().__init__()
+ assert dim % num_heads == 0, f"dim {dim} should be divided by num_heads {num_heads}."
+
+ self.dim = dim
+ self.num_heads = num_heads
+ head_dim = dim // num_heads
+ self.scale = qk_scale or head_dim ** -0.5
+
+ self.q = nn.Linear(dim, dim, bias=qkv_bias)
+ self.kv = nn.Linear(dim, dim * 2, bias=qkv_bias)
+ self.attn_drop = nn.Dropout(attn_drop)
+ self.proj = nn.Linear(dim, dim)
+ self.proj_drop = nn.Dropout(proj_drop)
+
+ self.linear = linear
+ self.sr_ratio = sr_ratio
+ if not linear:
+ if sr_ratio > 1:
+ self.sr = nn.Conv2d(dim, dim, kernel_size=sr_ratio, stride=sr_ratio)
+ self.norm = nn.LayerNorm(dim)
+ else:
+ self.pool = nn.AdaptiveAvgPool2d(7)
+ self.sr = nn.Conv2d(dim, dim, kernel_size=1, stride=1)
+ self.norm = nn.LayerNorm(dim)
+ self.act = nn.GELU()
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ q = self.q(x).reshape(B, N, self.num_heads, C // self.num_heads).permute(0, 2, 1, 3)
+ if not self.linear:
+ if self.sr_ratio > 1:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(x_).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ kv = self.kv(x).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ else:
+ x_ = x.permute(0, 2, 1).reshape(B, C, H, W)
+ x_ = self.sr(self.pool(x_)).reshape(B, C, -1).permute(0, 2, 1)
+ x_ = self.norm(x_)
+ x_ = self.act(x_)
+ kv = self.kv(x_).reshape(B, -1, 2, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4)
+ k, v = kv[0], kv[1]
+
+ attn = (q @ k.transpose(-2, -1)) * self.scale
+ attn = attn.softmax(dim=-1)
+ attn = self.attn_drop(attn)
+ x = (attn @ v).transpose(1, 2).reshape(B, N, C)
+ x = self.proj(x)
+ x = self.proj_drop(x)
+
+ return x
+
+
+class Mlp(nn.Module):
+ def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0., linear=False):
+ super().__init__()
+ out_features = out_features or in_features
+ hidden_features = hidden_features or in_features
+ self.fc1 = nn.Linear(in_features, hidden_features)
+ self.dwconv = DWConv(hidden_features)
+ self.act = act_layer()
+ self.fc2 = nn.Linear(hidden_features, out_features)
+ self.drop = nn.Dropout(drop)
+ self.linear = linear
+
+ if self.linear:
+ self.relu = nn.ReLU(inplace=True)
+ self.apply(self._init_weights)
+
+ def _init_weights(self, m):
+ if isinstance(m, nn.Linear):
+ trunc_normal_(m.weight, std=.02)
+ if isinstance(m, nn.Linear) and m.bias is not None:
+ nn.init.constant_(m.bias, 0)
+ elif isinstance(m, nn.LayerNorm):
+ nn.init.constant_(m.bias, 0)
+ nn.init.constant_(m.weight, 1.0)
+ elif isinstance(m, nn.Conv2d):
+ fan_out = m.kernel_size[0] * m.kernel_size[1] * m.out_channels
+ fan_out //= m.groups
+ m.weight.data.normal_(0, math.sqrt(2.0 / fan_out))
+ if m.bias is not None:
+ m.bias.data.zero_()
+
+ def forward(self, x, H, W):
+ x = self.fc1(x)
+ if self.linear:
+ x = self.relu(x)
+ x = self.dwconv(x, H, W)
+ x = self.act(x)
+ x = self.drop(x)
+ x = self.fc2(x)
+ x = self.drop(x)
+ return x
+
+
+class DWConv(nn.Module):
+ def __init__(self, dim=768):
+ super(DWConv, self).__init__()
+ self.dwconv = nn.Conv2d(dim, dim, 3, 1, 1, bias=True, groups=dim)
+
+ def forward(self, x, H, W):
+ B, N, C = x.shape
+ x = x.transpose(1, 2).view(B, C, H, W)
+ x = self.dwconv(x)
+ x = x.flatten(2).transpose(1, 2)
+ return x
diff --git a/ref-avs.code/model/mymodel.py b/ref-avs.code/model/mymodel.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ae9338b84242637a60e868fd8ab3c27f7f65991
--- /dev/null
+++ b/ref-avs.code/model/mymodel.py
@@ -0,0 +1,94 @@
+"""End-to-end Ref-AVS: SAM2 visual backbone + AuralFuser fusion + tracking head.
+
+Orchestration follows ``avs.code/v1m.code/model/mymodel.py``.
+"""
+import torch
+
+from model.visual.sam2.build_sam import build_sam2_visual_predictor
+from model.visual.sam2.utils.transforms import SAM2Transforms
+from model.aural_fuser import AuralFuser
+from transformers import AutoTokenizer, AutoModel
+
+
+class AVmodel(torch.nn.Module):
+ """SAM2 + audio/text fusion (``aural_fuser``) + SAM2 tracking decoder."""
+
+ def __init__(self, param, mask_threshold=0.0, max_hole_area=0.0, max_sprinkle_area=0.0):
+ super().__init__()
+ self.param = param
+ self.mask_threshold = mask_threshold
+ self._bb_feat_sizes = [
+ (int(self.param.image_size / 4), int(self.param.image_size / 4)),
+ (int(self.param.image_size / 8), int(self.param.image_size / 8)),
+ (int(self.param.image_size / 16), int(self.param.image_size / 16)),
+ ]
+
+ self.v_model = build_sam2_visual_predictor(
+ self.param.sam_config_path,
+ self.param.backbone_weight,
+ apply_postprocessing=True,
+ mode='train',
+ hydra_overrides_extra=["++model.image_size={}".format(self.param.image_size)],
+ )
+ self._transforms = SAM2Transforms(
+ resolution=self.v_model.image_size,
+ mask_threshold=mask_threshold,
+ max_hole_area=max_hole_area,
+ max_sprinkle_area=max_sprinkle_area,
+ )
+ self.aural_fuser = AuralFuser(hyp_param=self.param)
+ self.text_tokenizer = AutoTokenizer.from_pretrained('distilbert/distilroberta-base')
+ self.t_model = AutoModel.from_pretrained('distilbert/distilroberta-base')
+
+ def _encode_text(self, prompts):
+ """RoBERTa embeddings for referring expressions (frozen at train time)."""
+ enc = self.text_tokenizer(
+ *prompts,
+ max_length=25,
+ padding="max_length",
+ truncation=True,
+ return_tensors="pt",
+ )
+ enc['input_ids'] = enc['input_ids'].cuda(self.param.local_rank, non_blocking=True)
+ enc['attention_mask'] = enc['attention_mask'].cuda(self.param.local_rank, non_blocking=True)
+ with torch.no_grad():
+ return self.t_model(**enc).last_hidden_state
+
+ def forward_frame(self, frame_):
+ """Single-frame SAM2 image encoder pass (same helper pattern as v1m)."""
+ frame = torch.nn.functional.interpolate(
+ frame_, (self.param.image_size, self.param.image_size),
+ antialias=True, align_corners=False, mode='bilinear',
+ )
+ return self.v_model.image_encoder(frame)
+
+ def forward(self, frames, spect, prompts, sam_process=False):
+ """Fuse audio+text into FPN, then run SAM2 tracking without box/mask prompts."""
+ text_feats = self._encode_text(prompts)
+ backbone_feats = self.v_model.forward_image(frames, pre_compute=False)
+ audio_residual_feats = self.aural_fuser(backbone_feats, spect, text_feats)
+ visual_resfeats, audio_resfeats, proj_feats = audio_residual_feats
+
+ map_res = visual_resfeats[::-1]
+ vec_res = audio_resfeats[::-1]
+ av_feats = (map_res, vec_res)
+
+ backbone_feats = self.v_model.precompute_high_res_features(backbone_feats)
+ backbone_feats = self.v_model.dont_prepare_prompt_inputs(
+ backbone_feats,
+ num_frames=frames.shape[0],
+ condition_frame=int(frames.shape[0] / 2),
+ )
+ outputs = self.v_model.forward_tracking_wo_prompt(backbone_feats, audio_res=av_feats)
+ return outputs, proj_feats
+
+ @property
+ def device(self) -> torch.device:
+ return self.v_model.device
+
+ def freeze_sam_parameters(self):
+ """Freeze SAM2 and text backbone; only ``aural_fuser`` is trained."""
+ self.v_model.eval()
+ self.t_model.eval()
+ for _, parameter in self.v_model.named_parameters():
+ parameter.requires_grad = False
diff --git a/ref-avs.code/model/visual/sam2/__init__.py b/ref-avs.code/model/visual/sam2/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..1ec9293b35f206027249490ec25cd9a4dd326332
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/__init__.py
@@ -0,0 +1,11 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from hydra import initialize_config_module
+from hydra.core.global_hydra import GlobalHydra
+
+if not GlobalHydra.instance().is_initialized():
+ initialize_config_module("model.visual.sam2", version_base="1.2")
diff --git a/ref-avs.code/model/visual/sam2/automatic_mask_generator.py b/ref-avs.code/model/visual/sam2/automatic_mask_generator.py
new file mode 100644
index 0000000000000000000000000000000000000000..065e469e27c2d3af40d51d072031e828692c799b
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/automatic_mask_generator.py
@@ -0,0 +1,454 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+# Adapted from https://github.com/facebookresearch/segment-anything/blob/main/segment_anything/automatic_mask_generator.py
+from typing import Any, Dict, List, Optional, Tuple
+
+import numpy as np
+import torch
+from torchvision.ops.boxes import batched_nms, box_area # type: ignore
+
+from sam2.modeling.sam2_base import SAM2Base
+from sam2.sam2_image_predictor import SAM2ImagePredictor
+from sam2.utils.amg import (
+ area_from_rle,
+ batch_iterator,
+ batched_mask_to_box,
+ box_xyxy_to_xywh,
+ build_all_layer_point_grids,
+ calculate_stability_score,
+ coco_encode_rle,
+ generate_crop_boxes,
+ is_box_near_crop_edge,
+ mask_to_rle_pytorch,
+ MaskData,
+ remove_small_regions,
+ rle_to_mask,
+ uncrop_boxes_xyxy,
+ uncrop_masks,
+ uncrop_points,
+)
+
+
+class SAM2AutomaticMaskGenerator:
+ def __init__(
+ self,
+ model: SAM2Base,
+ points_per_side: Optional[int] = 32,
+ points_per_batch: int = 64,
+ pred_iou_thresh: float = 0.8,
+ stability_score_thresh: float = 0.95,
+ stability_score_offset: float = 1.0,
+ mask_threshold: float = 0.0,
+ box_nms_thresh: float = 0.7,
+ crop_n_layers: int = 0,
+ crop_nms_thresh: float = 0.7,
+ crop_overlap_ratio: float = 512 / 1500,
+ crop_n_points_downscale_factor: int = 1,
+ point_grids: Optional[List[np.ndarray]] = None,
+ min_mask_region_area: int = 0,
+ output_mode: str = "binary_mask",
+ use_m2m: bool = False,
+ multimask_output: bool = True,
+ **kwargs,
+ ) -> None:
+ """
+ Using a SAM 2 model, generates masks for the entire image.
+ Generates a grid of point prompts over the image, then filters
+ low quality and duplicate masks. The default settings are chosen
+ for SAM 2 with a HieraL backbone.
+
+ Arguments:
+ model (Sam): The SAM 2 model to use for mask prediction.
+ points_per_side (int or None): The number of points to be sampled
+ along one side of the image. The total number of points is
+ points_per_side**2. If None, 'point_grids' must provide explicit
+ point sampling.
+ points_per_batch (int): Sets the number of points run simultaneously
+ by the model. Higher numbers may be faster but use more GPU memory.
+ pred_iou_thresh (float): A filtering threshold in [0,1], using the
+ model's predicted mask quality.
+ stability_score_thresh (float): A filtering threshold in [0,1], using
+ the stability of the mask under changes to the cutoff used to binarize
+ the model's mask predictions.
+ stability_score_offset (float): The amount to shift the cutoff when
+ calculated the stability score.
+ mask_threshold (float): Threshold for binarizing the mask logits
+ box_nms_thresh (float): The box IoU cutoff used by non-maximal
+ suppression to filter duplicate masks.
+ crop_n_layers (int): If >0, mask prediction will be run again on
+ crops of the image. Sets the number of layers to run, where each
+ layer has 2**i_layer number of image crops.
+ crop_nms_thresh (float): The box IoU cutoff used by non-maximal
+ suppression to filter duplicate masks between different crops.
+ crop_overlap_ratio (float): Sets the degree to which crops overlap.
+ In the first crop layer, crops will overlap by this fraction of
+ the image length. Later layers with more crops scale down this overlap.
+ crop_n_points_downscale_factor (int): The number of points-per-side
+ sampled in layer n is scaled down by crop_n_points_downscale_factor**n.
+ point_grids (list(np.ndarray) or None): A list over explicit grids
+ of points used for sampling, normalized to [0,1]. The nth grid in the
+ list is used in the nth crop layer. Exclusive with points_per_side.
+ min_mask_region_area (int): If >0, postprocessing will be applied
+ to remove disconnected regions and holes in masks with area smaller
+ than min_mask_region_area. Requires opencv.
+ output_mode (str): The form masks are returned in. Can be 'binary_mask',
+ 'uncompressed_rle', or 'coco_rle'. 'coco_rle' requires pycocotools.
+ For large resolutions, 'binary_mask' may consume large amounts of
+ memory.
+ use_m2m (bool): Whether to add a one step refinement using previous mask predictions.
+ multimask_output (bool): Whether to output multimask at each point of the grid.
+ """
+
+ assert (points_per_side is None) != (
+ point_grids is None
+ ), "Exactly one of points_per_side or point_grid must be provided."
+ if points_per_side is not None:
+ self.point_grids = build_all_layer_point_grids(
+ points_per_side,
+ crop_n_layers,
+ crop_n_points_downscale_factor,
+ )
+ elif point_grids is not None:
+ self.point_grids = point_grids
+ else:
+ raise ValueError("Can't have both points_per_side and point_grid be None.")
+
+ assert output_mode in [
+ "binary_mask",
+ "uncompressed_rle",
+ "coco_rle",
+ ], f"Unknown output_mode {output_mode}."
+ if output_mode == "coco_rle":
+ try:
+ from pycocotools import mask as mask_utils # type: ignore # noqa: F401
+ except ImportError as e:
+ print("Please install pycocotools")
+ raise e
+
+ self.predictor = SAM2ImagePredictor(
+ model,
+ max_hole_area=min_mask_region_area,
+ max_sprinkle_area=min_mask_region_area,
+ )
+ self.points_per_batch = points_per_batch
+ self.pred_iou_thresh = pred_iou_thresh
+ self.stability_score_thresh = stability_score_thresh
+ self.stability_score_offset = stability_score_offset
+ self.mask_threshold = mask_threshold
+ self.box_nms_thresh = box_nms_thresh
+ self.crop_n_layers = crop_n_layers
+ self.crop_nms_thresh = crop_nms_thresh
+ self.crop_overlap_ratio = crop_overlap_ratio
+ self.crop_n_points_downscale_factor = crop_n_points_downscale_factor
+ self.min_mask_region_area = min_mask_region_area
+ self.output_mode = output_mode
+ self.use_m2m = use_m2m
+ self.multimask_output = multimask_output
+
+ @classmethod
+ def from_pretrained(cls, model_id: str, **kwargs) -> "SAM2AutomaticMaskGenerator":
+ """
+ Load a pretrained model from the Hugging Face hub.
+
+ Arguments:
+ model_id (str): The Hugging Face repository ID.
+ **kwargs: Additional arguments to pass to the model constructor.
+
+ Returns:
+ (SAM2AutomaticMaskGenerator): The loaded model.
+ """
+ from sam2.build_sam import build_sam2_hf
+
+ sam_model = build_sam2_hf(model_id, **kwargs)
+ return cls(sam_model, **kwargs)
+
+ @torch.no_grad()
+ def generate(self, image: np.ndarray) -> List[Dict[str, Any]]:
+ """
+ Generates masks for the given image.
+
+ Arguments:
+ image (np.ndarray): The image to generate masks for, in HWC uint8 format.
+
+ Returns:
+ list(dict(str, any)): A list over records for masks. Each record is
+ a dict containing the following keys:
+ segmentation (dict(str, any) or np.ndarray): The mask. If
+ output_mode='binary_mask', is an array of shape HW. Otherwise,
+ is a dictionary containing the RLE.
+ bbox (list(float)): The box around the mask, in XYWH format.
+ area (int): The area in pixels of the mask.
+ predicted_iou (float): The model's own prediction of the mask's
+ quality. This is filtered by the pred_iou_thresh parameter.
+ point_coords (list(list(float))): The point coordinates input
+ to the model to generate this mask.
+ stability_score (float): A measure of the mask's quality. This
+ is filtered on using the stability_score_thresh parameter.
+ crop_box (list(float)): The crop of the image used to generate
+ the mask, given in XYWH format.
+ """
+
+ # Generate masks
+ mask_data = self._generate_masks(image)
+
+ # Encode masks
+ if self.output_mode == "coco_rle":
+ mask_data["segmentations"] = [
+ coco_encode_rle(rle) for rle in mask_data["rles"]
+ ]
+ elif self.output_mode == "binary_mask":
+ mask_data["segmentations"] = [rle_to_mask(rle) for rle in mask_data["rles"]]
+ else:
+ mask_data["segmentations"] = mask_data["rles"]
+
+ # Write mask records
+ curr_anns = []
+ for idx in range(len(mask_data["segmentations"])):
+ ann = {
+ "segmentation": mask_data["segmentations"][idx],
+ "area": area_from_rle(mask_data["rles"][idx]),
+ "bbox": box_xyxy_to_xywh(mask_data["boxes"][idx]).tolist(),
+ "predicted_iou": mask_data["iou_preds"][idx].item(),
+ "point_coords": [mask_data["points"][idx].tolist()],
+ "stability_score": mask_data["stability_score"][idx].item(),
+ "crop_box": box_xyxy_to_xywh(mask_data["crop_boxes"][idx]).tolist(),
+ }
+ curr_anns.append(ann)
+
+ return curr_anns
+
+ def _generate_masks(self, image: np.ndarray) -> MaskData:
+ orig_size = image.shape[:2]
+ crop_boxes, layer_idxs = generate_crop_boxes(
+ orig_size, self.crop_n_layers, self.crop_overlap_ratio
+ )
+
+ # Iterate over image crops
+ data = MaskData()
+ for crop_box, layer_idx in zip(crop_boxes, layer_idxs):
+ crop_data = self._process_crop(image, crop_box, layer_idx, orig_size)
+ data.cat(crop_data)
+
+ # Remove duplicate masks between crops
+ if len(crop_boxes) > 1:
+ # Prefer masks from smaller crops
+ scores = 1 / box_area(data["crop_boxes"])
+ scores = scores.to(data["boxes"].device)
+ keep_by_nms = batched_nms(
+ data["boxes"].float(),
+ scores,
+ torch.zeros_like(data["boxes"][:, 0]), # categories
+ iou_threshold=self.crop_nms_thresh,
+ )
+ data.filter(keep_by_nms)
+ data.to_numpy()
+ return data
+
+ def _process_crop(
+ self,
+ image: np.ndarray,
+ crop_box: List[int],
+ crop_layer_idx: int,
+ orig_size: Tuple[int, ...],
+ ) -> MaskData:
+ # Crop the image and calculate embeddings
+ x0, y0, x1, y1 = crop_box
+ cropped_im = image[y0:y1, x0:x1, :]
+ cropped_im_size = cropped_im.shape[:2]
+ self.predictor.set_image(cropped_im)
+
+ # Get points for this crop
+ points_scale = np.array(cropped_im_size)[None, ::-1]
+ points_for_image = self.point_grids[crop_layer_idx] * points_scale
+
+ # Generate masks for this crop in batches
+ data = MaskData()
+ for (points,) in batch_iterator(self.points_per_batch, points_for_image):
+ batch_data = self._process_batch(
+ points, cropped_im_size, crop_box, orig_size, normalize=True
+ )
+ data.cat(batch_data)
+ del batch_data
+ self.predictor.reset_predictor()
+
+ # Remove duplicates within this crop.
+ keep_by_nms = batched_nms(
+ data["boxes"].float(),
+ data["iou_preds"],
+ torch.zeros_like(data["boxes"][:, 0]), # categories
+ iou_threshold=self.box_nms_thresh,
+ )
+ data.filter(keep_by_nms)
+
+ # Return to the original image frame
+ data["boxes"] = uncrop_boxes_xyxy(data["boxes"], crop_box)
+ data["points"] = uncrop_points(data["points"], crop_box)
+ data["crop_boxes"] = torch.tensor([crop_box for _ in range(len(data["rles"]))])
+
+ return data
+
+ def _process_batch(
+ self,
+ points: np.ndarray,
+ im_size: Tuple[int, ...],
+ crop_box: List[int],
+ orig_size: Tuple[int, ...],
+ normalize=False,
+ ) -> MaskData:
+ orig_h, orig_w = orig_size
+
+ # Run model on this batch
+ points = torch.as_tensor(
+ points, dtype=torch.float32, device=self.predictor.device
+ )
+ in_points = self.predictor._transforms.transform_coords(
+ points, normalize=normalize, orig_hw=im_size
+ )
+ in_labels = torch.ones(
+ in_points.shape[0], dtype=torch.int, device=in_points.device
+ )
+ masks, iou_preds, low_res_masks = self.predictor._predict(
+ in_points[:, None, :],
+ in_labels[:, None],
+ multimask_output=self.multimask_output,
+ return_logits=True,
+ )
+
+ # Serialize predictions and store in MaskData
+ data = MaskData(
+ masks=masks.flatten(0, 1),
+ iou_preds=iou_preds.flatten(0, 1),
+ points=points.repeat_interleave(masks.shape[1], dim=0),
+ low_res_masks=low_res_masks.flatten(0, 1),
+ )
+ del masks
+
+ if not self.use_m2m:
+ # Filter by predicted IoU
+ if self.pred_iou_thresh > 0.0:
+ keep_mask = data["iou_preds"] > self.pred_iou_thresh
+ data.filter(keep_mask)
+
+ # Calculate and filter by stability score
+ data["stability_score"] = calculate_stability_score(
+ data["masks"], self.mask_threshold, self.stability_score_offset
+ )
+ if self.stability_score_thresh > 0.0:
+ keep_mask = data["stability_score"] >= self.stability_score_thresh
+ data.filter(keep_mask)
+ else:
+ # One step refinement using previous mask predictions
+ in_points = self.predictor._transforms.transform_coords(
+ data["points"], normalize=normalize, orig_hw=im_size
+ )
+ labels = torch.ones(
+ in_points.shape[0], dtype=torch.int, device=in_points.device
+ )
+ masks, ious = self.refine_with_m2m(
+ in_points, labels, data["low_res_masks"], self.points_per_batch
+ )
+ data["masks"] = masks.squeeze(1)
+ data["iou_preds"] = ious.squeeze(1)
+
+ if self.pred_iou_thresh > 0.0:
+ keep_mask = data["iou_preds"] > self.pred_iou_thresh
+ data.filter(keep_mask)
+
+ data["stability_score"] = calculate_stability_score(
+ data["masks"], self.mask_threshold, self.stability_score_offset
+ )
+ if self.stability_score_thresh > 0.0:
+ keep_mask = data["stability_score"] >= self.stability_score_thresh
+ data.filter(keep_mask)
+
+ # Threshold masks and calculate boxes
+ data["masks"] = data["masks"] > self.mask_threshold
+ data["boxes"] = batched_mask_to_box(data["masks"])
+
+ # Filter boxes that touch crop boundaries
+ keep_mask = ~is_box_near_crop_edge(
+ data["boxes"], crop_box, [0, 0, orig_w, orig_h]
+ )
+ if not torch.all(keep_mask):
+ data.filter(keep_mask)
+
+ # Compress to RLE
+ data["masks"] = uncrop_masks(data["masks"], crop_box, orig_h, orig_w)
+ data["rles"] = mask_to_rle_pytorch(data["masks"])
+ del data["masks"]
+
+ return data
+
+ @staticmethod
+ def postprocess_small_regions(
+ mask_data: MaskData, min_area: int, nms_thresh: float
+ ) -> MaskData:
+ """
+ Removes small disconnected regions and holes in masks, then reruns
+ box NMS to remove any new duplicates.
+
+ Edits mask_data in place.
+
+ Requires open-cv as a dependency.
+ """
+ if len(mask_data["rles"]) == 0:
+ return mask_data
+
+ # Filter small disconnected regions and holes
+ new_masks = []
+ scores = []
+ for rle in mask_data["rles"]:
+ mask = rle_to_mask(rle)
+
+ mask, changed = remove_small_regions(mask, min_area, mode="holes")
+ unchanged = not changed
+ mask, changed = remove_small_regions(mask, min_area, mode="islands")
+ unchanged = unchanged and not changed
+
+ new_masks.append(torch.as_tensor(mask).unsqueeze(0))
+ # Give score=0 to changed masks and score=1 to unchanged masks
+ # so NMS will prefer ones that didn't need postprocessing
+ scores.append(float(unchanged))
+
+ # Recalculate boxes and remove any new duplicates
+ masks = torch.cat(new_masks, dim=0)
+ boxes = batched_mask_to_box(masks)
+ keep_by_nms = batched_nms(
+ boxes.float(),
+ torch.as_tensor(scores),
+ torch.zeros_like(boxes[:, 0]), # categories
+ iou_threshold=nms_thresh,
+ )
+
+ # Only recalculate RLEs for masks that have changed
+ for i_mask in keep_by_nms:
+ if scores[i_mask] == 0.0:
+ mask_torch = masks[i_mask].unsqueeze(0)
+ mask_data["rles"][i_mask] = mask_to_rle_pytorch(mask_torch)[0]
+ mask_data["boxes"][i_mask] = boxes[i_mask] # update res directly
+ mask_data.filter(keep_by_nms)
+
+ return mask_data
+
+ def refine_with_m2m(self, points, point_labels, low_res_masks, points_per_batch):
+ new_masks = []
+ new_iou_preds = []
+
+ for cur_points, cur_point_labels, low_res_mask in batch_iterator(
+ points_per_batch, points, point_labels, low_res_masks
+ ):
+ best_masks, best_iou_preds, _ = self.predictor._predict(
+ cur_points[:, None, :],
+ cur_point_labels[:, None],
+ mask_input=low_res_mask[:, None, :],
+ multimask_output=False,
+ return_logits=True,
+ )
+ new_masks.append(best_masks)
+ new_iou_preds.append(best_iou_preds)
+ masks = torch.cat(new_masks, dim=0)
+ return masks, torch.cat(new_iou_preds, dim=0)
diff --git a/ref-avs.code/model/visual/sam2/build_sam.py b/ref-avs.code/model/visual/sam2/build_sam.py
new file mode 100644
index 0000000000000000000000000000000000000000..dfc2589e3d6f19ea831bb0825f1e1521ae9aa9e6
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/build_sam.py
@@ -0,0 +1,171 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+import os
+
+import torch
+from hydra import compose
+from hydra.utils import instantiate
+from omegaconf import OmegaConf
+'''
+import sam2
+
+# Check if the user is running Python from the parent directory of the sam2 repo
+# (i.e. the directory where this repo is cloned into) -- this is not supported since
+# it could shadow the sam2 package and cause issues.
+if os.path.isdir(os.path.join(sam2.__path__[0], "sam2")):
+ # If the user has "sam2/sam2" in their path, they are likey importing the repo itself
+ # as "sam2" rather than importing the "sam2" python package (i.e. "sam2/sam2" directory).
+ # This typically happens because the user is running Python from the parent directory
+ # that contains the sam2 repo they cloned.
+ raise RuntimeError(
+ "You're likely running Python from the parent directory of the sam2 repository "
+ "(i.e. the directory where https://github.com/facebookresearch/sam2 is cloned into). "
+ "This is not supported since the `sam2` Python package could be shadowed by the "
+ "repository name (the repository is also named `sam2` and contains the Python package "
+ "in `sam2/sam2`). Please run Python from another directory (e.g. from the repo dir "
+ "rather than its parent dir, or from your home directory) after installing SAM 2."
+ )
+'''
+
+HF_MODEL_ID_TO_FILENAMES = {
+ "facebook/sam2-hiera-tiny": (
+ "configs/sam2/sam2_hiera_t.yaml",
+ "sam2_hiera_tiny.pt",
+ ),
+ "facebook/sam2-hiera-small": (
+ "configs/sam2/sam2_hiera_s.yaml",
+ "sam2_hiera_small.pt",
+ ),
+ "facebook/sam2-hiera-base-plus": (
+ "configs/sam2/sam2_hiera_b+.yaml",
+ "sam2_hiera_base_plus.pt",
+ ),
+ "facebook/sam2-hiera-large": (
+ "configs/sam2/sam2_hiera_l.yaml",
+ "sam2_hiera_large.pt",
+ ),
+ "facebook/sam2.1-hiera-tiny": (
+ "configs/sam2.1/sam2.1_hiera_t.yaml",
+ "sam2.1_hiera_tiny.pt",
+ ),
+ "facebook/sam2.1-hiera-small": (
+ "configs/sam2.1/sam2.1_hiera_s.yaml",
+ "sam2.1_hiera_small.pt",
+ ),
+ "facebook/sam2.1-hiera-base-plus": (
+ "configs/sam2.1/sam2.1_hiera_b+.yaml",
+ "sam2.1_hiera_base_plus.pt",
+ ),
+ "facebook/sam2.1-hiera-large": (
+ "configs/sam2.1/sam2.1_hiera_l.yaml",
+ "sam2.1_hiera_large.pt",
+ ),
+}
+
+
+def build_sam2(
+ config_file,
+ ckpt_path=None,
+ device="cuda",
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+ # dynamically fall back to multi-mask if the single mask is not stable
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+ ]
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides_extra)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ model = model.to(device)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def build_sam2_visual_predictor(
+ config_file,
+ ckpt_path=None,
+ mode="eval",
+ hydra_overrides_extra=[],
+ apply_postprocessing=True,
+ **kwargs,
+):
+ # visual
+ hydra_overrides = []
+ # "++model._target_=model.visual.sam2.organised_sam2_train.SAM2Train",
+ # ]
+ # hydra_overrides = [
+ # "++model._target_=sam2.sam2_video_predictor.SAM2VideoPredictor",
+ # ]
+ if apply_postprocessing:
+ hydra_overrides_extra = hydra_overrides_extra.copy()
+ hydra_overrides_extra += [
+
+ # dynamically fall back to multi-mask if the single mask is not stable
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_via_stability=true",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_delta=0.05",
+ # "++model.sam_mask_decoder_extra_args.dynamic_multimask_stability_thresh=0.98",
+
+ # the sigmoid mask logits on interacted frames with clicks in the memory encoder so that the encoded masks are exactly as what users see from clicking
+ "++model.binarize_mask_from_pts_for_mem_enc=true",
+ # fill small holes in the low-res masks up to `fill_hole_area` (before resizing them to the original video resolution)
+ # "++model.fill_hole_area=8",
+ ]
+ hydra_overrides.extend(hydra_overrides_extra)
+
+ # Read config and init model
+ cfg = compose(config_name=config_file, overrides=hydra_overrides)
+ OmegaConf.resolve(cfg)
+ model = instantiate(cfg.model, _recursive_=True)
+ _load_checkpoint(model, ckpt_path)
+ if mode == "eval":
+ model.eval()
+ return model
+
+
+def _hf_download(model_id):
+ from huggingface_hub import hf_hub_download
+
+ config_name, checkpoint_name = HF_MODEL_ID_TO_FILENAMES[model_id]
+ ckpt_path = hf_hub_download(repo_id=model_id, filename=checkpoint_name)
+ return config_name, ckpt_path
+
+
+def build_sam2_hf(model_id, **kwargs):
+ config_name, ckpt_path = _hf_download(model_id)
+ return build_sam2(config_file=config_name, ckpt_path=ckpt_path, **kwargs)
+
+
+# def build_sam2_video_predictor_hf(model_id, **kwargs):
+# config_name, ckpt_path = _hf_download(model_id)
+# return build_sam2_video_predictor(
+# config_file=config_name, ckpt_path=ckpt_path, **kwargs
+# )
+
+
+def _load_checkpoint(model, ckpt_path):
+ if ckpt_path is not None:
+ sd = torch.load(ckpt_path, map_location="cpu", weights_only=True)["model"]
+ missing_keys, unexpected_keys = model.load_state_dict(sd)
+ if missing_keys:
+ logging.error(missing_keys)
+ raise RuntimeError()
+ if unexpected_keys:
+ logging.error(unexpected_keys)
+ raise RuntimeError()
+ logging.info("Loaded checkpoint sucessfully")
diff --git a/ref-avs.code/model/visual/sam2/configs/auralfuser/architecture.yaml b/ref-avs.code/model/visual/sam2/configs/auralfuser/architecture.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ab4c3d06ca42335ce6bfc8064bbd5cfd44c8080a
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/configs/auralfuser/architecture.yaml
@@ -0,0 +1,30 @@
+# @package _global_
+
+aural_fuser:
+ patch_cfgs:
+ - [4, 4]
+ - [2, 2]
+ - [1, 1]
+ f_depths: [3, 6, 12]
+ block_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
+ one_d_kw:
+ dim: 256
+ num_heads: 4
+ mlp_ratio: 4
+ qkv_bias: true
+ qk_scale: null
+ drop: 0.1
+ attn_drop: 0.1
+ drop_path: 0.0
+ sr_ratio: 4
+ linear: false
diff --git a/ref-avs.code/model/visual/sam2/configs/sam2/sam2_hiera_l.yaml b/ref-avs.code/model/visual/sam2/configs/sam2/sam2_hiera_l.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8478b3d4b8b16d8b22f6555cf7b1f00231d7fd59
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/configs/sam2/sam2_hiera_l.yaml
@@ -0,0 +1,117 @@
+# @package _global_
+
+# Model
+model:
+ _target_: model.visual.sam2.organised_sam2_train.SAM2Train
+ image_encoder:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.ImageEncoder
+ scalp: 1
+ trunk:
+ _target_: model.visual.sam2.modeling.backbones.hieradet.Hiera
+ embed_dim: 144
+ num_heads: 2
+ stages: [2, 6, 36, 4]
+ global_att_blocks: [23, 33, 43]
+ window_pos_embed_bkg_spatial_size: [7, 7]
+ window_spec: [8, 4, 16, 8]
+ neck:
+ _target_: model.visual.sam2.modeling.backbones.image_encoder.FpnNeck
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 256
+ normalize: true
+ scale: null
+ temperature: 10000
+ d_model: 256
+ backbone_channel_list: [1152, 576, 288, 144]
+ fpn_top_down_levels: [2, 3] # output level 0 and 1 directly use the backbone features
+ fpn_interp_model: nearest
+
+ memory_attention:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttention
+ d_model: 256
+ pos_enc_at_input: true
+ layer:
+ _target_: model.visual.sam2.modeling.memory_attention.MemoryAttentionLayer
+ activation: relu
+ dim_feedforward: 2048
+ dropout: 0.1
+ pos_enc_at_attn: false
+ self_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ d_model: 256
+ pos_enc_at_cross_attn_keys: true
+ pos_enc_at_cross_attn_queries: false
+ cross_attention:
+ _target_: model.visual.sam2.modeling.sam.transformer.RoPEAttention
+ rope_theta: 10000.0
+ feat_sizes: [32, 32]
+ rope_k_repeat: True
+ embedding_dim: 256
+ num_heads: 1
+ downsample_rate: 1
+ dropout: 0.1
+ kv_in_dim: 64
+ num_layers: 4
+
+ memory_encoder:
+ _target_: model.visual.sam2.modeling.memory_encoder.MemoryEncoder
+ out_dim: 64
+ position_encoding:
+ _target_: model.visual.sam2.modeling.position_encoding.PositionEmbeddingSine
+ num_pos_feats: 64
+ normalize: true
+ scale: null
+ temperature: 10000
+ mask_downsampler:
+ _target_: model.visual.sam2.modeling.memory_encoder.MaskDownSampler
+ kernel_size: 3
+ stride: 2
+ padding: 1
+ fuser:
+ _target_: model.visual.sam2.modeling.memory_encoder.Fuser
+ layer:
+ _target_: model.visual.sam2.modeling.memory_encoder.CXBlock
+ dim: 256
+ kernel_size: 7
+ padding: 3
+ layer_scale_init_value: 1e-6
+ use_dwconv: True # depth-wise convs
+ num_layers: 2
+
+ num_maskmem: 7
+ image_size: 1024
+ # apply scaled sigmoid on mask logits for memory encoder, and directly feed input mask as output mask
+ sigmoid_scale_for_mem_enc: 20.0
+ sigmoid_bias_for_mem_enc: -10.0
+ use_mask_input_as_output_without_sam: true
+ # Memory
+ directly_add_no_mem_embed: true
+ # use high-resolution feature map in the SAM mask decoder
+ use_high_res_features_in_sam: true
+ # output 3 masks on the first click on initial conditioning frames
+ multimask_output_in_sam: true
+ # SAM heads
+ iou_prediction_use_sigmoid: True
+ # cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder: true
+ add_tpos_enc_to_obj_ptrs: false
+ only_obj_ptrs_in_the_past_for_eval: true
+ # object occlusion prediction
+ pred_obj_scores: true
+ pred_obj_scores_mlp: true
+ fixed_no_obj_ptr: true
+ # multimask tracking settings
+ multimask_output_for_tracking: true
+ use_multimask_token_for_obj_ptr: true
+ multimask_min_pt_num: 0
+ multimask_max_pt_num: 1
+ use_mlp_for_obj_ptr_proj: true
+ # Compilation flag
+ compile_image_encoder: False
diff --git a/ref-avs.code/model/visual/sam2/configs/training/sam2_training_config.yaml b/ref-avs.code/model/visual/sam2/configs/training/sam2_training_config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..29df1199d79c6a9031b82e23aa4b40df99064650
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/configs/training/sam2_training_config.yaml
@@ -0,0 +1,60 @@
+# @package _global_
+
+# Video transforms
+train_transforms:
+ - _target_: dataloader.sam2_dataset.transforms.ComposeAPI
+ transforms:
+ - _target_: dataloader.sam2_dataset.transforms.RandomHorizontalFlip
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomAffine
+ degrees: 25
+ shear: 20
+ image_interpolation: bilinear
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.RandomResizeAPI
+ sizes: 1024
+ square: true
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: True
+ brightness: 0.1
+ contrast: 0.03
+ saturation: 0.03
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.RandomGrayscale
+ p: 0.05
+ consistent_transform: True
+ - _target_: dataloader.sam2_dataset.transforms.ColorJitter
+ consistent_transform: False
+ brightness: 0.1
+ contrast: 0.05
+ saturation: 0.05
+ hue: null
+ - _target_: dataloader.sam2_dataset.transforms.ToTensorAPI
+ - _target_: dataloader.sam2_dataset.transforms.NormalizeAPI
+ mean: [0.485, 0.456, 0.406]
+ std: [0.229, 0.224, 0.225]
+
+loss:
+ all:
+ _target_: loss.training.sam2_training_loss.MultiStepMultiMasksAndIous
+ weight_dict:
+ loss_mask: 20
+ loss_dice: 1
+ loss_iou: 1
+ loss_class: 1
+ supervise_all_iou: true
+ iou_use_l1_loss: true
+ pred_obj_scores: true
+ focal_gamma_obj_score: 0.0
+ focal_alpha_obj_score: -1.0
+ gpu_num: 4.
+
+contrastive_learning:
+ temperature: 0.10
+ ignore_idx: 255
+ ood_idx: 254
+ max_views: 512
+ proj_dim: 512
+ sample_limits: 64
+ total_limits: 15240
diff --git a/ref-avs.code/model/visual/sam2/modeling/backbones/hieradet.py b/ref-avs.code/model/visual/sam2/modeling/backbones/hieradet.py
new file mode 100644
index 0000000000000000000000000000000000000000..3fb6633c9c752cbefe2fc6043c81fb79bc659465
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/backbones/hieradet.py
@@ -0,0 +1,317 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+from functools import partial
+from typing import List, Tuple, Union
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from iopath.common.file_io import g_pathmgr
+
+from model.visual.sam2.modeling.backbones.utils import (
+ PatchEmbed,
+ window_partition,
+ window_unpartition,
+)
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, MLP
+
+
+def do_pool(x: torch.Tensor, pool: nn.Module, norm: nn.Module = None) -> torch.Tensor:
+ if pool is None:
+ return x
+ # (B, H, W, C) -> (B, C, H, W)
+ x = x.permute(0, 3, 1, 2)
+ x = pool(x)
+ # (B, C, H', W') -> (B, H', W', C)
+ x = x.permute(0, 2, 3, 1)
+ if norm:
+ x = norm(x)
+
+ return x
+
+
+class MultiScaleAttention(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ q_pool: nn.Module = None,
+ ):
+ super().__init__()
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.num_heads = num_heads
+ self.q_pool = q_pool
+ self.qkv = nn.Linear(dim, dim_out * 3)
+ self.proj = nn.Linear(dim_out, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ B, H, W, _ = x.shape
+ # qkv with shape (B, H * W, 3, nHead, C)
+ qkv = self.qkv(x).reshape(B, H * W, 3, self.num_heads, -1)
+ # q, k, v with shape (B, H * W, nheads, C)
+ q, k, v = torch.unbind(qkv, 2)
+
+ # Q pooling (for downsample at stage changes)
+ if self.q_pool:
+ q = do_pool(q.reshape(B, H, W, -1), self.q_pool)
+ H, W = q.shape[1:3] # downsampled shape
+ q = q.reshape(B, H * W, self.num_heads, -1)
+
+ # Torch's SDPA expects [B, nheads, H*W, C] so we transpose
+ x = F.scaled_dot_product_attention(
+ q.transpose(1, 2),
+ k.transpose(1, 2),
+ v.transpose(1, 2),
+ )
+ # Transpose back
+ x = x.transpose(1, 2)
+ x = x.reshape(B, H, W, -1)
+
+ x = self.proj(x)
+
+ return x
+
+
+class MultiScaleBlock(nn.Module):
+ def __init__(
+ self,
+ dim: int,
+ dim_out: int,
+ num_heads: int,
+ mlp_ratio: float = 4.0,
+ drop_path: float = 0.0,
+ norm_layer: Union[nn.Module, str] = "LayerNorm",
+ q_stride: Tuple[int, int] = None,
+ act_layer: nn.Module = nn.GELU,
+ window_size: int = 0,
+ ):
+ super().__init__()
+
+ if isinstance(norm_layer, str):
+ norm_layer = partial(getattr(nn, norm_layer), eps=1e-6)
+
+ self.dim = dim
+ self.dim_out = dim_out
+ self.norm1 = norm_layer(dim)
+
+ self.window_size = window_size
+
+ self.pool, self.q_stride = None, q_stride
+ if self.q_stride:
+ self.pool = nn.MaxPool2d(
+ kernel_size=q_stride, stride=q_stride, ceil_mode=False
+ )
+
+ self.attn = MultiScaleAttention(
+ dim,
+ dim_out,
+ num_heads=num_heads,
+ q_pool=self.pool,
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ self.norm2 = norm_layer(dim_out)
+ self.mlp = MLP(
+ dim_out,
+ int(dim_out * mlp_ratio),
+ dim_out,
+ num_layers=2,
+ activation=act_layer,
+ )
+
+ if dim != dim_out:
+ self.proj = nn.Linear(dim, dim_out)
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ shortcut = x # B, H, W, C
+ x = self.norm1(x)
+
+ # Skip connection
+ if self.dim != self.dim_out:
+ shortcut = do_pool(self.proj(x), self.pool)
+
+ # Window partition
+ window_size = self.window_size
+ if window_size > 0:
+ H, W = x.shape[1], x.shape[2]
+ x, pad_hw = window_partition(x, window_size)
+
+ # Window Attention + Q Pooling (if stage change)
+ x = self.attn(x)
+ if self.q_stride:
+ # Shapes have changed due to Q pooling
+ window_size = self.window_size // self.q_stride[0]
+ H, W = shortcut.shape[1:3]
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ pad_hw = (H + pad_h, W + pad_w)
+
+ # Reverse window partition
+ if self.window_size > 0:
+ x = window_unpartition(x, window_size, pad_hw, (H, W))
+
+ x = shortcut + self.drop_path(x)
+ # MLP
+ x = x + self.drop_path(self.mlp(self.norm2(x)))
+ return x
+
+
+class Hiera(nn.Module):
+ """
+ Reference: https://arxiv.org/abs/2306.00989
+ """
+
+ def __init__(
+ self,
+ embed_dim: int = 96, # initial embed dim
+ num_heads: int = 1, # initial number of heads
+ drop_path_rate: float = 0.0, # stochastic depth
+ q_pool: int = 3, # number of q_pool stages
+ q_stride: Tuple[int, int] = (2, 2), # downsample stride bet. stages
+ stages: Tuple[int, ...] = (2, 3, 16, 3), # blocks per stage
+ dim_mul: float = 2.0, # dim_mul factor at stage shift
+ head_mul: float = 2.0, # head_mul factor at stage shift
+ window_pos_embed_bkg_spatial_size: Tuple[int, int] = (14, 14),
+ # window size per stage, when not using global att.
+ window_spec: Tuple[int, ...] = (
+ 8,
+ 4,
+ 14,
+ 7,
+ ),
+ # global attn in these blocks
+ global_att_blocks: Tuple[int, ...] = (
+ 12,
+ 16,
+ 20,
+ ),
+ weights_path=None,
+ return_interm_layers=True, # return feats from every stage
+ ):
+ super().__init__()
+
+ assert len(stages) == len(window_spec)
+ self.window_spec = window_spec
+
+ depth = sum(stages)
+ self.q_stride = q_stride
+ self.stage_ends = [sum(stages[:i]) - 1 for i in range(1, len(stages) + 1)]
+ assert 0 <= q_pool <= len(self.stage_ends[:-1])
+ self.q_pool_blocks = [x + 1 for x in self.stage_ends[:-1]][:q_pool]
+ self.return_interm_layers = return_interm_layers
+
+ self.patch_embed = PatchEmbed(
+ embed_dim=embed_dim,
+ )
+ # Which blocks have global att?
+ self.global_att_blocks = global_att_blocks
+
+ # Windowed positional embedding (https://arxiv.org/abs/2311.05613)
+ self.window_pos_embed_bkg_spatial_size = window_pos_embed_bkg_spatial_size
+ self.pos_embed = nn.Parameter(
+ torch.zeros(1, embed_dim, *self.window_pos_embed_bkg_spatial_size)
+ )
+ self.pos_embed_window = nn.Parameter(
+ torch.zeros(1, embed_dim, self.window_spec[0], self.window_spec[0])
+ )
+
+ dpr = [
+ x.item() for x in torch.linspace(0, drop_path_rate, depth)
+ ] # stochastic depth decay rule
+
+ cur_stage = 1
+ self.blocks = nn.ModuleList()
+
+ for i in range(depth):
+ dim_out = embed_dim
+ # lags by a block, so first block of
+ # next stage uses an initial window size
+ # of previous stage and final window size of current stage
+ window_size = self.window_spec[cur_stage - 1]
+
+ if self.global_att_blocks is not None:
+ window_size = 0 if i in self.global_att_blocks else window_size
+
+ if i - 1 in self.stage_ends:
+ dim_out = int(embed_dim * dim_mul)
+ num_heads = int(num_heads * head_mul)
+ cur_stage += 1
+
+ block = MultiScaleBlock(
+ dim=embed_dim,
+ dim_out=dim_out,
+ num_heads=num_heads,
+ drop_path=dpr[i],
+ q_stride=self.q_stride if i in self.q_pool_blocks else None,
+ window_size=window_size,
+ )
+
+ embed_dim = dim_out
+ self.blocks.append(block)
+
+ self.channel_list = (
+ [self.blocks[i].dim_out for i in self.stage_ends[::-1]]
+ if return_interm_layers
+ else [self.blocks[-1].dim_out]
+ )
+
+ if weights_path is not None:
+ with g_pathmgr.open(weights_path, "rb") as f:
+ chkpt = torch.load(f, map_location="cpu")
+ logging.info("loading Hiera", self.load_state_dict(chkpt, strict=False))
+
+ def _get_pos_embed(self, hw: Tuple[int, int]) -> torch.Tensor:
+ h, w = hw
+ window_embed = self.pos_embed_window
+ pos_embed = F.interpolate(self.pos_embed, size=(h, w), mode="bicubic")
+ pos_embed = pos_embed + window_embed.tile(
+ [x // y for x, y in zip(pos_embed.shape, window_embed.shape)]
+ )
+ pos_embed = pos_embed.permute(0, 2, 3, 1)
+ return pos_embed
+
+ def forward(self, x: torch.Tensor) -> List[torch.Tensor]:
+ x = self.patch_embed(x)
+ # x: (B, H, W, C)
+
+ # Add pos embed
+ x = x + self._get_pos_embed(x.shape[1:3])
+
+ outputs = []
+ for i, blk in enumerate(self.blocks):
+ x = blk(x)
+ if (i == self.stage_ends[-1]) or (
+ i in self.stage_ends and self.return_interm_layers
+ ):
+ feats = x.permute(0, 3, 1, 2)
+ outputs.append(feats)
+
+ return outputs
+
+ def get_layer_id(self, layer_name):
+ # https://github.com/microsoft/unilm/blob/master/beit/optim_factory.py#L33
+ num_layers = self.get_num_layers()
+
+ if layer_name.find("rel_pos") != -1:
+ return num_layers + 1
+ elif layer_name.find("pos_embed") != -1:
+ return 0
+ elif layer_name.find("patch_embed") != -1:
+ return 0
+ elif layer_name.find("blocks") != -1:
+ return int(layer_name.split("blocks")[1].split(".")[1]) + 1
+ else:
+ return num_layers + 1
+
+ def get_num_layers(self) -> int:
+ return len(self.blocks)
diff --git a/ref-avs.code/model/visual/sam2/modeling/backbones/image_encoder.py b/ref-avs.code/model/visual/sam2/modeling/backbones/image_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..37e9266bc98596e97ca303118c910ed24f6cee2c
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/backbones/image_encoder.py
@@ -0,0 +1,134 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+class ImageEncoder(nn.Module):
+ def __init__(
+ self,
+ trunk: nn.Module,
+ neck: nn.Module,
+ scalp: int = 0,
+ ):
+ super().__init__()
+ self.trunk = trunk
+ self.neck = neck
+ self.scalp = scalp
+ assert (
+ self.trunk.channel_list == self.neck.backbone_channel_list
+ ), f"Channel dims of trunk and neck do not match. Trunk: {self.trunk.channel_list}, neck: {self.neck.backbone_channel_list}"
+
+ def forward(self, sample: torch.Tensor):
+ # Forward through backbone
+ features, pos = self.neck(self.trunk(sample))
+ if self.scalp > 0:
+ # Discard the lowest resolution features
+ features, pos = features[: -self.scalp], pos[: -self.scalp]
+
+ src = features[-1]
+ output = {
+ "vision_features": src,
+ "vision_pos_enc": pos,
+ "backbone_fpn": features,
+ }
+ return output
+
+
+class FpnNeck(nn.Module):
+ """
+ A modified variant of Feature Pyramid Network (FPN) neck
+ (we remove output conv and also do bicubic interpolation similar to ViT
+ pos embed interpolation)
+ """
+
+ def __init__(
+ self,
+ position_encoding: nn.Module,
+ d_model: int,
+ backbone_channel_list: List[int],
+ kernel_size: int = 1,
+ stride: int = 1,
+ padding: int = 0,
+ fpn_interp_model: str = "bilinear",
+ fuse_type: str = "sum",
+ fpn_top_down_levels: Optional[List[int]] = None,
+ ):
+ """Initialize the neck
+ :param trunk: the backbone
+ :param position_encoding: the positional encoding to use
+ :param d_model: the dimension of the model
+ :param neck_norm: the normalization to use
+ """
+ super().__init__()
+ self.position_encoding = position_encoding
+ self.convs = nn.ModuleList()
+ self.backbone_channel_list = backbone_channel_list
+ self.d_model = d_model
+ for dim in backbone_channel_list:
+ current = nn.Sequential()
+ current.add_module(
+ "conv",
+ nn.Conv2d(
+ in_channels=dim,
+ out_channels=d_model,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ ),
+ )
+
+ self.convs.append(current)
+ self.fpn_interp_model = fpn_interp_model
+ assert fuse_type in ["sum", "avg"]
+ self.fuse_type = fuse_type
+
+ # levels to have top-down features in its outputs
+ # e.g. if fpn_top_down_levels is [2, 3], then only outputs of level 2 and 3
+ # have top-down propagation, while outputs of level 0 and level 1 have only
+ # lateral features from the same backbone level.
+ if fpn_top_down_levels is None:
+ # default is to have top-down features on all levels
+ fpn_top_down_levels = range(len(self.convs))
+ self.fpn_top_down_levels = list(fpn_top_down_levels)
+
+ def forward(self, xs: List[torch.Tensor]):
+
+ out = [None] * len(self.convs)
+ pos = [None] * len(self.convs)
+ assert len(xs) == len(self.convs)
+ # fpn forward pass
+ # see https://github.com/facebookresearch/detectron2/blob/main/detectron2/modeling/backbone/fpn.py
+ prev_features = None
+ # forward in top-down order (from low to high resolution)
+ n = len(self.convs) - 1
+ for i in range(n, -1, -1):
+ x = xs[i]
+ lateral_features = self.convs[n - i](x)
+ if i in self.fpn_top_down_levels and prev_features is not None:
+ top_down_features = F.interpolate(
+ prev_features.to(dtype=torch.float32),
+ scale_factor=2.0,
+ mode=self.fpn_interp_model,
+ align_corners=(
+ None if self.fpn_interp_model == "nearest" else False
+ ),
+ antialias=False,
+ )
+ prev_features = lateral_features + top_down_features
+ if self.fuse_type == "avg":
+ prev_features /= 2
+ else:
+ prev_features = lateral_features
+ x_out = prev_features
+ out[i] = x_out
+ pos[i] = self.position_encoding(x_out).to(x_out.dtype)
+
+ return out, pos
diff --git a/ref-avs.code/model/visual/sam2/modeling/backbones/utils.py b/ref-avs.code/model/visual/sam2/modeling/backbones/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..32d55c7545f064de133a5ff0200ba1ece9b504b7
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/backbones/utils.py
@@ -0,0 +1,95 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""Some utilities for backbones, in particular for windowing"""
+
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+
+def window_partition(x, window_size):
+ """
+ Partition into non-overlapping windows with padding if needed.
+ Args:
+ x (tensor): input tokens with [B, H, W, C].
+ window_size (int): window size.
+ Returns:
+ windows: windows after partition with [B * num_windows, window_size, window_size, C].
+ (Hp, Wp): padded height and width before partition
+ """
+ B, H, W, C = x.shape
+
+ pad_h = (window_size - H % window_size) % window_size
+ pad_w = (window_size - W % window_size) % window_size
+ if pad_h > 0 or pad_w > 0:
+ x = F.pad(x, (0, 0, 0, pad_w, 0, pad_h))
+ Hp, Wp = H + pad_h, W + pad_w
+
+ x = x.view(B, Hp // window_size, window_size, Wp // window_size, window_size, C)
+ windows = (
+ x.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, C)
+ )
+ return windows, (Hp, Wp)
+
+
+def window_unpartition(windows, window_size, pad_hw, hw):
+ """
+ Window unpartition into original sequences and removing padding.
+ Args:
+ x (tensor): input tokens with [B * num_windows, window_size, window_size, C].
+ window_size (int): window size.
+ pad_hw (Tuple): padded height and width (Hp, Wp).
+ hw (Tuple): original height and width (H, W) before padding.
+ Returns:
+ x: unpartitioned sequences with [B, H, W, C].
+ """
+ Hp, Wp = pad_hw
+ H, W = hw
+ B = windows.shape[0] // (Hp * Wp // window_size // window_size)
+ x = windows.view(
+ B, Hp // window_size, Wp // window_size, window_size, window_size, -1
+ )
+ x = x.permute(0, 1, 3, 2, 4, 5).contiguous().view(B, Hp, Wp, -1)
+
+ if Hp > H or Wp > W:
+ x = x[:, :H, :W, :].contiguous()
+ return x
+
+
+class PatchEmbed(nn.Module):
+ """
+ Image to Patch Embedding.
+ """
+
+ def __init__(
+ self,
+ kernel_size: Tuple[int, ...] = (7, 7),
+ stride: Tuple[int, ...] = (4, 4),
+ padding: Tuple[int, ...] = (3, 3),
+ in_chans: int = 3,
+ embed_dim: int = 768,
+ ):
+ """
+ Args:
+ kernel_size (Tuple): kernel size of the projection layer.
+ stride (Tuple): stride of the projection layer.
+ padding (Tuple): padding size of the projection layer.
+ in_chans (int): Number of input image channels.
+ embed_dim (int): embed_dim (int): Patch embedding dimension.
+ """
+ super().__init__()
+ self.proj = nn.Conv2d(
+ in_chans, embed_dim, kernel_size=kernel_size, stride=stride, padding=padding
+ )
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ x = self.proj(x)
+ # B C H W -> B H W C
+ x = x.permute(0, 2, 3, 1)
+ return x
diff --git a/ref-avs.code/model/visual/sam2/modeling/memory_attention.py b/ref-avs.code/model/visual/sam2/modeling/memory_attention.py
new file mode 100644
index 0000000000000000000000000000000000000000..11f4ccb1904f022c18f8a02b9590a66bd57bb8f1
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/memory_attention.py
@@ -0,0 +1,169 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional
+
+import torch
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.sam.transformer import RoPEAttention
+
+from model.visual.sam2.modeling.sam2_utils import get_activation_fn, get_clones
+
+
+class MemoryAttentionLayer(nn.Module):
+
+ def __init__(
+ self,
+ activation: str,
+ cross_attention: nn.Module,
+ d_model: int,
+ dim_feedforward: int,
+ dropout: float,
+ pos_enc_at_attn: bool,
+ pos_enc_at_cross_attn_keys: bool,
+ pos_enc_at_cross_attn_queries: bool,
+ self_attention: nn.Module,
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.dim_feedforward = dim_feedforward
+ self.dropout_value = dropout
+ self.self_attn = self_attention
+ self.cross_attn_image = cross_attention
+
+ # Implementation of Feedforward model
+ self.linear1 = nn.Linear(d_model, dim_feedforward)
+ self.dropout = nn.Dropout(dropout)
+ self.linear2 = nn.Linear(dim_feedforward, d_model)
+
+ self.norm1 = nn.LayerNorm(d_model)
+ self.norm2 = nn.LayerNorm(d_model)
+ self.norm3 = nn.LayerNorm(d_model)
+ self.dropout1 = nn.Dropout(dropout)
+ self.dropout2 = nn.Dropout(dropout)
+ self.dropout3 = nn.Dropout(dropout)
+
+ self.activation_str = activation
+ self.activation = get_activation_fn(activation)
+
+ # Where to add pos enc
+ self.pos_enc_at_attn = pos_enc_at_attn
+ self.pos_enc_at_cross_attn_queries = pos_enc_at_cross_attn_queries
+ self.pos_enc_at_cross_attn_keys = pos_enc_at_cross_attn_keys
+
+ def _forward_sa(self, tgt, query_pos):
+ # Self-Attention
+ tgt2 = self.norm1(tgt)
+ q = k = tgt2 + query_pos if self.pos_enc_at_attn else tgt2
+ tgt2 = self.self_attn(q, k, v=tgt2)
+ tgt = tgt + self.dropout1(tgt2)
+ return tgt
+
+ def _forward_ca(self, tgt, memory, query_pos, pos, num_k_exclude_rope=0):
+ kwds = {}
+ if num_k_exclude_rope > 0:
+ assert isinstance(self.cross_attn_image, RoPEAttention)
+ kwds = {"num_k_exclude_rope": num_k_exclude_rope}
+
+ # Cross-Attention
+ tgt2 = self.norm2(tgt)
+ tgt2 = self.cross_attn_image(
+ q=tgt2 + query_pos if self.pos_enc_at_cross_attn_queries else tgt2,
+ k=memory + pos if self.pos_enc_at_cross_attn_keys else memory,
+ v=memory,
+ **kwds,
+ )
+ tgt = tgt + self.dropout2(tgt2)
+ return tgt
+
+ def forward(
+ self,
+ tgt,
+ memory,
+ pos: Optional[Tensor] = None,
+ query_pos: Optional[Tensor] = None,
+ num_k_exclude_rope: int = 0,
+ ) -> torch.Tensor:
+
+ # Self-Attn, Cross-Attn
+ tgt = self._forward_sa(tgt, query_pos)
+ tgt = self._forward_ca(tgt, memory, query_pos, pos, num_k_exclude_rope)
+ # MLP
+ tgt2 = self.norm3(tgt)
+ tgt2 = self.linear2(self.dropout(self.activation(self.linear1(tgt2))))
+ tgt = tgt + self.dropout3(tgt2)
+ return tgt
+
+
+class MemoryAttention(nn.Module):
+ def __init__(
+ self,
+ d_model: int,
+ pos_enc_at_input: bool,
+ layer: nn.Module,
+ num_layers: int,
+ batch_first: bool = True, # Do layers expect batch first input?
+ ):
+ super().__init__()
+ self.d_model = d_model
+ self.layers = get_clones(layer, num_layers)
+ self.num_layers = num_layers
+ self.norm = nn.LayerNorm(d_model)
+ self.pos_enc_at_input = pos_enc_at_input
+ self.batch_first = batch_first
+
+ def forward(
+ self,
+ curr: torch.Tensor, # self-attention inputs
+ memory: torch.Tensor, # cross-attention inputs
+ curr_pos: Optional[Tensor] = None, # pos_enc for self-attention inputs
+ memory_pos: Optional[Tensor] = None, # pos_enc for cross-attention inputs
+ num_obj_ptr_tokens: int = 0, # number of object pointer *tokens*
+ ):
+ if isinstance(curr, list):
+ assert isinstance(curr_pos, list)
+ assert len(curr) == len(curr_pos) == 1
+ curr, curr_pos = (
+ curr[0],
+ curr_pos[0],
+ )
+
+ assert (
+ curr.shape[1] == memory.shape[1]
+ ), "Batch size must be the same for curr and memory"
+
+ output = curr
+ if self.pos_enc_at_input and curr_pos is not None:
+ output = output + 0.1 * curr_pos
+
+ if self.batch_first:
+ # Convert to batch first
+ output = output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+ memory = memory.transpose(0, 1)
+ memory_pos = memory_pos.transpose(0, 1)
+
+ for layer in self.layers:
+ kwds = {}
+ if isinstance(layer.cross_attn_image, RoPEAttention):
+ kwds = {"num_k_exclude_rope": num_obj_ptr_tokens}
+
+ output = layer(
+ tgt=output,
+ memory=memory,
+ pos=memory_pos,
+ query_pos=curr_pos,
+ **kwds,
+ )
+ normed_output = self.norm(output)
+
+ if self.batch_first:
+ # Convert back to seq first
+ normed_output = normed_output.transpose(0, 1)
+ curr_pos = curr_pos.transpose(0, 1)
+
+ return normed_output
diff --git a/ref-avs.code/model/visual/sam2/modeling/memory_encoder.py b/ref-avs.code/model/visual/sam2/modeling/memory_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e1143cc0d5774ff96108203e404f678f14b0a23
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/memory_encoder.py
@@ -0,0 +1,181 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Tuple
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.modeling.sam2_utils import DropPath, get_clones, LayerNorm2d
+
+
+class MaskDownSampler(nn.Module):
+ """
+ Progressively downsample a mask by total_stride, each time by stride.
+ Note that LayerNorm is applied per *token*, like in ViT.
+
+ With each downsample (by a factor stride**2), channel capacity increases by the same factor.
+ In the end, we linearly project to embed_dim channels.
+ """
+
+ def __init__(
+ self,
+ embed_dim=256,
+ kernel_size=4,
+ stride=4,
+ padding=0,
+ total_stride=16,
+ activation=nn.GELU,
+ ):
+ super().__init__()
+ num_layers = int(math.log2(total_stride) // math.log2(stride))
+ assert stride**num_layers == total_stride
+ self.encoder = nn.Sequential()
+ mask_in_chans, mask_out_chans = 1, 1
+ for _ in range(num_layers):
+ mask_out_chans = mask_in_chans * (stride**2)
+ self.encoder.append(
+ nn.Conv2d(
+ mask_in_chans,
+ mask_out_chans,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ )
+ )
+ self.encoder.append(LayerNorm2d(mask_out_chans))
+ self.encoder.append(activation())
+ mask_in_chans = mask_out_chans
+
+ self.encoder.append(nn.Conv2d(mask_out_chans, embed_dim, kernel_size=1))
+
+ def forward(self, x):
+ return self.encoder(x)
+
+
+# Lightly adapted from ConvNext (https://github.com/facebookresearch/ConvNeXt)
+class CXBlock(nn.Module):
+ r"""ConvNeXt Block. There are two equivalent implementations:
+ (1) DwConv -> LayerNorm (channels_first) -> 1x1 Conv -> GELU -> 1x1 Conv; all in (N, C, H, W)
+ (2) DwConv -> Permute to (N, H, W, C); LayerNorm (channels_last) -> Linear -> GELU -> Linear; Permute back
+ We use (2) as we find it slightly faster in PyTorch
+
+ Args:
+ dim (int): Number of input channels.
+ drop_path (float): Stochastic depth rate. Default: 0.0
+ layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
+ """
+
+ def __init__(
+ self,
+ dim,
+ kernel_size=7,
+ padding=3,
+ drop_path=0.0,
+ layer_scale_init_value=1e-6,
+ use_dwconv=True,
+ ):
+ super().__init__()
+ self.dwconv = nn.Conv2d(
+ dim,
+ dim,
+ kernel_size=kernel_size,
+ padding=padding,
+ groups=dim if use_dwconv else 1,
+ ) # depthwise conv
+ self.norm = LayerNorm2d(dim, eps=1e-6)
+ self.pwconv1 = nn.Linear(
+ dim, 4 * dim
+ ) # pointwise/1x1 convs, implemented with linear layers
+ self.act = nn.GELU()
+ self.pwconv2 = nn.Linear(4 * dim, dim)
+ self.gamma = (
+ nn.Parameter(layer_scale_init_value * torch.ones((dim)), requires_grad=True)
+ if layer_scale_init_value > 0
+ else None
+ )
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
+
+ def forward(self, x):
+ input = x
+ x = self.dwconv(x)
+ x = self.norm(x)
+ x = x.permute(0, 2, 3, 1) # (N, C, H, W) -> (N, H, W, C)
+ x = self.pwconv1(x)
+ x = self.act(x)
+ x = self.pwconv2(x)
+ if self.gamma is not None:
+ x = self.gamma * x
+ x = x.permute(0, 3, 1, 2) # (N, H, W, C) -> (N, C, H, W)
+
+ x = input + self.drop_path(x)
+ return x
+
+
+class Fuser(nn.Module):
+ def __init__(self, layer, num_layers, dim=None, input_projection=False):
+ super().__init__()
+ self.proj = nn.Identity()
+ self.layers = get_clones(layer, num_layers)
+
+ if input_projection:
+ assert dim is not None
+ self.proj = nn.Conv2d(dim, dim, kernel_size=1)
+
+ def forward(self, x):
+ # normally x: (N, C, H, W)
+ x = self.proj(x)
+ for layer in self.layers:
+ x = layer(x)
+ return x
+
+
+class MemoryEncoder(nn.Module):
+ def __init__(
+ self,
+ out_dim,
+ mask_downsampler,
+ fuser,
+ position_encoding,
+ in_dim=256, # in_dim of pix_feats
+ ):
+ super().__init__()
+
+ self.mask_downsampler = mask_downsampler
+
+ self.pix_feat_proj = nn.Conv2d(in_dim, in_dim, kernel_size=1)
+ self.fuser = fuser
+ self.position_encoding = position_encoding
+ self.out_proj = nn.Identity()
+ if out_dim != in_dim:
+ self.out_proj = nn.Conv2d(in_dim, out_dim, kernel_size=1)
+
+ def forward(
+ self,
+ pix_feat: torch.Tensor,
+ masks: torch.Tensor,
+ skip_mask_sigmoid: bool = False,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ ## Process masks
+ # sigmoid, so that less domain shift from gt masks which are bool
+ if not skip_mask_sigmoid:
+ masks = F.sigmoid(masks)
+ masks = self.mask_downsampler(masks)
+
+ ## Fuse pix_feats and downsampled masks
+ # in case the visual features are on CPU, cast them to CUDA
+ pix_feat = pix_feat.to(masks.device)
+
+ x = self.pix_feat_proj(pix_feat)
+ x = x + masks
+ x = self.fuser(x)
+ x = self.out_proj(x)
+
+ pos = self.position_encoding(x).to(x.dtype)
+
+ return {"vision_features": x, "vision_pos_enc": [pos]}
diff --git a/ref-avs.code/model/visual/sam2/modeling/position_encoding.py b/ref-avs.code/model/visual/sam2/modeling/position_encoding.py
new file mode 100644
index 0000000000000000000000000000000000000000..52ac22674d5d4fdd9e83b6bdf034bff56d04bc0d
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/position_encoding.py
@@ -0,0 +1,221 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from typing import Any, Optional, Tuple
+
+import numpy as np
+
+import torch
+from torch import nn
+
+
+class PositionEmbeddingSine(nn.Module):
+ """
+ This is a more standard version of the position embedding, very similar to the one
+ used by the Attention Is All You Need paper, generalized to work on images.
+ """
+
+ def __init__(
+ self,
+ num_pos_feats,
+ temperature: int = 10000,
+ normalize: bool = True,
+ scale: Optional[float] = None,
+ ):
+ super().__init__()
+ assert num_pos_feats % 2 == 0, "Expecting even model width"
+ self.num_pos_feats = num_pos_feats // 2
+ self.temperature = temperature
+ self.normalize = normalize
+ if scale is not None and normalize is False:
+ raise ValueError("normalize should be True if scale is passed")
+ if scale is None:
+ scale = 2 * math.pi
+ self.scale = scale
+
+ self.cache = {}
+
+ def _encode_xy(self, x, y):
+ # The positions are expected to be normalized
+ assert len(x) == len(y) and x.ndim == y.ndim == 1
+ x_embed = x * self.scale
+ y_embed = y * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, None] / dim_t
+ pos_y = y_embed[:, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, 0::2].sin(), pos_x[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ pos_y = torch.stack(
+ (pos_y[:, 0::2].sin(), pos_y[:, 1::2].cos()), dim=2
+ ).flatten(1)
+ return pos_x, pos_y
+
+ @torch.no_grad()
+ def encode_boxes(self, x, y, w, h):
+ pos_x, pos_y = self._encode_xy(x, y)
+ pos = torch.cat((pos_y, pos_x, h[:, None], w[:, None]), dim=1)
+ return pos
+
+ encode = encode_boxes # Backwards compatibility
+
+ @torch.no_grad()
+ def encode_points(self, x, y, labels):
+ (bx, nx), (by, ny), (bl, nl) = x.shape, y.shape, labels.shape
+ assert bx == by and nx == ny and bx == bl and nx == nl
+ pos_x, pos_y = self._encode_xy(x.flatten(), y.flatten())
+ pos_x, pos_y = pos_x.reshape(bx, nx, -1), pos_y.reshape(by, ny, -1)
+ pos = torch.cat((pos_y, pos_x, labels[:, :, None]), dim=2)
+ return pos
+
+ @torch.no_grad()
+ def forward(self, x: torch.Tensor):
+ cache_key = (x.shape[-2], x.shape[-1])
+ if cache_key in self.cache:
+ return self.cache[cache_key][None].repeat(x.shape[0], 1, 1, 1)
+ y_embed = (
+ torch.arange(1, x.shape[-2] + 1, dtype=torch.float32, device=x.device)
+ .view(1, -1, 1)
+ .repeat(x.shape[0], 1, x.shape[-1])
+ )
+ x_embed = (
+ torch.arange(1, x.shape[-1] + 1, dtype=torch.float32, device=x.device)
+ .view(1, 1, -1)
+ .repeat(x.shape[0], x.shape[-2], 1)
+ )
+
+ if self.normalize:
+ eps = 1e-6
+ y_embed = y_embed / (y_embed[:, -1:, :] + eps) * self.scale
+ x_embed = x_embed / (x_embed[:, :, -1:] + eps) * self.scale
+
+ dim_t = torch.arange(self.num_pos_feats, dtype=torch.float32, device=x.device)
+ dim_t = self.temperature ** (2 * (dim_t // 2) / self.num_pos_feats)
+
+ pos_x = x_embed[:, :, :, None] / dim_t
+ pos_y = y_embed[:, :, :, None] / dim_t
+ pos_x = torch.stack(
+ (pos_x[:, :, :, 0::2].sin(), pos_x[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos_y = torch.stack(
+ (pos_y[:, :, :, 0::2].sin(), pos_y[:, :, :, 1::2].cos()), dim=4
+ ).flatten(3)
+ pos = torch.cat((pos_y, pos_x), dim=3).permute(0, 3, 1, 2)
+ self.cache[cache_key] = pos[0]
+ return pos
+
+
+class PositionEmbeddingRandom(nn.Module):
+ """
+ Positional encoding using random spatial frequencies.
+ """
+
+ def __init__(self, num_pos_feats: int = 64, scale: Optional[float] = None) -> None:
+ super().__init__()
+ if scale is None or scale <= 0.0:
+ scale = 1.0
+ self.register_buffer(
+ "positional_encoding_gaussian_matrix",
+ scale * torch.randn((2, num_pos_feats)),
+ )
+
+ def _pe_encoding(self, coords: torch.Tensor) -> torch.Tensor:
+ """Positionally encode points that are normalized to [0,1]."""
+ # assuming coords are in [0, 1]^2 square and have d_1 x ... x d_n x 2 shape
+ coords = 2 * coords - 1
+ coords = coords @ self.positional_encoding_gaussian_matrix
+ coords = 2 * np.pi * coords
+ # outputs d_1 x ... x d_n x C shape
+ return torch.cat([torch.sin(coords), torch.cos(coords)], dim=-1)
+
+ def forward(self, size: Tuple[int, int]) -> torch.Tensor:
+ """Generate positional encoding for a grid of the specified size."""
+ h, w = size
+ device: Any = self.positional_encoding_gaussian_matrix.device
+ grid = torch.ones((h, w), device=device, dtype=torch.float32)
+ y_embed = grid.cumsum(dim=0) - 0.5
+ x_embed = grid.cumsum(dim=1) - 0.5
+ y_embed = y_embed / h
+ x_embed = x_embed / w
+
+ pe = self._pe_encoding(torch.stack([x_embed, y_embed], dim=-1))
+ return pe.permute(2, 0, 1) # C x H x W
+
+ def forward_with_coords(
+ self, coords_input: torch.Tensor, image_size: Tuple[int, int]
+ ) -> torch.Tensor:
+ """Positionally encode points that are not normalized to [0,1]."""
+ coords = coords_input.clone()
+ coords[:, :, 0] = coords[:, :, 0] / image_size[1]
+ coords[:, :, 1] = coords[:, :, 1] / image_size[0]
+ return self._pe_encoding(coords.to(torch.float)) # B x N x C
+
+
+# Rotary Positional Encoding, adapted from:
+# 1. https://github.com/meta-llama/codellama/blob/main/llama/model.py
+# 2. https://github.com/naver-ai/rope-vit
+# 3. https://github.com/lucidrains/rotary-embedding-torch
+
+
+def init_t_xy(end_x: int, end_y: int):
+ t = torch.arange(end_x * end_y, dtype=torch.float32)
+ t_x = (t % end_x).float()
+ t_y = torch.div(t, end_x, rounding_mode="floor").float()
+ return t_x, t_y
+
+
+def compute_axial_cis(dim: int, end_x: int, end_y: int, theta: float = 10000.0):
+ freqs_x = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+ freqs_y = 1.0 / (theta ** (torch.arange(0, dim, 4)[: (dim // 4)].float() / dim))
+
+ t_x, t_y = init_t_xy(end_x, end_y)
+ freqs_x = torch.outer(t_x, freqs_x)
+ freqs_y = torch.outer(t_y, freqs_y)
+ freqs_cis_x = torch.polar(torch.ones_like(freqs_x), freqs_x)
+ freqs_cis_y = torch.polar(torch.ones_like(freqs_y), freqs_y)
+ return torch.cat([freqs_cis_x, freqs_cis_y], dim=-1)
+
+
+def reshape_for_broadcast(freqs_cis: torch.Tensor, x: torch.Tensor):
+ ndim = x.ndim
+ assert 0 <= 1 < ndim
+ assert freqs_cis.shape == (x.shape[-2], x.shape[-1])
+ shape = [d if i >= ndim - 2 else 1 for i, d in enumerate(x.shape)]
+ return freqs_cis.view(*shape)
+
+
+def apply_rotary_enc(
+ xq: torch.Tensor,
+ xk: torch.Tensor,
+ freqs_cis: torch.Tensor,
+ repeat_freqs_k: bool = False,
+):
+ xq_ = torch.view_as_complex(xq.float().reshape(*xq.shape[:-1], -1, 2))
+ xk_ = (
+ torch.view_as_complex(xk.float().reshape(*xk.shape[:-1], -1, 2))
+ if xk.shape[-2] != 0
+ else None
+ )
+ freqs_cis = reshape_for_broadcast(freqs_cis, xq_)
+ xq_out = torch.view_as_real(xq_ * freqs_cis).flatten(3)
+ if xk_ is None:
+ # no keys to rotate, due to dropout
+ return xq_out.type_as(xq).to(xq.device), xk
+ # repeat freqs along seq_len dim to match k seq_len
+ if repeat_freqs_k:
+ r = xk_.shape[-2] // xq_.shape[-2]
+ if freqs_cis.is_cuda:
+ freqs_cis = freqs_cis.repeat(*([1] * (freqs_cis.ndim - 2)), r, 1)
+ else:
+ # torch.repeat on complex numbers may not be supported on non-CUDA devices
+ # (freqs_cis has 4 dims and we repeat on dim 2) so we use expand + flatten
+ freqs_cis = freqs_cis.unsqueeze(2).expand(-1, -1, r, -1, -1).flatten(2, 3)
+ xk_out = torch.view_as_real(xk_ * freqs_cis).flatten(3)
+ return xq_out.type_as(xq).to(xq.device), xk_out.type_as(xk).to(xk.device)
diff --git a/ref-avs.code/model/visual/sam2/modeling/sam/mask_decoder.py b/ref-avs.code/model/visual/sam2/modeling/sam/mask_decoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..078f21cc2ec41805eebec677e6e27771335deaa4
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/sam/mask_decoder.py
@@ -0,0 +1,300 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import List, Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d, MLP
+
+
+class MaskDecoder(nn.Module):
+ def __init__(
+ self,
+ *,
+ transformer_dim: int,
+ transformer: nn.Module,
+ num_multimask_outputs: int = 3,
+ activation: Type[nn.Module] = nn.GELU,
+ iou_head_depth: int = 3,
+ iou_head_hidden_dim: int = 256,
+ use_high_res_features: bool = False,
+ iou_prediction_use_sigmoid=False,
+ dynamic_multimask_via_stability=False,
+ dynamic_multimask_stability_delta=0.05,
+ dynamic_multimask_stability_thresh=0.98,
+ pred_obj_scores: bool = False,
+ pred_obj_scores_mlp: bool = False,
+ use_multimask_token_for_obj_ptr: bool = False,
+ ) -> None:
+ """
+ Predicts masks given an image and prompt embeddings, using a
+ transformer architecture.
+
+ Arguments:
+ transformer_dim (int): the channel dimension of the transformer
+ transformer (nn.Module): the transformer used to predict masks
+ num_multimask_outputs (int): the number of masks to predict
+ when disambiguating masks
+ activation (nn.Module): the type of activation to use when
+ upscaling masks
+ iou_head_depth (int): the depth of the MLP used to predict
+ mask quality
+ iou_head_hidden_dim (int): the hidden dimension of the MLP
+ used to predict mask quality
+ """
+ super().__init__()
+ self.transformer_dim = transformer_dim
+ self.transformer = transformer
+
+ self.num_multimask_outputs = num_multimask_outputs
+
+ self.iou_token = nn.Embedding(1, transformer_dim)
+ self.num_mask_tokens = num_multimask_outputs + 1
+ self.mask_tokens = nn.Embedding(self.num_mask_tokens, transformer_dim)
+
+ self.pred_obj_scores = pred_obj_scores
+ if self.pred_obj_scores:
+ self.obj_score_token = nn.Embedding(1, transformer_dim)
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+
+ self.output_upscaling = nn.Sequential(
+ nn.ConvTranspose2d(
+ transformer_dim, transformer_dim // 4, kernel_size=2, stride=2
+ ),
+ LayerNorm2d(transformer_dim // 4),
+ activation(),
+ nn.ConvTranspose2d(
+ transformer_dim // 4, transformer_dim // 8, kernel_size=2, stride=2
+ ),
+ activation(),
+ )
+ self.use_high_res_features = use_high_res_features
+ if use_high_res_features:
+ self.conv_s0 = nn.Conv2d(
+ transformer_dim, transformer_dim // 8, kernel_size=1, stride=1
+ )
+ self.conv_s1 = nn.Conv2d(
+ transformer_dim, transformer_dim // 4, kernel_size=1, stride=1
+ )
+
+ self.output_hypernetworks_mlps = nn.ModuleList(
+ [
+ MLP(transformer_dim, transformer_dim, transformer_dim // 8, 3)
+ for i in range(self.num_mask_tokens)
+ ]
+ )
+
+ self.iou_prediction_head = MLP(
+ transformer_dim,
+ iou_head_hidden_dim,
+ self.num_mask_tokens,
+ iou_head_depth,
+ sigmoid_output=iou_prediction_use_sigmoid,
+ )
+ if self.pred_obj_scores:
+ self.pred_obj_score_head = nn.Linear(transformer_dim, 1)
+ if pred_obj_scores_mlp:
+ self.pred_obj_score_head = MLP(transformer_dim, transformer_dim, 1, 3)
+
+ # When outputting a single mask, optionally we can dynamically fall back to the best
+ # multimask output token if the single mask output token gives low stability scores.
+ self.dynamic_multimask_via_stability = dynamic_multimask_via_stability
+ self.dynamic_multimask_stability_delta = dynamic_multimask_stability_delta
+ self.dynamic_multimask_stability_thresh = dynamic_multimask_stability_thresh
+
+ def forward(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ multimask_output: bool,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features: Optional[List[torch.Tensor]] = None,
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Predict masks given image and prompt embeddings.
+
+ Arguments:
+ image_embeddings (torch.Tensor): the embeddings from the image encoder
+ image_pe (torch.Tensor): positional encoding with the shape of image_embeddings
+ sparse_prompt_embeddings (torch.Tensor): the embeddings of the points and boxes
+ dense_prompt_embeddings (torch.Tensor): the embeddings of the mask inputs
+ multimask_output (bool): Whether to return multiple masks or a single
+ mask.
+
+ Returns:
+ torch.Tensor: batched predicted masks
+ torch.Tensor: batched predictions of mask quality
+ torch.Tensor: batched SAM token for mask output
+ """
+ masks, iou_pred, mask_tokens_out, object_score_logits = self.predict_masks(
+ image_embeddings=image_embeddings,
+ image_pe=image_pe,
+ sparse_prompt_embeddings=sparse_prompt_embeddings,
+ dense_prompt_embeddings=dense_prompt_embeddings,
+ repeat_image=repeat_image,
+ high_res_features=high_res_features,
+ audio_res_features_=audio_res_features
+ )
+
+ # Select the correct mask or masks for output
+ if multimask_output:
+ masks = masks[:, 1:, :, :]
+ iou_pred = iou_pred[:, 1:]
+ elif self.dynamic_multimask_via_stability and not self.training:
+ masks, iou_pred = self._dynamic_multimask_via_stability(masks, iou_pred)
+ else:
+ masks = masks[:, 0:1, :, :]
+ iou_pred = iou_pred[:, 0:1]
+
+
+ if multimask_output and self.use_multimask_token_for_obj_ptr:
+ sam_tokens_out = mask_tokens_out[:, 1:] # [b, 3, c] shape
+ else:
+ # Take the mask output token. Here we *always* use the token for single mask output.
+ # At test time, even if we track after 1-click (and using multimask_output=True),
+ # we still take the single mask token here. The rationale is that we always track
+ # after multiple clicks during training, so the past tokens seen during training
+ # are always the single mask token (and we'll let it be the object-memory token).
+ sam_tokens_out = mask_tokens_out[:, 0:1] # [b, 1, c] shape
+
+ # Prepare output
+ return masks, iou_pred, sam_tokens_out, object_score_logits
+
+ def predict_masks(
+ self,
+ image_embeddings: torch.Tensor,
+ image_pe: torch.Tensor,
+ sparse_prompt_embeddings: torch.Tensor,
+ dense_prompt_embeddings: torch.Tensor,
+ repeat_image: bool,
+ high_res_features: Optional[List[torch.Tensor]] = None,
+ audio_res_features_: Optional[List[torch.Tensor]] = None
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """Predicts masks. See 'forward' for more details."""
+ # Concatenate output tokens
+ s = 0
+ if self.pred_obj_scores:
+ output_tokens = torch.cat(
+ [
+ self.obj_score_token.weight,
+ self.iou_token.weight,
+ self.mask_tokens.weight,
+ ],
+ dim=0,
+ )
+ s = 1
+ else:
+ output_tokens = torch.cat(
+ [self.iou_token.weight, self.mask_tokens.weight], dim=0
+ )
+ output_tokens = output_tokens.unsqueeze(0).expand(
+ sparse_prompt_embeddings.size(0), -1, -1
+ )
+ tokens = torch.cat((output_tokens, sparse_prompt_embeddings), dim=1)
+
+ # Expand per-image data in batch direction to be per-mask
+ if repeat_image:
+ src = torch.repeat_interleave(image_embeddings, tokens.shape[0], dim=0)
+ else:
+ assert image_embeddings.shape[0] == tokens.shape[0]
+ src = image_embeddings
+ src = src + dense_prompt_embeddings
+ assert (
+ image_pe.size(0) == 1
+ ), "image_pe should have size 1 in batch dim (from `get_dense_pe()`)"
+ pos_src = torch.repeat_interleave(image_pe, tokens.shape[0], dim=0)
+ b, c, h, w = src.shape
+
+ # Run the transformer
+ hs, src = self.transformer(src, pos_src, tokens, audio_res_features_)
+ iou_token_out = hs[:, s, :]
+ mask_tokens_out = hs[:, s + 1 : (s + 1 + self.num_mask_tokens), :]
+
+ # Upscale mask embeddings and predict masks using the mask tokens
+ src = src.transpose(1, 2).view(b, c, h, w)
+
+ if not self.use_high_res_features:
+ upscaled_embedding = self.output_upscaling(src)
+ else:
+ dc1, ln1, act1, dc2, act2 = self.output_upscaling
+ feat_s0, feat_s1 = high_res_features
+ upscaled_embedding = act1(ln1(dc1(src) + feat_s1))
+ upscaled_embedding = act2(dc2(upscaled_embedding) + feat_s0)
+
+ hyper_in_list: List[torch.Tensor] = []
+ for i in range(self.num_mask_tokens):
+ hyper_in_list.append(
+ self.output_hypernetworks_mlps[i](mask_tokens_out[:, i, :])
+ )
+ hyper_in = torch.stack(hyper_in_list, dim=1)
+ b, c, h, w = upscaled_embedding.shape
+ masks = (hyper_in @ upscaled_embedding.view(b, c, h * w)).view(b, -1, h, w)
+
+ # Generate mask quality predictions
+ iou_pred = self.iou_prediction_head(iou_token_out)
+ if self.pred_obj_scores:
+ assert s == 1
+ object_score_logits = self.pred_obj_score_head(hs[:, 0, :])
+ else:
+ # Obj scores logits - default to 10.0, i.e. assuming the object is present, sigmoid(10)=1
+ object_score_logits = 10.0 * iou_pred.new_ones(iou_pred.shape[0], 1)
+
+ return masks, iou_pred, mask_tokens_out, object_score_logits
+
+ def _get_stability_scores(self, mask_logits):
+ """
+ Compute stability scores of the mask logits based on the IoU between upper and
+ lower thresholds.
+ """
+ mask_logits = mask_logits.flatten(-2)
+ stability_delta = self.dynamic_multimask_stability_delta
+ area_i = torch.sum(mask_logits > stability_delta, dim=-1).float()
+ area_u = torch.sum(mask_logits > -stability_delta, dim=-1).float()
+ stability_scores = torch.where(area_u > 0, area_i / area_u, 1.0)
+ return stability_scores
+
+ def _dynamic_multimask_via_stability(self, all_mask_logits, all_iou_scores):
+ """
+ When outputting a single mask, if the stability score from the current single-mask
+ output (based on output token 0) falls below a threshold, we instead select from
+ multi-mask outputs (based on output token 1~3) the mask with the highest predicted
+ IoU score. This is intended to ensure a valid mask for both clicking and tracking.
+ """
+ # The best mask from multimask output tokens (1~3)
+ multimask_logits = all_mask_logits[:, 1:, :, :]
+ multimask_iou_scores = all_iou_scores[:, 1:]
+ best_scores_inds = torch.argmax(multimask_iou_scores, dim=-1)
+ batch_inds = torch.arange(
+ multimask_iou_scores.size(0), device=all_iou_scores.device
+ )
+ best_multimask_logits = multimask_logits[batch_inds, best_scores_inds]
+ best_multimask_logits = best_multimask_logits.unsqueeze(1)
+ best_multimask_iou_scores = multimask_iou_scores[batch_inds, best_scores_inds]
+ best_multimask_iou_scores = best_multimask_iou_scores.unsqueeze(1)
+
+ # The mask from singlemask output token 0 and its stability score
+ singlemask_logits = all_mask_logits[:, 0:1, :, :]
+ singlemask_iou_scores = all_iou_scores[:, 0:1]
+ stability_scores = self._get_stability_scores(singlemask_logits)
+ is_stable = stability_scores >= self.dynamic_multimask_stability_thresh
+
+ # Dynamically fall back to best multimask output upon low stability scores.
+ mask_logits_out = torch.where(
+ is_stable[..., None, None].expand_as(singlemask_logits),
+ singlemask_logits,
+ best_multimask_logits,
+ )
+ iou_scores_out = torch.where(
+ is_stable.expand_as(singlemask_iou_scores),
+ singlemask_iou_scores,
+ best_multimask_iou_scores,
+ )
+ return mask_logits_out, iou_scores_out
diff --git a/ref-avs.code/model/visual/sam2/modeling/sam/prompt_encoder.py b/ref-avs.code/model/visual/sam2/modeling/sam/prompt_encoder.py
new file mode 100644
index 0000000000000000000000000000000000000000..038cebcc072ae7c0f3f83061061be3edba04d0f8
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/sam/prompt_encoder.py
@@ -0,0 +1,188 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+from typing import Optional, Tuple, Type
+
+import torch
+from torch import nn
+
+from model.visual.sam2.modeling.position_encoding import PositionEmbeddingRandom
+
+from model.visual.sam2.modeling.sam2_utils import LayerNorm2d
+
+
+class PromptEncoder(nn.Module):
+ def __init__(
+ self,
+ embed_dim: int,
+ image_embedding_size: Tuple[int, int],
+ input_image_size: Tuple[int, int],
+ mask_in_chans: int,
+ activation: Type[nn.Module] = nn.GELU,
+ ) -> None:
+ """
+ Encodes prompts for input to SAM's mask decoder.
+
+ Arguments:
+ embed_dim (int): The prompts' embedding dimension
+ image_embedding_size (tuple(int, int)): The spatial size of the
+ image embedding, as (H, W).
+ input_image_size (int): The padded size of the image as input
+ to the image encoder, as (H, W).
+ mask_in_chans (int): The number of hidden channels used for
+ encoding input masks.
+ activation (nn.Module): The activation to use when encoding
+ input masks.
+ """
+ super().__init__()
+ self.embed_dim = embed_dim
+ self.input_image_size = input_image_size
+ self.image_embedding_size = image_embedding_size
+ self.pe_layer = PositionEmbeddingRandom(embed_dim // 2)
+
+ self.num_point_embeddings: int = 4 # pos/neg point + 2 box corners
+ point_embeddings = [
+ nn.Embedding(1, embed_dim) for i in range(self.num_point_embeddings)
+ ]
+ self.point_embeddings = nn.ModuleList(point_embeddings)
+ self.not_a_point_embed = nn.Embedding(1, embed_dim)
+
+ self.mask_input_size = (
+ 4 * image_embedding_size[0],
+ 4 * image_embedding_size[1],
+ )
+ self.mask_downscaling = nn.Sequential(
+ nn.Conv2d(1, mask_in_chans // 4, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans // 4),
+ activation(),
+ nn.Conv2d(mask_in_chans // 4, mask_in_chans, kernel_size=2, stride=2),
+ LayerNorm2d(mask_in_chans),
+ activation(),
+ nn.Conv2d(mask_in_chans, embed_dim, kernel_size=1),
+ )
+ self.no_mask_embed = nn.Embedding(1, embed_dim)
+
+ def get_dense_pe(self) -> torch.Tensor:
+ """
+ Returns the positional encoding used to encode point prompts,
+ applied to a dense set of points the shape of the image encoding.
+
+ Returns:
+ torch.Tensor: Positional encoding with shape
+ 1x(embed_dim)x(embedding_h)x(embedding_w)
+ """
+ return self.pe_layer(self.image_embedding_size).unsqueeze(0)
+
+ def _embed_points(
+ self,
+ points: torch.Tensor,
+ labels: torch.Tensor,
+ pad: bool,
+ ) -> torch.Tensor:
+ """Embeds point prompts."""
+ points = points + 0.5 # Shift to center of pixel
+ if pad:
+ padding_point = torch.zeros((points.shape[0], 1, 2), device=points.device)
+ padding_label = -torch.ones((labels.shape[0], 1), device=labels.device)
+ points = torch.cat([points, padding_point], dim=1)
+ labels = torch.cat([labels, padding_label], dim=1)
+ point_embedding = self.pe_layer.forward_with_coords(
+ points, self.input_image_size
+ )
+ point_embedding[labels == -1] = 0.0
+ point_embedding[labels == -1] += self.not_a_point_embed.weight
+ point_embedding[labels == 0] += self.point_embeddings[0].weight
+ point_embedding[labels == 1] += self.point_embeddings[1].weight
+ point_embedding[labels == 2] += self.point_embeddings[2].weight
+ point_embedding[labels == 3] += self.point_embeddings[3].weight
+ return point_embedding
+
+ def _embed_boxes(self, boxes: torch.Tensor) -> torch.Tensor:
+ """Embeds box prompts."""
+ boxes = boxes + 0.5 # Shift to center of pixel
+ coords = boxes.reshape(-1, 2, 2)
+ corner_embedding = self.pe_layer.forward_with_coords(
+ coords, self.input_image_size
+ )
+ corner_embedding[:, 0, :] += self.point_embeddings[2].weight
+ corner_embedding[:, 1, :] += self.point_embeddings[3].weight
+ return corner_embedding
+
+ def _embed_masks(self, masks: torch.Tensor) -> torch.Tensor:
+ """Embeds mask inputs."""
+ mask_embedding = self.mask_downscaling(masks)
+ return mask_embedding
+
+ def _get_batch_size(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> int:
+ """
+ Gets the batch size of the output given the batch size of the input prompts.
+ """
+ if points is not None:
+ return points[0].shape[0]
+ elif boxes is not None:
+ return boxes.shape[0]
+ elif masks is not None:
+ return masks.shape[0]
+ else:
+ return 1
+
+ def _get_device(self) -> torch.device:
+ return self.point_embeddings[0].weight.device
+
+ def forward(
+ self,
+ points: Optional[Tuple[torch.Tensor, torch.Tensor]],
+ boxes: Optional[torch.Tensor],
+ masks: Optional[torch.Tensor],
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
+ """
+ Embeds different types of prompts, returning both sparse and dense
+ embeddings.
+
+ Arguments:
+ points (tuple(torch.Tensor, torch.Tensor) or none): point coordinates
+ and labels to embed.
+ boxes (torch.Tensor or none): boxes to embed
+ masks (torch.Tensor or none): masks to embed
+
+ Returns:
+ torch.Tensor: sparse embeddings for the points and boxes, with shape
+ BxNx(embed_dim), where N is determined by the number of input points
+ and boxes.
+ torch.Tensor: dense embeddings for the masks, in the shape
+ Bx(embed_dim)x(embed_H)x(embed_W)
+ """
+ # we only utilise sounding as prompt.
+ bs = self._get_batch_size(points, boxes, masks)
+ sparse_embeddings = torch.empty(
+ (bs, 0, self.embed_dim), device=self._get_device()
+ )
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ if points is not None:
+ coords, labels = points
+ point_embeddings = self._embed_points(coords, labels, pad=(boxes is None))
+ sparse_embeddings = torch.cat([sparse_embeddings, point_embeddings], dim=1)
+ if boxes is not None:
+ box_embeddings = self._embed_boxes(boxes)
+ sparse_embeddings = torch.cat([sparse_embeddings, box_embeddings], dim=1)
+
+ if masks is not None:
+ dense_embeddings = self._embed_masks(masks)
+ else:
+ dense_embeddings = self.no_mask_embed.weight.reshape(1, -1, 1, 1).expand(
+ bs, -1, self.image_embedding_size[0], self.image_embedding_size[1]
+ )
+ '''
+ return sparse_embeddings, dense_embeddings
+
diff --git a/ref-avs.code/model/visual/sam2/modeling/sam/transformer.py b/ref-avs.code/model/visual/sam2/modeling/sam/transformer.py
new file mode 100644
index 0000000000000000000000000000000000000000..31916550afeccb66f4427cee7ec4a7a2d66913a5
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/sam/transformer.py
@@ -0,0 +1,367 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import contextlib
+import math
+import warnings
+from functools import partial
+from typing import Tuple, Type
+
+import torch
+import torch.nn.functional as F
+from torch import nn, Tensor
+
+from model.visual.sam2.modeling.position_encoding import apply_rotary_enc, compute_axial_cis
+from model.visual.sam2.modeling.sam2_utils import MLP
+from model.visual.sam2.utils.misc import get_sdpa_settings
+
+warnings.simplefilter(action="ignore", category=FutureWarning)
+# Check whether Flash Attention is available (and use it by default)
+OLD_GPU, USE_FLASH_ATTN, MATH_KERNEL_ON = get_sdpa_settings()
+# A fallback setting to allow all available kernels if Flash Attention fails
+ALLOW_ALL_KERNELS = False
+
+
+def sdp_kernel_context(dropout_p):
+ """
+ Get the context for the attention scaled dot-product kernel. We use Flash Attention
+ by default, but fall back to all available kernels if Flash Attention fails.
+ """
+ if ALLOW_ALL_KERNELS:
+ return contextlib.nullcontext()
+
+ return torch.backends.cuda.sdp_kernel(
+ enable_flash=USE_FLASH_ATTN,
+ # if Flash attention kernel is off, then math kernel needs to be enabled
+ enable_math=(OLD_GPU and dropout_p > 0.0) or MATH_KERNEL_ON,
+ enable_mem_efficient=OLD_GPU,
+ )
+
+
+class TwoWayTransformer(nn.Module):
+ def __init__(
+ self,
+ depth: int,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ ) -> None:
+ """
+ A transformer decoder that attends to an input image using
+ queries whose positional embedding is supplied.
+
+ Args:
+ depth (int): number of layers in the transformer
+ embedding_dim (int): the channel dimension for the input embeddings
+ num_heads (int): the number of heads for multihead attention. Must
+ divide embedding_dim
+ mlp_dim (int): the channel dimension internal to the MLP block
+ activation (nn.Module): the activation to use in the MLP block
+ """
+ super().__init__()
+ self.depth = depth
+ self.embedding_dim = embedding_dim
+ self.num_heads = num_heads
+ self.mlp_dim = mlp_dim
+ self.layers = nn.ModuleList()
+
+ for i in range(depth):
+ self.layers.append(
+ TwoWayAttentionBlock(
+ embedding_dim=embedding_dim,
+ num_heads=num_heads,
+ mlp_dim=mlp_dim,
+ activation=activation,
+ attention_downsample_rate=attention_downsample_rate,
+ skip_first_layer_pe=(i == 0),
+ )
+ )
+
+ self.final_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm_final_attn = nn.LayerNorm(embedding_dim)
+
+ def forward(
+ self,
+ image_embedding: Tensor,
+ image_pe: Tensor,
+ point_embedding: Tensor,
+ audio_res: [],
+ ) -> Tuple[Tensor, Tensor]:
+ """
+ Args:
+ image_embedding (torch.Tensor): image to attend to. Should be shape
+ B x embedding_dim x h x w for any h and w.
+ image_pe (torch.Tensor): the positional encoding to add to the image. Must
+ have the same shape as image_embedding.
+ point_embedding (torch.Tensor): the embedding to add to the query points.
+ Must have shape B x N_points x embedding_dim for any N_points.
+
+ Returns:
+ torch.Tensor: the processed point_embedding
+ torch.Tensor: the processed image_embedding
+ """
+ # BxCxHxW -> BxHWxC == B x N_image_tokens x C
+ bs, c, h, w = image_embedding.shape
+ image_embedding = image_embedding.flatten(2).permute(0, 2, 1)
+ image_pe = image_pe.flatten(2).permute(0, 2, 1)
+
+ visual_res, audio_res = audio_res
+
+ # Prepare queries
+ queries = point_embedding
+ keys = image_embedding
+ # Apply transformer blocks and final layernorm
+ for i, layer in enumerate(self.layers):
+ keys = keys + visual_res[i]
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[i]
+ queries, keys = layer(
+ queries=queries,
+ keys=keys,
+ query_pe=point_embedding,
+ key_pe=image_pe,
+ )
+
+ queries[:, 2:6] = queries[:, 2:6] + audio_res[-1]
+ keys = keys + visual_res[-1]
+
+ # Apply the final attention layer from the points to the image
+ q = queries + point_embedding
+ k = keys + image_pe
+ attn_out = self.final_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm_final_attn(queries)
+
+ return queries, keys
+
+
+class TwoWayAttentionBlock(nn.Module):
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ mlp_dim: int = 2048,
+ activation: Type[nn.Module] = nn.ReLU,
+ attention_downsample_rate: int = 2,
+ skip_first_layer_pe: bool = False,
+ ) -> None:
+ """
+ A transformer block with four layers: (1) self-attention of sparse
+ inputs, (2) cross attention of sparse inputs to dense inputs, (3) mlp
+ block on sparse inputs, and (4) cross attention of dense inputs to sparse
+ inputs.
+
+ Arguments:
+ embedding_dim (int): the channel dimension of the embeddings
+ num_heads (int): the number of heads in the attention layers
+ mlp_dim (int): the hidden dimension of the mlp block
+ activation (nn.Module): the activation of the mlp block
+ skip_first_layer_pe (bool): skip the PE on the first layer
+ """
+ super().__init__()
+ self.self_attn = Attention(embedding_dim, num_heads)
+ self.norm1 = nn.LayerNorm(embedding_dim)
+
+ self.cross_attn_token_to_image = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+ self.norm2 = nn.LayerNorm(embedding_dim)
+
+ self.mlp = MLP(
+ embedding_dim, mlp_dim, embedding_dim, num_layers=2, activation=activation
+ )
+ self.norm3 = nn.LayerNorm(embedding_dim)
+
+ self.norm4 = nn.LayerNorm(embedding_dim)
+ self.cross_attn_image_to_token = Attention(
+ embedding_dim, num_heads, downsample_rate=attention_downsample_rate
+ )
+
+ self.skip_first_layer_pe = skip_first_layer_pe
+
+ def forward(
+ self, queries: Tensor, keys: Tensor, query_pe: Tensor, key_pe: Tensor
+ ) -> Tuple[Tensor, Tensor]:
+ # Self attention block
+ if self.skip_first_layer_pe:
+ queries = self.self_attn(q=queries, k=queries, v=queries)
+ else:
+ q = queries + query_pe
+ attn_out = self.self_attn(q=q, k=q, v=queries)
+ queries = queries + attn_out
+ queries = self.norm1(queries)
+
+ # Cross attention block, tokens attending to image embedding
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_token_to_image(q=q, k=k, v=keys)
+ queries = queries + attn_out
+ queries = self.norm2(queries)
+
+ # MLP block
+ mlp_out = self.mlp(queries)
+ queries = queries + mlp_out
+ queries = self.norm3(queries)
+
+ # Cross attention block, image embedding attending to tokens
+ q = queries + query_pe
+ k = keys + key_pe
+ attn_out = self.cross_attn_image_to_token(q=k, k=q, v=queries)
+ keys = keys + attn_out
+ keys = self.norm4(keys)
+
+ return queries, keys
+
+
+class Attention(nn.Module):
+ """
+ An attention layer that allows for downscaling the size of the embedding
+ after projection to queries, keys, and values.
+ """
+
+ def __init__(
+ self,
+ embedding_dim: int,
+ num_heads: int,
+ downsample_rate: int = 1,
+ dropout: float = 0.0,
+ kv_in_dim: int = None,
+ ) -> None:
+ super().__init__()
+ self.embedding_dim = embedding_dim
+ self.kv_in_dim = kv_in_dim if kv_in_dim is not None else embedding_dim
+ self.internal_dim = embedding_dim // downsample_rate
+ self.num_heads = num_heads
+ assert (
+ self.internal_dim % num_heads == 0
+ ), "num_heads must divide embedding_dim."
+
+ self.q_proj = nn.Linear(embedding_dim, self.internal_dim)
+ self.k_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.v_proj = nn.Linear(self.kv_in_dim, self.internal_dim)
+ self.out_proj = nn.Linear(self.internal_dim, embedding_dim)
+
+ self.dropout_p = dropout
+
+ def _separate_heads(self, x: Tensor, num_heads: int) -> Tensor:
+ b, n, c = x.shape
+ x = x.reshape(b, n, num_heads, c // num_heads)
+ return x.transpose(1, 2) # B x N_heads x N_tokens x C_per_head
+
+ def _recombine_heads(self, x: Tensor) -> Tensor:
+ b, n_heads, n_tokens, c_per_head = x.shape
+ x = x.transpose(1, 2)
+ return x.reshape(b, n_tokens, n_heads * c_per_head) # B x N_tokens x C
+
+ def forward(self, q: Tensor, k: Tensor, v: Tensor) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
+
+
+class RoPEAttention(Attention):
+ """Attention with rotary position encoding."""
+
+ def __init__(
+ self,
+ *args,
+ rope_theta=10000.0,
+ # whether to repeat q rope to match k length
+ # this is needed for cross-attention to memories
+ rope_k_repeat=False,
+ feat_sizes=(32, 32), # [w, h] for stride 16 feats at 512 resolution
+ **kwargs,
+ ):
+ super().__init__(*args, **kwargs)
+
+ self.compute_cis = partial(
+ compute_axial_cis, dim=self.internal_dim // self.num_heads, theta=rope_theta
+ )
+ freqs_cis = self.compute_cis(end_x=feat_sizes[0], end_y=feat_sizes[1])
+ self.freqs_cis = freqs_cis
+ self.rope_k_repeat = rope_k_repeat
+
+ def forward(
+ self, q: Tensor, k: Tensor, v: Tensor, num_k_exclude_rope: int = 0
+ ) -> Tensor:
+ # Input projections
+ q = self.q_proj(q)
+ k = self.k_proj(k)
+ v = self.v_proj(v)
+
+ # Separate into heads
+ q = self._separate_heads(q, self.num_heads)
+ k = self._separate_heads(k, self.num_heads)
+ v = self._separate_heads(v, self.num_heads)
+
+ # Apply rotary position encoding
+ w = h = math.sqrt(q.shape[-2])
+ self.freqs_cis = self.freqs_cis.to(q.device)
+ if self.freqs_cis.shape[0] != q.shape[-2]:
+ self.freqs_cis = self.compute_cis(end_x=w, end_y=h).to(q.device)
+ if q.shape[-2] != k.shape[-2]:
+ assert self.rope_k_repeat
+
+ num_k_rope = k.size(-2) - num_k_exclude_rope
+ q, k[:, :, :num_k_rope] = apply_rotary_enc(
+ q,
+ k[:, :, :num_k_rope],
+ freqs_cis=self.freqs_cis,
+ repeat_freqs_k=self.rope_k_repeat,
+ )
+
+ dropout_p = self.dropout_p if self.training else 0.0
+ # Attention
+ try:
+ with sdp_kernel_context(dropout_p):
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+ except Exception as e:
+ # Fall back to all kernels if the Flash attention kernel fails
+ warnings.warn(
+ f"Flash Attention kernel failed due to: {e}\nFalling back to all available "
+ f"kernels for scaled_dot_product_attention (which may have a slower speed).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ global ALLOW_ALL_KERNELS
+ ALLOW_ALL_KERNELS = True
+ out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
+
+ out = self._recombine_heads(out)
+ out = self.out_proj(out)
+
+ return out
diff --git a/ref-avs.code/model/visual/sam2/modeling/sam2_base.py b/ref-avs.code/model/visual/sam2/modeling/sam2_base.py
new file mode 100644
index 0000000000000000000000000000000000000000..fa1f740376b8cd48b18ab2988de9e51c6b36b429
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/sam2_base.py
@@ -0,0 +1,943 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import torch
+import torch.distributed
+import torch.nn.functional as F
+
+from torch.nn.init import trunc_normal_
+
+from model.visual.sam2.modeling.sam.mask_decoder import MaskDecoder
+from model.visual.sam2.modeling.sam.prompt_encoder import PromptEncoder
+from model.visual.sam2.modeling.sam.transformer import TwoWayTransformer
+from model.visual.sam2.modeling.sam2_utils import get_1d_sine_pe, MLP, select_closest_cond_frames
+
+# a large negative value as a placeholder score for missing objects
+NO_OBJ_SCORE = -1024.0
+
+
+class SAM2Base(torch.nn.Module):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention,
+ memory_encoder,
+ num_maskmem=7, # default 1 input frame + 6 previous frames
+ image_size=512,
+ backbone_stride=16, # stride of the image backbone output
+ sigmoid_scale_for_mem_enc=1.0, # scale factor for mask sigmoid prob
+ sigmoid_bias_for_mem_enc=0.0, # bias factor for mask sigmoid prob
+ # During evaluation, whether to binarize the sigmoid mask logits on interacted frames with clicks
+ binarize_mask_from_pts_for_mem_enc=False,
+ use_mask_input_as_output_without_sam=False, # on frames with mask input, whether to directly output the input mask without using a SAM prompt encoder + mask decoder
+ # The maximum number of conditioning frames to participate in the memory attention (-1 means no limit; if there are more conditioning frames than this limit,
+ # we only cross-attend to the temporally closest `max_cond_frames_in_attn` conditioning frames in the encoder when tracking each frame). This gives the model
+ # a temporal locality when handling a large number of annotated frames (since closer frames should be more important) and also avoids GPU OOM.
+ max_cond_frames_in_attn=-1,
+ # on the first frame, whether to directly add the no-memory embedding to the image feature
+ # (instead of using the transformer encoder)
+ directly_add_no_mem_embed=False,
+ # whether to use high-resolution feature maps in the SAM mask decoder
+ use_high_res_features_in_sam=False,
+ # whether to output multiple (3) masks for the first click on initial conditioning frames
+ multimask_output_in_sam=False,
+ # the minimum and maximum number of clicks to use multimask_output_in_sam (only relevant when `multimask_output_in_sam=True`;
+ # default is 1 for both, meaning that only the first click gives multimask output; also note that a box counts as two points)
+ multimask_min_pt_num=1,
+ multimask_max_pt_num=1,
+ # whether to also use multimask output for tracking (not just for the first click on initial conditioning frames; only relevant when `multimask_output_in_sam=True`)
+ multimask_output_for_tracking=False,
+ # Whether to use multimask tokens for obj ptr; Only relevant when both
+ # use_obj_ptrs_in_encoder=True and multimask_output_for_tracking=True
+ use_multimask_token_for_obj_ptr: bool = False,
+ # whether to use sigmoid to restrict ious prediction to [0-1]
+ iou_prediction_use_sigmoid=False,
+ # The memory bank's temporal stride during evaluation (i.e. the `r` parameter in XMem and Cutie; XMem and Cutie use r=5).
+ # For r>1, the (self.num_maskmem - 1) non-conditioning memory frames consist of
+ # (self.num_maskmem - 2) nearest frames from every r-th frames, plus the last frame.
+ memory_temporal_stride_for_eval=1,
+ # whether to apply non-overlapping constraints on the object masks in the memory encoder during evaluation (to avoid/alleviate superposing masks)
+ non_overlap_masks_for_mem_enc=False,
+ # whether to cross-attend to object pointers from other frames (based on SAM output tokens) in the encoder
+ use_obj_ptrs_in_encoder=False,
+ # the maximum number of object pointers from other frames in encoder cross attention (only relevant when `use_obj_ptrs_in_encoder=True`)
+ max_obj_ptrs_in_encoder=16,
+ # whether to add temporal positional encoding to the object pointers in the encoder (only relevant when `use_obj_ptrs_in_encoder=True`)
+ add_tpos_enc_to_obj_ptrs=True,
+ # whether to add an extra linear projection layer for the temporal positional encoding in the object pointers to avoid potential interference
+ # with spatial positional encoding (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ proj_tpos_enc_in_obj_ptrs=False,
+ # whether to use signed distance (instead of unsigned absolute distance) in the temporal positional encoding in the object pointers
+ # (only relevant when both `use_obj_ptrs_in_encoder=True` and `add_tpos_enc_to_obj_ptrs=True`)
+ use_signed_tpos_enc_to_obj_ptrs=False,
+ # whether to only attend to object pointers in the past (before the current frame) in the encoder during evaluation
+ # (only relevant when `use_obj_ptrs_in_encoder=True`; this might avoid pointer information too far in the future to distract the initial tracking)
+ only_obj_ptrs_in_the_past_for_eval=False,
+ # Whether to predict if there is an object in the frame
+ pred_obj_scores: bool = False,
+ # Whether to use an MLP to predict object scores
+ pred_obj_scores_mlp: bool = False,
+ # Only relevant if pred_obj_scores=True and use_obj_ptrs_in_encoder=True;
+ # Whether to have a fixed no obj pointer when there is no object present
+ # or to use it as an additive embedding with obj_ptr produced by decoder
+ fixed_no_obj_ptr: bool = False,
+ # Soft no object, i.e. mix in no_obj_ptr softly,
+ # hope to make recovery easier if there is a mistake and mitigate accumulation of errors
+ soft_no_obj_ptr: bool = False,
+ use_mlp_for_obj_ptr_proj: bool = False,
+ # add no obj embedding to spatial frames
+ no_obj_embed_spatial: bool = False,
+ # extra arguments used to construct the SAM mask decoder; if not None, it should be a dict of kwargs to be passed into `MaskDecoder` class.
+ sam_mask_decoder_extra_args=None,
+ compile_image_encoder: bool = False,
+ ):
+ super().__init__()
+
+ # Part 1: the image backbone
+ self.image_encoder = image_encoder
+ # Use level 0, 1, 2 for high-res setting, or just level 2 for the default setting
+ self.use_high_res_features_in_sam = use_high_res_features_in_sam
+ self.num_feature_levels = 3 if use_high_res_features_in_sam else 1
+ self.use_obj_ptrs_in_encoder = use_obj_ptrs_in_encoder
+ self.max_obj_ptrs_in_encoder = max_obj_ptrs_in_encoder
+ if use_obj_ptrs_in_encoder:
+ # A conv layer to downsample the mask prompt to stride 4 (the same stride as
+ # low-res SAM mask logits) and to change its scales from 0~1 to SAM logit scale,
+ # so that it can be fed into the SAM mask decoder to generate a pointer.
+ self.mask_downsample = torch.nn.Conv2d(1, 1, kernel_size=4, stride=4)
+ self.add_tpos_enc_to_obj_ptrs = add_tpos_enc_to_obj_ptrs
+ if proj_tpos_enc_in_obj_ptrs:
+ assert add_tpos_enc_to_obj_ptrs # these options need to be used together
+ self.proj_tpos_enc_in_obj_ptrs = proj_tpos_enc_in_obj_ptrs
+ self.use_signed_tpos_enc_to_obj_ptrs = use_signed_tpos_enc_to_obj_ptrs
+ self.only_obj_ptrs_in_the_past_for_eval = only_obj_ptrs_in_the_past_for_eval
+
+ # Part 2: memory attention to condition current frame's visual features
+ # with memories (and obj ptrs) from past frames
+ self.memory_attention = memory_attention
+
+ #### this is for Version 2.0
+ # self.hidden_dim = memory_attention.d_model
+ #### this is for Version 2.1
+ # self.hidden_dim = image_encoder.neck.d_model
+ self.hidden_dim = 256 # well, it is always 256 anyway.
+
+ # Part 3: memory encoder for the previous frame's outputs
+ self.memory_encoder = memory_encoder
+ self.mem_dim = self.hidden_dim
+ if hasattr(self.memory_encoder, "out_proj") and hasattr(
+ self.memory_encoder.out_proj, "weight"
+ ):
+ # if there is compression of memories along channel dim
+ self.mem_dim = self.memory_encoder.out_proj.weight.shape[0]
+ self.num_maskmem = num_maskmem # Number of memories accessible
+ # Temporal encoding of the memories
+ self.maskmem_tpos_enc = torch.nn.Parameter(
+ torch.zeros(num_maskmem, 1, 1, self.mem_dim)
+ )
+ trunc_normal_(self.maskmem_tpos_enc, std=0.02)
+ # a single token to indicate no memory embedding from previous frames
+ self.no_mem_embed = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ self.no_mem_pos_enc = torch.nn.Parameter(torch.zeros(1, 1, self.hidden_dim))
+ trunc_normal_(self.no_mem_embed, std=0.02)
+ trunc_normal_(self.no_mem_pos_enc, std=0.02)
+ self.directly_add_no_mem_embed = directly_add_no_mem_embed
+ # Apply sigmoid to the output raw mask logits (to turn them from
+ # range (-inf, +inf) to range (0, 1)) before feeding them into the memory encoder
+ self.sigmoid_scale_for_mem_enc = sigmoid_scale_for_mem_enc
+ self.sigmoid_bias_for_mem_enc = sigmoid_bias_for_mem_enc
+ self.binarize_mask_from_pts_for_mem_enc = binarize_mask_from_pts_for_mem_enc
+ self.non_overlap_masks_for_mem_enc = non_overlap_masks_for_mem_enc
+ self.memory_temporal_stride_for_eval = memory_temporal_stride_for_eval
+ # On frames with mask input, whether to directly output the input mask without
+ # using a SAM prompt encoder + mask decoder
+ self.use_mask_input_as_output_without_sam = use_mask_input_as_output_without_sam
+ self.multimask_output_in_sam = multimask_output_in_sam
+ self.multimask_min_pt_num = multimask_min_pt_num
+ self.multimask_max_pt_num = multimask_max_pt_num
+ self.multimask_output_for_tracking = multimask_output_for_tracking
+ self.use_multimask_token_for_obj_ptr = use_multimask_token_for_obj_ptr
+ self.iou_prediction_use_sigmoid = iou_prediction_use_sigmoid
+
+ # Part 4: SAM-style prompt encoder (for both mask and point inputs)
+ # and SAM-style mask decoder for the final mask output
+ self.image_size = image_size
+ self.backbone_stride = backbone_stride
+ self.sam_mask_decoder_extra_args = sam_mask_decoder_extra_args
+ self.pred_obj_scores = pred_obj_scores
+ self.pred_obj_scores_mlp = pred_obj_scores_mlp
+ self.fixed_no_obj_ptr = fixed_no_obj_ptr
+ self.soft_no_obj_ptr = soft_no_obj_ptr
+ if self.fixed_no_obj_ptr:
+ assert self.pred_obj_scores
+ assert self.use_obj_ptrs_in_encoder
+ if self.pred_obj_scores and self.use_obj_ptrs_in_encoder:
+ self.no_obj_ptr = torch.nn.Parameter(torch.zeros(1, self.hidden_dim))
+ trunc_normal_(self.no_obj_ptr, std=0.02)
+ self.use_mlp_for_obj_ptr_proj = use_mlp_for_obj_ptr_proj
+ self.no_obj_embed_spatial = None
+ if no_obj_embed_spatial:
+ self.no_obj_embed_spatial = torch.nn.Parameter(torch.zeros(1, self.mem_dim))
+ trunc_normal_(self.no_obj_embed_spatial, std=0.02)
+
+ self._build_sam_heads()
+ self.max_cond_frames_in_attn = max_cond_frames_in_attn
+
+ # Model compilation
+ if compile_image_encoder:
+ # Compile the forward function (not the full module) to allow loading checkpoints.
+ print(
+ "Image encoder compilation is enabled. First forward pass will be slow."
+ )
+ self.image_encoder.forward = torch.compile(
+ self.image_encoder.forward,
+ mode="max-autotune",
+ fullgraph=True,
+ dynamic=False,
+ )
+
+ ### we fix the use_mask_input_as_output_without_sam to be turned off.
+ self.use_mask_input_as_output_without_sam = False
+
+
+ @property
+ def device(self):
+ return next(self.parameters()).device
+
+ def forward(self, *args, **kwargs):
+ raise NotImplementedError(
+ "Please use the corresponding methods in SAM2VideoPredictor for inference or SAM2Train for training/fine-tuning"
+ "See notebooks/video_predictor_example.ipynb for an inference example."
+ )
+
+ def _build_sam_heads(self):
+ """Build SAM-style prompt encoder and mask decoder."""
+ self.sam_prompt_embed_dim = self.hidden_dim
+ self.sam_image_embedding_size = self.image_size // self.backbone_stride
+
+ # build PromptEncoder and MaskDecoder from SAM
+ # (their hyperparameters like `mask_in_chans=16` are from SAM code)
+ self.sam_prompt_encoder = PromptEncoder(
+ embed_dim=self.sam_prompt_embed_dim,
+ image_embedding_size=(
+ self.sam_image_embedding_size,
+ self.sam_image_embedding_size,
+ ),
+ input_image_size=(self.image_size, self.image_size),
+ mask_in_chans=16,
+ )
+ self.sam_mask_decoder = MaskDecoder(
+ num_multimask_outputs=3,
+ transformer=TwoWayTransformer(
+ depth=2,
+ embedding_dim=self.sam_prompt_embed_dim,
+ mlp_dim=2048,
+ num_heads=8,
+ ),
+ transformer_dim=self.sam_prompt_embed_dim,
+ iou_head_depth=3,
+ iou_head_hidden_dim=256,
+ use_high_res_features=self.use_high_res_features_in_sam,
+ iou_prediction_use_sigmoid=self.iou_prediction_use_sigmoid,
+ pred_obj_scores=self.pred_obj_scores,
+ pred_obj_scores_mlp=self.pred_obj_scores_mlp,
+ use_multimask_token_for_obj_ptr=self.use_multimask_token_for_obj_ptr,
+ **(self.sam_mask_decoder_extra_args or {}),
+ )
+ if self.use_obj_ptrs_in_encoder:
+ # a linear projection on SAM output tokens to turn them into object pointers
+ self.obj_ptr_proj = torch.nn.Linear(self.hidden_dim, self.hidden_dim)
+ if self.use_mlp_for_obj_ptr_proj:
+ self.obj_ptr_proj = MLP(
+ self.hidden_dim, self.hidden_dim, self.hidden_dim, 3
+ )
+ else:
+ self.obj_ptr_proj = torch.nn.Identity()
+ if self.proj_tpos_enc_in_obj_ptrs:
+ # a linear projection on temporal positional encoding in object pointers to
+ # avoid potential interference with spatial positional encoding
+ self.obj_ptr_tpos_proj = torch.nn.Linear(self.hidden_dim, self.mem_dim)
+ else:
+ self.obj_ptr_tpos_proj = torch.nn.Identity()
+
+ def _forward_sam_heads(
+ self,
+ backbone_features,
+ point_inputs=None,
+ mask_inputs=None,
+ high_res_features=None,
+ multimask_output=False,
+ audio_res=None
+ ):
+ """
+ Forward SAM prompt encoders and mask heads.
+
+ Inputs:
+ - backbone_features: image features of [B, C, H, W] shape
+ - point_inputs: a dictionary with "point_coords" and "point_labels", where
+ 1) "point_coords" has [B, P, 2] shape and float32 dtype and contains the
+ absolute pixel-unit coordinate in (x, y) format of the P input points
+ 2) "point_labels" has shape [B, P] and int32 dtype, where 1 means
+ positive clicks, 0 means negative clicks, and -1 means padding
+ - mask_inputs: a mask of [B, 1, H*16, W*16] shape, float or bool, with the
+ same spatial size as the image.
+ - high_res_features: either 1) None or 2) or a list of length 2 containing
+ two feature maps of [B, C, 4*H, 4*W] and [B, C, 2*H, 2*W] shapes respectively,
+ which will be used as high-resolution feature maps for SAM decoder.
+ - multimask_output: if it's True, we output 3 candidate masks and their 3
+ corresponding IoU estimates, and if it's False, we output only 1 mask and
+ its corresponding IoU estimate.
+
+ Outputs:
+ - low_res_multimasks: [B, M, H*4, W*4] shape (where M = 3 if
+ `multimask_output=True` and M = 1 if `multimask_output=False`), the SAM
+ output mask logits (before sigmoid) for the low-resolution masks, with 4x
+ the resolution (1/4 stride) of the input backbone_features.
+ - high_res_multimasks: [B, M, H*16, W*16] shape (where M = 3
+ if `multimask_output=True` and M = 1 if `multimask_output=False`),
+ upsampled from the low-resolution masks, with shape size as the image
+ (stride is 1 pixel).
+ - ious, [B, M] shape, where (where M = 3 if `multimask_output=True` and M = 1
+ if `multimask_output=False`), the estimated IoU of each output mask.
+ - low_res_masks: [B, 1, H*4, W*4] shape, the best mask in `low_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `low_res_multimasks`.
+ - high_res_masks: [B, 1, H*16, W*16] shape, the best mask in `high_res_multimasks`.
+ If `multimask_output=True`, it's the mask with the highest IoU estimate.
+ If `multimask_output=False`, it's the same as `high_res_multimasks`.
+ - obj_ptr: [B, C] shape, the object pointer vector for the output mask, extracted
+ based on the output token from the SAM mask decoder.
+ """
+ B = backbone_features.size(0)
+ device = backbone_features.device
+ assert backbone_features.size(1) == self.sam_prompt_embed_dim
+ assert backbone_features.size(2) == self.sam_image_embedding_size
+ assert backbone_features.size(3) == self.sam_image_embedding_size
+
+ '''
+ # a) Handle point prompts
+ if point_inputs is not None:
+ sam_point_coords = point_inputs["point_coords"]
+ sam_point_labels = point_inputs["point_labels"]
+ assert sam_point_coords.size(0) == B and sam_point_labels.size(0) == B
+ raise NotImplementedError
+ else:
+ # If no points are provide, pad with an empty point (with label -1)
+ sam_point_coords = torch.zeros(B, 1, 2, device=device)
+ sam_point_labels = -torch.ones(B, 1, dtype=torch.int32, device=device)
+
+ # b) Handle mask prompts
+ if mask_inputs is not None:
+ # If mask_inputs is provided, downsize it into low-res mask input if needed
+ # and feed it as a dense mask prompt into the SAM mask encoder
+ assert len(mask_inputs.shape) == 4 and mask_inputs.shape[:2] == (B, 1)
+ if mask_inputs.shape[-2:] != self.sam_prompt_encoder.mask_input_size:
+ sam_mask_prompt = F.interpolate(
+ mask_inputs.float(),
+ size=self.sam_prompt_encoder.mask_input_size,
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ else:
+ sam_mask_prompt = mask_inputs
+ raise NotImplementedError
+ else:
+ # Otherwise, simply feed None (and SAM's prompt encoder will add
+ # a learned `no_mask_embed` to indicate no mask input in this case).
+ sam_mask_prompt = None
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=(sam_point_coords, sam_point_labels),
+ boxes=None,
+ masks=sam_mask_prompt,
+ )
+ '''
+ sparse_embeddings, dense_embeddings = self.sam_prompt_encoder(
+ points=None,
+ boxes=None,
+ masks=None,
+ )
+
+ (
+ low_res_multimasks,
+ ious,
+ sam_output_tokens,
+ object_score_logits,
+ ) = self.sam_mask_decoder(
+ image_embeddings=backbone_features,
+ image_pe=self.sam_prompt_encoder.get_dense_pe(),
+ sparse_prompt_embeddings=sparse_embeddings,
+ dense_prompt_embeddings=dense_embeddings,
+ multimask_output=multimask_output,
+ repeat_image=False, # the image is already batched
+ high_res_features=high_res_features,
+ audio_res_features=audio_res
+ )
+ '''
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+
+ # Mask used for spatial memories is always a *hard* choice between obj and no obj,
+ # consistent with the actual mask prediction
+ low_res_multimasks = torch.where(
+ is_obj_appearing[:, None, None],
+ low_res_multimasks,
+ NO_OBJ_SCORE,
+ )
+ '''
+ # convert masks from possibly bfloat16 (or float16) to float32
+ # (older PyTorch versions before 2.1 don't support `interpolate` on bf16)
+ low_res_multimasks = low_res_multimasks.float()
+ high_res_multimasks = F.interpolate(
+ low_res_multimasks,
+ size=(self.image_size, self.image_size),
+ mode="bilinear",
+ align_corners=False,
+ )
+ sam_output_token = sam_output_tokens[:, 0]
+ if multimask_output:
+ # comment this line temporarily.
+ # take the best mask prediction (with the highest IoU estimation)
+ best_iou_inds = torch.argmax(ious, dim=-1)
+ batch_inds = torch.arange(B, device=device)
+ low_res_masks = low_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ high_res_masks = high_res_multimasks[batch_inds, best_iou_inds].unsqueeze(1)
+ if sam_output_tokens.size(1) > 1:
+ sam_output_token = sam_output_tokens[batch_inds, best_iou_inds]
+ '''
+ low_res_masks, high_res_masks = low_res_multimasks, high_res_multimasks
+ '''
+ else:
+ low_res_masks, high_res_masks = low_res_multimasks, high_res_multimasks
+
+ # Extract object pointer from the SAM output token (with occlusion handling)
+ obj_ptr = self.obj_ptr_proj(sam_output_token)
+
+ # don't train occlusion at the moment, command temporarily.
+ if self.pred_obj_scores:
+ is_obj_appearing = object_score_logits > 0
+ # Allow *soft* no obj ptr, unlike for masks
+ if self.soft_no_obj_ptr:
+ lambda_is_obj_appearing = object_score_logits.sigmoid()
+ else:
+ lambda_is_obj_appearing = is_obj_appearing.float()
+
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+ return (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def _use_mask_as_output(self, backbone_features, high_res_features, mask_inputs):
+ """
+ Directly turn binary `mask_inputs` into a output mask logits without using SAM.
+ (same input and output shapes as in _forward_sam_heads above).
+ """
+ # Use -10/+10 as logits for neg/pos pixels (very close to 0/1 in prob after sigmoid).
+ out_scale, out_bias = 20.0, -10.0 # sigmoid(-10.0)=4.5398e-05
+ mask_inputs_float = mask_inputs.float()
+ high_res_masks = mask_inputs_float * out_scale + out_bias
+ low_res_masks = F.interpolate(
+ high_res_masks,
+ size=(high_res_masks.size(-2) // 4, high_res_masks.size(-1) // 4),
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ # a dummy IoU prediction of all 1's under mask input
+ ious = mask_inputs.new_ones(mask_inputs.size(0), 1).float()
+ if not self.use_obj_ptrs_in_encoder:
+ # all zeros as a dummy object pointer (of shape [B, C])
+ obj_ptr = torch.zeros(
+ mask_inputs.size(0), self.hidden_dim, device=mask_inputs.device
+ )
+ else:
+ # produce an object pointer using the SAM decoder from the mask input
+ _, _, _, _, _, obj_ptr, _ = self._forward_sam_heads(
+ backbone_features=backbone_features,
+ mask_inputs=self.mask_downsample(mask_inputs_float),
+ high_res_features=high_res_features,
+ )
+ # In this method, we are treating mask_input as output, e.g. using it directly to create spatial mem;
+ # Below, we follow the same design axiom to use mask_input to decide if obj appears or not instead of relying
+ # on the object_scores from the SAM decoder.
+ is_obj_appearing = torch.any(mask_inputs.flatten(1).float() > 0.0, dim=1)
+ is_obj_appearing = is_obj_appearing[..., None]
+ lambda_is_obj_appearing = is_obj_appearing.float()
+ object_score_logits = out_scale * lambda_is_obj_appearing + out_bias
+ if self.pred_obj_scores:
+ if self.fixed_no_obj_ptr:
+ obj_ptr = lambda_is_obj_appearing * obj_ptr
+ obj_ptr = obj_ptr + (1 - lambda_is_obj_appearing) * self.no_obj_ptr
+
+ return (
+ low_res_masks,
+ high_res_masks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ )
+
+ def precompute_high_res_features(self, backbone_out):
+ if self.use_high_res_features_in_sam:
+ # precompute projected level 0 and level 1 features in SAM decoder
+ # to avoid running it again on every SAM click
+ backbone_out["backbone_fpn"][0] = self.sam_mask_decoder.conv_s0(
+ backbone_out["backbone_fpn"][0]
+ )
+ backbone_out["backbone_fpn"][1] = self.sam_mask_decoder.conv_s1(
+ backbone_out["backbone_fpn"][1]
+ )
+ return backbone_out
+
+ def forward_image(self, img_batch: torch.Tensor, pre_compute=True):
+ """Get the image feature on the input batch."""
+ backbone_out = self.image_encoder(img_batch)
+ return backbone_out if not pre_compute else self.precompute_high_res_features(backbone_out)
+
+ def _prepare_backbone_features(self, backbone_out):
+ """Prepare and flatten visual features."""
+ backbone_out = backbone_out.copy()
+ assert len(backbone_out["backbone_fpn"]) == len(backbone_out["vision_pos_enc"])
+ assert len(backbone_out["backbone_fpn"]) >= self.num_feature_levels
+
+ feature_maps = backbone_out["backbone_fpn"][-self.num_feature_levels :]
+ vision_pos_embeds = backbone_out["vision_pos_enc"][-self.num_feature_levels :]
+ feat_sizes = [(x.shape[-2], x.shape[-1]) for x in vision_pos_embeds]
+ # flatten NxCxHxW to HWxNxC
+ vision_feats = [x.flatten(2).permute(2, 0, 1) for x in feature_maps]
+ vision_pos_embeds = [x.flatten(2).permute(2, 0, 1) for x in vision_pos_embeds]
+
+ return backbone_out, vision_feats, vision_pos_embeds, feat_sizes
+
+ def _prepare_memory_conditioned_features(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ ):
+ """Fuse the current frame's visual feature map with previous memory."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ device = current_vision_feats[-1].device
+ # The case of `self.num_maskmem == 0` below is primarily used for reproducing SAM on images.
+ # In this case, we skip the fusion with any memory.
+ if self.num_maskmem == 0: # Disable memory and skip fusion
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat
+
+ num_obj_ptr_tokens = 0
+ tpos_sign_mul = -1 if track_in_reverse else 1
+ # Step 1: condition the visual features of the current frame on previous memories
+ if not is_init_cond_frame:
+ # Retrieve the memories encoded with the maskmem backbone
+ to_cat_memory, to_cat_memory_pos_embed = [], []
+ # Add conditioning frames's output first (all cond frames have t_pos=0 for
+ # when getting temporal positional embedding below)
+ assert len(output_dict["cond_frame_outputs"]) > 0
+ # Select a maximum number of temporally closest cond frames for cross attention
+ cond_outputs = output_dict["cond_frame_outputs"]
+ selected_cond_outputs, unselected_cond_outputs = select_closest_cond_frames(
+ frame_idx, cond_outputs, self.max_cond_frames_in_attn
+ )
+ t_pos_and_prevs = [(0, out) for out in selected_cond_outputs.values()]
+ # for t_pos in range(1, min(self.num_maskmem, frame_idx)):
+ # out = output_dict["non_cond_frame_outputs"].get(t_pos, None)
+ # t_pos_and_prevs.append((t_pos, out))
+ # Add last (self.num_maskmem - 1) frames before current frame for non-conditioning memory
+ # the earliest one has t_pos=1 and the latest one has t_pos=self.num_maskmem-1
+ # We also allow taking the memory frame non-consecutively (with stride>1), in which case
+ # we take (self.num_maskmem - 2) frames among every stride-th frames plus the last frame.
+ stride = 1 if self.training else self.memory_temporal_stride_for_eval
+
+ for t_pos in range(1, self.num_maskmem):
+ t_rel = self.num_maskmem - t_pos # how many frames before current frame
+ if t_rel == 1:
+ # for t_rel == 1, we take the last frame (regardless of r)
+ if not track_in_reverse:
+ # the frame immediately before this frame (i.e. frame_idx - 1)
+ prev_frame_idx = frame_idx - t_rel
+ else:
+ # the frame immediately after this frame (i.e. frame_idx + 1)
+ prev_frame_idx = frame_idx + t_rel
+ else:
+ # for t_rel >= 2, we take the memory frame from every r-th frames
+ if not track_in_reverse:
+ # first find the nearest frame among every r-th frames before this frame
+ # for r=1, this would be (frame_idx - 2)
+ prev_frame_idx = ((frame_idx - 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx - (t_rel - 2) * stride
+ else:
+ # first find the nearest frame among every r-th frames after this frame
+ # for r=1, this would be (frame_idx + 2)
+ prev_frame_idx = -(-(frame_idx + 2) // stride) * stride
+ # then seek further among every r-th frames
+ prev_frame_idx = prev_frame_idx + (t_rel - 2) * stride
+ out = output_dict["non_cond_frame_outputs"].get(prev_frame_idx, None)
+ if out is None:
+ # If an unselected conditioning frame is among the last (self.num_maskmem - 1)
+ # frames, we still attend to it as if it's a non-conditioning frame.
+ out = unselected_cond_outputs.get(prev_frame_idx, None)
+ t_pos_and_prevs.append((t_pos, out))
+
+ for t_pos, prev in t_pos_and_prevs:
+ if prev is None:
+ continue # skip padding frames
+ # "maskmem_features" might have been offloaded to CPU in demo use cases,
+ # so we load it back to GPU (it's a no-op if it's already on GPU).
+ feats = prev["maskmem_features"].to(device, non_blocking=True)
+ to_cat_memory.append(feats.flatten(2).permute(2, 0, 1))
+ # Spatial positional encoding (it might have been offloaded to CPU in eval)
+ maskmem_enc = prev["maskmem_pos_enc"][-1].to(device)
+ maskmem_enc = maskmem_enc.flatten(2).permute(2, 0, 1)
+ # Temporal positional encoding
+ maskmem_enc = (
+ maskmem_enc + self.maskmem_tpos_enc[self.num_maskmem - t_pos - 1]
+ )
+ to_cat_memory_pos_embed.append(maskmem_enc)
+ # Construct the list of past object pointers
+ if self.use_obj_ptrs_in_encoder:
+ max_obj_ptrs_in_encoder = min(num_frames, self.max_obj_ptrs_in_encoder)
+ # First add those object pointers from selected conditioning frames
+ # (optionally, only include object pointers in the past during evaluation)
+ if not self.training and self.only_obj_ptrs_in_the_past_for_eval:
+ ptr_cond_outputs = {
+ t: out
+ for t, out in selected_cond_outputs.items()
+ if (t >= frame_idx if track_in_reverse else t <= frame_idx)
+ }
+ else:
+ ptr_cond_outputs = selected_cond_outputs
+ pos_and_ptrs = [
+ # Temporal pos encoding contains how far away each pointer is from current frame
+ (
+ (
+ (frame_idx - t) * tpos_sign_mul
+ if self.use_signed_tpos_enc_to_obj_ptrs
+ else abs(frame_idx - t)
+ ),
+ out["obj_ptr"],
+ )
+ for t, out in ptr_cond_outputs.items()
+ ]
+ # Add up to (max_obj_ptrs_in_encoder - 1) non-conditioning frames before current frame
+ for t_diff in range(1, max_obj_ptrs_in_encoder):
+ t = frame_idx + t_diff if track_in_reverse else frame_idx - t_diff
+ if t < 0 or (num_frames is not None and t >= num_frames):
+ break
+ out = output_dict["non_cond_frame_outputs"].get(
+ t, unselected_cond_outputs.get(t, None)
+ )
+ if out is not None:
+ pos_and_ptrs.append((t_diff, out["obj_ptr"]))
+ # If we have at least one object pointer, add them to the across attention
+ if len(pos_and_ptrs) > 0:
+ pos_list, ptrs_list = zip(*pos_and_ptrs)
+ # stack object pointers along dim=0 into [ptr_seq_len, B, C] shape
+ obj_ptrs = torch.stack(ptrs_list, dim=0)
+ # a temporal positional embedding based on how far each object pointer is from
+ # the current frame (sine embedding normalized by the max pointer num).
+ # default false.
+ if self.add_tpos_enc_to_obj_ptrs:
+ t_diff_max = max_obj_ptrs_in_encoder - 1
+ tpos_dim = C if self.proj_tpos_enc_in_obj_ptrs else self.mem_dim
+ obj_pos = torch.tensor(pos_list, device=device)
+ obj_pos = get_1d_sine_pe(obj_pos / t_diff_max, dim=tpos_dim)
+ obj_pos = self.obj_ptr_tpos_proj(obj_pos)
+ obj_pos = obj_pos.unsqueeze(1).expand(-1, B, self.mem_dim)
+ else:
+ obj_pos = obj_ptrs.new_zeros(len(pos_list), B, self.mem_dim)
+ if self.mem_dim < C:
+ # split a pointer into (C // self.mem_dim) tokens for self.mem_dim < C
+ obj_ptrs = obj_ptrs.reshape(
+ -1, B, C // self.mem_dim, self.mem_dim
+ )
+ obj_ptrs = obj_ptrs.permute(0, 2, 1, 3).flatten(0, 1)
+ obj_pos = obj_pos.repeat_interleave(C // self.mem_dim, dim=0)
+ to_cat_memory.append(obj_ptrs)
+ to_cat_memory_pos_embed.append(obj_pos)
+ num_obj_ptr_tokens = obj_ptrs.shape[0]
+ else:
+ num_obj_ptr_tokens = 0
+ else:
+ # for initial conditioning frames, encode them without using any previous memory
+ if self.directly_add_no_mem_embed:
+ # directly add no-mem embedding (instead of using the transformer encoder)
+ pix_feat_with_mem = current_vision_feats[-1] + self.no_mem_embed
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+ # Use a dummy token on the first frame (to avoid empty memory input to tranformer encoder)
+ # the Following lines will never be triggered.
+ raise NotImplementedError
+ to_cat_memory = [self.no_mem_embed.expand(1, B, self.mem_dim)]
+ to_cat_memory_pos_embed = [self.no_mem_pos_enc.expand(1, B, self.mem_dim)]
+
+ # Step 2: Concatenate the memories and forward through the transformer encoder
+ memory = torch.cat(to_cat_memory, dim=0)
+ memory_pos_embed = torch.cat(to_cat_memory_pos_embed, dim=0)
+
+ pix_feat_with_mem = self.memory_attention(
+ curr=current_vision_feats,
+ curr_pos=current_vision_pos_embeds,
+ memory=memory,
+ memory_pos=memory_pos_embed,
+ num_obj_ptr_tokens=num_obj_ptr_tokens,
+ )
+ # reshape the output (HW)BC => BCHW
+ pix_feat_with_mem = pix_feat_with_mem.permute(1, 2, 0).view(B, C, H, W)
+ return pix_feat_with_mem
+
+ def _encode_new_memory(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ pred_masks_high_res,
+ object_score_logits,
+ is_mask_from_pts,
+ ):
+ """Encode the current image and its prediction into a memory feature."""
+ B = current_vision_feats[-1].size(1) # batch size on this frame
+ C = self.hidden_dim
+ H, W = feat_sizes[-1] # top-level (lowest-resolution) feature size
+ # top-level feature, (HW)BC => BCHW
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0).view(B, C, H, W)
+ if self.non_overlap_masks_for_mem_enc and not self.training:
+ # optionally, apply non-overlapping constraints to the masks (it's applied
+ # in the batch dimension and should only be used during eval, where all
+ # the objects come from the same video under batch size 1).
+ pred_masks_high_res = self._apply_non_overlapping_constraints(
+ pred_masks_high_res
+ )
+ raise NotImplementedError
+ # scale the raw mask logits with a temperature before applying sigmoid
+ binarize = self.binarize_mask_from_pts_for_mem_enc and is_mask_from_pts
+ if binarize and not self.training:
+ mask_for_mem = (pred_masks_high_res > 0).float()
+ else:
+ # apply sigmoid on the raw mask logits to turn them into range (0, 1)
+ mask_for_mem = torch.sigmoid(pred_masks_high_res)
+ # apply scale and bias terms to the sigmoid probabilities
+ if self.sigmoid_scale_for_mem_enc != 1.0:
+ mask_for_mem = mask_for_mem * self.sigmoid_scale_for_mem_enc
+ if self.sigmoid_bias_for_mem_enc != 0.0:
+ mask_for_mem = mask_for_mem + self.sigmoid_bias_for_mem_enc
+ maskmem_out = self.memory_encoder(
+ pix_feat, mask_for_mem, skip_mask_sigmoid=True # sigmoid already applied
+ )
+ maskmem_features = maskmem_out["vision_features"]
+ maskmem_pos_enc = maskmem_out["vision_pos_enc"]
+ # add a no-object embedding to the spatial memory to indicate that the frame
+ # is predicted to be occluded (i.e. no object is appearing in the frame)
+ if self.no_obj_embed_spatial is not None:
+ is_obj_appearing = (object_score_logits > 0).float()
+ maskmem_features += (
+ 1 - is_obj_appearing[..., None, None]
+ ) * self.no_obj_embed_spatial[..., None, None].expand(
+ *maskmem_features.shape
+ )
+ # it will be used in sam2.1
+ # raise NotImplementedError
+
+ return maskmem_features, maskmem_pos_enc
+
+ def _track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam:
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ if prev_sam_mask_logits is not None:
+ assert point_inputs is not None and mask_inputs is None
+ mask_inputs = prev_sam_mask_logits
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def _encode_memory_in_output(
+ self,
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+ if run_mem_encoder and self.num_maskmem > 0:
+ high_res_masks_for_mem_enc = high_res_masks
+ maskmem_features, maskmem_pos_enc = self._encode_new_memory(
+ current_vision_feats=current_vision_feats,
+ feat_sizes=feat_sizes,
+ pred_masks_high_res=high_res_masks_for_mem_enc,
+ object_score_logits=object_score_logits,
+ is_mask_from_pts=(point_inputs is not None),
+ )
+ current_out["maskmem_features"] = maskmem_features
+ current_out["maskmem_pos_enc"] = maskmem_pos_enc
+ else:
+ current_out["maskmem_features"] = None
+ current_out["maskmem_pos_enc"] = None
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ # Whether to run the memory encoder on the predicted masks. Sometimes we might want
+ # to skip the memory encoder with `run_mem_encoder=False`. For example,
+ # in demo we might call `track_step` multiple times for each user click,
+ # and only encode the memory when the user finalizes their clicks. And in ablation
+ # settings like SAM training on static images, we don't need the memory encoder.
+ run_mem_encoder=True,
+ # The previously predicted SAM mask logits (which can be fed together with new clicks in demo).
+ prev_sam_mask_logits=None,
+ ):
+ current_out, sam_outputs, _, _ = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+ if not self.training:
+ # Only add this in inference (to avoid unused param in activation checkpointing;
+ # it's mainly used in the demo to encode spatial memories w/ consolidated masks)
+ current_out["object_score_logits"] = object_score_logits
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+
+ return current_out
+
+ def _use_multimask(self, is_init_cond_frame, point_inputs):
+ """Whether to use multimask output in the SAM head."""
+ num_pts = 0 if point_inputs is None else point_inputs["point_labels"].size(1)
+ multimask_output = (
+ self.multimask_output_in_sam
+ and (is_init_cond_frame or self.multimask_output_for_tracking)
+ and (self.multimask_min_pt_num <= num_pts <= self.multimask_max_pt_num)
+ )
+ return multimask_output
+
+ def _apply_non_overlapping_constraints(self, pred_masks):
+ """
+ Apply non-overlapping constraints to the object scores in pred_masks. Here we
+ keep only the highest scoring object at each spatial location in pred_masks.
+ """
+ batch_size = pred_masks.size(0)
+ if batch_size == 1:
+ return pred_masks
+
+ device = pred_masks.device
+ # "max_obj_inds": object index of the object with the highest score at each location
+ max_obj_inds = torch.argmax(pred_masks, dim=0, keepdim=True)
+ # "batch_obj_inds": object index of each object slice (along dim 0) in `pred_masks`
+ batch_obj_inds = torch.arange(batch_size, device=device)[:, None, None, None]
+ keep = max_obj_inds == batch_obj_inds
+ # suppress overlapping regions' scores below -10.0 so that the foreground regions
+ # don't overlap (here sigmoid(-10.0)=4.5398e-05)
+ pred_masks = torch.where(keep, pred_masks, torch.clamp(pred_masks, max=-10.0))
+ return pred_masks
diff --git a/ref-avs.code/model/visual/sam2/modeling/sam2_utils.py b/ref-avs.code/model/visual/sam2/modeling/sam2_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..19133558dd657bbcf67f851011d45bd4999cab0a
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/modeling/sam2_utils.py
@@ -0,0 +1,323 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+
+import copy
+from typing import Tuple
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+
+from model.visual.sam2.utils.misc import mask_to_box
+
+
+def select_closest_cond_frames(frame_idx, cond_frame_outputs, max_cond_frame_num):
+ """
+ Select up to `max_cond_frame_num` conditioning frames from `cond_frame_outputs`
+ that are temporally closest to the current frame at `frame_idx`. Here, we take
+ - a) the closest conditioning frame before `frame_idx` (if any);
+ - b) the closest conditioning frame after `frame_idx` (if any);
+ - c) any other temporally closest conditioning frames until reaching a total
+ of `max_cond_frame_num` conditioning frames.
+
+ Outputs:
+ - selected_outputs: selected items (keys & values) from `cond_frame_outputs`.
+ - unselected_outputs: items (keys & values) not selected in `cond_frame_outputs`.
+ """
+ if max_cond_frame_num == -1 or len(cond_frame_outputs) <= max_cond_frame_num:
+ selected_outputs = cond_frame_outputs
+ unselected_outputs = {}
+ else:
+ assert max_cond_frame_num >= 2, "we should allow using 2+ conditioning frames"
+ selected_outputs = {}
+
+ # the closest conditioning frame before `frame_idx` (if any)
+ idx_before = max((t for t in cond_frame_outputs if t < frame_idx), default=None)
+ if idx_before is not None:
+ selected_outputs[idx_before] = cond_frame_outputs[idx_before]
+
+ # the closest conditioning frame after `frame_idx` (if any)
+ idx_after = min((t for t in cond_frame_outputs if t >= frame_idx), default=None)
+ if idx_after is not None:
+ selected_outputs[idx_after] = cond_frame_outputs[idx_after]
+
+ # add other temporally closest conditioning frames until reaching a total
+ # of `max_cond_frame_num` conditioning frames.
+ num_remain = max_cond_frame_num - len(selected_outputs)
+ inds_remain = sorted(
+ (t for t in cond_frame_outputs if t not in selected_outputs),
+ key=lambda x: abs(x - frame_idx),
+ )[:num_remain]
+ selected_outputs.update((t, cond_frame_outputs[t]) for t in inds_remain)
+ unselected_outputs = {
+ t: v for t, v in cond_frame_outputs.items() if t not in selected_outputs
+ }
+
+ return selected_outputs, unselected_outputs
+
+
+def get_1d_sine_pe(pos_inds, dim, temperature=10000):
+ """
+ Get 1D sine positional embedding as in the original Transformer paper.
+ """
+ pe_dim = dim // 2
+ dim_t = torch.arange(pe_dim, dtype=torch.float32, device=pos_inds.device)
+ dim_t = temperature ** (2 * (dim_t // 2) / pe_dim)
+
+ pos_embed = pos_inds.unsqueeze(-1) / dim_t
+ pos_embed = torch.cat([pos_embed.sin(), pos_embed.cos()], dim=-1)
+ return pos_embed
+
+
+def get_activation_fn(activation):
+ """Return an activation function given a string"""
+ if activation == "relu":
+ return F.relu
+ if activation == "gelu":
+ return F.gelu
+ if activation == "glu":
+ return F.glu
+ raise RuntimeError(f"activation should be relu/gelu, not {activation}.")
+
+
+def get_clones(module, N):
+ return nn.ModuleList([copy.deepcopy(module) for i in range(N)])
+
+
+class DropPath(nn.Module):
+ # adapted from https://github.com/huggingface/pytorch-image-models/blob/main/timm/layers/drop.py
+ def __init__(self, drop_prob=0.0, scale_by_keep=True):
+ super(DropPath, self).__init__()
+ self.drop_prob = drop_prob
+ self.scale_by_keep = scale_by_keep
+
+ def forward(self, x):
+ if self.drop_prob == 0.0 or not self.training:
+ return x
+ keep_prob = 1 - self.drop_prob
+ shape = (x.shape[0],) + (1,) * (x.ndim - 1)
+ random_tensor = x.new_empty(shape).bernoulli_(keep_prob)
+ if keep_prob > 0.0 and self.scale_by_keep:
+ random_tensor.div_(keep_prob)
+ return x * random_tensor
+
+
+# Lightly adapted from
+# https://github.com/facebookresearch/MaskFormer/blob/main/mask_former/modeling/transformer/transformer_predictor.py # noqa
+class MLP(nn.Module):
+ def __init__(
+ self,
+ input_dim: int,
+ hidden_dim: int,
+ output_dim: int,
+ num_layers: int,
+ activation: nn.Module = nn.ReLU,
+ sigmoid_output: bool = False,
+ ) -> None:
+ super().__init__()
+ self.num_layers = num_layers
+ h = [hidden_dim] * (num_layers - 1)
+ self.layers = nn.ModuleList(
+ nn.Linear(n, k) for n, k in zip([input_dim] + h, h + [output_dim])
+ )
+ self.sigmoid_output = sigmoid_output
+ self.act = activation()
+
+ def forward(self, x):
+ for i, layer in enumerate(self.layers):
+ x = self.act(layer(x)) if i < self.num_layers - 1 else layer(x)
+ if self.sigmoid_output:
+ x = F.sigmoid(x)
+ return x
+
+
+# From https://github.com/facebookresearch/detectron2/blob/main/detectron2/layers/batch_norm.py # noqa
+# Itself from https://github.com/facebookresearch/ConvNeXt/blob/d1fa8f6fef0a165b27399986cc2bdacc92777e40/models/convnext.py#L119 # noqa
+class LayerNorm2d(nn.Module):
+ def __init__(self, num_channels: int, eps: float = 1e-6) -> None:
+ super().__init__()
+ self.weight = nn.Parameter(torch.ones(num_channels))
+ self.bias = nn.Parameter(torch.zeros(num_channels))
+ self.eps = eps
+
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
+ u = x.mean(1, keepdim=True)
+ s = (x - u).pow(2).mean(1, keepdim=True)
+ x = (x - u) / torch.sqrt(s + self.eps)
+ x = self.weight[:, None, None] * x + self.bias[:, None, None]
+ return x
+
+
+def sample_box_points(
+ masks: torch.Tensor,
+ noise: float = 0.1, # SAM default
+ noise_bound: int = 20, # SAM default
+ top_left_label: int = 2,
+ bottom_right_label: int = 3,
+) -> Tuple[np.array, np.array]:
+ """
+ Sample a noised version of the top left and bottom right corners of a given `bbox`
+
+ Inputs:
+ - masks: [B, 1, H,W] boxes, dtype=torch.Tensor
+ - noise: noise as a fraction of box width and height, dtype=float
+ - noise_bound: maximum amount of noise (in pure pixesl), dtype=int
+
+ Returns:
+ - box_coords: [B, num_pt, 2], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.float
+ - box_labels: [B, num_pt], label 2 is reserverd for top left and 3 for bottom right corners, dtype=torch.int32
+ """
+ device = masks.device
+ box_coords = mask_to_box(masks)
+ B, _, H, W = masks.shape
+ box_labels = torch.tensor(
+ [top_left_label, bottom_right_label], dtype=torch.int, device=device
+ ).repeat(B)
+ if noise > 0.0:
+ if not isinstance(noise_bound, torch.Tensor):
+ noise_bound = torch.tensor(noise_bound, device=device)
+ bbox_w = box_coords[..., 2] - box_coords[..., 0]
+ bbox_h = box_coords[..., 3] - box_coords[..., 1]
+ max_dx = torch.min(bbox_w * noise, noise_bound)
+ max_dy = torch.min(bbox_h * noise, noise_bound)
+ box_noise = 2 * torch.rand(B, 1, 4, device=device) - 1
+ box_noise = box_noise * torch.stack((max_dx, max_dy, max_dx, max_dy), dim=-1)
+
+ box_coords = box_coords + box_noise
+ img_bounds = (
+ torch.tensor([W, H, W, H], device=device) - 1
+ ) # uncentered pixel coords
+ box_coords.clamp_(torch.zeros_like(img_bounds), img_bounds) # In place clamping
+
+ box_coords = box_coords.reshape(-1, 2, 2) # always 2 points
+ box_labels = box_labels.reshape(-1, 2)
+ return box_coords, box_labels
+
+
+def sample_random_points_from_errors(gt_masks, pred_masks, num_pt=1):
+ """
+ Sample `num_pt` random points (along with their labels) independently from the error regions.
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - num_pt: int, number of points to sample independently for each of the B error maps
+
+ Outputs:
+ - points: [B, num_pt, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, num_pt], dtype=torch.int32, where 1 means positive clicks and 0 means
+ negative clicks
+ """
+ if pred_masks is None: # if pred_masks is not provided, treat it as empty
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+ assert num_pt >= 0
+
+ B, _, H_im, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+ # whether the prediction completely match the ground-truth on each mask
+ all_correct = torch.all((gt_masks == pred_masks).flatten(2), dim=2)
+ all_correct = all_correct[..., None, None]
+
+ # channel 0 is FP map, while channel 1 is FN map
+ pts_noise = torch.rand(B, num_pt, H_im, W_im, 2, device=device)
+ # sample a negative new click from FP region or a positive new click
+ # from FN region, depend on where the maximum falls,
+ # and in case the predictions are all correct (no FP or FN), we just
+ # sample a negative click from the background region
+ pts_noise[..., 0] *= fp_masks | (all_correct & ~gt_masks)
+ pts_noise[..., 1] *= fn_masks
+ pts_idx = pts_noise.flatten(2).argmax(dim=2)
+ labels = (pts_idx % 2).to(torch.int32)
+ pts_idx = pts_idx // 2
+ pts_x = pts_idx % W_im
+ pts_y = pts_idx // W_im
+ points = torch.stack([pts_x, pts_y], dim=2).to(torch.float)
+ return points, labels
+
+
+def sample_one_point_from_error_center(gt_masks, pred_masks, padding=True):
+ """
+ Sample 1 random point (along with its label) from the center of each error region,
+ that is, the point with the largest distance to the boundary of each error region.
+ This is the RITM sampling method from https://github.com/saic-vul/ritm_interactive_segmentation/blob/master/isegm/inference/clicker.py
+
+ Inputs:
+ - gt_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool
+ - pred_masks: [B, 1, H_im, W_im] masks, dtype=torch.bool or None
+ - padding: if True, pad with boundary of 1 px for distance transform
+
+ Outputs:
+ - points: [B, 1, 2], dtype=torch.float, contains (x, y) coordinates of each sampled point
+ - labels: [B, 1], dtype=torch.int32, where 1 means positive clicks and 0 means negative clicks
+ """
+ import cv2
+
+ if pred_masks is None:
+ pred_masks = torch.zeros_like(gt_masks)
+ assert gt_masks.dtype == torch.bool and gt_masks.size(1) == 1
+ assert pred_masks.dtype == torch.bool and pred_masks.shape == gt_masks.shape
+
+ B, _, _, W_im = gt_masks.shape
+ device = gt_masks.device
+
+ # false positive region, a new point sampled in this region should have
+ # negative label to correct the FP error
+ fp_masks = ~gt_masks & pred_masks
+ # false negative region, a new point sampled in this region should have
+ # positive label to correct the FN error
+ fn_masks = gt_masks & ~pred_masks
+
+ fp_masks = fp_masks.cpu().numpy()
+ fn_masks = fn_masks.cpu().numpy()
+ points = torch.zeros(B, 1, 2, dtype=torch.float)
+ labels = torch.ones(B, 1, dtype=torch.int32)
+ for b in range(B):
+ fn_mask = fn_masks[b, 0]
+ fp_mask = fp_masks[b, 0]
+ if padding:
+ fn_mask = np.pad(fn_mask, ((1, 1), (1, 1)), "constant")
+ fp_mask = np.pad(fp_mask, ((1, 1), (1, 1)), "constant")
+ # compute the distance of each point in FN/FP region to its boundary
+ fn_mask_dt = cv2.distanceTransform(fn_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ fp_mask_dt = cv2.distanceTransform(fp_mask.astype(np.uint8), cv2.DIST_L2, 0)
+ if padding:
+ fn_mask_dt = fn_mask_dt[1:-1, 1:-1]
+ fp_mask_dt = fp_mask_dt[1:-1, 1:-1]
+
+ # take the point in FN/FP region with the largest distance to its boundary
+ fn_mask_dt_flat = fn_mask_dt.reshape(-1)
+ fp_mask_dt_flat = fp_mask_dt.reshape(-1)
+ fn_argmax = np.argmax(fn_mask_dt_flat)
+ fp_argmax = np.argmax(fp_mask_dt_flat)
+ is_positive = fn_mask_dt_flat[fn_argmax] > fp_mask_dt_flat[fp_argmax]
+ pt_idx = fn_argmax if is_positive else fp_argmax
+ points[b, 0, 0] = pt_idx % W_im # x
+ points[b, 0, 1] = pt_idx // W_im # y
+ labels[b, 0] = int(is_positive)
+
+ points = points.to(device)
+ labels = labels.to(device)
+ return points, labels
+
+
+def get_next_point(gt_masks, pred_masks, method):
+ if method == "uniform":
+ return sample_random_points_from_errors(gt_masks, pred_masks)
+ elif method == "center":
+ return sample_one_point_from_error_center(gt_masks, pred_masks)
+ else:
+ raise ValueError(f"unknown sampling method {method}")
diff --git a/ref-avs.code/model/visual/sam2/organised_sam2_train.py b/ref-avs.code/model/visual/sam2/organised_sam2_train.py
new file mode 100644
index 0000000000000000000000000000000000000000..49814159b96732aadacf0d04bed9b346cc663678
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/organised_sam2_train.py
@@ -0,0 +1,812 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+
+import numpy as np
+import torch
+import torch.distributed
+from model.visual.sam2.modeling.sam2_base import SAM2Base
+from model.visual.sam2.modeling.sam2_utils import (
+ get_1d_sine_pe,
+ get_next_point,
+ sample_box_points,
+ select_closest_cond_frames,
+)
+
+from utils.misc import concat_points
+
+from utils.data_utils import BatchedVideoDatapoint
+
+
+class SAM2Train(SAM2Base):
+ def __init__(
+ self,
+ image_encoder,
+ memory_attention=None,
+ memory_encoder=None,
+ prob_to_use_pt_input_for_train=0.0,
+ prob_to_use_pt_input_for_eval=0.0,
+ prob_to_use_box_input_for_train=0.0,
+ prob_to_use_box_input_for_eval=0.0,
+ # if it is greater than 1, we interactive point sampling in the 1st frame and other randomly selected frames
+ num_frames_to_correct_for_train=1, # default: only iteratively sample on first frame
+ num_frames_to_correct_for_eval=1, # default: only iteratively sample on first frame
+ rand_frames_to_correct_for_train=False,
+ rand_frames_to_correct_for_eval=False,
+ # how many frames to use as initial conditioning frames (for both point input and mask input; the first frame is always used as an initial conditioning frame)
+ # - if `rand_init_cond_frames` below is True, we randomly sample 1~num_init_cond_frames initial conditioning frames
+ # - otherwise we sample a fixed number of num_init_cond_frames initial conditioning frames
+ # note: for point input, we sample correction points on all such initial conditioning frames, and we require that `num_frames_to_correct` >= `num_init_cond_frames`;
+ # these are initial conditioning frames because as we track the video, more conditioning frames might be added
+ # when a frame receives correction clicks under point input if `add_all_frames_to_correct_as_cond=True`
+ num_init_cond_frames_for_train=1, # default: only use the first frame as initial conditioning frame
+ num_init_cond_frames_for_eval=1, # default: only use the first frame as initial conditioning frame
+ rand_init_cond_frames_for_train=True, # default: random 1~num_init_cond_frames_for_train cond frames (to be constent w/ previous TA data loader)
+ rand_init_cond_frames_for_eval=False,
+ # if `add_all_frames_to_correct_as_cond` is True, we also append to the conditioning frame list any frame that receives a later correction click
+ # if `add_all_frames_to_correct_as_cond` is False, we conditioning frame list to only use those initial conditioning frames
+ add_all_frames_to_correct_as_cond=False,
+ # how many additional correction points to sample (on each frame selected to be corrected)
+ # note that the first frame receives an initial input click (in addition to any correction clicks)
+ num_correction_pt_per_frame=7,
+ # method for point sampling during evaluation
+ # "uniform" (sample uniformly from error region) or "center" (use the point with the largest distance to error region boundary)
+ # default to "center" to be consistent with evaluation in the SAM paper
+ pt_sampling_for_eval="center",
+ # During training, we optionally allow sampling the correction points from GT regions
+ # instead of the prediction error regions with a small probability. This might allow the
+ # model to overfit less to the error regions in training datasets
+ prob_to_sample_from_gt_for_train=0.0,
+ use_act_ckpt_iterative_pt_sampling=False,
+ # whether to forward image features per frame (as it's being tracked) during evaluation, instead of forwarding image features
+ # of all frames at once. This avoids backbone OOM errors on very long videos in evaluation, but could be slightly slower.
+ forward_backbone_per_frame_for_eval=False,
+ freeze_image_encoder=False,
+ **kwargs,
+ ):
+ super().__init__(image_encoder, memory_attention, memory_encoder, **kwargs)
+ self.use_act_ckpt_iterative_pt_sampling = use_act_ckpt_iterative_pt_sampling
+ self.forward_backbone_per_frame_for_eval = forward_backbone_per_frame_for_eval
+
+ # Point sampler and conditioning frames
+ self.prob_to_use_pt_input_for_train = prob_to_use_pt_input_for_train
+ self.prob_to_use_box_input_for_train = prob_to_use_box_input_for_train
+ self.prob_to_use_pt_input_for_eval = prob_to_use_pt_input_for_eval
+ self.prob_to_use_box_input_for_eval = prob_to_use_box_input_for_eval
+ if prob_to_use_pt_input_for_train > 0 or prob_to_use_pt_input_for_eval > 0:
+ logging.info(
+ f"Training with points (sampled from masks) as inputs with p={prob_to_use_pt_input_for_train}"
+ )
+ assert num_frames_to_correct_for_train >= num_init_cond_frames_for_train
+ assert num_frames_to_correct_for_eval >= num_init_cond_frames_for_eval
+
+ self.num_frames_to_correct_for_train = num_frames_to_correct_for_train
+ self.num_frames_to_correct_for_eval = num_frames_to_correct_for_eval
+ self.rand_frames_to_correct_for_train = rand_frames_to_correct_for_train
+ self.rand_frames_to_correct_for_eval = rand_frames_to_correct_for_eval
+ # Initial multi-conditioning frames
+ self.num_init_cond_frames_for_train = num_init_cond_frames_for_train
+ self.num_init_cond_frames_for_eval = num_init_cond_frames_for_eval
+ self.rand_init_cond_frames_for_train = rand_init_cond_frames_for_train
+ self.rand_init_cond_frames_for_eval = rand_init_cond_frames_for_eval
+ self.add_all_frames_to_correct_as_cond = add_all_frames_to_correct_as_cond
+ self.num_correction_pt_per_frame = num_correction_pt_per_frame
+ self.pt_sampling_for_eval = pt_sampling_for_eval
+ self.prob_to_sample_from_gt_for_train = prob_to_sample_from_gt_for_train
+ # A random number generator with a fixed initial seed across GPUs
+ self.rng = np.random.default_rng(seed=42)
+ if freeze_image_encoder:
+ for p in self.image_encoder.parameters():
+ p.requires_grad = False
+
+
+ def forward(self, input: BatchedVideoDatapoint):
+ if self.training or not self.forward_backbone_per_frame_for_eval:
+ # precompute image features on all frames before tracking
+ backbone_out = self.forward_image(input.flat_img_batch)
+ else:
+ # defer image feature computation on a frame until it's being tracked
+ backbone_out = {"backbone_fpn": None, "vision_pos_enc": None}
+ backbone_out = self.prepare_prompt_inputs(backbone_out, input)
+ previous_stages_out = self.forward_tracking(backbone_out, input)
+
+ return previous_stages_out
+
+ def _prepare_backbone_features_per_frame(self, img_batch, img_ids):
+ """Compute the image backbone features on the fly for the given img_ids."""
+ # Only forward backbone on unique image ids to avoid repetitive computation
+ # (if `img_ids` has only one element, it's already unique so we skip this step).
+ if img_ids.numel() > 1:
+ unique_img_ids, inv_ids = torch.unique(img_ids, return_inverse=True)
+ else:
+ unique_img_ids, inv_ids = img_ids, None
+
+ # Compute the image features on those unique image ids
+ image = img_batch[unique_img_ids]
+ backbone_out = self.forward_image(image)
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+ '''
+ vision_feats
+ torch.Size([65536, 5, 32])
+ torch.Size([16384, 5, 64])
+ torch.Size([4096, 5, 256])
+ '''
+ # Inverse-map image features for `unique_img_ids` to the final image features
+ # for the original input `img_ids`.
+ if inv_ids is not None:
+ image = image[inv_ids]
+ vision_feats = [x[:, inv_ids] for x in vision_feats]
+ vision_pos_embeds = [x[:, inv_ids] for x in vision_pos_embeds]
+
+ return image, vision_feats, vision_pos_embeds, feat_sizes
+
+ @staticmethod
+ def dont_prepare_prompt_inputs(backbone_out, num_frames=5, condition_frame=0):
+ backbone_out["gt_masks_per_frame"] = {}
+ backbone_out["num_frames"] = num_frames
+ backbone_out["use_pt_input"] = False
+ # always start from the first frame.
+ backbone_out["init_cond_frames"] = [condition_frame]
+ backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames) if i != condition_frame]
+ # backbone_out["init_cond_frames"] = []
+ # backbone_out["frames_not_in_init_cond"] = [i for i in range(0, num_frames)]
+
+ backbone_out["mask_inputs_per_frame"] = {}
+ backbone_out["point_inputs_per_frame"] = {}
+ backbone_out["frames_to_add_correction_pt"] = []
+ return backbone_out
+
+ def prepare_prompt_inputs(self, backbone_out, input, start_frame_idx=0):
+ """
+ Prepare input mask, point or box prompts. Optionally, we allow tracking from
+ a custom `start_frame_idx` to the end of the video (for evaluation purposes).
+ """
+ # Load the ground-truth masks on all frames (so that we can later
+ # sample correction points from them)
+ # gt_masks_per_frame = {
+ # stage_id: targets.segments.unsqueeze(1) # [B, 1, H_im, W_im]
+ # for stage_id, targets in enumerate(input.find_targets)
+ # }
+ gt_masks_per_frame = {
+ stage_id: masks.unsqueeze(1) # [B, 1, H_im, W_im]
+ for stage_id, masks in enumerate(input.masks)
+ }
+ # gt_masks_per_frame = input.masks.unsqueeze(2) # [T,B,1,H_im,W_im] keep everything in tensor form
+ backbone_out["gt_masks_per_frame"] = gt_masks_per_frame
+ num_frames = input.num_frames
+ backbone_out["num_frames"] = num_frames
+
+ # Randomly decide whether to use point inputs or mask inputs
+ if self.training:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_train
+ prob_to_use_box_input = self.prob_to_use_box_input_for_train
+ num_frames_to_correct = self.num_frames_to_correct_for_train
+ rand_frames_to_correct = self.rand_frames_to_correct_for_train
+ num_init_cond_frames = self.num_init_cond_frames_for_train
+ rand_init_cond_frames = self.rand_init_cond_frames_for_train
+ else:
+ prob_to_use_pt_input = self.prob_to_use_pt_input_for_eval
+ prob_to_use_box_input = self.prob_to_use_box_input_for_eval
+ num_frames_to_correct = self.num_frames_to_correct_for_eval
+ rand_frames_to_correct = self.rand_frames_to_correct_for_eval
+ num_init_cond_frames = self.num_init_cond_frames_for_eval
+ rand_init_cond_frames = self.rand_init_cond_frames_for_eval
+ if num_frames == 1:
+ # here we handle a special case for mixing video + SAM on image training,
+ # where we force using point input for the SAM task on static images
+ prob_to_use_pt_input = 1.0
+ num_frames_to_correct = 1
+ num_init_cond_frames = 1
+ assert num_init_cond_frames >= 1
+ # (here `self.rng.random()` returns value in range 0.0 <= X < 1.0)
+ use_pt_input = self.rng.random() < prob_to_use_pt_input
+ if rand_init_cond_frames and num_init_cond_frames > 1:
+ # randomly select 1 to `num_init_cond_frames` frames as initial conditioning frames
+ num_init_cond_frames = self.rng.integers(
+ 1, num_init_cond_frames, endpoint=True
+ )
+ if (
+ use_pt_input
+ and rand_frames_to_correct
+ and num_frames_to_correct > num_init_cond_frames
+ ):
+ # randomly select `num_init_cond_frames` to `num_frames_to_correct` frames to sample
+ # correction clicks (only for the case of point input)
+ num_frames_to_correct = self.rng.integers(
+ num_init_cond_frames, num_frames_to_correct, endpoint=True
+ )
+ backbone_out["use_pt_input"] = use_pt_input
+
+ # Sample initial conditioning frames
+ if num_init_cond_frames == 1:
+ init_cond_frames = [start_frame_idx] # starting frame
+ else:
+ # starting frame + randomly selected remaining frames (without replacement)
+ init_cond_frames = [start_frame_idx] + self.rng.choice(
+ range(start_frame_idx + 1, num_frames),
+ num_init_cond_frames - 1,
+ replace=False,
+ ).tolist()
+ backbone_out["init_cond_frames"] = init_cond_frames
+ backbone_out["frames_not_in_init_cond"] = [
+ t for t in range(start_frame_idx, num_frames) if t not in init_cond_frames
+ ]
+ # Prepare mask or point inputs on initial conditioning frames
+ backbone_out["mask_inputs_per_frame"] = {} # {frame_idx: }
+ backbone_out["point_inputs_per_frame"] = {} # {frame_idx: }
+ for t in init_cond_frames:
+ if not use_pt_input:
+ backbone_out["mask_inputs_per_frame"][t] = gt_masks_per_frame[t]
+ else:
+ # During training # P(box) = prob_to_use_pt_input * prob_to_use_box_input
+ use_box_input = self.rng.random() < prob_to_use_box_input
+ if use_box_input:
+ points, labels = sample_box_points(
+ gt_masks_per_frame[t],
+ )
+ else:
+ # (here we only sample **one initial point** on initial conditioning frames from the
+ # ground-truth mask; we may sample more correction points on the fly)
+ points, labels = get_next_point(
+ gt_masks=gt_masks_per_frame[t],
+ pred_masks=None,
+ method=(
+ "uniform" if self.training else self.pt_sampling_for_eval
+ ),
+ )
+
+ point_inputs = {"point_coords": points, "point_labels": labels}
+ backbone_out["point_inputs_per_frame"][t] = point_inputs
+
+ # Sample frames where we will add correction clicks on the fly
+ # based on the error between prediction and ground-truth masks
+ if not use_pt_input:
+ # no correction points will be sampled when using mask inputs
+ frames_to_add_correction_pt = []
+ elif num_frames_to_correct == num_init_cond_frames:
+ frames_to_add_correction_pt = init_cond_frames
+ else:
+ assert num_frames_to_correct > num_init_cond_frames
+ # initial cond frame + randomly selected remaining frames (without replacement)
+ extra_num = num_frames_to_correct - num_init_cond_frames
+ frames_to_add_correction_pt = (
+ init_cond_frames
+ + self.rng.choice(
+ backbone_out["frames_not_in_init_cond"], extra_num, replace=False
+ ).tolist()
+ )
+ backbone_out["frames_to_add_correction_pt"] = frames_to_add_correction_pt
+
+ return backbone_out
+
+ def forward_tracking_wo_prompt(self, backbone_out, audio_res=None, return_dict=False):
+ # img_feats_already_computed = True.
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+
+ av_v_feats, av_a_feats = audio_res
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ img_ids = stage_id
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids].unsqueeze(1) for x in vision_feats] # add unsqueeze to maintain single sample.
+ current_vision_pos_embeds = [x[:, img_ids].unsqueeze(1) for x in vision_pos_embeds] # add unsqueeze to maintain single sample.
+ current_av_v_feats = [x[img_ids] for x in av_v_feats]
+ current_av_a_feats = [x[img_ids] for x in av_a_feats]
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step_wo_prompt(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=None, # backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=None, # backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=None, # backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=None, # frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ audio_res=(current_av_v_feats, current_av_a_feats),
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+
+ return all_frame_outputs
+
+ def track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ audio_res=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step_wo_prompt(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ '''
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+ '''
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ 666., # point_inputs,
+ run_mem_encoder,
+ # we follow SAM2 predictor, if we have multiple masks output, we only utilise the first one to perform
+ # the memory rope attention.
+ high_res_masks, #[:, 0:1, ...],
+ # high_res_masks if high_res_masks.shape[1] <= 1 else high_res_masks[:, 0:1, ...],
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _track_step_wo_prompt(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ audio_res=None
+ ):
+ current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
+ # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
+ if len(current_vision_feats) > 1:
+ high_res_features = [
+ x.permute(1, 2, 0).view(x.size(1), x.size(2), *s)
+ for x, s in zip(current_vision_feats[:-1], feat_sizes[:-1])
+ ]
+ else:
+ high_res_features = None
+ if mask_inputs is not None and self.use_mask_input_as_output_without_sam: # False
+ # When use_mask_input_as_output_without_sam=True, we directly output the mask input
+ # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
+ pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+ sam_outputs = self._use_mask_as_output(
+ pix_feat, high_res_features, mask_inputs
+ )
+ else:
+ # fused the visual feature with previous memory features in the memory bank
+ pix_feat = self._prepare_memory_conditioned_features(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats[-1:],
+ current_vision_pos_embeds=current_vision_pos_embeds[-1:],
+ feat_sizes=feat_sizes[-1:],
+ output_dict=output_dict,
+ num_frames=num_frames,
+ track_in_reverse=track_in_reverse,
+ )
+ # current_vision_feats[-1] = current_vision_feats[-1] + self.no_mem_embed
+ # pix_feat = current_vision_feats[-1].permute(1, 2, 0)
+ # pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
+
+ # we do not apply any prompts except audio.
+ '''
+ # apply SAM-style segmentation head
+ # here we might feed previously predicted low-res SAM mask logits into the SAM mask decoder,
+ # e.g. in demo where such logits come from earlier interaction instead of correction sampling
+ # (in this case, any `mask_inputs` shouldn't reach here as they are sent to _use_mask_as_output instead)
+ # if prev_sam_mask_logits is not None:
+ # assert point_inputs is not None and mask_inputs is None
+ # mask_inputs = prev_sam_mask_logits
+
+ ## comment this line, as we don't use points as prompts.
+ # multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ '''
+
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=True,
+ audio_res=audio_res
+ )
+
+ return current_out, sam_outputs, high_res_features, pix_feat
+
+ def forward_tracking(
+ self, backbone_out, input: BatchedVideoDatapoint, return_dict=False
+ ):
+ """Forward video tracking on each frame (and sample correction clicks)."""
+ img_feats_already_computed = backbone_out["backbone_fpn"] is not None
+ if img_feats_already_computed:
+ # Prepare the backbone features
+ # - vision_feats and vision_pos_embeds are in (HW)BC format
+ (
+ _,
+ vision_feats,
+ vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features(backbone_out)
+
+ # Starting the stage loop
+ num_frames = backbone_out["num_frames"]
+ init_cond_frames = backbone_out["init_cond_frames"]
+ frames_to_add_correction_pt = backbone_out["frames_to_add_correction_pt"]
+ # first process all the initial conditioning frames to encode them as memory,
+ # and then conditioning on them to track the remaining frames
+ processing_order = init_cond_frames + backbone_out["frames_not_in_init_cond"]
+ output_dict = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ for stage_id in processing_order:
+ # Get the image features for the current frames
+ # img_ids = input.find_inputs[stage_id].img_ids
+ img_ids = input.flat_obj_to_img_idx[stage_id]
+ if img_feats_already_computed:
+ # Retrieve image features according to img_ids (if they are already computed).
+ current_vision_feats = [x[:, img_ids] for x in vision_feats]
+ current_vision_pos_embeds = [x[:, img_ids] for x in vision_pos_embeds]
+ else:
+ # Otherwise, compute the image features on the fly for the given img_ids
+ # (this might be used for evaluation on long videos to avoid backbone OOM).
+ (
+ _,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ ) = self._prepare_backbone_features_per_frame(
+ input.flat_img_batch, img_ids
+ )
+
+ # Get output masks based on this frame's prompts and previous memory
+ current_out = self.track_step(
+ frame_idx=stage_id,
+ is_init_cond_frame=stage_id in init_cond_frames,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=backbone_out["point_inputs_per_frame"].get(stage_id, None),
+ mask_inputs=backbone_out["mask_inputs_per_frame"].get(stage_id, None),
+ gt_masks=backbone_out["gt_masks_per_frame"].get(stage_id, None),
+ frames_to_add_correction_pt=frames_to_add_correction_pt,
+ output_dict=output_dict,
+ num_frames=num_frames,
+ )
+ # Append the output, depending on whether it's a conditioning frame
+ add_output_as_cond_frame = stage_id in init_cond_frames or (
+ self.add_all_frames_to_correct_as_cond
+ and stage_id in frames_to_add_correction_pt
+ )
+ if add_output_as_cond_frame:
+ output_dict["cond_frame_outputs"][stage_id] = current_out
+ else:
+ output_dict["non_cond_frame_outputs"][stage_id] = current_out
+
+ if return_dict:
+ return output_dict
+ # turn `output_dict` into a list for loss function
+ all_frame_outputs = {}
+ all_frame_outputs.update(output_dict["cond_frame_outputs"])
+ all_frame_outputs.update(output_dict["non_cond_frame_outputs"])
+ all_frame_outputs = [all_frame_outputs[t] for t in range(num_frames)]
+ # Make DDP happy with activation checkpointing by removing unused keys
+ all_frame_outputs = [
+ {k: v for k, v in d.items() if k != "obj_ptr"} for d in all_frame_outputs
+ ]
+
+ return all_frame_outputs
+
+ def track_step(
+ self,
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse=False, # tracking in reverse time order (for demo usage)
+ run_mem_encoder=True, # Whether to run the memory encoder on the predicted masks.
+ prev_sam_mask_logits=None, # The previously predicted SAM mask logits.
+ frames_to_add_correction_pt=None,
+ gt_masks=None,
+ ):
+ if frames_to_add_correction_pt is None:
+ frames_to_add_correction_pt = []
+ current_out, sam_outputs, high_res_features, pix_feat = self._track_step(
+ frame_idx,
+ is_init_cond_frame,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ point_inputs,
+ mask_inputs,
+ output_dict,
+ num_frames,
+ track_in_reverse,
+ prev_sam_mask_logits,
+ )
+
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = sam_outputs
+
+ current_out["multistep_pred_masks"] = low_res_masks
+ current_out["multistep_pred_masks_high_res"] = high_res_masks
+ current_out["multistep_pred_multimasks"] = [low_res_multimasks]
+ current_out["multistep_pred_multimasks_high_res"] = [high_res_multimasks]
+ current_out["multistep_pred_ious"] = [ious]
+ current_out["multistep_point_inputs"] = [point_inputs]
+ current_out["multistep_object_score_logits"] = [object_score_logits]
+
+ # Optionally, sample correction points iteratively to correct the mask
+ if frame_idx in frames_to_add_correction_pt:
+ point_inputs, final_sam_outputs = self._iter_correct_pt_sampling(
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ (
+ _,
+ _,
+ _,
+ low_res_masks,
+ high_res_masks,
+ obj_ptr,
+ object_score_logits,
+ ) = final_sam_outputs
+
+ # Use the final prediction (after all correction steps for output and eval)
+ current_out["pred_masks"] = low_res_masks
+ current_out["pred_masks_high_res"] = high_res_masks
+ current_out["obj_ptr"] = obj_ptr
+
+ # Finally run the memory encoder on the predicted mask to encode
+ # it into a new memory feature (that can be used in future frames)
+ self._encode_memory_in_output(
+ current_vision_feats,
+ feat_sizes,
+ point_inputs,
+ run_mem_encoder,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ )
+ return current_out
+
+ def _iter_correct_pt_sampling(
+ self,
+ is_init_cond_frame,
+ point_inputs,
+ gt_masks,
+ high_res_features,
+ pix_feat_with_mem,
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ object_score_logits,
+ current_out,
+ ):
+
+ assert gt_masks is not None
+ all_pred_masks = [low_res_masks]
+ all_pred_high_res_masks = [high_res_masks]
+ all_pred_multimasks = [low_res_multimasks]
+ all_pred_high_res_multimasks = [high_res_multimasks]
+ all_pred_ious = [ious]
+ all_point_inputs = [point_inputs]
+ all_object_score_logits = [object_score_logits]
+ for _ in range(self.num_correction_pt_per_frame):
+ # sample a new point from the error between prediction and ground-truth
+ # (with a small probability, directly sample from GT masks instead of errors)
+ if self.training and self.prob_to_sample_from_gt_for_train > 0:
+ sample_from_gt = (
+ self.rng.random() < self.prob_to_sample_from_gt_for_train
+ )
+ else:
+ sample_from_gt = False
+ # if `pred_for_new_pt` is None, only GT masks will be used for point sampling
+ pred_for_new_pt = None if sample_from_gt else (high_res_masks > 0)
+ new_points, new_labels = get_next_point(
+ gt_masks=gt_masks,
+ pred_masks=pred_for_new_pt,
+ method="uniform" if self.training else self.pt_sampling_for_eval,
+ )
+ point_inputs = concat_points(point_inputs, new_points, new_labels)
+ # Feed the mask logits of the previous SAM outputs in the next SAM decoder step.
+ # For tracking, this means that when the user adds a correction click, we also feed
+ # the tracking output mask logits along with the click as input to the SAM decoder.
+ mask_inputs = low_res_masks
+ multimask_output = self._use_multimask(is_init_cond_frame, point_inputs)
+ if self.use_act_ckpt_iterative_pt_sampling and not multimask_output:
+ sam_outputs = torch.utils.checkpoint.checkpoint(
+ self._forward_sam_heads,
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ use_reentrant=False,
+ )
+ else:
+ sam_outputs = self._forward_sam_heads(
+ backbone_features=pix_feat_with_mem,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ high_res_features=high_res_features,
+ multimask_output=multimask_output,
+ )
+ (
+ low_res_multimasks,
+ high_res_multimasks,
+ ious,
+ low_res_masks,
+ high_res_masks,
+ _,
+ object_score_logits,
+ ) = sam_outputs
+ all_pred_masks.append(low_res_masks)
+ all_pred_high_res_masks.append(high_res_masks)
+ all_pred_multimasks.append(low_res_multimasks)
+ all_pred_high_res_multimasks.append(high_res_multimasks)
+ all_pred_ious.append(ious)
+ all_point_inputs.append(point_inputs)
+ all_object_score_logits.append(object_score_logits)
+
+ # Concatenate the masks along channel (to compute losses on all of them,
+ # using `MultiStepIteractiveMasks`)
+ current_out["multistep_pred_masks"] = torch.cat(all_pred_masks, dim=1)
+ current_out["multistep_pred_masks_high_res"] = torch.cat(
+ all_pred_high_res_masks, dim=1
+ )
+ current_out["multistep_pred_multimasks"] = all_pred_multimasks
+ current_out["multistep_pred_multimasks_high_res"] = all_pred_high_res_multimasks
+ current_out["multistep_pred_ious"] = all_pred_ious
+ current_out["multistep_point_inputs"] = all_point_inputs
+ current_out["multistep_object_score_logits"] = all_object_score_logits
+
+ return point_inputs, sam_outputs
diff --git a/ref-avs.code/model/visual/sam2/sam2/sam2_hiera_l.yaml b/ref-avs.code/model/visual/sam2/sam2/sam2_hiera_l.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7256f72aa72da25f04c7d25d3ab884f6a29b7cf7
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/sam2/sam2_hiera_l.yaml
@@ -0,0 +1,3 @@
+# @package _global_
+defaults:
+ - /configs/sam2/sam2_hiera_l
diff --git a/ref-avs.code/model/visual/sam2/sam2_image_predictor.py b/ref-avs.code/model/visual/sam2/sam2_image_predictor.py
new file mode 100644
index 0000000000000000000000000000000000000000..41ce53af5924504c07216df52b2d2eefaeec7ae9
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/sam2_image_predictor.py
@@ -0,0 +1,466 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import logging
+
+from typing import List, Optional, Tuple, Union
+
+import numpy as np
+import torch
+from PIL.Image import Image
+
+from sam2.modeling.sam2_base import SAM2Base
+
+from sam2.utils.transforms import SAM2Transforms
+
+
+class SAM2ImagePredictor:
+ def __init__(
+ self,
+ sam_model: SAM2Base,
+ mask_threshold=0.0,
+ max_hole_area=0.0,
+ max_sprinkle_area=0.0,
+ **kwargs,
+ ) -> None:
+ """
+ Uses SAM-2 to calculate the image embedding for an image, and then
+ allow repeated, efficient mask prediction given prompts.
+
+ Arguments:
+ sam_model (Sam-2): The model to use for mask prediction.
+ mask_threshold (float): The threshold to use when converting mask logits
+ to binary masks. Masks are thresholded at 0 by default.
+ max_hole_area (int): If max_hole_area > 0, we fill small holes in up to
+ the maximum area of max_hole_area in low_res_masks.
+ max_sprinkle_area (int): If max_sprinkle_area > 0, we remove small sprinkles up to
+ the maximum area of max_sprinkle_area in low_res_masks.
+ """
+ super().__init__()
+ self.model = sam_model
+ self._transforms = SAM2Transforms(
+ resolution=self.model.image_size,
+ mask_threshold=mask_threshold,
+ max_hole_area=max_hole_area,
+ max_sprinkle_area=max_sprinkle_area,
+ )
+
+ # Predictor state
+ self._is_image_set = False
+ self._features = None
+ self._orig_hw = None
+ # Whether the predictor is set for single image or a batch of images
+ self._is_batch = False
+
+ # Predictor config
+ self.mask_threshold = mask_threshold
+
+ # Spatial dim for backbone feature maps
+ self._bb_feat_sizes = [
+ (256, 256),
+ (128, 128),
+ (64, 64),
+ ]
+
+ @classmethod
+ def from_pretrained(cls, model_id: str, **kwargs) -> "SAM2ImagePredictor":
+ """
+ Load a pretrained model from the Hugging Face hub.
+
+ Arguments:
+ model_id (str): The Hugging Face repository ID.
+ **kwargs: Additional arguments to pass to the model constructor.
+
+ Returns:
+ (SAM2ImagePredictor): The loaded model.
+ """
+ from sam2.build_sam import build_sam2_hf
+
+ sam_model = build_sam2_hf(model_id, **kwargs)
+ return cls(sam_model, **kwargs)
+
+ @torch.no_grad()
+ def set_image(
+ self,
+ image: Union[np.ndarray, Image],
+ ) -> None:
+ """
+ Calculates the image embeddings for the provided image, allowing
+ masks to be predicted with the 'predict' method.
+
+ Arguments:
+ image (np.ndarray or PIL Image): The input image to embed in RGB format. The image should be in HWC format if np.ndarray, or WHC format if PIL Image
+ with pixel values in [0, 255].
+ image_format (str): The color format of the image, in ['RGB', 'BGR'].
+ """
+ self.reset_predictor()
+ # Transform the image to the form expected by the model
+ if isinstance(image, np.ndarray):
+ logging.info("For numpy array image, we assume (HxWxC) format")
+ self._orig_hw = [image.shape[:2]]
+ elif isinstance(image, Image):
+ w, h = image.size
+ self._orig_hw = [(h, w)]
+ else:
+ raise NotImplementedError("Image format not supported")
+
+ input_image = self._transforms(image)
+ input_image = input_image[None, ...].to(self.device)
+
+ assert (
+ len(input_image.shape) == 4 and input_image.shape[1] == 3
+ ), f"input_image must be of size 1x3xHxW, got {input_image.shape}"
+ logging.info("Computing image embeddings for the provided image...")
+ backbone_out = self.model.forward_image(input_image)
+ _, vision_feats, _, _ = self.model._prepare_backbone_features(backbone_out)
+ # Add no_mem_embed, which is added to the lowest rest feat. map during training on videos
+ if self.model.directly_add_no_mem_embed:
+ vision_feats[-1] = vision_feats[-1] + self.model.no_mem_embed
+
+ feats = [
+ feat.permute(1, 2, 0).view(1, -1, *feat_size)
+ for feat, feat_size in zip(vision_feats[::-1], self._bb_feat_sizes[::-1])
+ ][::-1]
+ self._features = {"image_embed": feats[-1], "high_res_feats": feats[:-1]}
+ self._is_image_set = True
+ logging.info("Image embeddings computed.")
+
+ @torch.no_grad()
+ def set_image_batch(
+ self,
+ image_list: List[Union[np.ndarray]],
+ ) -> None:
+ """
+ Calculates the image embeddings for the provided image batch, allowing
+ masks to be predicted with the 'predict_batch' method.
+
+ Arguments:
+ image_list (List[np.ndarray]): The input images to embed in RGB format. The image should be in HWC format if np.ndarray
+ with pixel values in [0, 255].
+ """
+ self.reset_predictor()
+ assert isinstance(image_list, list)
+ self._orig_hw = []
+ for image in image_list:
+ assert isinstance(
+ image, np.ndarray
+ ), "Images are expected to be an np.ndarray in RGB format, and of shape HWC"
+ self._orig_hw.append(image.shape[:2])
+ # Transform the image to the form expected by the model
+ img_batch = self._transforms.forward_batch(image_list)
+ img_batch = img_batch.to(self.device)
+ batch_size = img_batch.shape[0]
+ assert (
+ len(img_batch.shape) == 4 and img_batch.shape[1] == 3
+ ), f"img_batch must be of size Bx3xHxW, got {img_batch.shape}"
+ logging.info("Computing image embeddings for the provided images...")
+ backbone_out = self.model.forward_image(img_batch)
+ _, vision_feats, _, _ = self.model._prepare_backbone_features(backbone_out)
+ # Add no_mem_embed, which is added to the lowest rest feat. map during training on videos
+ if self.model.directly_add_no_mem_embed:
+ vision_feats[-1] = vision_feats[-1] + self.model.no_mem_embed
+
+ feats = [
+ feat.permute(1, 2, 0).view(batch_size, -1, *feat_size)
+ for feat, feat_size in zip(vision_feats[::-1], self._bb_feat_sizes[::-1])
+ ][::-1]
+ self._features = {"image_embed": feats[-1], "high_res_feats": feats[:-1]}
+ self._is_image_set = True
+ self._is_batch = True
+ logging.info("Image embeddings computed.")
+
+ def predict_batch(
+ self,
+ point_coords_batch: List[np.ndarray] = None,
+ point_labels_batch: List[np.ndarray] = None,
+ box_batch: List[np.ndarray] = None,
+ mask_input_batch: List[np.ndarray] = None,
+ multimask_output: bool = True,
+ return_logits: bool = False,
+ normalize_coords=True,
+ ) -> Tuple[List[np.ndarray], List[np.ndarray], List[np.ndarray]]:
+ """This function is very similar to predict(...), however it is used for batched mode, when the model is expected to generate predictions on multiple images.
+ It returns a tuple of lists of masks, ious, and low_res_masks_logits.
+ """
+ assert self._is_batch, "This function should only be used when in batched mode"
+ if not self._is_image_set:
+ raise RuntimeError(
+ "An image must be set with .set_image_batch(...) before mask prediction."
+ )
+ num_images = len(self._features["image_embed"])
+ all_masks = []
+ all_ious = []
+ all_low_res_masks = []
+ for img_idx in range(num_images):
+ # Transform input prompts
+ point_coords = (
+ point_coords_batch[img_idx] if point_coords_batch is not None else None
+ )
+ point_labels = (
+ point_labels_batch[img_idx] if point_labels_batch is not None else None
+ )
+ box = box_batch[img_idx] if box_batch is not None else None
+ mask_input = (
+ mask_input_batch[img_idx] if mask_input_batch is not None else None
+ )
+ mask_input, unnorm_coords, labels, unnorm_box = self._prep_prompts(
+ point_coords,
+ point_labels,
+ box,
+ mask_input,
+ normalize_coords,
+ img_idx=img_idx,
+ )
+ masks, iou_predictions, low_res_masks = self._predict(
+ unnorm_coords,
+ labels,
+ unnorm_box,
+ mask_input,
+ multimask_output,
+ return_logits=return_logits,
+ img_idx=img_idx,
+ )
+ masks_np = masks.squeeze(0).float().detach().cpu().numpy()
+ iou_predictions_np = (
+ iou_predictions.squeeze(0).float().detach().cpu().numpy()
+ )
+ low_res_masks_np = low_res_masks.squeeze(0).float().detach().cpu().numpy()
+ all_masks.append(masks_np)
+ all_ious.append(iou_predictions_np)
+ all_low_res_masks.append(low_res_masks_np)
+
+ return all_masks, all_ious, all_low_res_masks
+
+ def predict(
+ self,
+ point_coords: Optional[np.ndarray] = None,
+ point_labels: Optional[np.ndarray] = None,
+ box: Optional[np.ndarray] = None,
+ mask_input: Optional[np.ndarray] = None,
+ multimask_output: bool = True,
+ return_logits: bool = False,
+ normalize_coords=True,
+ ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
+ """
+ Predict masks for the given input prompts, using the currently set image.
+
+ Arguments:
+ point_coords (np.ndarray or None): A Nx2 array of point prompts to the
+ model. Each point is in (X,Y) in pixels.
+ point_labels (np.ndarray or None): A length N array of labels for the
+ point prompts. 1 indicates a foreground point and 0 indicates a
+ background point.
+ box (np.ndarray or None): A length 4 array given a box prompt to the
+ model, in XYXY format.
+ mask_input (np.ndarray): A low resolution mask input to the model, typically
+ coming from a previous prediction iteration. Has form 1xHxW, where
+ for SAM, H=W=256.
+ multimask_output (bool): If true, the model will return three masks.
+ For ambiguous input prompts (such as a single click), this will often
+ produce better masks than a single prediction. If only a single
+ mask is needed, the model's predicted quality score can be used
+ to select the best mask. For non-ambiguous prompts, such as multiple
+ input prompts, multimask_output=False can give better results.
+ return_logits (bool): If true, returns un-thresholded masks logits
+ instead of a binary mask.
+ normalize_coords (bool): If true, the point coordinates will be normalized to the range [0,1] and point_coords is expected to be wrt. image dimensions.
+
+ Returns:
+ (np.ndarray): The output masks in CxHxW format, where C is the
+ number of masks, and (H, W) is the original image size.
+ (np.ndarray): An array of length C containing the model's
+ predictions for the quality of each mask.
+ (np.ndarray): An array of shape CxHxW, where C is the number
+ of masks and H=W=256. These low resolution logits can be passed to
+ a subsequent iteration as mask input.
+ """
+ if not self._is_image_set:
+ raise RuntimeError(
+ "An image must be set with .set_image(...) before mask prediction."
+ )
+
+ # Transform input prompts
+
+ mask_input, unnorm_coords, labels, unnorm_box = self._prep_prompts(
+ point_coords, point_labels, box, mask_input, normalize_coords
+ )
+
+ masks, iou_predictions, low_res_masks = self._predict(
+ unnorm_coords,
+ labels,
+ unnorm_box,
+ mask_input,
+ multimask_output,
+ return_logits=return_logits,
+ )
+
+ masks_np = masks.squeeze(0).float().detach().cpu().numpy()
+ iou_predictions_np = iou_predictions.squeeze(0).float().detach().cpu().numpy()
+ low_res_masks_np = low_res_masks.squeeze(0).float().detach().cpu().numpy()
+ return masks_np, iou_predictions_np, low_res_masks_np
+
+ def _prep_prompts(
+ self, point_coords, point_labels, box, mask_logits, normalize_coords, img_idx=-1
+ ):
+
+ unnorm_coords, labels, unnorm_box, mask_input = None, None, None, None
+ if point_coords is not None:
+ assert (
+ point_labels is not None
+ ), "point_labels must be supplied if point_coords is supplied."
+ point_coords = torch.as_tensor(
+ point_coords, dtype=torch.float, device=self.device
+ )
+ unnorm_coords = self._transforms.transform_coords(
+ point_coords, normalize=normalize_coords, orig_hw=self._orig_hw[img_idx]
+ )
+ labels = torch.as_tensor(point_labels, dtype=torch.int, device=self.device)
+ if len(unnorm_coords.shape) == 2:
+ unnorm_coords, labels = unnorm_coords[None, ...], labels[None, ...]
+ if box is not None:
+ box = torch.as_tensor(box, dtype=torch.float, device=self.device)
+ unnorm_box = self._transforms.transform_boxes(
+ box, normalize=normalize_coords, orig_hw=self._orig_hw[img_idx]
+ ) # Bx2x2
+ if mask_logits is not None:
+ mask_input = torch.as_tensor(
+ mask_logits, dtype=torch.float, device=self.device
+ )
+ if len(mask_input.shape) == 3:
+ mask_input = mask_input[None, :, :, :]
+ return mask_input, unnorm_coords, labels, unnorm_box
+
+ @torch.no_grad()
+ def _predict(
+ self,
+ point_coords: Optional[torch.Tensor],
+ point_labels: Optional[torch.Tensor],
+ boxes: Optional[torch.Tensor] = None,
+ mask_input: Optional[torch.Tensor] = None,
+ multimask_output: bool = True,
+ return_logits: bool = False,
+ img_idx: int = -1,
+ ) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
+ """
+ Predict masks for the given input prompts, using the currently set image.
+ Input prompts are batched torch tensors and are expected to already be
+ transformed to the input frame using SAM2Transforms.
+
+ Arguments:
+ point_coords (torch.Tensor or None): A BxNx2 array of point prompts to the
+ model. Each point is in (X,Y) in pixels.
+ point_labels (torch.Tensor or None): A BxN array of labels for the
+ point prompts. 1 indicates a foreground point and 0 indicates a
+ background point.
+ boxes (np.ndarray or None): A Bx4 array given a box prompt to the
+ model, in XYXY format.
+ mask_input (np.ndarray): A low resolution mask input to the model, typically
+ coming from a previous prediction iteration. Has form Bx1xHxW, where
+ for SAM, H=W=256. Masks returned by a previous iteration of the
+ predict method do not need further transformation.
+ multimask_output (bool): If true, the model will return three masks.
+ For ambiguous input prompts (such as a single click), this will often
+ produce better masks than a single prediction. If only a single
+ mask is needed, the model's predicted quality score can be used
+ to select the best mask. For non-ambiguous prompts, such as multiple
+ input prompts, multimask_output=False can give better results.
+ return_logits (bool): If true, returns un-thresholded masks logits
+ instead of a binary mask.
+
+ Returns:
+ (torch.Tensor): The output masks in BxCxHxW format, where C is the
+ number of masks, and (H, W) is the original image size.
+ (torch.Tensor): An array of shape BxC containing the model's
+ predictions for the quality of each mask.
+ (torch.Tensor): An array of shape BxCxHxW, where C is the number
+ of masks and H=W=256. These low res logits can be passed to
+ a subsequent iteration as mask input.
+ """
+ if not self._is_image_set:
+ raise RuntimeError(
+ "An image must be set with .set_image(...) before mask prediction."
+ )
+
+ if point_coords is not None:
+ concat_points = (point_coords, point_labels)
+ else:
+ concat_points = None
+
+ # Embed prompts
+ if boxes is not None:
+ box_coords = boxes.reshape(-1, 2, 2)
+ box_labels = torch.tensor([[2, 3]], dtype=torch.int, device=boxes.device)
+ box_labels = box_labels.repeat(boxes.size(0), 1)
+ # we merge "boxes" and "points" into a single "concat_points" input (where
+ # boxes are added at the beginning) to sam_prompt_encoder
+ if concat_points is not None:
+ concat_coords = torch.cat([box_coords, concat_points[0]], dim=1)
+ concat_labels = torch.cat([box_labels, concat_points[1]], dim=1)
+ concat_points = (concat_coords, concat_labels)
+ else:
+ concat_points = (box_coords, box_labels)
+
+ sparse_embeddings, dense_embeddings = self.model.sam_prompt_encoder(
+ points=concat_points,
+ boxes=None,
+ masks=mask_input,
+ )
+
+ # Predict masks
+ batched_mode = (
+ concat_points is not None and concat_points[0].shape[0] > 1
+ ) # multi object prediction
+ high_res_features = [
+ feat_level[img_idx].unsqueeze(0)
+ for feat_level in self._features["high_res_feats"]
+ ]
+ low_res_masks, iou_predictions, _, _ = self.model.sam_mask_decoder(
+ image_embeddings=self._features["image_embed"][img_idx].unsqueeze(0),
+ image_pe=self.model.sam_prompt_encoder.get_dense_pe(),
+ sparse_prompt_embeddings=sparse_embeddings,
+ dense_prompt_embeddings=dense_embeddings,
+ multimask_output=multimask_output,
+ repeat_image=batched_mode,
+ high_res_features=high_res_features,
+ )
+
+ # Upscale the masks to the original image resolution
+ masks = self._transforms.postprocess_masks(
+ low_res_masks, self._orig_hw[img_idx]
+ )
+ low_res_masks = torch.clamp(low_res_masks, -32.0, 32.0)
+ if not return_logits:
+ masks = masks > self.mask_threshold
+
+ return masks, iou_predictions, low_res_masks
+
+ def get_image_embedding(self) -> torch.Tensor:
+ """
+ Returns the image embeddings for the currently set image, with
+ shape 1xCxHxW, where C is the embedding dimension and (H,W) are
+ the embedding spatial dimension of SAM (typically C=256, H=W=64).
+ """
+ if not self._is_image_set:
+ raise RuntimeError(
+ "An image must be set with .set_image(...) to generate an embedding."
+ )
+ assert (
+ self._features is not None
+ ), "Features must exist if an image has been set."
+ return self._features["image_embed"]
+
+ @property
+ def device(self) -> torch.device:
+ return self.model.device
+
+ def reset_predictor(self) -> None:
+ """
+ Resets the image embeddings and other state variables.
+ """
+ self._is_image_set = False
+ self._features = None
+ self._orig_hw = None
+ self._is_batch = False
diff --git a/ref-avs.code/model/visual/sam2/sam2_video_predictor.py b/ref-avs.code/model/visual/sam2/sam2_video_predictor.py
new file mode 100644
index 0000000000000000000000000000000000000000..c7e01ccf972491904b013526333826b337354db1
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/sam2_video_predictor.py
@@ -0,0 +1,1172 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import warnings
+from collections import OrderedDict
+
+import torch
+
+from tqdm import tqdm
+
+from sam2.modeling.sam2_base import NO_OBJ_SCORE, SAM2Base
+from sam2.utils.misc import concat_points, fill_holes_in_mask_scores, load_video_frames
+
+
+class SAM2VideoPredictor(SAM2Base):
+ """The predictor class to handle user interactions and manage inference states."""
+
+ def __init__(
+ self,
+ fill_hole_area=0,
+ # whether to apply non-overlapping constraints on the output object masks
+ non_overlap_masks=False,
+ # whether to clear non-conditioning memory of the surrounding frames (which may contain outdated information) after adding correction clicks;
+ # note that this would only apply to *single-object tracking* unless `clear_non_cond_mem_for_multi_obj` is also set to True)
+ clear_non_cond_mem_around_input=False,
+ # whether to also clear non-conditioning memory of the surrounding frames (only effective when `clear_non_cond_mem_around_input` is True).
+ clear_non_cond_mem_for_multi_obj=False,
+ # if `add_all_frames_to_correct_as_cond` is True, we also append to the conditioning frame list any frame that receives a later correction click
+ # if `add_all_frames_to_correct_as_cond` is False, we conditioning frame list to only use those initial conditioning frames
+ add_all_frames_to_correct_as_cond=False,
+ **kwargs,
+ ):
+ super().__init__(**kwargs)
+ self.fill_hole_area = fill_hole_area
+ self.non_overlap_masks = non_overlap_masks
+ self.clear_non_cond_mem_around_input = clear_non_cond_mem_around_input
+ self.clear_non_cond_mem_for_multi_obj = clear_non_cond_mem_for_multi_obj
+ self.add_all_frames_to_correct_as_cond = add_all_frames_to_correct_as_cond
+
+ @torch.inference_mode()
+ def init_state(
+ self,
+ video_path,
+ offload_video_to_cpu=False,
+ offload_state_to_cpu=False,
+ async_loading_frames=False,
+ ):
+ """Initialize an inference state."""
+ compute_device = self.device # device of the model
+ images, video_height, video_width = load_video_frames(
+ video_path=video_path,
+ image_size=self.image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ inference_state = {}
+ inference_state["images"] = images
+ inference_state["num_frames"] = len(images)
+ # whether to offload the video frames to CPU memory
+ # turning on this option saves the GPU memory with only a very small overhead
+ inference_state["offload_video_to_cpu"] = offload_video_to_cpu
+ # whether to offload the inference state to CPU memory
+ # turning on this option saves the GPU memory at the cost of a lower tracking fps
+ # (e.g. in a test case of 768x768 model, fps dropped from 27 to 24 when tracking one object
+ # and from 24 to 21 when tracking two objects)
+ inference_state["offload_state_to_cpu"] = offload_state_to_cpu
+ # the original video height and width, used for resizing final output scores
+ inference_state["video_height"] = video_height
+ inference_state["video_width"] = video_width
+ inference_state["device"] = compute_device
+ if offload_state_to_cpu:
+ inference_state["storage_device"] = torch.device("cpu")
+ else:
+ inference_state["storage_device"] = compute_device
+ # inputs on each frame
+ inference_state["point_inputs_per_obj"] = {}
+ inference_state["mask_inputs_per_obj"] = {}
+ # visual features on a small number of recently visited frames for quick interactions
+ inference_state["cached_features"] = {}
+ # values that don't change across frames (so we only need to hold one copy of them)
+ inference_state["constants"] = {}
+ # mapping between client-side object id and model-side object index
+ inference_state["obj_id_to_idx"] = OrderedDict()
+ inference_state["obj_idx_to_id"] = OrderedDict()
+ inference_state["obj_ids"] = []
+ # A storage to hold the model's tracking results and states on each frame
+ inference_state["output_dict"] = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ # Slice (view) of each object tracking results, sharing the same memory with "output_dict"
+ inference_state["output_dict_per_obj"] = {}
+ # A temporary storage to hold new outputs when user interact with a frame
+ # to add clicks or mask (it's merged into "output_dict" before propagation starts)
+ inference_state["temp_output_dict_per_obj"] = {}
+ # Frames that already holds consolidated outputs from click or mask inputs
+ # (we directly use their consolidated outputs during tracking)
+ inference_state["consolidated_frame_inds"] = {
+ "cond_frame_outputs": set(), # set containing frame indices
+ "non_cond_frame_outputs": set(), # set containing frame indices
+ }
+ # metadata for each tracking frame (e.g. which direction it's tracked)
+ inference_state["tracking_has_started"] = False
+ inference_state["frames_already_tracked"] = {}
+ # Warm up the visual backbone and cache the image feature on frame 0
+ self._get_image_feature(inference_state, frame_idx=0, batch_size=1)
+ return inference_state
+
+ @classmethod
+ def from_pretrained(cls, model_id: str, **kwargs) -> "SAM2VideoPredictor":
+ """
+ Load a pretrained model from the Hugging Face hub.
+
+ Arguments:
+ model_id (str): The Hugging Face repository ID.
+ **kwargs: Additional arguments to pass to the model constructor.
+
+ Returns:
+ (SAM2VideoPredictor): The loaded model.
+ """
+ from sam2.build_sam import build_sam2_video_predictor_hf
+
+ sam_model = build_sam2_video_predictor_hf(model_id, **kwargs)
+ return sam_model
+
+ def _obj_id_to_idx(self, inference_state, obj_id):
+ """Map client-side object id to model-side object index."""
+ obj_idx = inference_state["obj_id_to_idx"].get(obj_id, None)
+ if obj_idx is not None:
+ return obj_idx
+
+ # This is a new object id not sent to the server before. We only allow adding
+ # new objects *before* the tracking starts.
+ allow_new_object = not inference_state["tracking_has_started"]
+ if allow_new_object:
+ # get the next object slot
+ obj_idx = len(inference_state["obj_id_to_idx"])
+ inference_state["obj_id_to_idx"][obj_id] = obj_idx
+ inference_state["obj_idx_to_id"][obj_idx] = obj_id
+ inference_state["obj_ids"] = list(inference_state["obj_id_to_idx"])
+ # set up input and output structures for this object
+ inference_state["point_inputs_per_obj"][obj_idx] = {}
+ inference_state["mask_inputs_per_obj"][obj_idx] = {}
+ inference_state["output_dict_per_obj"][obj_idx] = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ inference_state["temp_output_dict_per_obj"][obj_idx] = {
+ "cond_frame_outputs": {}, # dict containing {frame_idx: }
+ "non_cond_frame_outputs": {}, # dict containing {frame_idx: }
+ }
+ return obj_idx
+ else:
+ raise RuntimeError(
+ f"Cannot add new object id {obj_id} after tracking starts. "
+ f"All existing object ids: {inference_state['obj_ids']}. "
+ f"Please call 'reset_state' to restart from scratch."
+ )
+
+ def _obj_idx_to_id(self, inference_state, obj_idx):
+ """Map model-side object index to client-side object id."""
+ return inference_state["obj_idx_to_id"][obj_idx]
+
+ def _get_obj_num(self, inference_state):
+ """Get the total number of unique object ids received so far in this session."""
+ return len(inference_state["obj_idx_to_id"])
+
+ @torch.inference_mode()
+ def add_new_points_or_box(
+ self,
+ inference_state,
+ frame_idx,
+ obj_id,
+ points=None,
+ labels=None,
+ clear_old_points=True,
+ normalize_coords=True,
+ box=None,
+ ):
+ """Add new points to a frame."""
+ obj_idx = self._obj_id_to_idx(inference_state, obj_id)
+ point_inputs_per_frame = inference_state["point_inputs_per_obj"][obj_idx]
+ mask_inputs_per_frame = inference_state["mask_inputs_per_obj"][obj_idx]
+
+ if (points is not None) != (labels is not None):
+ raise ValueError("points and labels must be provided together")
+ if points is None and box is None:
+ raise ValueError("at least one of points or box must be provided as input")
+
+ if points is None:
+ points = torch.zeros(0, 2, dtype=torch.float32)
+ elif not isinstance(points, torch.Tensor):
+ points = torch.tensor(points, dtype=torch.float32)
+ if labels is None:
+ labels = torch.zeros(0, dtype=torch.int32)
+ elif not isinstance(labels, torch.Tensor):
+ labels = torch.tensor(labels, dtype=torch.int32)
+ if points.dim() == 2:
+ points = points.unsqueeze(0) # add batch dimension
+ if labels.dim() == 1:
+ labels = labels.unsqueeze(0) # add batch dimension
+
+ # If `box` is provided, we add it as the first two points with labels 2 and 3
+ # along with the user-provided points (consistent with how SAM 2 is trained).
+ if box is not None:
+ if not clear_old_points:
+ raise ValueError(
+ "cannot add box without clearing old points, since "
+ "box prompt must be provided before any point prompt "
+ "(please use clear_old_points=True instead)"
+ )
+ if inference_state["tracking_has_started"]:
+ warnings.warn(
+ "You are adding a box after tracking starts. SAM 2 may not always be "
+ "able to incorporate a box prompt for *refinement*. If you intend to "
+ "use box prompt as an *initial* input before tracking, please call "
+ "'reset_state' on the inference state to restart from scratch.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ if not isinstance(box, torch.Tensor):
+ box = torch.tensor(box, dtype=torch.float32, device=points.device)
+ box_coords = box.reshape(1, 2, 2)
+ box_labels = torch.tensor([2, 3], dtype=torch.int32, device=labels.device)
+ box_labels = box_labels.reshape(1, 2)
+ points = torch.cat([box_coords, points], dim=1)
+ labels = torch.cat([box_labels, labels], dim=1)
+
+ if normalize_coords:
+ video_H = inference_state["video_height"]
+ video_W = inference_state["video_width"]
+ points = points / torch.tensor([video_W, video_H]).to(points.device)
+ # scale the (normalized) coordinates by the model's internal image size
+ points = points * self.image_size
+ points = points.to(inference_state["device"])
+ labels = labels.to(inference_state["device"])
+
+ if not clear_old_points:
+ point_inputs = point_inputs_per_frame.get(frame_idx, None)
+ else:
+ point_inputs = None
+ point_inputs = concat_points(point_inputs, points, labels)
+
+ point_inputs_per_frame[frame_idx] = point_inputs
+ mask_inputs_per_frame.pop(frame_idx, None)
+ # If this frame hasn't been tracked before, we treat it as an initial conditioning
+ # frame, meaning that the inputs points are to generate segments on this frame without
+ # using any memory from other frames, like in SAM. Otherwise (if it has been tracked),
+ # the input points will be used to correct the already tracked masks.
+ is_init_cond_frame = frame_idx not in inference_state["frames_already_tracked"]
+ # whether to track in reverse time order
+ if is_init_cond_frame:
+ reverse = False
+ else:
+ reverse = inference_state["frames_already_tracked"][frame_idx]["reverse"]
+ obj_output_dict = inference_state["output_dict_per_obj"][obj_idx]
+ obj_temp_output_dict = inference_state["temp_output_dict_per_obj"][obj_idx]
+ # Add a frame to conditioning output if it's an initial conditioning frame or
+ # if the model sees all frames receiving clicks/mask as conditioning frames.
+ is_cond = is_init_cond_frame or self.add_all_frames_to_correct_as_cond
+ storage_key = "cond_frame_outputs" if is_cond else "non_cond_frame_outputs"
+
+ # Get any previously predicted mask logits on this object and feed it along with
+ # the new clicks into the SAM mask decoder.
+ prev_sam_mask_logits = None
+ # lookup temporary output dict first, which contains the most recent output
+ # (if not found, then lookup conditioning and non-conditioning frame output)
+ prev_out = obj_temp_output_dict[storage_key].get(frame_idx)
+ if prev_out is None:
+ prev_out = obj_output_dict["cond_frame_outputs"].get(frame_idx)
+ if prev_out is None:
+ prev_out = obj_output_dict["non_cond_frame_outputs"].get(frame_idx)
+
+ if prev_out is not None and prev_out["pred_masks"] is not None:
+ device = inference_state["device"]
+ prev_sam_mask_logits = prev_out["pred_masks"].to(device, non_blocking=True)
+ # Clamp the scale of prev_sam_mask_logits to avoid rare numerical issues.
+ prev_sam_mask_logits = torch.clamp(prev_sam_mask_logits, -32.0, 32.0)
+ current_out, _ = self._run_single_frame_inference(
+ inference_state=inference_state,
+ output_dict=obj_output_dict, # run on the slice of a single object
+ frame_idx=frame_idx,
+ batch_size=1, # run on the slice of a single object
+ is_init_cond_frame=is_init_cond_frame,
+ point_inputs=point_inputs,
+ mask_inputs=None,
+ reverse=reverse,
+ # Skip the memory encoder when adding clicks or mask. We execute the memory encoder
+ # at the beginning of `propagate_in_video` (after user finalize their clicks). This
+ # allows us to enforce non-overlapping constraints on all objects before encoding
+ # them into memory.
+ run_mem_encoder=False,
+ prev_sam_mask_logits=prev_sam_mask_logits,
+ )
+ # Add the output to the output dict (to be used as future memory)
+ obj_temp_output_dict[storage_key][frame_idx] = current_out
+
+ # Resize the output mask to the original video resolution
+ obj_ids = inference_state["obj_ids"]
+ consolidated_out = self._consolidate_temp_output_across_obj(
+ inference_state,
+ frame_idx,
+ is_cond=is_cond,
+ run_mem_encoder=False,
+ consolidate_at_video_res=True,
+ )
+ _, video_res_masks = self._get_orig_video_res_output(
+ inference_state, consolidated_out["pred_masks_video_res"]
+ )
+ return frame_idx, obj_ids, video_res_masks
+
+ def add_new_points(self, *args, **kwargs):
+ """Deprecated method. Please use `add_new_points_or_box` instead."""
+ return self.add_new_points_or_box(*args, **kwargs)
+
+ @torch.inference_mode()
+ def add_new_mask(
+ self,
+ inference_state,
+ frame_idx,
+ obj_id,
+ mask,
+ ):
+ """Add new mask to a frame."""
+ obj_idx = self._obj_id_to_idx(inference_state, obj_id)
+ point_inputs_per_frame = inference_state["point_inputs_per_obj"][obj_idx]
+ mask_inputs_per_frame = inference_state["mask_inputs_per_obj"][obj_idx]
+
+ if not isinstance(mask, torch.Tensor):
+ mask = torch.tensor(mask, dtype=torch.bool)
+ assert mask.dim() == 2
+ mask_H, mask_W = mask.shape
+ mask_inputs_orig = mask[None, None] # add batch and channel dimension
+ mask_inputs_orig = mask_inputs_orig.float().to(inference_state["device"])
+
+ # resize the mask if it doesn't match the model's image size
+ if mask_H != self.image_size or mask_W != self.image_size:
+ mask_inputs = torch.nn.functional.interpolate(
+ mask_inputs_orig,
+ size=(self.image_size, self.image_size),
+ align_corners=False,
+ mode="bilinear",
+ antialias=True, # use antialias for downsampling
+ )
+ mask_inputs = (mask_inputs >= 0.5).float()
+ else:
+ mask_inputs = mask_inputs_orig
+
+ mask_inputs_per_frame[frame_idx] = mask_inputs
+ point_inputs_per_frame.pop(frame_idx, None)
+ # If this frame hasn't been tracked before, we treat it as an initial conditioning
+ # frame, meaning that the inputs points are to generate segments on this frame without
+ # using any memory from other frames, like in SAM. Otherwise (if it has been tracked),
+ # the input points will be used to correct the already tracked masks.
+ is_init_cond_frame = frame_idx not in inference_state["frames_already_tracked"]
+ # whether to track in reverse time order
+ if is_init_cond_frame:
+ reverse = False
+ else:
+ reverse = inference_state["frames_already_tracked"][frame_idx]["reverse"]
+ obj_output_dict = inference_state["output_dict_per_obj"][obj_idx]
+ obj_temp_output_dict = inference_state["temp_output_dict_per_obj"][obj_idx]
+ # Add a frame to conditioning output if it's an initial conditioning frame or
+ # if the model sees all frames receiving clicks/mask as conditioning frames.
+ is_cond = is_init_cond_frame or self.add_all_frames_to_correct_as_cond
+ storage_key = "cond_frame_outputs" if is_cond else "non_cond_frame_outputs"
+
+ current_out, _ = self._run_single_frame_inference(
+ inference_state=inference_state,
+ output_dict=obj_output_dict, # run on the slice of a single object
+ frame_idx=frame_idx,
+ batch_size=1, # run on the slice of a single object
+ is_init_cond_frame=is_init_cond_frame,
+ point_inputs=None,
+ mask_inputs=mask_inputs,
+ reverse=reverse,
+ # Skip the memory encoder when adding clicks or mask. We execute the memory encoder
+ # at the beginning of `propagate_in_video` (after user finalize their clicks). This
+ # allows us to enforce non-overlapping constraints on all objects before encoding
+ # them into memory.
+ run_mem_encoder=False,
+ )
+ # Add the output to the output dict (to be used as future memory)
+ obj_temp_output_dict[storage_key][frame_idx] = current_out
+
+ # Resize the output mask to the original video resolution
+ obj_ids = inference_state["obj_ids"]
+ consolidated_out = self._consolidate_temp_output_across_obj(
+ inference_state,
+ frame_idx,
+ is_cond=is_cond,
+ run_mem_encoder=False,
+ consolidate_at_video_res=True,
+ )
+ _, video_res_masks = self._get_orig_video_res_output(
+ inference_state, consolidated_out["pred_masks_video_res"]
+ )
+ return frame_idx, obj_ids, video_res_masks
+
+ def _get_orig_video_res_output(self, inference_state, any_res_masks):
+ """
+ Resize the object scores to the original video resolution (video_res_masks)
+ and apply non-overlapping constraints for final output.
+ """
+ device = inference_state["device"]
+ video_H = inference_state["video_height"]
+ video_W = inference_state["video_width"]
+ any_res_masks = any_res_masks.to(device, non_blocking=True)
+ if any_res_masks.shape[-2:] == (video_H, video_W):
+ video_res_masks = any_res_masks
+ else:
+ video_res_masks = torch.nn.functional.interpolate(
+ any_res_masks,
+ size=(video_H, video_W),
+ mode="bilinear",
+ align_corners=False,
+ )
+ if self.non_overlap_masks:
+ video_res_masks = self._apply_non_overlapping_constraints(video_res_masks)
+ return any_res_masks, video_res_masks
+
+ def _consolidate_temp_output_across_obj(
+ self,
+ inference_state,
+ frame_idx,
+ is_cond,
+ run_mem_encoder,
+ consolidate_at_video_res=False,
+ ):
+ """
+ Consolidate the per-object temporary outputs in `temp_output_dict_per_obj` on
+ a frame into a single output for all objects, including
+ 1) fill any missing objects either from `output_dict_per_obj` (if they exist in
+ `output_dict_per_obj` for this frame) or leave them as placeholder values
+ (if they don't exist in `output_dict_per_obj` for this frame);
+ 2) if specified, rerun memory encoder after apply non-overlapping constraints
+ on the object scores.
+ """
+ batch_size = self._get_obj_num(inference_state)
+ storage_key = "cond_frame_outputs" if is_cond else "non_cond_frame_outputs"
+ # Optionally, we allow consolidating the temporary outputs at the original
+ # video resolution (to provide a better editing experience for mask prompts).
+ if consolidate_at_video_res:
+ assert not run_mem_encoder, "memory encoder cannot run at video resolution"
+ consolidated_H = inference_state["video_height"]
+ consolidated_W = inference_state["video_width"]
+ consolidated_mask_key = "pred_masks_video_res"
+ else:
+ consolidated_H = consolidated_W = self.image_size // 4
+ consolidated_mask_key = "pred_masks"
+
+ # Initialize `consolidated_out`. Its "maskmem_features" and "maskmem_pos_enc"
+ # will be added when rerunning the memory encoder after applying non-overlapping
+ # constraints to object scores. Its "pred_masks" are prefilled with a large
+ # negative value (NO_OBJ_SCORE) to represent missing objects.
+ consolidated_out = {
+ "maskmem_features": None,
+ "maskmem_pos_enc": None,
+ consolidated_mask_key: torch.full(
+ size=(batch_size, 1, consolidated_H, consolidated_W),
+ fill_value=NO_OBJ_SCORE,
+ dtype=torch.float32,
+ device=inference_state["storage_device"],
+ ),
+ "obj_ptr": torch.full(
+ size=(batch_size, self.hidden_dim),
+ fill_value=NO_OBJ_SCORE,
+ dtype=torch.float32,
+ device=inference_state["device"],
+ ),
+ "object_score_logits": torch.full(
+ size=(batch_size, 1),
+ # default to 10.0 for object_score_logits, i.e. assuming the object is
+ # present as sigmoid(10)=1, same as in `predict_masks` of `MaskDecoder`
+ fill_value=10.0,
+ dtype=torch.float32,
+ device=inference_state["device"],
+ ),
+ }
+ empty_mask_ptr = None
+ for obj_idx in range(batch_size):
+ obj_temp_output_dict = inference_state["temp_output_dict_per_obj"][obj_idx]
+ obj_output_dict = inference_state["output_dict_per_obj"][obj_idx]
+ out = obj_temp_output_dict[storage_key].get(frame_idx, None)
+ # If the object doesn't appear in "temp_output_dict_per_obj" on this frame,
+ # we fall back and look up its previous output in "output_dict_per_obj".
+ # We look up both "cond_frame_outputs" and "non_cond_frame_outputs" in
+ # "output_dict_per_obj" to find a previous output for this object.
+ if out is None:
+ out = obj_output_dict["cond_frame_outputs"].get(frame_idx, None)
+ if out is None:
+ out = obj_output_dict["non_cond_frame_outputs"].get(frame_idx, None)
+ # If the object doesn't appear in "output_dict_per_obj" either, we skip it
+ # and leave its mask scores to the default scores (i.e. the NO_OBJ_SCORE
+ # placeholder above) and set its object pointer to be a dummy pointer.
+ if out is None:
+ # Fill in dummy object pointers for those objects without any inputs or
+ # tracking outcomes on this frame (only do it under `run_mem_encoder=True`,
+ # i.e. when we need to build the memory for tracking).
+ if run_mem_encoder:
+ if empty_mask_ptr is None:
+ empty_mask_ptr = self._get_empty_mask_ptr(
+ inference_state, frame_idx
+ )
+ # fill object pointer with a dummy pointer (based on an empty mask)
+ consolidated_out["obj_ptr"][obj_idx : obj_idx + 1] = empty_mask_ptr
+ continue
+ # Add the temporary object output mask to consolidated output mask
+ obj_mask = out["pred_masks"]
+ consolidated_pred_masks = consolidated_out[consolidated_mask_key]
+ if obj_mask.shape[-2:] == consolidated_pred_masks.shape[-2:]:
+ consolidated_pred_masks[obj_idx : obj_idx + 1] = obj_mask
+ else:
+ # Resize first if temporary object mask has a different resolution
+ resized_obj_mask = torch.nn.functional.interpolate(
+ obj_mask,
+ size=consolidated_pred_masks.shape[-2:],
+ mode="bilinear",
+ align_corners=False,
+ )
+ consolidated_pred_masks[obj_idx : obj_idx + 1] = resized_obj_mask
+ consolidated_out["obj_ptr"][obj_idx : obj_idx + 1] = out["obj_ptr"]
+ consolidated_out["object_score_logits"][obj_idx : obj_idx + 1] = out[
+ "object_score_logits"
+ ]
+
+ # Optionally, apply non-overlapping constraints on the consolidated scores
+ # and rerun the memory encoder
+ if run_mem_encoder:
+ device = inference_state["device"]
+ high_res_masks = torch.nn.functional.interpolate(
+ consolidated_out["pred_masks"].to(device, non_blocking=True),
+ size=(self.image_size, self.image_size),
+ mode="bilinear",
+ align_corners=False,
+ )
+ if self.non_overlap_masks_for_mem_enc:
+ high_res_masks = self._apply_non_overlapping_constraints(high_res_masks)
+ maskmem_features, maskmem_pos_enc = self._run_memory_encoder(
+ inference_state=inference_state,
+ frame_idx=frame_idx,
+ batch_size=batch_size,
+ high_res_masks=high_res_masks,
+ object_score_logits=consolidated_out["object_score_logits"],
+ is_mask_from_pts=True, # these frames are what the user interacted with
+ )
+ consolidated_out["maskmem_features"] = maskmem_features
+ consolidated_out["maskmem_pos_enc"] = maskmem_pos_enc
+
+ return consolidated_out
+
+ def _get_empty_mask_ptr(self, inference_state, frame_idx):
+ """Get a dummy object pointer based on an empty mask on the current frame."""
+ # A dummy (empty) mask with a single object
+ batch_size = 1
+ mask_inputs = torch.zeros(
+ (batch_size, 1, self.image_size, self.image_size),
+ dtype=torch.float32,
+ device=inference_state["device"],
+ )
+
+ # Retrieve correct image features
+ (
+ _,
+ _,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ ) = self._get_image_feature(inference_state, frame_idx, batch_size)
+
+ # Feed the empty mask and image feature above to get a dummy object pointer
+ current_out = self.track_step(
+ frame_idx=frame_idx,
+ is_init_cond_frame=True,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=None,
+ mask_inputs=mask_inputs,
+ output_dict={},
+ num_frames=inference_state["num_frames"],
+ track_in_reverse=False,
+ run_mem_encoder=False,
+ prev_sam_mask_logits=None,
+ )
+ return current_out["obj_ptr"]
+
+ @torch.inference_mode()
+ def propagate_in_video_preflight(self, inference_state):
+ """Prepare inference_state and consolidate temporary outputs before tracking."""
+ # Tracking has started and we don't allow adding new objects until session is reset.
+ inference_state["tracking_has_started"] = True
+ batch_size = self._get_obj_num(inference_state)
+
+ # Consolidate per-object temporary outputs in "temp_output_dict_per_obj" and
+ # add them into "output_dict".
+ temp_output_dict_per_obj = inference_state["temp_output_dict_per_obj"]
+ output_dict = inference_state["output_dict"]
+ # "consolidated_frame_inds" contains indices of those frames where consolidated
+ # temporary outputs have been added (either in this call or any previous calls
+ # to `propagate_in_video_preflight`).
+ consolidated_frame_inds = inference_state["consolidated_frame_inds"]
+ for is_cond in [False, True]:
+ # Separately consolidate conditioning and non-conditioning temp outputs
+ storage_key = "cond_frame_outputs" if is_cond else "non_cond_frame_outputs"
+ # Find all the frames that contain temporary outputs for any objects
+ # (these should be the frames that have just received clicks for mask inputs
+ # via `add_new_points_or_box` or `add_new_mask`)
+ temp_frame_inds = set()
+ for obj_temp_output_dict in temp_output_dict_per_obj.values():
+ temp_frame_inds.update(obj_temp_output_dict[storage_key].keys())
+ consolidated_frame_inds[storage_key].update(temp_frame_inds)
+ # consolidate the temporary output across all objects on this frame
+ for frame_idx in temp_frame_inds:
+ consolidated_out = self._consolidate_temp_output_across_obj(
+ inference_state, frame_idx, is_cond=is_cond, run_mem_encoder=True
+ )
+ # merge them into "output_dict" and also create per-object slices
+ output_dict[storage_key][frame_idx] = consolidated_out
+ self._add_output_per_object(
+ inference_state, frame_idx, consolidated_out, storage_key
+ )
+ clear_non_cond_mem = self.clear_non_cond_mem_around_input and (
+ self.clear_non_cond_mem_for_multi_obj or batch_size <= 1
+ )
+ if clear_non_cond_mem:
+ # clear non-conditioning memory of the surrounding frames
+ self._clear_non_cond_mem_around_input(inference_state, frame_idx)
+
+ # clear temporary outputs in `temp_output_dict_per_obj`
+ for obj_temp_output_dict in temp_output_dict_per_obj.values():
+ obj_temp_output_dict[storage_key].clear()
+
+ # edge case: if an output is added to "cond_frame_outputs", we remove any prior
+ # output on the same frame in "non_cond_frame_outputs"
+ for frame_idx in output_dict["cond_frame_outputs"]:
+ output_dict["non_cond_frame_outputs"].pop(frame_idx, None)
+ for obj_output_dict in inference_state["output_dict_per_obj"].values():
+ for frame_idx in obj_output_dict["cond_frame_outputs"]:
+ obj_output_dict["non_cond_frame_outputs"].pop(frame_idx, None)
+ for frame_idx in consolidated_frame_inds["cond_frame_outputs"]:
+ assert frame_idx in output_dict["cond_frame_outputs"]
+ consolidated_frame_inds["non_cond_frame_outputs"].discard(frame_idx)
+
+ # Make sure that the frame indices in "consolidated_frame_inds" are exactly those frames
+ # with either points or mask inputs (which should be true under a correct workflow).
+ all_consolidated_frame_inds = (
+ consolidated_frame_inds["cond_frame_outputs"]
+ | consolidated_frame_inds["non_cond_frame_outputs"]
+ )
+ input_frames_inds = set()
+ for point_inputs_per_frame in inference_state["point_inputs_per_obj"].values():
+ input_frames_inds.update(point_inputs_per_frame.keys())
+ for mask_inputs_per_frame in inference_state["mask_inputs_per_obj"].values():
+ input_frames_inds.update(mask_inputs_per_frame.keys())
+ assert all_consolidated_frame_inds == input_frames_inds
+
+ @torch.inference_mode()
+ def propagate_in_video(
+ self,
+ inference_state,
+ start_frame_idx=None,
+ max_frame_num_to_track=None,
+ reverse=False,
+ ):
+ """Propagate the input points across frames to track in the entire video."""
+ self.propagate_in_video_preflight(inference_state)
+
+ output_dict = inference_state["output_dict"]
+ consolidated_frame_inds = inference_state["consolidated_frame_inds"]
+ obj_ids = inference_state["obj_ids"]
+ num_frames = inference_state["num_frames"]
+ batch_size = self._get_obj_num(inference_state)
+ if len(output_dict["cond_frame_outputs"]) == 0:
+ raise RuntimeError("No points are provided; please add points first")
+ clear_non_cond_mem = self.clear_non_cond_mem_around_input and (
+ self.clear_non_cond_mem_for_multi_obj or batch_size <= 1
+ )
+
+ # set start index, end index, and processing order
+ if start_frame_idx is None:
+ # default: start from the earliest frame with input points
+ start_frame_idx = min(output_dict["cond_frame_outputs"])
+ if max_frame_num_to_track is None:
+ # default: track all the frames in the video
+ max_frame_num_to_track = num_frames
+ if reverse:
+ end_frame_idx = max(start_frame_idx - max_frame_num_to_track, 0)
+ if start_frame_idx > 0:
+ processing_order = range(start_frame_idx, end_frame_idx - 1, -1)
+ else:
+ processing_order = [] # skip reverse tracking if starting from frame 0
+ else:
+ end_frame_idx = min(
+ start_frame_idx + max_frame_num_to_track, num_frames - 1
+ )
+ processing_order = range(start_frame_idx, end_frame_idx + 1)
+
+ for frame_idx in tqdm(processing_order, desc="propagate in video"):
+ # We skip those frames already in consolidated outputs (these are frames
+ # that received input clicks or mask). Note that we cannot directly run
+ # batched forward on them via `_run_single_frame_inference` because the
+ # number of clicks on each object might be different.
+ if frame_idx in consolidated_frame_inds["cond_frame_outputs"]:
+ storage_key = "cond_frame_outputs"
+ current_out = output_dict[storage_key][frame_idx]
+ pred_masks = current_out["pred_masks"]
+ if clear_non_cond_mem:
+ # clear non-conditioning memory of the surrounding frames
+ self._clear_non_cond_mem_around_input(inference_state, frame_idx)
+ elif frame_idx in consolidated_frame_inds["non_cond_frame_outputs"]:
+ storage_key = "non_cond_frame_outputs"
+ current_out = output_dict[storage_key][frame_idx]
+ pred_masks = current_out["pred_masks"]
+ else:
+ storage_key = "non_cond_frame_outputs"
+ current_out, pred_masks = self._run_single_frame_inference(
+ inference_state=inference_state,
+ output_dict=output_dict,
+ frame_idx=frame_idx,
+ batch_size=batch_size,
+ is_init_cond_frame=False,
+ point_inputs=None,
+ mask_inputs=None,
+ reverse=reverse,
+ run_mem_encoder=True,
+ )
+ output_dict[storage_key][frame_idx] = current_out
+ # Create slices of per-object outputs for subsequent interaction with each
+ # individual object after tracking.
+ self._add_output_per_object(
+ inference_state, frame_idx, current_out, storage_key
+ )
+ inference_state["frames_already_tracked"][frame_idx] = {"reverse": reverse}
+
+ # Resize the output mask to the original video resolution (we directly use
+ # the mask scores on GPU for output to avoid any CPU conversion in between)
+ _, video_res_masks = self._get_orig_video_res_output(
+ inference_state, pred_masks
+ )
+ yield frame_idx, obj_ids, video_res_masks
+
+ def _add_output_per_object(
+ self, inference_state, frame_idx, current_out, storage_key
+ ):
+ """
+ Split a multi-object output into per-object output slices and add them into
+ `output_dict_per_obj`. The resulting slices share the same tensor storage.
+ """
+ maskmem_features = current_out["maskmem_features"]
+ assert maskmem_features is None or isinstance(maskmem_features, torch.Tensor)
+
+ maskmem_pos_enc = current_out["maskmem_pos_enc"]
+ assert maskmem_pos_enc is None or isinstance(maskmem_pos_enc, list)
+
+ output_dict_per_obj = inference_state["output_dict_per_obj"]
+ for obj_idx, obj_output_dict in output_dict_per_obj.items():
+ obj_slice = slice(obj_idx, obj_idx + 1)
+ obj_out = {
+ "maskmem_features": None,
+ "maskmem_pos_enc": None,
+ "pred_masks": current_out["pred_masks"][obj_slice],
+ "obj_ptr": current_out["obj_ptr"][obj_slice],
+ "object_score_logits": current_out["object_score_logits"][obj_slice],
+ }
+ if maskmem_features is not None:
+ obj_out["maskmem_features"] = maskmem_features[obj_slice]
+ if maskmem_pos_enc is not None:
+ obj_out["maskmem_pos_enc"] = [x[obj_slice] for x in maskmem_pos_enc]
+ obj_output_dict[storage_key][frame_idx] = obj_out
+
+ @torch.inference_mode()
+ def clear_all_prompts_in_frame(
+ self, inference_state, frame_idx, obj_id, need_output=True
+ ):
+ """Remove all input points or mask in a specific frame for a given object."""
+ obj_idx = self._obj_id_to_idx(inference_state, obj_id)
+
+ # Clear the conditioning information on the given frame
+ inference_state["point_inputs_per_obj"][obj_idx].pop(frame_idx, None)
+ inference_state["mask_inputs_per_obj"][obj_idx].pop(frame_idx, None)
+
+ temp_output_dict_per_obj = inference_state["temp_output_dict_per_obj"]
+ temp_output_dict_per_obj[obj_idx]["cond_frame_outputs"].pop(frame_idx, None)
+ temp_output_dict_per_obj[obj_idx]["non_cond_frame_outputs"].pop(frame_idx, None)
+
+ # Check and see if there are still any inputs left on this frame
+ batch_size = self._get_obj_num(inference_state)
+ frame_has_input = False
+ for obj_idx2 in range(batch_size):
+ if frame_idx in inference_state["point_inputs_per_obj"][obj_idx2]:
+ frame_has_input = True
+ break
+ if frame_idx in inference_state["mask_inputs_per_obj"][obj_idx2]:
+ frame_has_input = True
+ break
+
+ # If this frame has no remaining inputs for any objects, we further clear its
+ # conditioning frame status
+ if not frame_has_input:
+ output_dict = inference_state["output_dict"]
+ consolidated_frame_inds = inference_state["consolidated_frame_inds"]
+ consolidated_frame_inds["cond_frame_outputs"].discard(frame_idx)
+ consolidated_frame_inds["non_cond_frame_outputs"].discard(frame_idx)
+ # Remove the frame's conditioning output (possibly downgrading it to non-conditioning)
+ out = output_dict["cond_frame_outputs"].pop(frame_idx, None)
+ if out is not None:
+ # The frame is not a conditioning frame anymore since it's not receiving inputs,
+ # so we "downgrade" its output (if exists) to a non-conditioning frame output.
+ output_dict["non_cond_frame_outputs"][frame_idx] = out
+ inference_state["frames_already_tracked"].pop(frame_idx, None)
+ # Similarly, do it for the sliced output on each object.
+ for obj_idx2 in range(batch_size):
+ obj_output_dict = inference_state["output_dict_per_obj"][obj_idx2]
+ obj_out = obj_output_dict["cond_frame_outputs"].pop(frame_idx, None)
+ if obj_out is not None:
+ obj_output_dict["non_cond_frame_outputs"][frame_idx] = obj_out
+
+ # If all the conditioning frames have been removed, we also clear the tracking outputs
+ if len(output_dict["cond_frame_outputs"]) == 0:
+ self._reset_tracking_results(inference_state)
+
+ if not need_output:
+ return
+ # Finally, output updated masks per object (after removing the inputs above)
+ obj_ids = inference_state["obj_ids"]
+ is_cond = any(
+ frame_idx in obj_temp_output_dict["cond_frame_outputs"]
+ for obj_temp_output_dict in temp_output_dict_per_obj.values()
+ )
+ consolidated_out = self._consolidate_temp_output_across_obj(
+ inference_state,
+ frame_idx,
+ is_cond=is_cond,
+ run_mem_encoder=False,
+ consolidate_at_video_res=True,
+ )
+ _, video_res_masks = self._get_orig_video_res_output(
+ inference_state, consolidated_out["pred_masks_video_res"]
+ )
+ return frame_idx, obj_ids, video_res_masks
+
+ @torch.inference_mode()
+ def reset_state(self, inference_state):
+ """Remove all input points or mask in all frames throughout the video."""
+ self._reset_tracking_results(inference_state)
+ # Remove all object ids
+ inference_state["obj_id_to_idx"].clear()
+ inference_state["obj_idx_to_id"].clear()
+ inference_state["obj_ids"].clear()
+ inference_state["point_inputs_per_obj"].clear()
+ inference_state["mask_inputs_per_obj"].clear()
+ inference_state["output_dict_per_obj"].clear()
+ inference_state["temp_output_dict_per_obj"].clear()
+
+ def _reset_tracking_results(self, inference_state):
+ """Reset all tracking inputs and results across the videos."""
+ for v in inference_state["point_inputs_per_obj"].values():
+ v.clear()
+ for v in inference_state["mask_inputs_per_obj"].values():
+ v.clear()
+ for v in inference_state["output_dict_per_obj"].values():
+ v["cond_frame_outputs"].clear()
+ v["non_cond_frame_outputs"].clear()
+ for v in inference_state["temp_output_dict_per_obj"].values():
+ v["cond_frame_outputs"].clear()
+ v["non_cond_frame_outputs"].clear()
+ inference_state["output_dict"]["cond_frame_outputs"].clear()
+ inference_state["output_dict"]["non_cond_frame_outputs"].clear()
+ inference_state["consolidated_frame_inds"]["cond_frame_outputs"].clear()
+ inference_state["consolidated_frame_inds"]["non_cond_frame_outputs"].clear()
+ inference_state["tracking_has_started"] = False
+ inference_state["frames_already_tracked"].clear()
+
+ def _get_image_feature(self, inference_state, frame_idx, batch_size):
+ """Compute the image features on a given frame."""
+ # Look up in the cache first
+ image, backbone_out = inference_state["cached_features"].get(
+ frame_idx, (None, None)
+ )
+ if backbone_out is None:
+ # Cache miss -- we will run inference on a single image
+ device = inference_state["device"]
+ image = inference_state["images"][frame_idx].to(device).float().unsqueeze(0)
+ backbone_out = self.forward_image(image)
+ # Cache the most recent frame's feature (for repeated interactions with
+ # a frame; we can use an LRU cache for more frames in the future).
+ inference_state["cached_features"] = {frame_idx: (image, backbone_out)}
+
+ # expand the features to have the same dimension as the number of objects
+ expanded_image = image.expand(batch_size, -1, -1, -1)
+ expanded_backbone_out = {
+ "backbone_fpn": backbone_out["backbone_fpn"].copy(),
+ "vision_pos_enc": backbone_out["vision_pos_enc"].copy(),
+ }
+ for i, feat in enumerate(expanded_backbone_out["backbone_fpn"]):
+ expanded_backbone_out["backbone_fpn"][i] = feat.expand(
+ batch_size, -1, -1, -1
+ )
+ for i, pos in enumerate(expanded_backbone_out["vision_pos_enc"]):
+ pos = pos.expand(batch_size, -1, -1, -1)
+ expanded_backbone_out["vision_pos_enc"][i] = pos
+
+ features = self._prepare_backbone_features(expanded_backbone_out)
+ features = (expanded_image,) + features
+ return features
+
+ def _run_single_frame_inference(
+ self,
+ inference_state,
+ output_dict,
+ frame_idx,
+ batch_size,
+ is_init_cond_frame,
+ point_inputs,
+ mask_inputs,
+ reverse,
+ run_mem_encoder,
+ prev_sam_mask_logits=None,
+ ):
+ """Run tracking on a single frame based on current inputs and previous memory."""
+ # Retrieve correct image features
+ (
+ _,
+ _,
+ current_vision_feats,
+ current_vision_pos_embeds,
+ feat_sizes,
+ ) = self._get_image_feature(inference_state, frame_idx, batch_size)
+
+ # point and mask should not appear as input simultaneously on the same frame
+ assert point_inputs is None or mask_inputs is None
+ current_out = self.track_step(
+ frame_idx=frame_idx,
+ is_init_cond_frame=is_init_cond_frame,
+ current_vision_feats=current_vision_feats,
+ current_vision_pos_embeds=current_vision_pos_embeds,
+ feat_sizes=feat_sizes,
+ point_inputs=point_inputs,
+ mask_inputs=mask_inputs,
+ output_dict=output_dict,
+ num_frames=inference_state["num_frames"],
+ track_in_reverse=reverse,
+ run_mem_encoder=run_mem_encoder,
+ prev_sam_mask_logits=prev_sam_mask_logits,
+ )
+
+ # optionally offload the output to CPU memory to save GPU space
+ storage_device = inference_state["storage_device"]
+ maskmem_features = current_out["maskmem_features"]
+ if maskmem_features is not None:
+ maskmem_features = maskmem_features.to(torch.bfloat16)
+ maskmem_features = maskmem_features.to(storage_device, non_blocking=True)
+ pred_masks_gpu = current_out["pred_masks"]
+ # potentially fill holes in the predicted masks
+ if self.fill_hole_area > 0:
+ pred_masks_gpu = fill_holes_in_mask_scores(
+ pred_masks_gpu, self.fill_hole_area
+ )
+ pred_masks = pred_masks_gpu.to(storage_device, non_blocking=True)
+ # "maskmem_pos_enc" is the same across frames, so we only need to store one copy of it
+ maskmem_pos_enc = self._get_maskmem_pos_enc(inference_state, current_out)
+ # object pointer is a small tensor, so we always keep it on GPU memory for fast access
+ obj_ptr = current_out["obj_ptr"]
+ object_score_logits = current_out["object_score_logits"]
+ # make a compact version of this frame's output to reduce the state size
+ compact_current_out = {
+ "maskmem_features": maskmem_features,
+ "maskmem_pos_enc": maskmem_pos_enc,
+ "pred_masks": pred_masks,
+ "obj_ptr": obj_ptr,
+ "object_score_logits": object_score_logits,
+ }
+ return compact_current_out, pred_masks_gpu
+
+ def _run_memory_encoder(
+ self,
+ inference_state,
+ frame_idx,
+ batch_size,
+ high_res_masks,
+ object_score_logits,
+ is_mask_from_pts,
+ ):
+ """
+ Run the memory encoder on `high_res_masks`. This is usually after applying
+ non-overlapping constraints to object scores. Since their scores changed, their
+ memory also need to be computed again with the memory encoder.
+ """
+ # Retrieve correct image features
+ _, _, current_vision_feats, _, feat_sizes = self._get_image_feature(
+ inference_state, frame_idx, batch_size
+ )
+ maskmem_features, maskmem_pos_enc = self._encode_new_memory(
+ current_vision_feats=current_vision_feats,
+ feat_sizes=feat_sizes,
+ pred_masks_high_res=high_res_masks,
+ object_score_logits=object_score_logits,
+ is_mask_from_pts=is_mask_from_pts,
+ )
+
+ # optionally offload the output to CPU memory to save GPU space
+ storage_device = inference_state["storage_device"]
+ maskmem_features = maskmem_features.to(torch.bfloat16)
+ maskmem_features = maskmem_features.to(storage_device, non_blocking=True)
+ # "maskmem_pos_enc" is the same across frames, so we only need to store one copy of it
+ maskmem_pos_enc = self._get_maskmem_pos_enc(
+ inference_state, {"maskmem_pos_enc": maskmem_pos_enc}
+ )
+ return maskmem_features, maskmem_pos_enc
+
+ def _get_maskmem_pos_enc(self, inference_state, current_out):
+ """
+ `maskmem_pos_enc` is the same across frames and objects, so we cache it as
+ a constant in the inference session to reduce session storage size.
+ """
+ model_constants = inference_state["constants"]
+ # "out_maskmem_pos_enc" should be either a list of tensors or None
+ out_maskmem_pos_enc = current_out["maskmem_pos_enc"]
+ if out_maskmem_pos_enc is not None:
+ if "maskmem_pos_enc" not in model_constants:
+ assert isinstance(out_maskmem_pos_enc, list)
+ # only take the slice for one object, since it's same across objects
+ maskmem_pos_enc = [x[0:1].clone() for x in out_maskmem_pos_enc]
+ model_constants["maskmem_pos_enc"] = maskmem_pos_enc
+ else:
+ maskmem_pos_enc = model_constants["maskmem_pos_enc"]
+ # expand the cached maskmem_pos_enc to the actual batch size
+ batch_size = out_maskmem_pos_enc[0].size(0)
+ expanded_maskmem_pos_enc = [
+ x.expand(batch_size, -1, -1, -1) for x in maskmem_pos_enc
+ ]
+ else:
+ expanded_maskmem_pos_enc = None
+ return expanded_maskmem_pos_enc
+
+ @torch.inference_mode()
+ def remove_object(self, inference_state, obj_id, strict=False, need_output=True):
+ """
+ Remove an object id from the tracking state. If strict is True, we check whether
+ the object id actually exists and raise an error if it doesn't exist.
+ """
+ old_obj_idx_to_rm = inference_state["obj_id_to_idx"].get(obj_id, None)
+ updated_frames = []
+ # Check whether this object_id to remove actually exists and possibly raise an error.
+ if old_obj_idx_to_rm is None:
+ if not strict:
+ return inference_state["obj_ids"], updated_frames
+ raise RuntimeError(
+ f"Cannot remove object id {obj_id} as it doesn't exist. "
+ f"All existing object ids: {inference_state['obj_ids']}."
+ )
+
+ # If this is the only remaining object id, we simply reset the state.
+ if len(inference_state["obj_id_to_idx"]) == 1:
+ self.reset_state(inference_state)
+ return inference_state["obj_ids"], updated_frames
+
+ # There are still remaining objects after removing this object id. In this case,
+ # we need to delete the object storage from inference state tensors.
+ # Step 0: clear the input on those frames where this object id has point or mask input
+ # (note that this step is required as it might downgrade conditioning frames to
+ # non-conditioning ones)
+ obj_input_frames_inds = set()
+ obj_input_frames_inds.update(
+ inference_state["point_inputs_per_obj"][old_obj_idx_to_rm]
+ )
+ obj_input_frames_inds.update(
+ inference_state["mask_inputs_per_obj"][old_obj_idx_to_rm]
+ )
+ for frame_idx in obj_input_frames_inds:
+ self.clear_all_prompts_in_frame(
+ inference_state, frame_idx, obj_id, need_output=False
+ )
+
+ # Step 1: Update the object id mapping (note that it must be done after Step 0,
+ # since Step 0 still requires the old object id mappings in inference_state)
+ old_obj_ids = inference_state["obj_ids"]
+ old_obj_inds = list(range(len(old_obj_ids)))
+ remain_old_obj_inds = old_obj_inds.copy()
+ remain_old_obj_inds.remove(old_obj_idx_to_rm)
+ new_obj_ids = [old_obj_ids[old_idx] for old_idx in remain_old_obj_inds]
+ new_obj_inds = list(range(len(new_obj_ids)))
+ # build new mappings
+ old_idx_to_new_idx = dict(zip(remain_old_obj_inds, new_obj_inds))
+ inference_state["obj_id_to_idx"] = dict(zip(new_obj_ids, new_obj_inds))
+ inference_state["obj_idx_to_id"] = dict(zip(new_obj_inds, new_obj_ids))
+ inference_state["obj_ids"] = new_obj_ids
+
+ # Step 2: For per-object tensor storage, we shift their obj_idx in the dict keys.
+ # (note that "consolidated_frame_inds" doesn't need to be updated in this step as
+ # it's already handled in Step 0)
+ def _map_keys(container):
+ new_kvs = []
+ for k in old_obj_inds:
+ v = container.pop(k)
+ if k in old_idx_to_new_idx:
+ new_kvs.append((old_idx_to_new_idx[k], v))
+ container.update(new_kvs)
+
+ _map_keys(inference_state["point_inputs_per_obj"])
+ _map_keys(inference_state["mask_inputs_per_obj"])
+ _map_keys(inference_state["output_dict_per_obj"])
+ _map_keys(inference_state["temp_output_dict_per_obj"])
+
+ # Step 3: For packed tensor storage, we index the remaining ids and rebuild the per-object slices.
+ def _slice_state(output_dict, storage_key):
+ for frame_idx, out in output_dict[storage_key].items():
+ out["maskmem_features"] = out["maskmem_features"][remain_old_obj_inds]
+ out["maskmem_pos_enc"] = [
+ x[remain_old_obj_inds] for x in out["maskmem_pos_enc"]
+ ]
+ # "maskmem_pos_enc" is the same across frames, so we only need to store one copy of it
+ out["maskmem_pos_enc"] = self._get_maskmem_pos_enc(inference_state, out)
+ out["pred_masks"] = out["pred_masks"][remain_old_obj_inds]
+ out["obj_ptr"] = out["obj_ptr"][remain_old_obj_inds]
+ out["object_score_logits"] = out["object_score_logits"][
+ remain_old_obj_inds
+ ]
+ # also update the per-object slices
+ self._add_output_per_object(
+ inference_state, frame_idx, out, storage_key
+ )
+
+ _slice_state(inference_state["output_dict"], "cond_frame_outputs")
+ _slice_state(inference_state["output_dict"], "non_cond_frame_outputs")
+
+ # Step 4: Further collect the outputs on those frames in `obj_input_frames_inds`, which
+ # could show an updated mask for objects previously occluded by the object being removed
+ if need_output:
+ temp_output_dict_per_obj = inference_state["temp_output_dict_per_obj"]
+ for frame_idx in obj_input_frames_inds:
+ is_cond = any(
+ frame_idx in obj_temp_output_dict["cond_frame_outputs"]
+ for obj_temp_output_dict in temp_output_dict_per_obj.values()
+ )
+ consolidated_out = self._consolidate_temp_output_across_obj(
+ inference_state,
+ frame_idx,
+ is_cond=is_cond,
+ run_mem_encoder=False,
+ consolidate_at_video_res=True,
+ )
+ _, video_res_masks = self._get_orig_video_res_output(
+ inference_state, consolidated_out["pred_masks_video_res"]
+ )
+ updated_frames.append((frame_idx, video_res_masks))
+
+ return inference_state["obj_ids"], updated_frames
+
+ def _clear_non_cond_mem_around_input(self, inference_state, frame_idx):
+ """
+ Remove the non-conditioning memory around the input frame. When users provide
+ correction clicks, the surrounding frames' non-conditioning memories can still
+ contain outdated object appearance information and could confuse the model.
+
+ This method clears those non-conditioning memories surrounding the interacted
+ frame to avoid giving the model both old and new information about the object.
+ """
+ r = self.memory_temporal_stride_for_eval
+ frame_idx_begin = frame_idx - r * self.num_maskmem
+ frame_idx_end = frame_idx + r * self.num_maskmem
+ output_dict = inference_state["output_dict"]
+ non_cond_frame_outputs = output_dict["non_cond_frame_outputs"]
+ for t in range(frame_idx_begin, frame_idx_end + 1):
+ non_cond_frame_outputs.pop(t, None)
+ for obj_output_dict in inference_state["output_dict_per_obj"].values():
+ obj_output_dict["non_cond_frame_outputs"].pop(t, None)
diff --git a/ref-avs.code/model/visual/sam2/utils/amg.py b/ref-avs.code/model/visual/sam2/utils/amg.py
new file mode 100644
index 0000000000000000000000000000000000000000..986842960cf5deca00614b7b1cde1ab77dad7e6e
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/utils/amg.py
@@ -0,0 +1,348 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import math
+from copy import deepcopy
+from itertools import product
+from typing import Any, Dict, Generator, ItemsView, List, Tuple
+
+import numpy as np
+import torch
+
+# Very lightly adapted from https://github.com/facebookresearch/segment-anything/blob/main/segment_anything/utils/amg.py
+
+
+class MaskData:
+ """
+ A structure for storing masks and their related data in batched format.
+ Implements basic filtering and concatenation.
+ """
+
+ def __init__(self, **kwargs) -> None:
+ for v in kwargs.values():
+ assert isinstance(
+ v, (list, np.ndarray, torch.Tensor)
+ ), "MaskData only supports list, numpy arrays, and torch tensors."
+ self._stats = dict(**kwargs)
+
+ def __setitem__(self, key: str, item: Any) -> None:
+ assert isinstance(
+ item, (list, np.ndarray, torch.Tensor)
+ ), "MaskData only supports list, numpy arrays, and torch tensors."
+ self._stats[key] = item
+
+ def __delitem__(self, key: str) -> None:
+ del self._stats[key]
+
+ def __getitem__(self, key: str) -> Any:
+ return self._stats[key]
+
+ def items(self) -> ItemsView[str, Any]:
+ return self._stats.items()
+
+ def filter(self, keep: torch.Tensor) -> None:
+ for k, v in self._stats.items():
+ if v is None:
+ self._stats[k] = None
+ elif isinstance(v, torch.Tensor):
+ self._stats[k] = v[torch.as_tensor(keep, device=v.device)]
+ elif isinstance(v, np.ndarray):
+ self._stats[k] = v[keep.detach().cpu().numpy()]
+ elif isinstance(v, list) and keep.dtype == torch.bool:
+ self._stats[k] = [a for i, a in enumerate(v) if keep[i]]
+ elif isinstance(v, list):
+ self._stats[k] = [v[i] for i in keep]
+ else:
+ raise TypeError(f"MaskData key {k} has an unsupported type {type(v)}.")
+
+ def cat(self, new_stats: "MaskData") -> None:
+ for k, v in new_stats.items():
+ if k not in self._stats or self._stats[k] is None:
+ self._stats[k] = deepcopy(v)
+ elif isinstance(v, torch.Tensor):
+ self._stats[k] = torch.cat([self._stats[k], v], dim=0)
+ elif isinstance(v, np.ndarray):
+ self._stats[k] = np.concatenate([self._stats[k], v], axis=0)
+ elif isinstance(v, list):
+ self._stats[k] = self._stats[k] + deepcopy(v)
+ else:
+ raise TypeError(f"MaskData key {k} has an unsupported type {type(v)}.")
+
+ def to_numpy(self) -> None:
+ for k, v in self._stats.items():
+ if isinstance(v, torch.Tensor):
+ self._stats[k] = v.float().detach().cpu().numpy()
+
+
+def is_box_near_crop_edge(
+ boxes: torch.Tensor, crop_box: List[int], orig_box: List[int], atol: float = 20.0
+) -> torch.Tensor:
+ """Filter masks at the edge of a crop, but not at the edge of the original image."""
+ crop_box_torch = torch.as_tensor(crop_box, dtype=torch.float, device=boxes.device)
+ orig_box_torch = torch.as_tensor(orig_box, dtype=torch.float, device=boxes.device)
+ boxes = uncrop_boxes_xyxy(boxes, crop_box).float()
+ near_crop_edge = torch.isclose(boxes, crop_box_torch[None, :], atol=atol, rtol=0)
+ near_image_edge = torch.isclose(boxes, orig_box_torch[None, :], atol=atol, rtol=0)
+ near_crop_edge = torch.logical_and(near_crop_edge, ~near_image_edge)
+ return torch.any(near_crop_edge, dim=1)
+
+
+def box_xyxy_to_xywh(box_xyxy: torch.Tensor) -> torch.Tensor:
+ box_xywh = deepcopy(box_xyxy)
+ box_xywh[2] = box_xywh[2] - box_xywh[0]
+ box_xywh[3] = box_xywh[3] - box_xywh[1]
+ return box_xywh
+
+
+def batch_iterator(batch_size: int, *args) -> Generator[List[Any], None, None]:
+ assert len(args) > 0 and all(
+ len(a) == len(args[0]) for a in args
+ ), "Batched iteration must have inputs of all the same size."
+ n_batches = len(args[0]) // batch_size + int(len(args[0]) % batch_size != 0)
+ for b in range(n_batches):
+ yield [arg[b * batch_size : (b + 1) * batch_size] for arg in args]
+
+
+def mask_to_rle_pytorch(tensor: torch.Tensor) -> List[Dict[str, Any]]:
+ """
+ Encodes masks to an uncompressed RLE, in the format expected by
+ pycoco tools.
+ """
+ # Put in fortran order and flatten h,w
+ b, h, w = tensor.shape
+ tensor = tensor.permute(0, 2, 1).flatten(1)
+
+ # Compute change indices
+ diff = tensor[:, 1:] ^ tensor[:, :-1]
+ change_indices = diff.nonzero()
+
+ # Encode run length
+ out = []
+ for i in range(b):
+ cur_idxs = change_indices[change_indices[:, 0] == i, 1]
+ cur_idxs = torch.cat(
+ [
+ torch.tensor([0], dtype=cur_idxs.dtype, device=cur_idxs.device),
+ cur_idxs + 1,
+ torch.tensor([h * w], dtype=cur_idxs.dtype, device=cur_idxs.device),
+ ]
+ )
+ btw_idxs = cur_idxs[1:] - cur_idxs[:-1]
+ counts = [] if tensor[i, 0] == 0 else [0]
+ counts.extend(btw_idxs.detach().cpu().tolist())
+ out.append({"size": [h, w], "counts": counts})
+ return out
+
+
+def rle_to_mask(rle: Dict[str, Any]) -> np.ndarray:
+ """Compute a binary mask from an uncompressed RLE."""
+ h, w = rle["size"]
+ mask = np.empty(h * w, dtype=bool)
+ idx = 0
+ parity = False
+ for count in rle["counts"]:
+ mask[idx : idx + count] = parity
+ idx += count
+ parity ^= True
+ mask = mask.reshape(w, h)
+ return mask.transpose() # Put in C order
+
+
+def area_from_rle(rle: Dict[str, Any]) -> int:
+ return sum(rle["counts"][1::2])
+
+
+def calculate_stability_score(
+ masks: torch.Tensor, mask_threshold: float, threshold_offset: float
+) -> torch.Tensor:
+ """
+ Computes the stability score for a batch of masks. The stability
+ score is the IoU between the binary masks obtained by thresholding
+ the predicted mask logits at high and low values.
+ """
+ # One mask is always contained inside the other.
+ # Save memory by preventing unnecessary cast to torch.int64
+ intersections = (
+ (masks > (mask_threshold + threshold_offset))
+ .sum(-1, dtype=torch.int16)
+ .sum(-1, dtype=torch.int32)
+ )
+ unions = (
+ (masks > (mask_threshold - threshold_offset))
+ .sum(-1, dtype=torch.int16)
+ .sum(-1, dtype=torch.int32)
+ )
+ return intersections / unions
+
+
+def build_point_grid(n_per_side: int) -> np.ndarray:
+ """Generates a 2D grid of points evenly spaced in [0,1]x[0,1]."""
+ offset = 1 / (2 * n_per_side)
+ points_one_side = np.linspace(offset, 1 - offset, n_per_side)
+ points_x = np.tile(points_one_side[None, :], (n_per_side, 1))
+ points_y = np.tile(points_one_side[:, None], (1, n_per_side))
+ points = np.stack([points_x, points_y], axis=-1).reshape(-1, 2)
+ return points
+
+
+def build_all_layer_point_grids(
+ n_per_side: int, n_layers: int, scale_per_layer: int
+) -> List[np.ndarray]:
+ """Generates point grids for all crop layers."""
+ points_by_layer = []
+ for i in range(n_layers + 1):
+ n_points = int(n_per_side / (scale_per_layer**i))
+ points_by_layer.append(build_point_grid(n_points))
+ return points_by_layer
+
+
+def generate_crop_boxes(
+ im_size: Tuple[int, ...], n_layers: int, overlap_ratio: float
+) -> Tuple[List[List[int]], List[int]]:
+ """
+ Generates a list of crop boxes of different sizes. Each layer
+ has (2**i)**2 boxes for the ith layer.
+ """
+ crop_boxes, layer_idxs = [], []
+ im_h, im_w = im_size
+ short_side = min(im_h, im_w)
+
+ # Original image
+ crop_boxes.append([0, 0, im_w, im_h])
+ layer_idxs.append(0)
+
+ def crop_len(orig_len, n_crops, overlap):
+ return int(math.ceil((overlap * (n_crops - 1) + orig_len) / n_crops))
+
+ for i_layer in range(n_layers):
+ n_crops_per_side = 2 ** (i_layer + 1)
+ overlap = int(overlap_ratio * short_side * (2 / n_crops_per_side))
+
+ crop_w = crop_len(im_w, n_crops_per_side, overlap)
+ crop_h = crop_len(im_h, n_crops_per_side, overlap)
+
+ crop_box_x0 = [int((crop_w - overlap) * i) for i in range(n_crops_per_side)]
+ crop_box_y0 = [int((crop_h - overlap) * i) for i in range(n_crops_per_side)]
+
+ # Crops in XYWH format
+ for x0, y0 in product(crop_box_x0, crop_box_y0):
+ box = [x0, y0, min(x0 + crop_w, im_w), min(y0 + crop_h, im_h)]
+ crop_boxes.append(box)
+ layer_idxs.append(i_layer + 1)
+
+ return crop_boxes, layer_idxs
+
+
+def uncrop_boxes_xyxy(boxes: torch.Tensor, crop_box: List[int]) -> torch.Tensor:
+ x0, y0, _, _ = crop_box
+ offset = torch.tensor([[x0, y0, x0, y0]], device=boxes.device)
+ # Check if boxes has a channel dimension
+ if len(boxes.shape) == 3:
+ offset = offset.unsqueeze(1)
+ return boxes + offset
+
+
+def uncrop_points(points: torch.Tensor, crop_box: List[int]) -> torch.Tensor:
+ x0, y0, _, _ = crop_box
+ offset = torch.tensor([[x0, y0]], device=points.device)
+ # Check if points has a channel dimension
+ if len(points.shape) == 3:
+ offset = offset.unsqueeze(1)
+ return points + offset
+
+
+def uncrop_masks(
+ masks: torch.Tensor, crop_box: List[int], orig_h: int, orig_w: int
+) -> torch.Tensor:
+ x0, y0, x1, y1 = crop_box
+ if x0 == 0 and y0 == 0 and x1 == orig_w and y1 == orig_h:
+ return masks
+ # Coordinate transform masks
+ pad_x, pad_y = orig_w - (x1 - x0), orig_h - (y1 - y0)
+ pad = (x0, pad_x - x0, y0, pad_y - y0)
+ return torch.nn.functional.pad(masks, pad, value=0)
+
+
+def remove_small_regions(
+ mask: np.ndarray, area_thresh: float, mode: str
+) -> Tuple[np.ndarray, bool]:
+ """
+ Removes small disconnected regions and holes in a mask. Returns the
+ mask and an indicator of if the mask has been modified.
+ """
+ import cv2 # type: ignore
+
+ assert mode in ["holes", "islands"]
+ correct_holes = mode == "holes"
+ working_mask = (correct_holes ^ mask).astype(np.uint8)
+ n_labels, regions, stats, _ = cv2.connectedComponentsWithStats(working_mask, 8)
+ sizes = stats[:, -1][1:] # Row 0 is background label
+ small_regions = [i + 1 for i, s in enumerate(sizes) if s < area_thresh]
+ if len(small_regions) == 0:
+ return mask, False
+ fill_labels = [0] + small_regions
+ if not correct_holes:
+ fill_labels = [i for i in range(n_labels) if i not in fill_labels]
+ # If every region is below threshold, keep largest
+ if len(fill_labels) == 0:
+ fill_labels = [int(np.argmax(sizes)) + 1]
+ mask = np.isin(regions, fill_labels)
+ return mask, True
+
+
+def coco_encode_rle(uncompressed_rle: Dict[str, Any]) -> Dict[str, Any]:
+ from pycocotools import mask as mask_utils # type: ignore
+
+ h, w = uncompressed_rle["size"]
+ rle = mask_utils.frPyObjects(uncompressed_rle, h, w)
+ rle["counts"] = rle["counts"].decode("utf-8") # Necessary to serialize with json
+ return rle
+
+
+def batched_mask_to_box(masks: torch.Tensor) -> torch.Tensor:
+ """
+ Calculates boxes in XYXY format around masks. Return [0,0,0,0] for
+ an empty mask. For input shape C1xC2x...xHxW, the output shape is C1xC2x...x4.
+ """
+ # torch.max below raises an error on empty inputs, just skip in this case
+ if torch.numel(masks) == 0:
+ return torch.zeros(*masks.shape[:-2], 4, device=masks.device)
+
+ # Normalize shape to CxHxW
+ shape = masks.shape
+ h, w = shape[-2:]
+ if len(shape) > 2:
+ masks = masks.flatten(0, -3)
+ else:
+ masks = masks.unsqueeze(0)
+
+ # Get top and bottom edges
+ in_height, _ = torch.max(masks, dim=-1)
+ in_height_coords = in_height * torch.arange(h, device=in_height.device)[None, :]
+ bottom_edges, _ = torch.max(in_height_coords, dim=-1)
+ in_height_coords = in_height_coords + h * (~in_height)
+ top_edges, _ = torch.min(in_height_coords, dim=-1)
+
+ # Get left and right edges
+ in_width, _ = torch.max(masks, dim=-2)
+ in_width_coords = in_width * torch.arange(w, device=in_width.device)[None, :]
+ right_edges, _ = torch.max(in_width_coords, dim=-1)
+ in_width_coords = in_width_coords + w * (~in_width)
+ left_edges, _ = torch.min(in_width_coords, dim=-1)
+
+ # If the mask is empty the right edge will be to the left of the left edge.
+ # Replace these boxes with [0, 0, 0, 0]
+ empty_filter = (right_edges < left_edges) | (bottom_edges < top_edges)
+ out = torch.stack([left_edges, top_edges, right_edges, bottom_edges], dim=-1)
+ out = out * (~empty_filter).unsqueeze(-1)
+
+ # Return to original shape
+ if len(shape) > 2:
+ out = out.reshape(*shape[:-2], 4)
+ else:
+ out = out[0]
+
+ return out
diff --git a/ref-avs.code/model/visual/sam2/utils/misc.py b/ref-avs.code/model/visual/sam2/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..b65ee825732ff85137805be650edd4cbe8e6f6d4
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/utils/misc.py
@@ -0,0 +1,349 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
diff --git a/ref-avs.code/model/visual/sam2/utils/transforms.py b/ref-avs.code/model/visual/sam2/utils/transforms.py
new file mode 100644
index 0000000000000000000000000000000000000000..6d4fa6a3e4d2e2a0dde7f87e4991daff338467c4
--- /dev/null
+++ b/ref-avs.code/model/visual/sam2/utils/transforms.py
@@ -0,0 +1,118 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import warnings
+
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+from torchvision.transforms import Normalize, Resize, ToTensor
+
+
+class SAM2Transforms(nn.Module):
+ def __init__(
+ self, resolution, mask_threshold, max_hole_area=0.0, max_sprinkle_area=0.0
+ ):
+ """
+ Transforms for SAM2.
+ """
+ super().__init__()
+ self.resolution = resolution
+ self.mask_threshold = mask_threshold
+ self.max_hole_area = max_hole_area
+ self.max_sprinkle_area = max_sprinkle_area
+ self.mean = [0.485, 0.456, 0.406]
+ self.std = [0.229, 0.224, 0.225]
+ self.to_tensor = ToTensor()
+ self.transforms = torch.jit.script(
+ nn.Sequential(
+ Resize((self.resolution, self.resolution)),
+ Normalize(self.mean, self.std),
+ )
+ )
+
+ def __call__(self, x):
+ x = self.to_tensor(x)
+ return self.transforms(x)
+
+ def forward_batch(self, img_list):
+ img_batch = [self.transforms(self.to_tensor(img)) for img in img_list]
+ img_batch = torch.stack(img_batch, dim=0)
+ return img_batch
+
+ def transform_coords(
+ self, coords: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a torch tensor with length 2 in the last dimension. The coordinates can be in absolute image or normalized coordinates,
+ If the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+
+ Returns
+ Un-normalized coordinates in the range of [0, 1] which is expected by the SAM2 model.
+ """
+ if normalize:
+ assert orig_hw is not None
+ h, w = orig_hw
+ coords = coords.clone()
+ coords[..., 0] = coords[..., 0] / w
+ coords[..., 1] = coords[..., 1] / h
+
+ coords = coords * self.resolution # unnormalize coords
+ return coords
+
+ def transform_boxes(
+ self, boxes: torch.Tensor, normalize=False, orig_hw=None
+ ) -> torch.Tensor:
+ """
+ Expects a tensor of shape Bx4. The coordinates can be in absolute image or normalized coordinates,
+ if the coords are in absolute image coordinates, normalize should be set to True and original image size is required.
+ """
+ boxes = self.transform_coords(boxes.reshape(-1, 2, 2), normalize, orig_hw)
+ return boxes
+
+ def postprocess_masks(self, masks: torch.Tensor, orig_hw) -> torch.Tensor:
+ """
+ Perform PostProcessing on output masks.
+ """
+ from model.visual.sam2.utils.misc import get_connected_components
+
+ masks = masks.float()
+ input_masks = masks
+ mask_flat = masks.flatten(0, 1).unsqueeze(1) # flatten as 1-channel image
+ try:
+ if self.max_hole_area > 0:
+ # Holes are those connected components in background with area <= self.fill_hole_area
+ # (background regions are those with mask scores <= self.mask_threshold)
+ labels, areas = get_connected_components(
+ mask_flat <= self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_hole_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with a small positive mask score (10.0) to change them to foreground.
+ masks = torch.where(is_hole, self.mask_threshold + 10.0, masks)
+
+ if self.max_sprinkle_area > 0:
+ labels, areas = get_connected_components(
+ mask_flat > self.mask_threshold
+ )
+ is_hole = (labels > 0) & (areas <= self.max_sprinkle_area)
+ is_hole = is_hole.reshape_as(masks)
+ # We fill holes with negative mask score (-10.0) to change them to background.
+ masks = torch.where(is_hole, self.mask_threshold - 10.0, masks)
+ except Exception as e:
+ # Skip the post-processing step if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ masks = input_masks
+
+ masks = F.interpolate(masks, orig_hw, mode="bilinear", align_corners=False)
+ return masks
diff --git a/ref-avs.code/requirements.txt b/ref-avs.code/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3f016b081293b4373ec8f982984f99f828375d0b
--- /dev/null
+++ b/ref-avs.code/requirements.txt
@@ -0,0 +1,4 @@
+# Incremental updates only (newly installed in this session)
+transformers==5.6.2
+audiomentations==0.39.0
+wandb==0.26.1
diff --git a/ref-avs.code/tools/remap_aural_ckpt_keys.py b/ref-avs.code/tools/remap_aural_ckpt_keys.py
new file mode 100644
index 0000000000000000000000000000000000000000..8f96ba921661cc71eabec797d9b7cceceab482fc
--- /dev/null
+++ b/ref-avs.code/tools/remap_aural_ckpt_keys.py
@@ -0,0 +1,213 @@
+#!/usr/bin/env python3
+"""
+Remap legacy Ref-AVS / AVS checkpoints to the current AuralFuser key layout.
+
+Supports:
+ - Full-model ckpt with ``aural_fuser.training_layers.*`` / ``finetuning_layers.*``
+ (old PromptAudio ModuleList layout)
+ - ``audio_prompter.*`` + ``train_*`` names (older AVS exports)
+ - Already-remapped ``patch_embeds.*``, ``f_blocks.*``, etc. (passed through)
+
+Usage (from repo root or ref-avs.code):
+
+ python ref-avs.code/tools/remap_aural_ckpt_keys.py \\
+ ckpts/exp/ref-hiera-l/s\\(0.59\\)_u\\(0.68\\).pth \\
+ -o ckpts/exp/ref-hiera-l/remapped.pth
+
+Then inference:
+
+ python ref-avs.code/inference.py --gpus 1 \\
+ --inference_ckpt ckpts/exp/ref-hiera-l/remapped.pth
+"""
+from __future__ import annotations
+
+import argparse
+import re
+import shutil
+from pathlib import Path
+
+import torch
+
+# Old ``training_layers`` append order in legacy PromptAudio.__init__
+_TRAINING_LAYERS_INDEX_MAP: dict[int, str] = {
+ 0: "patch_embeds.0",
+ 1: "patch_embeds.1",
+ 2: "patch_embeds.2",
+ 3: "f_blocks.0",
+ 4: "a_blocks.0",
+ 5: "fusion_modules.0",
+ 6: "f_blocks.1",
+ 7: "a_blocks.1",
+ 8: "fusion_modules.1",
+ 9: "f_blocks.2",
+ 10: "a_blocks.2",
+ 11: "fusion_modules.2",
+ 12: "smooth_convs.0",
+ 13: "smooth_convs.1",
+ 14: "train_proj_v1",
+ 15: "train_proj_a1",
+ 16: "text_proj",
+}
+
+# Flat ``train_*`` renames (audio_prompter / some aural_fuser exports)
+_FLAT_REPLACEMENTS: list[tuple[str, str]] = [
+ ("train_f_patch_embed1", "patch_embeds.0"),
+ ("train_f_patch_embed2", "patch_embeds.1"),
+ ("train_f_patch_embed3", "patch_embeds.2"),
+ ("train_f_a_block1", "fusion_modules.0"),
+ ("train_f_a_block2", "fusion_modules.1"),
+ ("train_f_a_block3", "fusion_modules.2"),
+ ("train_f_block1", "f_blocks.0"),
+ ("train_f_block2", "f_blocks.1"),
+ ("train_f_block3", "f_blocks.2"),
+ ("train_a_block1", "a_blocks.0"),
+ ("train_a_block2", "a_blocks.1"),
+ ("train_a_block3", "a_blocks.2"),
+ ("train_smooth1", "smooth_convs.0"),
+ ("train_smooth2", "smooth_convs.1"),
+]
+
+_RE_TRAINING_LAYER = re.compile(r"^(?P(?:aural_fuser|audio_prompter))\.training_layers\.(\d+)\.(?P.+)$")
+_RE_FINETUNING_LAYER = re.compile(
+ r"^(?P(?:aural_fuser|audio_prompter))\.finetuning_layers\.0\.(?P.+)$"
+)
+
+
+def _apply_flat_renames(key: str) -> str:
+ for old, new in _FLAT_REPLACEMENTS:
+ key = key.replace(old, new)
+ return key
+
+
+def _remap_key(key: str) -> str | None:
+ """Return new key, or None to drop the entry."""
+ m = _RE_FINETUNING_LAYER.match(key)
+ if m:
+ prefix = "aural_fuser" if m.group("prefix") == "audio_prompter" else m.group("prefix")
+ return f"{prefix}.vgg.{m.group('rest')}"
+
+ m = _RE_TRAINING_LAYER.match(key)
+ if m:
+ prefix = "aural_fuser" if m.group("prefix") == "audio_prompter" else m.group("prefix")
+ idx = int(m.group(2))
+ rest = m.group("rest")
+ target = _TRAINING_LAYERS_INDEX_MAP.get(idx)
+ if target is None:
+ return None
+ return f"{prefix}.{target}.{rest}"
+
+ if key.startswith("audio_prompter."):
+ if ".training_layers." in key or ".finetuning_layers." in key:
+ return None
+ key = key.replace("audio_prompter.", "aural_fuser.", 1)
+ return _apply_flat_renames(key)
+
+ if ".training_layers." in key or ".finetuning_layers." in key:
+ return None
+
+ if key.startswith("aural_fuser."):
+ return _apply_flat_renames(key)
+
+ return key
+
+
+def remap_state_dict(sd: dict) -> dict:
+ out: dict = {}
+ dropped = 0
+ remapped = 0
+ skip_finetuning = any(k.startswith("aural_fuser.vgg.") for k in sd)
+ for k, v in sd.items():
+ if skip_finetuning and "finetuning_layers." in k:
+ dropped += 1
+ continue
+ nk = _remap_key(k)
+ if nk is None:
+ dropped += 1
+ continue
+ if nk != k:
+ remapped += 1
+ if nk in out:
+ dropped += 1
+ continue
+ out[nk] = v
+ print(f"Remapped keys: {remapped}, dropped: {dropped}")
+ return out
+
+
+def _summarize(sd: dict) -> None:
+ prefixes = (
+ "v_model.",
+ "aural_fuser.patch_embeds",
+ "aural_fuser.f_blocks",
+ "aural_fuser.vgg",
+ "aural_fuser.text_proj",
+ "t_model.",
+ )
+ for p in prefixes:
+ n = sum(1 for k in sd if k.startswith(p))
+ if n:
+ print(f" {p}* -> {n} keys")
+ legacy = sum(
+ 1 for k in sd
+ if "training_layers" in k or "finetuning_layers" in k or "train_f_patch" in k
+ )
+ if legacy:
+ print(f" WARNING: {legacy} legacy keys remain")
+
+
+def main() -> None:
+ ap = argparse.ArgumentParser(description="Remap legacy AuralFuser / full-model checkpoint keys")
+ ap.add_argument("ckpt", type=Path, help="Input .pth state_dict")
+ ap.add_argument("-o", "--output", type=Path, default=None, help="Output .pth (default: _remapped.pth)")
+ ap.add_argument("--in-place", action="store_true", help="Overwrite input (creates .bak unless --no-backup)")
+ ap.add_argument("--no-backup", action="store_true")
+ ap.add_argument(
+ "--aural-fuser-only", action="store_true",
+ help="Keep only aural_fuser.* (for aural_fuser-only inference ckpt)",
+ )
+ args = ap.parse_args()
+
+ ckpt_path = args.ckpt.resolve()
+ if not ckpt_path.is_file():
+ raise SystemExit(f"File not found: {ckpt_path}")
+
+ print(f"Loading: {ckpt_path}")
+ sd = torch.load(ckpt_path, map_location="cpu", weights_only=False)
+ if not isinstance(sd, dict):
+ raise SystemExit("Expected top-level checkpoint to be a state_dict dict")
+
+ n_legacy = sum(
+ 1 for k in sd
+ if "training_layers." in k or "finetuning_layers." in k
+ )
+ if n_legacy == 0:
+ print("Note: no training_layers / finetuning_layers keys; file may already be remapped.")
+
+ new_sd = remap_state_dict(sd)
+ if args.aural_fuser_only:
+ stripped = {}
+ for k, v in new_sd.items():
+ if not k.startswith("aural_fuser."):
+ continue
+ stripped[k[len("aural_fuser."):]] = v
+ new_sd = stripped
+ print(f"aural-fuser-only (no prefix, for inference.py): {len(new_sd)} keys")
+
+ print("Summary:")
+ _summarize(new_sd)
+
+ if args.in_place:
+ out = ckpt_path
+ if not args.no_backup:
+ bak = ckpt_path.with_suffix(ckpt_path.suffix + ".bak")
+ print(f"Backup -> {bak}")
+ shutil.copy2(ckpt_path, bak)
+ else:
+ out = args.output or ckpt_path.with_name(ckpt_path.suffix.replace(".pth", "") + "_remapped.pth")
+
+ torch.save(new_sd, out)
+ print(f"Saved: {out} ({len(new_sd)} tensor keys)")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/ref-avs.code/trainer/train.py b/ref-avs.code/trainer/train.py
new file mode 100644
index 0000000000000000000000000000000000000000..c044c352671931106e2aa7db6a040d4bb4496c26
--- /dev/null
+++ b/ref-avs.code/trainer/train.py
@@ -0,0 +1,224 @@
+"""Training and validation for Ref-AVS (text + audio + SAM2 multimask decoding)."""
+import numpy
+import torch
+from torch.utils.data import DataLoader
+from tqdm import tqdm
+
+_DECODE_MODES = frozenset({'', 'iou_select', 'iou_occ_select'})
+
+
+def _decode_mode_and_wandb_tag(process):
+ """Match tmp.code: `process` is decode mode for known strings; else Ref split tag + default decode."""
+ if process in _DECODE_MODES:
+ return process, process
+ return 'iou_select', process
+
+
+class Trainer:
+ """Train / valid / null-valid steps with composite loss, contrastive term, and metrics."""
+
+ def __init__(self, hyp_param, loss, tensorboard, metrics):
+ self.param = hyp_param
+ self.loss = loss
+ self.tensorboard = tensorboard
+ self.metrics = metrics
+ from loss.training.contrastive_learning import ContrastLoss
+ self.cl = ContrastLoss(self.param)
+
+ @torch.no_grad()
+ def valid_null(self, epoch, dataloader, model, process='test_n'):
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError("valid_null() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first).")
+ decode_mode, wandb_tag = _decode_mode_and_wandb_tag(process)
+ self.metrics['foreground_s'].reset()
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+ p_pool = [None] * self.param.gpus
+ n_pool = [None] * self.param.gpus
+
+ data_iter = iter(dataloader)
+ for _ in tbar:
+ items = next(data_iter)
+ frame, spect, prompt_dicts = items['frame'], items['spectrogram'], items['text']
+ logits = []
+ for frame_, spect_, prompt_dicts_ in zip(frame, spect, prompt_dicts):
+ frame_ = frame_.cuda(self.param.local_rank, non_blocking=True)
+ spect_ = spect_.cuda(self.param.local_rank, non_blocking=True)
+ prompt_dicts_ = [prompt_dicts_]
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, _ = model.module(frame_, spect_, prompt_dicts_, sam_process=False)
+
+ logits_ = torch.cat([torch.cat(i['multistep_pred_multimasks_high_res']) for i in outputs])
+ ious_scores = torch.cat([torch.cat(i['multistep_pred_ious']) for i in outputs])
+ occ_scores = torch.cat([torch.cat(i['multistep_object_score_logits']) for i in outputs])
+ if decode_mode == 'iou_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits_ = logits_[torch.arange(0, frame_.shape[0]), ious_scores, ...]
+ elif decode_mode == 'iou_occ_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits_ = logits_[torch.arange(0, frame_.shape[0]), ious_scores, ...]
+ logits_[occ_scores.squeeze() < 0, ...] = 0.
+ else:
+ logits_ = logits_[:, 0, ...]
+ logits.append(logits_)
+
+ logits = torch.cat(logits).reshape(frame.shape[0], -1, self.param.image_size, self.param.image_size)
+ if len(logits.shape) == 3:
+ logits = logits.unsqueeze(1)
+
+ foreground_s = self.metrics['foreground_s'].metric_s_for_null(logits, get_entire_list=True)
+ torch.distributed.all_gather_object(p_pool, foreground_s['foreground_p'])
+ torch.distributed.all_gather_object(n_pool, foreground_s['foreground_n'])
+ foreground_s = sum([i[0].cpu() for i in p_pool]) / sum([i[0] for i in n_pool])
+
+ if self.param.local_rank <= 0:
+ tbar.set_description(
+ 'epoch {} | valid.null_s {}'.format(epoch, numpy.round(foreground_s, 5)),
+ )
+ torch.cuda.empty_cache()
+
+ final_s = foreground_s
+ if self.param.local_rank <= 0 and self.tensorboard is not None:
+ self.tensorboard.upload_wandb_info({"valid.f_s/{}".format(wandb_tag): final_s})
+
+ return numpy.round(final_s, 5)
+
+ @torch.no_grad()
+ def valid(self, epoch, dataloader, model, process='iou_select'):
+ """Evaluate IoU / F-score; `process` is decode mode (tmp) or split tag (test_s / test_u). Wandb keys like tmp."""
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError("valid() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first).")
+ decode_mode, wandb_tag = _decode_mode_and_wandb_tag(process)
+ self.metrics['foreground_iou'].reset()
+ self.metrics['foreground_f-score'].reset()
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+ iou_pool = [None] * self.param.gpus
+ fscore_pool = [None] * self.param.gpus
+
+ data_iter = iter(dataloader)
+ for _ in tbar:
+ items = next(data_iter)
+ frame, spect, label, prompt_dicts = (
+ items['frame'], items['spectrogram'], items['label'], items['text']
+ )
+ logits = []
+ labels = []
+ for frame_, spect_, label_, prompt_dicts_ in zip(frame, spect, label, prompt_dicts):
+ frame_ = frame_.cuda(self.param.local_rank, non_blocking=True)
+ spect_ = spect_.cuda(self.param.local_rank, non_blocking=True)
+ label_ = label_.cuda(self.param.local_rank, non_blocking=True)
+ prompt_dicts_ = [prompt_dicts_]
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, _ = model.module(frame_, spect_, prompt_dicts_, sam_process=False)
+
+ logits_ = torch.cat([torch.cat(i['multistep_pred_multimasks_high_res']) for i in outputs])
+ ious_scores = torch.cat([torch.cat(i['multistep_pred_ious']) for i in outputs])
+ occ_scores = torch.cat([torch.cat(i['multistep_object_score_logits']) for i in outputs])
+ if decode_mode == 'iou_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits_ = logits_[torch.arange(0, frame_.shape[0]), ious_scores, ...]
+ elif decode_mode == 'iou_occ_select':
+ ious_scores = torch.argmax(ious_scores, dim=1)
+ logits_ = logits_[torch.arange(0, frame_.shape[0]), ious_scores, ...]
+ logits_[occ_scores.squeeze() < 0, ...] = 0.
+ else:
+ logits_ = logits_[:, 0, ...]
+ logits.append(logits_)
+ labels.append(label_)
+
+ logits = torch.cat(logits)
+ labels = torch.cat(labels)
+ foreground_iou_rank = self.metrics['foreground_iou'].calculate_iou(
+ (logits > 0.).squeeze().long(), labels.squeeze().long(), get_entire_list=True,
+ )
+ foreground_f_score_rank = self.metrics['foreground_f-score'].calculate_f_score(
+ logits.squeeze(), labels.squeeze().long(), get_entire_list=True,
+ )
+ torch.distributed.all_gather_object(iou_pool, foreground_iou_rank)
+ torch.distributed.all_gather_object(fscore_pool, foreground_f_score_rank)
+ foreground_iou = sum([i['foreground_iou'][0].cpu() for i in iou_pool]) / sum(
+ [i['foreground_iou'][1] for i in iou_pool])
+ foreground_f_score = sum([i['foreground_f-score'][0] for i in fscore_pool]) / sum(
+ [i['foreground_f-score'][1] for i in fscore_pool])
+
+ if self.param.local_rank <= 0:
+ tbar.set_description(
+ 'epoch {} | valid.f_iou {}, valid.f_f-score {}'.format(
+ epoch,
+ numpy.round(foreground_iou.cpu().numpy(), 5),
+ numpy.round(foreground_f_score, 5),
+ ),
+ )
+ torch.cuda.empty_cache()
+
+ final_iou = foreground_iou
+ final_fscore = foreground_f_score
+ if self.param.local_rank <= 0 and self.tensorboard is not None:
+ self.tensorboard.upload_wandb_info({
+ "valid.f_iou/{}".format(wandb_tag): final_iou,
+ "valid.f_f-score/{}".format(wandb_tag): final_fscore,
+ })
+
+ def _to_float(x):
+ if isinstance(x, torch.Tensor):
+ return float(x.detach().cpu().item())
+ return float(x)
+
+ return numpy.round(_to_float(final_iou), 5), numpy.round(_to_float(final_fscore), 5)
+
+ def train(self, epoch, dataloader, model, optimiser):
+ if not isinstance(dataloader, DataLoader):
+ raise TypeError("train() expects a torch.utils.data.DataLoader (do not pass iter(dataloader) first).")
+ dataloader_length = len(dataloader)
+ tbar = range(dataloader_length)
+ tbar = tqdm(tbar, ncols=135) if self.param.local_rank <= 0 else tbar
+
+ data_iter = iter(dataloader)
+ for batch_index in tbar:
+ current_index = dataloader_length * epoch + batch_index
+ items = next(data_iter)
+ frame, spect, label, prompt_dicts = (
+ items['frame'], items['spectrogram'], items['label'], items['text'],
+ )
+ frame = torch.flatten(frame, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ spect = torch.flatten(spect, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+ label = torch.flatten(label, start_dim=0, end_dim=1).cuda(self.param.local_rank, non_blocking=True)
+
+ with torch.autocast("cuda", dtype=torch.bfloat16):
+ outputs, proj_feats = model(frame, spect, prompt_dicts, sam_process=False)
+ loss_dict = self.loss(outputs, label.unsqueeze(1))
+ cl_loss = self.cl(proj_feats, outputs, label)
+
+ optimiser.zero_grad()
+ (loss_dict['core_loss'] + cl_loss).backward()
+ optimiser.step()
+
+ current_lr = self.param.lr * (1 - current_index / (dataloader_length * self.param.epochs)) ** 0.9
+ for params_lr in optimiser.param_groups:
+ names = params_lr.get("name", [])
+ if names and any("vgg" in n for n in names):
+ params_lr['lr'] = current_lr * 0.1
+ else:
+ params_lr['lr'] = current_lr
+
+ if self.param.local_rank <= 0 and self.tensorboard is not None:
+ logits = torch.cat([i['multistep_pred_multimasks_high_res'][0] for i in outputs])
+ foreground_iou = self.metrics['foreground_iou'].calculate_iou(
+ (logits > 0)[:, 0, ...].long(), label.long(),
+ )
+ self.tensorboard.upload_wandb_info({
+ "loss": loss_dict['core_loss'].item(), "f_iou": foreground_iou.item(),
+ "lr": optimiser.param_groups[0]['lr'],
+ "loss_dice": loss_dict['loss_dice'],
+ "loss_focal": loss_dict['loss_mask'],
+ "loss_contras": cl_loss.item(),
+ })
+ tbar.set_description(
+ 'epoch {} | loss {}, f_iou {}'.format(
+ epoch, loss_dict['core_loss'].item(), foreground_iou.item(),
+ ),
+ )
+ return
diff --git a/ref-avs.code/utils/data_utils.py b/ref-avs.code/utils/data_utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..7e7a98f8ec73e6e5dafd1e395b48a98575e5afb1
--- /dev/null
+++ b/ref-avs.code/utils/data_utils.py
@@ -0,0 +1,176 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+"""
+Misc functions, including distributed helpers.
+
+Mostly copy-paste from torchvision references.
+"""
+
+from dataclasses import dataclass
+from typing import List, Optional, Tuple, Union
+
+import torch
+
+from PIL import Image as PILImage
+
+
+class BatchedVideoMetaData:
+ """
+ This class represents metadata about a batch of videos.
+ Attributes:
+ unique_objects_identifier: A tensor of shape Bx3 containing unique identifiers for each object in the batch. Index consists of (video_id, obj_id, frame_id)
+ frame_orig_size: A tensor of shape Bx2 containing the original size of each frame in the batch.
+ """
+
+ unique_objects_identifier: torch.LongTensor
+ frame_orig_size: torch.LongTensor
+
+
+class BatchedVideoDatapoint:
+ """
+ This class represents a batch of videos with associated annotations and metadata.
+ Attributes:
+ img_batch: A [TxBxCxHxW] tensor containing the image data for each frame in the batch, where T is the number of frames per video, and B is the number of videos in the batch.
+ obj_to_frame_idx: A [TxOx2] tensor containing the image_batch index which the object belongs to. O is the number of objects in the batch.
+ masks: A [TxOxHxW] tensor containing binary masks for each object in the batch.
+ metadata: An instance of BatchedVideoMetaData containing metadata about the batch.
+ dict_key: A string key used to identify the batch.
+ """
+
+ img_batch: torch.FloatTensor
+ obj_to_frame_idx: torch.IntTensor
+ masks: torch.BoolTensor
+ metadata: BatchedVideoMetaData
+
+ dict_key: str
+
+ def pin_memory(self, device=None):
+ return self.apply(torch.Tensor.pin_memory, device=device)
+
+ @property
+ def num_frames(self) -> int:
+ """
+ Returns the number of frames per video.
+ """
+ return self.batch_size[0]
+
+ @property
+ def num_videos(self) -> int:
+ """
+ Returns the number of videos in the batch.
+ """
+ return self.img_batch.shape[1]
+
+ @property
+ def flat_obj_to_img_idx(self) -> torch.IntTensor:
+ """
+ Returns a flattened tensor containing the object to img index.
+ The flat index can be used to access a flattened img_batch of shape [(T*B)xCxHxW]
+ """
+ frame_idx, video_idx = self.obj_to_frame_idx.unbind(dim=-1)
+ flat_idx = video_idx * self.num_frames + frame_idx
+ return flat_idx
+
+ @property
+ def flat_img_batch(self) -> torch.FloatTensor:
+ """
+ Returns a flattened img_batch_tensor of shape [(B*T)xCxHxW]
+ """
+
+ return self.img_batch.transpose(0, 1).flatten(0, 1)
+
+
+@dataclass
+class Object:
+ # Id of the object in the media
+ object_id: int
+ # Index of the frame in the media (0 if single image)
+ frame_index: int
+ segment: Union[torch.Tensor, dict] # RLE dict or binary mask
+
+
+@dataclass
+class Frame:
+ data: Union[torch.Tensor, PILImage.Image]
+ objects: List[Object]
+
+
+@dataclass
+class VideoDatapoint:
+ """Refers to an image/video and all its annotations"""
+
+ frames: List[Frame]
+ video_id: int
+ size: Tuple[int, int]
+
+
+def collate_fn(
+ batch: List[VideoDatapoint],
+ dict_key,
+) -> BatchedVideoDatapoint:
+ """
+ Args:
+ batch: A list of VideoDatapoint instances.
+ dict_key (str): A string key used to identify the batch.
+ """
+ img_batch = []
+ for video in batch:
+ img_batch += [torch.stack([frame.data for frame in video.frames], dim=0)]
+
+ img_batch = torch.stack(img_batch, dim=0).permute((1, 0, 2, 3, 4))
+ T = img_batch.shape[0]
+ # Prepare data structures for sequential processing. Per-frame processing but batched across videos.
+ step_t_objects_identifier = [[] for _ in range(T)]
+ step_t_frame_orig_size = [[] for _ in range(T)]
+
+ step_t_masks = [[] for _ in range(T)]
+ step_t_obj_to_frame_idx = [
+ [] for _ in range(T)
+ ] # List to store frame indices for each time step
+
+ for video_idx, video in enumerate(batch):
+ orig_video_id = video.video_id
+ orig_frame_size = video.size
+ for t, frame in enumerate(video.frames):
+ objects = frame.objects
+ for obj in objects:
+ orig_obj_id = obj.object_id
+ orig_frame_idx = obj.frame_index
+ step_t_obj_to_frame_idx[t].append(
+ torch.tensor([t, video_idx], dtype=torch.int)
+ )
+ step_t_masks[t].append(obj.segment.to(torch.bool))
+ step_t_objects_identifier[t].append(
+ torch.tensor([orig_video_id, orig_obj_id, orig_frame_idx])
+ )
+ step_t_frame_orig_size[t].append(torch.tensor(orig_frame_size))
+
+ obj_to_frame_idx = torch.stack(
+ [
+ torch.stack(obj_to_frame_idx, dim=0)
+ for obj_to_frame_idx in step_t_obj_to_frame_idx
+ ],
+ dim=0,
+ )
+ masks = torch.stack([torch.stack(masks, dim=0) for masks in step_t_masks], dim=0)
+ objects_identifier = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_objects_identifier], dim=0
+ )
+ frame_orig_size = torch.stack(
+ [torch.stack(id, dim=0) for id in step_t_frame_orig_size], dim=0
+ )
+ return BatchedVideoDatapoint(
+ img_batch=img_batch,
+ obj_to_frame_idx=obj_to_frame_idx,
+ masks=masks,
+ metadata=BatchedVideoMetaData(
+ unique_objects_identifier=objects_identifier,
+ frame_orig_size=frame_orig_size,
+ ),
+ dict_key=dict_key,
+ batch_size=[T],
+ )
diff --git a/ref-avs.code/utils/foreground_fscore.py b/ref-avs.code/utils/foreground_fscore.py
new file mode 100644
index 0000000000000000000000000000000000000000..fd53cb0f7e8efe63e9491747f9ecefed3051ed6e
--- /dev/null
+++ b/ref-avs.code/utils/foreground_fscore.py
@@ -0,0 +1,90 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundFScore(AverageMeter):
+ def __init__(self, rank):
+ self.local_rank = rank
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+ def _eval_pr(self, y_pred, y, num, cuda_flag=True):
+ if cuda_flag:
+ prec, recall = torch.zeros(num).cuda(self.local_rank), torch.zeros(num).cuda(self.local_rank)
+ thlist = torch.linspace(0, 1 - 1e-10, num).cuda(self.local_rank)
+ else:
+ prec, recall = torch.zeros(num), torch.zeros(num)
+ thlist = torch.linspace(0, 1 - 1e-10, num)
+ for i in range(num):
+ y_temp = (y_pred >= thlist[i]).float()
+ tp = (y_temp * y).sum()
+ prec[i], recall[i] = tp / (y_temp.sum() + 1e-20), tp / (y.sum() + 1e-20)
+ return prec, recall
+
+ def calculate_f_score(self, pred, gt, pr_num=255, get_entire_list=False):
+
+ r"""
+ param:
+ pred: size [N x H x W]
+ gt: size [N x H x W]
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ # print('=> eval [FMeasure]..')
+ pred = torch.sigmoid(pred) # =======================================[important]
+ N = pred.size(0)
+ beta2 = 0.3
+ avg_f, img_num = 0.0, 0
+ score = torch.zeros(pr_num)
+ # fLog = open(os.path.join(measure_path, 'FMeasure.txt'), 'w')
+ # print("{} videos in this batch".format(N))
+
+ for img_id in range(N):
+ # examples with totally black GTs are out of consideration
+ if torch.mean(gt[img_id].float()) == 0.0:
+ continue
+ prec, recall = self._eval_pr(pred[img_id], gt[img_id], pr_num)
+ f_score = (1 + beta2) * prec * recall / (beta2 * prec + recall)
+ f_score[f_score != f_score] = 0 # for Nan
+ avg_f += f_score
+ img_num += 1
+ score = avg_f / img_num
+ # print('score: ', score)
+ # fLog.close()
+ self.add({'foreground_f-score': score.max().item()})
+ return self.get('foreground_iou') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundFScore, self).__init__('foreground_f-score')
+
+
diff --git a/ref-avs.code/utils/foreground_iou.py b/ref-avs.code/utils/foreground_iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..e01eeb081eee8ebfa1fcb6618d05b9d57c02f817
--- /dev/null
+++ b/ref-avs.code/utils/foreground_iou.py
@@ -0,0 +1,69 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundIoU(AverageMeter):
+ def __init__(self):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
+ def calculate_iou(self, pred, target, eps=1e-7, get_entire_list=False):
+ r"""
+ param (both hard mask):
+ pred: size [N x H x W], type: int
+ target: size [N x H x W], type: int
+ output:
+ iou: size [1] (size_average=True) or [N] (size_average=False)
+ """
+ assert len(pred.shape) == 3 and pred.shape == target.shape, 'shape mismatch.'
+ assert pred.dtype is torch.long and target.dtype is torch.long, 'type mismatch.'
+
+ N = pred.size(0)
+ num_pixels = pred.size(-1) * pred.size(-2)
+ no_obj_flag = (target.sum(2).sum(1) == 0)
+
+ inter = (pred * target).sum(2).sum(1)
+ union = torch.max(pred, target).sum(2).sum(1)
+
+ inter_no_obj = ((1 - target) * (1 - pred)).sum(2).sum(1)
+ inter[no_obj_flag] = inter_no_obj[no_obj_flag]
+ union[no_obj_flag] = num_pixels
+
+ iou = torch.sum(inter / (union+eps)) / N
+
+ self.add({'foreground_iou': iou})
+ return self.get('foreground_iou') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self,):
+ super(ForegroundIoU, self).__init__('foreground_iou')
+
diff --git a/ref-avs.code/utils/foreground_s.py b/ref-avs.code/utils/foreground_s.py
new file mode 100644
index 0000000000000000000000000000000000000000..44770e26da3a87455182315345df76ad8ecda897
--- /dev/null
+++ b/ref-avs.code/utils/foreground_s.py
@@ -0,0 +1,62 @@
+import numpy
+import torch
+
+
+class AverageMeter:
+ def __init__(self, *keys):
+ self.__data = dict()
+ for k in keys:
+ self.__data[k] = [0.0, 0]
+
+ def add(self, dict):
+ for k, v in dict.items():
+ self.__data[k][0] += v
+ self.__data[k][1] += 1
+
+ def get(self, *keys):
+ if len(keys) == 1:
+ return self.__data[keys[0]][0] / self.__data[keys[0]][1]
+ else:
+ v_list = [self.__data[k][0] / self.__data[k][1] for k in keys]
+ return tuple(v_list)
+
+ def get_entire_dict_for_ddp_calculation(self):
+ return self.__data
+
+ def pop(self, key=None):
+ if key is None:
+ for k in self.__data.keys():
+ self.__data[k] = [0.0, 0]
+ else:
+ v = self.get(key)
+ self.__data[key] = [0.0, 0]
+ return v
+
+
+class ForegroundS(AverageMeter):
+ def __init__(self):
+ super(ForegroundS, self).__init__('foreground_p', 'foreground_n')
+
+ def metric_s_for_null(self, pred, get_entire_list=False):
+ NF, bsz, H, W = pred.shape
+ pred = pred.view(NF * bsz, H, W)
+ assert len(pred.shape) == 3
+
+ N = pred.size(0)
+ num_pixels = pred.view(-1).shape[0]
+
+ temp_pred = torch.sigmoid(pred)
+ pred = (temp_pred > 0.5).int()
+
+ x = torch.sum(pred.view(-1))
+ s = torch.sqrt(x / num_pixels)
+
+ self.add({'foreground_p': x})
+ self.add({'foreground_n': num_pixels})
+ # self.add({'foreground_s': s})
+ return self.get('foreground_p')/self.get('foreground_n') if not get_entire_list else self.get_entire_dict_for_ddp_calculation()
+
+ def reset(self, ):
+ super(ForegroundS, self).__init__('foreground_p', 'foreground_n')
+
+
diff --git a/ref-avs.code/utils/iou.py b/ref-avs.code/utils/iou.py
new file mode 100644
index 0000000000000000000000000000000000000000..211488b780887a8efd84361bafc6b09bfad4c345
--- /dev/null
+++ b/ref-avs.code/utils/iou.py
@@ -0,0 +1,76 @@
+import torch
+import numpy
+
+
+class BinaryMIoU(object):
+ def __init__(self, ignore_index):
+ self.num_classes = 2
+ self.ignore_index = ignore_index
+ self.inter, self.union = 0, 0
+ self.correct, self.label = 0, 0
+ self.iou = numpy.array([0 for _ in range(self.num_classes)])
+ self.acc = 0.0
+
+ def get_metric_results(self, curr_correct_, curr_label_, curr_inter_, curr_union_):
+ # calculates the overall miou and acc
+ self.correct = self.correct + curr_correct_
+ self.label = self.label + curr_label_
+ self.inter = self.inter + curr_inter_
+ self.union = self.union + curr_union_
+ self.acc = 1.0 * self.correct / (numpy.spacing(1) + self.label)
+ self.iou = 1.0 * self.inter / (numpy.spacing(1) + self.union)
+ return numpy.round(self.iou, 4), numpy.round(self.acc, 4)
+ # if class_list is None:
+ # return numpy.round(self.iou.mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+ # else:
+ # return numpy.round(self.iou[class_list].mean().item(), 4), \
+ # numpy.round(self.acc, 4)
+
+ @staticmethod
+ def get_current_image_results(curr_correct_, curr_label_, curr_inter_, curr_union_):
+ curr_acc = 1.0 * curr_correct_ / (numpy.spacing(1) + curr_label_)
+ curr_iou = 1.0 * curr_inter_ / (numpy.spacing(1) + curr_union_)
+ return curr_iou, curr_acc
+
+ def __call__(self, x, y):
+ curr_correct, curr_label, curr_inter, curr_union = self.calculate_current_sample(x, y)
+ return (self.get_metric_results(curr_correct, curr_label, curr_inter, curr_union),
+ self.get_current_image_results(curr_correct, curr_label, curr_inter, curr_union))
+
+ def calculate_current_sample(self, output, target):
+ # output => BxCxHxW (logits)
+ # target => Bx1xHxW
+ target[target == self.ignore_index] = -1
+ correct, labeled = self.batch_pix_accuracy(output.data, target)
+ inter, union = self.batch_intersection_union(output.data, target, self.num_classes)
+ return [numpy.round(correct, 5), numpy.round(labeled, 5), numpy.round(inter, 5), numpy.round(union, 5)]
+
+ @ staticmethod
+ def batch_pix_accuracy(predict, target):
+ # _, predict = torch.max(output, 1)
+
+ predict = predict.int() + 1
+ target = target.int() + 1
+
+ pixel_labeled = (target > 0).sum()
+ pixel_correct = ((predict == target) * (target > 0)).sum()
+ assert pixel_correct <= pixel_labeled, "Correct area should be smaller than Labeled"
+ return pixel_correct.cpu().numpy(), pixel_labeled.cpu().numpy()
+
+ @ staticmethod
+ def batch_intersection_union(predict, target, num_class):
+ # _, predict = torch.max(output, 1)
+ predict = predict + 1
+ target = target + 1
+
+ predict = predict * (target > 0).long()
+ intersection = predict * (predict == target).long()
+
+ area_inter = torch.histc(intersection.float(), bins=num_class, max=num_class, min=1)
+ area_pred = torch.histc(predict.float(), bins=num_class, max=num_class, min=1)
+ area_lab = torch.histc(target.float(), bins=num_class, max=num_class, min=1)
+ area_union = area_pred + area_lab - area_inter
+ assert (area_inter <= area_union).all(), "Intersection area should be smaller than Union area"
+ return area_inter.cpu().numpy(), area_union.cpu().numpy()
+
diff --git a/ref-avs.code/utils/misc.py b/ref-avs.code/utils/misc.py
new file mode 100644
index 0000000000000000000000000000000000000000..5eb9d66c31a4b9209b81a5b615386d29f246135c
--- /dev/null
+++ b/ref-avs.code/utils/misc.py
@@ -0,0 +1,350 @@
+# Copyright (c) Meta Platforms, Inc. and affiliates.
+# All rights reserved.
+
+# This source code is licensed under the license found in the
+# LICENSE file in the root directory of this source tree.
+
+import os
+import warnings
+from threading import Thread
+
+import numpy as np
+import torch
+from PIL import Image
+from tqdm import tqdm
+
+
+def get_sdpa_settings():
+ if torch.cuda.is_available():
+ old_gpu = torch.cuda.get_device_properties(0).major < 7
+ # only use Flash Attention on Ampere (8.0) or newer GPUs
+ use_flash_attn = torch.cuda.get_device_properties(0).major >= 8
+ if not use_flash_attn:
+ warnings.warn(
+ "Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ # keep math kernel for PyTorch versions before 2.2 (Flash Attention v2 is only
+ # available on PyTorch 2.2+, while Flash Attention v1 cannot handle all cases)
+ pytorch_version = tuple(int(v) for v in torch.__version__.split(".")[:2])
+ if pytorch_version < (2, 2):
+ warnings.warn(
+ f"You are using PyTorch {torch.__version__} without Flash Attention v2 support. "
+ "Consider upgrading to PyTorch 2.2+ for Flash Attention v2 (which could be faster).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ math_kernel_on = pytorch_version < (2, 2) or not use_flash_attn
+ else:
+ old_gpu = True
+ use_flash_attn = False
+ math_kernel_on = True
+
+ return old_gpu, use_flash_attn, math_kernel_on
+
+
+def get_connected_components(mask):
+ """
+ Get the connected components (8-connectivity) of binary masks of shape (N, 1, H, W).
+
+ Inputs:
+ - mask: A binary mask tensor of shape (N, 1, H, W), where 1 is foreground and 0 is
+ background.
+
+ Outputs:
+ - labels: A tensor of shape (N, 1, H, W) containing the connected component labels
+ for foreground pixels and 0 for background pixels.
+ - counts: A tensor of shape (N, 1, H, W) containing the area of the connected
+ components for foreground pixels and 0 for background pixels.
+ """
+ from sam2 import _C
+
+ return _C.get_connected_componnets(mask.to(torch.uint8).contiguous())
+
+
+def mask_to_box(masks: torch.Tensor):
+ """
+ compute bounding box given an input mask
+
+ Inputs:
+ - masks: [B, 1, H, W] masks, dtype=torch.Tensor
+
+ Returns:
+ - box_coords: [B, 1, 4], contains (x, y) coordinates of top left and bottom right box corners, dtype=torch.Tensor
+ """
+ B, _, h, w = masks.shape
+ device = masks.device
+ xs = torch.arange(w, device=device, dtype=torch.int32)
+ ys = torch.arange(h, device=device, dtype=torch.int32)
+ grid_xs, grid_ys = torch.meshgrid(xs, ys, indexing="xy")
+ grid_xs = grid_xs[None, None, ...].expand(B, 1, h, w)
+ grid_ys = grid_ys[None, None, ...].expand(B, 1, h, w)
+ min_xs, _ = torch.min(torch.where(masks, grid_xs, w).flatten(-2), dim=-1)
+ max_xs, _ = torch.max(torch.where(masks, grid_xs, -1).flatten(-2), dim=-1)
+ min_ys, _ = torch.min(torch.where(masks, grid_ys, h).flatten(-2), dim=-1)
+ max_ys, _ = torch.max(torch.where(masks, grid_ys, -1).flatten(-2), dim=-1)
+ bbox_coords = torch.stack((min_xs, min_ys, max_xs, max_ys), dim=-1)
+
+ return bbox_coords
+
+
+def _load_img_as_tensor(img_path, image_size):
+ img_pil = Image.open(img_path)
+ img_np = np.array(img_pil.convert("RGB").resize((image_size, image_size)))
+ if img_np.dtype == np.uint8: # np.uint8 is expected for JPEG images
+ img_np = img_np / 255.0
+ else:
+ raise RuntimeError(f"Unknown image dtype: {img_np.dtype} on {img_path}")
+ img = torch.from_numpy(img_np).permute(2, 0, 1)
+ video_width, video_height = img_pil.size # the original video size
+ return img, video_height, video_width
+
+
+class AsyncVideoFrameLoader:
+ """
+ A list of video frames to be load asynchronously without blocking session start.
+ """
+
+ def __init__(
+ self,
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ ):
+ self.img_paths = img_paths
+ self.image_size = image_size
+ self.offload_video_to_cpu = offload_video_to_cpu
+ self.img_mean = img_mean
+ self.img_std = img_std
+ # items in `self.images` will be loaded asynchronously
+ self.images = [None] * len(img_paths)
+ # catch and raise any exceptions in the async loading thread
+ self.exception = None
+ # video_height and video_width be filled when loading the first image
+ self.video_height = None
+ self.video_width = None
+ self.compute_device = compute_device
+
+ # load the first frame to fill video_height and video_width and also
+ # to cache it (since it's most likely where the user will click)
+ self.__getitem__(0)
+
+ # load the rest of frames asynchronously without blocking the session start
+ def _load_frames():
+ try:
+ for n in tqdm(range(len(self.images)), desc="frame loading (JPEG)"):
+ self.__getitem__(n)
+ except Exception as e:
+ self.exception = e
+
+ self.thread = Thread(target=_load_frames, daemon=True)
+ self.thread.start()
+
+ def __getitem__(self, index):
+ if self.exception is not None:
+ raise RuntimeError("Failure in frame loading thread") from self.exception
+
+ img = self.images[index]
+ if img is not None:
+ return img
+
+ img, video_height, video_width = _load_img_as_tensor(
+ self.img_paths[index], self.image_size
+ )
+ self.video_height = video_height
+ self.video_width = video_width
+ # normalize by mean and std
+ img -= self.img_mean
+ img /= self.img_std
+ if not self.offload_video_to_cpu:
+ img = img.to(self.compute_device, non_blocking=True)
+ self.images[index] = img
+ return img
+
+ def __len__(self):
+ return len(self.images)
+
+
+def load_video_frames(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from video_path. The frames are resized to image_size as in
+ the model and are loaded to GPU if offload_video_to_cpu=False. This is used by the demo.
+ """
+ is_bytes = isinstance(video_path, bytes)
+ is_str = isinstance(video_path, str)
+ is_mp4_path = is_str and os.path.splitext(video_path)[-1] in [".mp4", ".MP4"]
+ if is_bytes or is_mp4_path:
+ return load_video_frames_from_video_file(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ compute_device=compute_device,
+ )
+ elif is_str and os.path.isdir(video_path):
+ return load_video_frames_from_jpg_images(
+ video_path=video_path,
+ image_size=image_size,
+ offload_video_to_cpu=offload_video_to_cpu,
+ img_mean=img_mean,
+ img_std=img_std,
+ async_loading_frames=async_loading_frames,
+ compute_device=compute_device,
+ )
+ else:
+ raise NotImplementedError(
+ "Only MP4 video and JPEG folder are supported at this moment"
+ )
+
+
+def load_video_frames_from_jpg_images(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ async_loading_frames=False,
+ compute_device=torch.device("cuda"),
+):
+ """
+ Load the video frames from a directory of JPEG files (".jpg" format).
+
+ The frames are resized to image_size x image_size and are loaded to GPU if
+ `offload_video_to_cpu` is `False` and to CPU if `offload_video_to_cpu` is `True`.
+
+ You can load a frame asynchronously by setting `async_loading_frames` to `True`.
+ """
+ if isinstance(video_path, str) and os.path.isdir(video_path):
+ jpg_folder = video_path
+ else:
+ raise NotImplementedError(
+ "Only JPEG frames are supported at this moment. For video files, you may use "
+ "ffmpeg (https://ffmpeg.org/) to extract frames into a folder of JPEG files, such as \n"
+ "```\n"
+ "ffmpeg -i .mp4 -q:v 2 -start_number 0 /'%05d.jpg'\n"
+ "```\n"
+ "where `-q:v` generates high-quality JPEG frames and `-start_number 0` asks "
+ "ffmpeg to start the JPEG file from 00000.jpg."
+ )
+
+ frame_names = [
+ p
+ for p in os.listdir(jpg_folder)
+ if os.path.splitext(p)[-1] in [".jpg", ".jpeg", ".JPG", ".JPEG"]
+ ]
+ frame_names.sort(key=lambda p: int(os.path.splitext(p)[0]))
+ num_frames = len(frame_names)
+ if num_frames == 0:
+ raise RuntimeError(f"no images found in {jpg_folder}")
+ img_paths = [os.path.join(jpg_folder, frame_name) for frame_name in frame_names]
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+
+ if async_loading_frames:
+ lazy_images = AsyncVideoFrameLoader(
+ img_paths,
+ image_size,
+ offload_video_to_cpu,
+ img_mean,
+ img_std,
+ compute_device,
+ )
+ return lazy_images, lazy_images.video_height, lazy_images.video_width
+
+ images = torch.zeros(num_frames, 3, image_size, image_size, dtype=torch.float32)
+ for n, img_path in enumerate(tqdm(img_paths, desc="frame loading (JPEG)")):
+ images[n], video_height, video_width = _load_img_as_tensor(img_path, image_size)
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def load_video_frames_from_video_file(
+ video_path,
+ image_size,
+ offload_video_to_cpu,
+ img_mean=(0.485, 0.456, 0.406),
+ img_std=(0.229, 0.224, 0.225),
+ compute_device=torch.device("cuda"),
+):
+ """Load the video frames from a video file."""
+ import decord
+
+ img_mean = torch.tensor(img_mean, dtype=torch.float32)[:, None, None]
+ img_std = torch.tensor(img_std, dtype=torch.float32)[:, None, None]
+ # Get the original video height and width
+ decord.bridge.set_bridge("torch")
+ video_height, video_width, _ = decord.VideoReader(video_path).next().shape
+ # Iterate over all frames in the video
+ images = []
+ for frame in decord.VideoReader(video_path, width=image_size, height=image_size):
+ images.append(frame.permute(2, 0, 1))
+
+ images = torch.stack(images, dim=0).float() / 255.0
+ if not offload_video_to_cpu:
+ images = images.to(compute_device)
+ img_mean = img_mean.to(compute_device)
+ img_std = img_std.to(compute_device)
+ # normalize by mean and std
+ images -= img_mean
+ images /= img_std
+ return images, video_height, video_width
+
+
+def fill_holes_in_mask_scores(mask, max_area):
+ """
+ A post processor to fill small holes in mask scores with area under `max_area`.
+ """
+ # Holes are those connected components in background with area <= self.max_area
+ # (background regions are those with mask scores <= 0)
+ assert max_area > 0, "max_area must be positive"
+
+ input_mask = mask
+ try:
+ labels, areas = get_connected_components(mask <= 0)
+ is_hole = (labels > 0) & (areas <= max_area)
+ # We fill holes with a small positive mask score (0.1) to change them to foreground.
+ mask = torch.where(is_hole, 0.1, mask)
+ except Exception as e:
+ # Skip the post-processing step on removing small holes if the CUDA kernel fails
+ warnings.warn(
+ f"{e}\n\nSkipping the post-processing step due to the error above. You can "
+ "still use SAM 2 and it's OK to ignore the error above, although some post-processing "
+ "functionality may be limited (which doesn't affect the results in most cases; see "
+ "https://github.com/facebookresearch/sam2/blob/main/INSTALL.md).",
+ category=UserWarning,
+ stacklevel=2,
+ )
+ mask = input_mask
+
+ return mask
+
+
+def concat_points(old_point_inputs, new_points, new_labels):
+ """Add new points and labels to previous point inputs (add at the end)."""
+ if old_point_inputs is None:
+ points, labels = new_points, new_labels
+ else:
+ points = torch.cat([old_point_inputs["point_coords"], new_points], dim=1)
+ labels = torch.cat([old_point_inputs["point_labels"], new_labels], dim=1)
+
+ return {"point_coords": points, "point_labels": labels}
+
diff --git a/ref-avs.code/utils/tensorboard.py b/ref-avs.code/utils/tensorboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..e896bde094ef9a11bb684e69b63964cf7abc7407
--- /dev/null
+++ b/ref-avs.code/utils/tensorboard.py
@@ -0,0 +1,55 @@
+"""Optional Weights & Biases logging for Ref-AVS training."""
+import os
+
+import torchvision
+import wandb
+
+
+class Tensorboard:
+ def __init__(self, config):
+ key = config.get('wandb_key') or os.environ.get('WANDB_API_KEY', '')
+ if key:
+ os.environ['WANDB_API_KEY'] = key
+ mode = 'online' if config.get('wandb_online', False) else 'disabled'
+ self.tensor_board = wandb.init(
+ project=config['proj_name'],
+ name=config['experiment_name'],
+ config=config,
+ mode=mode,
+ settings=wandb.Settings(code_dir='.'),
+ )
+ self.restore_transform = torchvision.transforms.Compose([
+ DeNormalize(config['image_mean'], config['image_std']),
+ torchvision.transforms.ToPILImage(),
+ ])
+
+ def upload_wandb_info(self, info_dict):
+ for key, value in info_dict.items():
+ self.tensor_board.log({key: value})
+
+ def upload_wandb_image(self, frames, pseudo_label_from_pred, pseudo_label_from_sam, img_number=4):
+ n = min(pseudo_label_from_pred.shape[0], img_number)
+ frames = frames[:n]
+ pseudo_label_from_sam = pseudo_label_from_sam[:n].float()
+ pseudo_label_from_pred = pseudo_label_from_pred[:n].float()
+ pseudo_label_from_sam[pseudo_label_from_sam == 255.] = 0.5
+ pseudo_label_from_pred[pseudo_label_from_pred == 255.] = 0.5
+ self.tensor_board.log({
+ 'image': [wandb.Image(j, caption=f'id {i}') for i, j in enumerate(frames)],
+ 'label': [wandb.Image(j.squeeze(), caption=f'id {i}') for i, j in enumerate(pseudo_label_from_sam)],
+ 'logits': [wandb.Image(j.squeeze(), caption=f'id {i}') for i, j in enumerate(pseudo_label_from_pred)],
+ })
+
+ def finish(self):
+ self.tensor_board.finish()
+
+
+class DeNormalize(object):
+ def __init__(self, mean, std):
+ self.mean = mean
+ self.std = std
+
+ def __call__(self, tensor):
+ for t, m, s in zip(tensor, self.mean, self.std):
+ t.mul_(s).add_(m)
+ return tensor
diff --git a/ref-avs.code/utils/utils.py b/ref-avs.code/utils/utils.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac864d0fa1d5a64cdc3b0876b4c8f23f1ce6fc57
--- /dev/null
+++ b/ref-avs.code/utils/utils.py
@@ -0,0 +1,73 @@
+import torch
+import copy
+from typing import List, Dict, Set, Any
+import itertools
+
+def manipulate_params(cfg, model):
+ weight_decay_norm = 0
+ weight_decay_embed = 0
+ defaults = {}
+ defaults["lr"] = cfg.lr
+ defaults["weight_decay"] = cfg.weight_decay
+
+ norm_module_types = (
+ torch.nn.BatchNorm1d,
+ torch.nn.BatchNorm2d,
+ torch.nn.BatchNorm3d,
+ torch.nn.SyncBatchNorm,
+ # NaiveSyncBatchNorm inherits from BatchNorm2d
+ torch.nn.GroupNorm,
+ torch.nn.InstanceNorm1d,
+ torch.nn.InstanceNorm2d,
+ torch.nn.InstanceNorm3d,
+ torch.nn.LayerNorm,
+ torch.nn.LocalResponseNorm,
+ )
+
+ params_training: List[Dict[str, Any]] = []
+ params_finetuning: List[Dict[str, Any]] = []
+ memo: Set[torch.nn.parameter.Parameter] = set()
+
+ train_prefixes = (
+ "patch_embeds",
+ "f_blocks",
+ "a_blocks",
+ "fusion_modules",
+ "smooth_convs",
+ "train_proj_v1",
+ "train_proj_a1",
+ "text_proj",
+ )
+
+ for module_name, module in model.named_modules():
+ for module_param_name, value in module.named_parameters(recurse=False):
+ if not value.requires_grad:
+ continue
+ if value in memo:
+ continue
+ memo.add(value)
+ hyperparams = copy.copy(defaults)
+ if 'vgg' in module_name or 'vgg' in module_param_name:
+ hyperparams['lr'] *= 0.1
+ params_finetuning.append({"params": [value], "name": [module_name], **hyperparams})
+ elif (
+ 'train' in module_name
+ or 'train' in module_param_name
+ or module_name.startswith(train_prefixes)
+ ):
+ if (
+ "relative_position_bias_table" in module_param_name
+ or "pos_embed" in module_param_name
+ ):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, norm_module_types):
+ hyperparams["weight_decay"] = 0.0
+ if isinstance(module, torch.nn.Embedding):
+ hyperparams["weight_decay"] = 0.0
+ params_training.append({"params": [value], "name": [module_name], **hyperparams})
+ else:
+ print('undefined layer type.')
+ raise NotImplementedError
+ final_list = params_training + params_finetuning
+ assert len([p for p in model.parameters() if p.requires_grad]) == len(final_list), 'checksum confirmed not pass.'
+ return final_list
\ No newline at end of file
diff --git a/scripts/run_avs_train.sh b/scripts/run_avs_train.sh
new file mode 100644
index 0000000000000000000000000000000000000000..a0478eb76f8f21aed2c7f68a8ce30bca320ff4a1
--- /dev/null
+++ b/scripts/run_avs_train.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
+CODE_BASE="${REPO_ROOT}/avs.code"
+cd "${SCRIPT_DIR}"
+
+DEFAULT_GPUS=4
+OMP_THREADS=8
+
+# Reference hyper-parameter table (for quick view)
+EPOCH_V1S=140
+EPOCH_V1M=140
+EPOCH_V2=90
+
+WEIGHT_V1S=3.0
+WEIGHT_V1M=3.0
+WEIGHT_V2=3.0
+
+print_table() {
+ echo "+-------------+------------+------------+------------+"
+ echo "| hyper-param | v1s | v1m | v2 |"
+ echo "+-------------+------------+------------+------------+"
+ printf "| %-11s | %-10s | %-10s | %-10s |\n" "epoch" "${EPOCH_V1S}" "${EPOCH_V1M}" "${EPOCH_V2}"
+ printf "| %-11s | %-10s | %-10s | %-10s |\n" "weight" "${WEIGHT_V1S}" "${WEIGHT_V1M}" "${WEIGHT_V2}"
+ printf "| %-11s | %-10s | %-10s | %-10s |\n" "gpus(def)" "${DEFAULT_GPUS}" "${DEFAULT_GPUS}" "${DEFAULT_GPUS}"
+ echo "+-------------+------------+------------+------------+"
+}
+
+usage() {
+ echo "Usage: $0 [gpus]"
+ echo "Example: $0 v1s"
+ echo "Example: $0 v2 8"
+}
+
+if [[ $# -lt 1 || $# -gt 2 ]]; then
+ usage
+ print_table
+ exit 1
+fi
+
+DATASET="$1"
+GPUS="${2:-${DEFAULT_GPUS}}"
+
+case "${DATASET}" in
+ v1s)
+ CODE_DIR="v1s.code"
+ EPOCHS="${EPOCH_V1S}"
+ ;;
+ v1m)
+ CODE_DIR="v1m.code"
+ EPOCHS="${EPOCH_V1M}"
+ ;;
+ v2)
+ CODE_DIR="v2.code"
+ EPOCHS="${EPOCH_V2}"
+ ;;
+ *)
+ echo "Error: dataset must be one of v1s / v1m / v2, got: ${DATASET}"
+ echo
+ print_table
+ exit 1
+ ;;
+esac
+
+if ! [[ "${GPUS}" =~ ^[0-9]+$ ]] || [[ "${GPUS}" -le 0 ]]; then
+ echo "Error: gpus must be a positive integer, got: ${GPUS}"
+ exit 1
+fi
+
+if [[ ! -f "${CODE_BASE}/${CODE_DIR}/main.py" ]]; then
+ echo "Error: training entry not found: ${CODE_BASE}/${CODE_DIR}/main.py"
+ exit 1
+fi
+
+export OMP_NUM_THREADS="${OMP_THREADS}"
+
+LOG_FILE="train_${DATASET}.log"
+CMD=(python3 "${CODE_BASE}/${CODE_DIR}/main.py" --epochs="${EPOCHS}" --gpus="${GPUS}")
+
+echo "Training job is about to start:"
+echo " dataset: ${DATASET}"
+echo " code: ${CODE_BASE}/${CODE_DIR}/main.py"
+echo " epochs: ${EPOCHS}"
+echo " gpus: ${GPUS}"
+echo " log: ${SCRIPT_DIR}/${LOG_FILE}"
+echo
+print_table
+echo
+echo "Command: nohup ${CMD[*]} > ${LOG_FILE} 2>&1 &"
+
+nohup "${CMD[@]}" > "${LOG_FILE}" 2>&1 &
+echo "Training started in background, PID: $!"
diff --git a/scripts/run_ref_train.sh b/scripts/run_ref_train.sh
new file mode 100644
index 0000000000000000000000000000000000000000..6973b2a97688f1c1820e1fdbe7d5aa171e3b5f49
--- /dev/null
+++ b/scripts/run_ref_train.sh
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
+CODE_DIR="${REPO_ROOT}/ref-avs.code"
+cd "${SCRIPT_DIR}"
+
+DEFAULT_GPUS=4
+DEFAULT_EPOCHS=50
+DEFAULT_LR=1e-4
+OMP_THREADS=8
+
+print_table() {
+ echo "+-------------+----------------+"
+ echo "| hyper-param | ref-avs |"
+ echo "+-------------+----------------+"
+ printf "| %-11s | %-14s |\n" "epoch" "${DEFAULT_EPOCHS}"
+ printf "| %-11s | %-14s |\n" "lr" "${DEFAULT_LR}"
+ printf "| %-11s | %-14s |\n" "gpus(def)" "${DEFAULT_GPUS}"
+ echo "+-------------+----------------+"
+}
+
+usage() {
+ echo "Usage: $0 [gpus]"
+ echo "Example: $0"
+ echo "Example: $0 8"
+}
+
+if [[ $# -gt 1 ]]; then
+ usage
+ print_table
+ exit 1
+fi
+
+GPUS="${1:-${DEFAULT_GPUS}}"
+
+if ! [[ "${GPUS}" =~ ^[0-9]+$ ]] || [[ "${GPUS}" -le 0 ]]; then
+ echo "Error: gpus must be a positive integer, got: ${GPUS}"
+ exit 1
+fi
+
+if [[ ! -f "${CODE_DIR}/main.py" ]]; then
+ echo "Error: training entry not found: ${CODE_DIR}/main.py"
+ exit 1
+fi
+
+export OMP_NUM_THREADS="${OMP_THREADS}"
+
+LOG_FILE="train_ref_avs.log"
+CMD=(
+ python3 "${CODE_DIR}/main.py"
+ --epochs="${DEFAULT_EPOCHS}"
+ --gpus="${GPUS}"
+ --lr="${DEFAULT_LR}"
+)
+
+echo "Training job is about to start:"
+echo " dataset: ref-avs (REFAVS)"
+echo " code: ${CODE_DIR}/main.py"
+echo " epochs: ${DEFAULT_EPOCHS}"
+echo " lr: ${DEFAULT_LR}"
+echo " gpus: ${GPUS}"
+echo " log: ${SCRIPT_DIR}/${LOG_FILE}"
+echo
+print_table
+echo
+echo "Command: nohup ${CMD[*]} > ${LOG_FILE} 2>&1 &"
+
+nohup "${CMD[@]}" > "${LOG_FILE}" 2>&1 &
+echo "Training started in background, PID: $!"